All functions:
  Elements:
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<std::vector<img_t>>
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:20,1
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:22,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:23,1
    - Dst: std::tie
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:33,1
    - Dst: APFSPool::nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:35,1
    - Dst: auto::uuid
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:38,1
    - Dst: auto::block_size
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:39,1
    - Dst: auto::num_blocks
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:41,1
    - Dst: APFSPool::known_versions
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:45,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:50,1
    - Dst: std::max_element
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:55,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:56,1
    - Dst: auto::end
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:56,1
    - Dst: auto::xid
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:60,1
    - Dst: APFSPool::nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:64,1
    - Dst: APFSPool::nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:68,1
    - Dst: auto::volume_blocks
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:74,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:75,1
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:75,1
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:79,1
    - Dst: auto::sb
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:79,1
    - Dst: APFSPool::volumes
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:82,1
    - Dst: encrypted
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - ' imgs'
    - nx_block_num
    argTypes:
    - std::vector<img_t>
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 89
    functionName: APFSPool::APFSPool
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 0
    functionsReached:
    - auto::block_size
    - tsk_fprintf
    - auto::uuid
    - auto::end
    - APFSPool::volumes
    - std::runtime_error
    - auto::sb
    - std::forward<std::vector<img_t>>
    - APFSPool::nx
    - std::tie
    - std::max_element
    - auto::num_blocks
    - encrypted
    - auto::begin
    - size
    - auto::empty
    - bit_is_set
    - auto::xid
    - auto::volume_blocks
    - static_cast<int>
    - APFSPool::known_versions
    linkageType: ''
    returnType: void
    signature: void APFSPool::APFSPool(std::vector<img_t>&& imgs, apfs_block_num nx_block_num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<APFSSuperblock>
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:92,1
    - Dst: auto::validate_checksum
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:94,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: APFSPool::nx
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 1
    functionsReached:
    - std::runtime_error
    - std::make_unique<APFSSuperblock>
    - auto::validate_checksum
    linkageType: ''
    returnType: std::unique_ptr<APFSSuperblock>
    signature: std::unique_ptr<APFSSuperblock> APFSPool::nx(bool validate) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:103,1
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:103,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: APFSPool::volumes
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<APFSFileSystem>
    signature: std::vector<APFSFileSystem> APFSPool::volumes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - address
    - buf
    - buf_size
    argTypes:
    - uint64_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: APFSPool::read
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t APFSPool::read(uint64_t address, char* buf, size_t buf_size)
      const\n    noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APFSPool::nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:120,1
    - Dst: auto::sb
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:121,1
    - Dst: APFSObject::obj_type
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:127,1
    - Dst: APFSObject::oid
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:128,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:128,1
    - Dst: APFSObject::validate_checksum
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:132,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:136,1
    - Dst: APFSObject::xid
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: APFSPool::known_versions
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 1
    functionsReached:
    - APFSObject::xid
    - auto::oid
    - std::vector::emplace_back
    - auto::sb
    - APFSObject::oid
    - APFSObject::validate_checksum
    - APFSObject::obj_type
    - APFSPool::nx
    linkageType: ''
    returnType: std::vector<APFSPool::nx_version>
    signature: std::vector<APFSPool::nx_version> APFSPool::known_versions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSPool::nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: APFSPool::unallocated_ranges
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 0
    functionsReached:
    - APFSPool::nx
    linkageType: ''
    returnType: std::vector<APFSPool::range>
    signature: std::vector<APFSPool::range> APFSPool::unallocated_ranges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:147,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:149,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:152,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/pool/apfs_pool.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: APFSPool::clear_cache
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - clear
    - memset
    - tsk_release_lock
    linkageType: ''
    returnType: void
    signature: void APFSPool::clear_cache() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TSKPool *>
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:20,1
    - Dst: auto::read
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_pool
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_POOL_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: tsk_pool_read
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_read.cpp
    functionUses: 0
    functionsReached:
    - auto::read
    - static_cast<TSKPool *>
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_pool_read(TSK_POOL_INFO *a_pool, TSK_OFF_T a_off, char
      *a_buf,\n                      size_t a_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TSKPool *>
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:25,1
    - Dst: auto::unallocated_ranges
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:26,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:35,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/pool/pool_read.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - a_pool
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 59
    functionName: tsk_pool_unallocated_runs
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_read.cpp
    functionUses: 0
    functionsReached:
    - auto::unallocated_ranges
    - static_cast<TSKPool *>
    - tsk_fs_attr_run_free
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_FS_ATTR_RUN
    signature: TSK_FS_ATTR_RUN *tsk_pool_unallocated_runs(const TSK_POOL_INFO *a_pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_pool_type_toid_utf8
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: tsk_pool_type_toid
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_types.cpp
    functionUses: 0
    functionsReached:
    - tsk_pool_type_toid_utf8
    linkageType: ''
    returnType: TSK_POOL_TYPE_ENUM
    signature: TSK_POOL_TYPE_ENUM tsk_pool_type_toid(const TSK_TCHAR *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: tsk_pool_type_toid_utf8
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_types.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TSK_POOL_TYPE_ENUM
    signature: TSK_POOL_TYPE_ENUM tsk_pool_type_toid_utf8(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:73,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:76,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:76,1
    - Dst: comment::c_str
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: tsk_pool_type_print
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_types.cpp
    functionUses: 0
    functionsReached:
    - comment::c_str
    - name::c_str
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_pool_type_print(FILE *hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptype
    argTypes:
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: tsk_pool_type_toname
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_types.cpp
    functionUses: 0
    functionsReached:
    - name::c_str
    linkageType: ''
    returnType: char
    signature: char *tsk_pool_type_toname(TSK_POOL_TYPE_ENUM ptype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TSK_POOL_TYPE_ENUM>
      Src: /src/sleuthkit/tsk/pool/pool_types.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: tsk_fs_type_supported
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_types.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TSK_POOL_TYPE_ENUM>
    linkageType: ''
    returnType: TSK_POOL_TYPE_ENUM
    signature: TSK_POOL_TYPE_ENUM tsk_fs_type_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: TSKPoolCompat::TSKPoolCompat
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKPoolCompat(const TSKPoolCompat &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: '&operator=(const TSKPoolCompat &)'
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKPoolCompat
    signature: TSKPoolCompat &operator=(const TSKPoolCompat &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: TSKPoolCompat::TSKPoolCompat
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKPoolCompat(TSKPoolCompat &&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '&operator=(TSKPoolCompat &&) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKPoolCompat
    signature: TSKPoolCompat &operator=(TSKPoolCompat &&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:38,1
    - Dst: TSKPoolCompat::block_size
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:42,1
    - Dst: TSKPoolCompat::num_blocks
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:43,1
    - Dst: TSKPoolCompat::first_img_offset
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:44,1
    - Dst: TSKPoolCompat::num_vols
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:45,1
    - Dst: static_cast<TSKPoolCompat *>
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:48,1
    - Dst: static_cast<TSKPoolCompat *>
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:51,1
    - Dst: static_cast<TSKPoolCompat *>
      Src: /src/sleuthkit/tsk/pool/pool_compat.hpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: TSKPoolCompat::TSKPoolCompat
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached:
    - TSKPoolCompat::block_size
    - TSKPoolCompat::num_vols
    - static_cast<TSKPoolCompat *>
    - TSKPoolCompat::first_img_offset
    - TSKPoolCompat::num_blocks
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: "void TSKPoolCompat(TSK_POOL_TYPE_ENUM type, Args &&... args) noexcept(\n
      \     std::is_nothrow_constructible<T, Args...>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '&pool_info() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: TSK_POOL_INFO &pool_info() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: ~TSKPoolCompat()
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TSKPoolCompat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: APFSBlock::APFSBlock
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: APFSBlock::APFSBlock
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSBlock(const APFSBlock &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '&operator=(const APFSBlock &)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSBlock
    signature: APFSBlock &operator=(const APFSBlock &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: APFSBlock::APFSBlock
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSBlock(APFSBlock &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~APFSBlock()
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~APFSBlock()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBlock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: operator==(const APFSBlock &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const APFSBlock &rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBlock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: operator!=(const APFSBlock &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const APFSBlock &rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: APFSBlock::block_num
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num block_num() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '&pool() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSPool
    signature: APFSPool &pool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBlock::data
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: APFSBlock::data
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSBlock::data
    linkageType: ''
    returnType: char
    signature: char *data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: APFSPool::APFSPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSPool(APFSPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: '&operator=(APFSPool &&)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSPool
    signature: APFSPool &operator=(APFSPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: APFSPool::APFSPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSPool(const APFSPool &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: '&operator=(const APFSPool &)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSPool
    signature: APFSPool &operator=(const APFSPool &)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:114,1
    - Dst: end
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:115,1
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:116,1
    - Dst: clear
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:117,1
    - Dst: make_lw_shared
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:119,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:119,1
    - Dst: lw_static_pointer_cast
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:120,1
    - Dst: lw_static_pointer_cast
      Src: /src/sleuthkit/tsk/pool/tsk_apfs.hpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: APFSPool::get_block
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    - find
    - end
    - make_lw_shared
    - lw_static_pointer_cast
    - std::forward<Args>
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: "lw_shared_ptr<T> get_block(apfs_block_num block,\n                                    Args
      &&... args) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: APFSPool::hardware_crypto
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hardware_crypto() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.hpp:22,1
    - Dst: APFSPoolCompat::init_volumes
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.hpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: APFSPoolCompat::APFSPoolCompat
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.hpp
    functionUses: 0
    functionsReached:
    - APFSPoolCompat::init_volumes
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void APFSPoolCompat(Args&&... args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<std::vector<img_t>>
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:42,1
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:43,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:44,1
    - Dst: std::tie
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:47,1
    - Dst: img_bfio_handle_initialize
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:52,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:53,1
    - Dst: libbfio_pool_initialize
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:55,1
    - Dst: libbfio_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:56,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:57,1
    - Dst: libbfio_pool_append_handle
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:59,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:60,1
    - Dst: libbfio_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:61,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:62,1
    - Dst: libvslvm_handle_initialize
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:64,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:65,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:66,1
    - Dst: libvslvm_handle_open_file_io_handle
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:68,1
    - Dst: libvslvm_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:69,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:70,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:71,1
    - Dst: libvslvm_handle_open_physical_volume_files_file_io_pool
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:73,1
    - Dst: libvslvm_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:74,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:75,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:76,1
    - Dst: libvslvm_handle_get_volume_group
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:78,1
    - Dst: libvslvm_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:79,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:80,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:81,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:84,1
    - Dst: libvslvm_volume_group_get_identifier
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:88,1
    - Dst: libvslvm_volume_group_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:89,1
    - Dst: libvslvm_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:90,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:91,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:92,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:94,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - ' imgs'
    argTypes:
    - std::vector<img_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 101
    functionName: LVMPool::LVMPool
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - libbfio_pool_append_handle
    - libvslvm_handle_open_physical_volume_files_file_io_pool
    - libbfio_pool_initialize
    - size
    - tsk_fprintf
    - libvslvm_volume_group_get_identifier
    - libvslvm_handle_free
    - libbfio_pool_free
    - libvslvm_handle_get_volume_group
    - libvslvm_handle_initialize
    - libvslvm_volume_group_free
    - std::string
    - std::forward<std::vector<img_t>>
    - img_bfio_handle_initialize
    - std::runtime_error
    - libvslvm_handle_open_file_io_handle
    - libbfio_handle_free
    linkageType: ''
    returnType: void
    signature: void LVMPool::LVMPool(std::vector<img_t>&& imgs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libvslvm_volume_group_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:105,1
    - Dst: libvslvm_handle_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:108,1
    - Dst: libbfio_pool_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: LVMPool::~LVMPool()
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool.cpp
    functionUses: 0
    functionsReached:
    - libvslvm_handle_free
    - libvslvm_volume_group_free
    - libbfio_pool_free
    linkageType: ''
    returnType: void
    signature: void LVMPool::~LVMPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/pool/lvm_pool.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - address
    - buf
    - buf_size
    argTypes:
    - uint64_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: LVMPool::read
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t LVMPool::read(uint64_t address, char* buf, size_t buf_size)
      const\n    noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: APFSPoolCompat::~APFSPoolCompat()
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSPoolCompat::~APFSPoolCompat()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSK_POOL_VOLUME_INFO::TSK_POOL_VOLUME_INFO
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:35,1
    - Dst: volumes
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:40,1
    - Dst: block_num
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:45,1
    - Dst: alloc_blocks
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:46,1
    - Dst: name
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:52,1
    - Dst: char::char
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:52,1
    - Dst: name
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:53,1
    - Dst: name
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:53,1
    - Dst: name
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:54,1
    - Dst: encrypted
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:56,1
    - Dst: password_hint
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:59,1
    - Dst: char::char
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:59,1
    - Dst: password_hint
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:60,1
    - Dst: password_hint
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:61,1
    - Dst: password_hint
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:62,1
    - Dst: case_sensitive
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 73
    functionName: APFSPoolCompat::init_volumes
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 1
    functionsReached:
    - encrypted
    - case_sensitive
    - block_num
    - TSK_POOL_VOLUME_INFO::TSK_POOL_VOLUME_INFO
    - password_hint
    - volumes
    - alloc_blocks
    - name
    - char::char
    linkageType: ''
    returnType: void
    signature: void APFSPoolCompat::init_volumes()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:76,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:77,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:78,1
    - Dst: uuid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:78,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:79,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:80,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:85,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:86,1
    - Dst: nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:88,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:90,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:90,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:91,1
    - Dst: auto::xid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:91,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:92,1
    - Dst: auto::checkpoint_desc_block
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:94,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:97,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:100,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:103,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:110,1
    - Dst: auto::num_free_blocks
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:119,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:122,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:123,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:124,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:127,1
    - Dst: auto::num_free_blocks
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:128,1
    - Dst: volumes
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:132,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:133,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:134,1
    - Dst: uuid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:134,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:135,1
    - Dst: role
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:138,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:155,1
    - Dst: block_num
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:155,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:156,1
    - Dst: oid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:156,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:157,1
    - Dst: xid
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:157,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:158,1
    - Dst: name
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:158,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:160,1
    - Dst: used
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:160,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:162,1
    - Dst: reserved
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:163,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:164,1
    - Dst: reserved
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:164,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:166,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:169,1
    - Dst: quota
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:170,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:171,1
    - Dst: quota
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:171,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:173,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:175,1
    - Dst: case_sensitive
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:176,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:177,1
    - Dst: encrypted
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:178,1
    - Dst: encrypted
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:179,1
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:179,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:180,1
    - Dst: formatted_by
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:180,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:181,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:184,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:186,1
    - Dst: created
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:186,1
    - Dst: created
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:187,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:188,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:190,1
    - Dst: changed
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:190,1
    - Dst: changed
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:191,1
    - Dst: unmount_log
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:193,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:194,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:195,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:196,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:197,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:198,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:201,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:203,1
    - Dst: logstr::c_str
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:205,1
    - Dst: encrypted
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:209,1
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:209,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:210,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:211,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:212,1
    - Dst: crypto_info
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:214,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:215,1
    - Dst: auto::password_hint::c_str
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:216,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:219,1
    - Dst: uuid::str
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:219,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:222,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:224,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:226,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:228,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:230,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:232,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:234,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:237,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:240,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:242,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:244,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:246,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:247,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:248,1
    - Dst: root_jobj_tree
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:250,1
    - Dst: auto::obj
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:251,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:254,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:255,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:261,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:262,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:263,1
    - Dst: nx
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:265,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:272,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:273,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:274,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:274,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 130
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 276
    functionName: APFSPoolCompat::poolstat
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_fs_time_to_str_subsecs
    - used
    - tsk_error_set_errno
    - block_num
    - auto::obj
    - reserved
    - crypto_info
    - name::c_str
    - case_sensitive
    - auto::checkpoint_desc_block
    - auto::password_hint::c_str
    - uuid
    - created
    - volumes
    - unmount_log
    - quota
    - what
    - encrypted
    - tsk_error_reset
    - changed
    - root_jobj_tree
    - auto::num_free_blocks
    - role
    - hardware_crypto
    - logstr::c_str
    - formatted_by
    - oid
    - auto::empty
    - nx
    - uuid::str
    - tsk_error_set_errstr
    - auto::xid
    - name
    - auto::oid
    - xid
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t APFSPoolCompat::poolstat(FILE *hFile) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:286,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: apfs_img_close
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_free
    - tsk_deinit_lock
    linkageType: ''
    returnType: void
    signature: void apfs_img_close(TSK_IMG_INFO * img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<APFSPoolCompat*>
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:294,1
    - Dst: auto::getTSKImgInfo
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:295,1
    - Dst: TSK_IMG_INFO*::imgstat
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - img_info
    - file
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: apfs_img_imgstat
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<APFSPoolCompat*>
    - auto::getTSKImgInfo
    - TSK_IMG_INFO*::imgstat
    linkageType: ''
    returnType: void
    signature: void apfs_img_imgstat(TSK_IMG_INFO * img_info, FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<APFSPoolCompat*>
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:303,1
    - Dst: auto::getTSKImgInfo
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:304,1
    - Dst: TSK_IMG_INFO*::read
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: apfs_img_read
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - TSK_IMG_INFO*::read
    - static_cast<APFSPoolCompat*>
    - auto::getTSKImgInfo
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t apfs_img_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char
      *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:315,1
    - Dst: static_cast<APFSPoolCompat*>
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:334,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:344,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:350,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:351,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:352,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - pool_info
    - pvol_block
    argTypes:
    - TSK_POOL_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 354
    functionName: APFSPoolCompat::getImageInfo
    functionSourceFile: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - what
    - tsk_init_lock
    - tsk_img_malloc
    - tsk_error_reset
    - tsk_error_set_errstr
    - static_cast<APFSPoolCompat*>
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: TSK_IMG_INFO * APFSPoolCompat::getImageInfo(const TSK_POOL_INFO *pool_info,
      TSK_DADDR_T pvol_block) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.hpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: LVMPoolCompat::LVMPoolCompat
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void LVMPoolCompat(Args&&... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/pool/img_bfio_handle.c:30,1
    - Dst: libbfio_handle_initialize
      Src: /src/sleuthkit/tsk/pool/img_bfio_handle.c:41,1
    - Dst: free
      Src: /src/sleuthkit/tsk/pool/img_bfio_handle.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - image
    - offset
    - error
    argTypes:
    - libbfio_handle_t**
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 63
    functionName: img_bfio_handle_initialize
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 1
    functionsReached:
    - free
    - libbfio_handle_initialize
    - tsk_malloc
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_initialize(\n     libbfio_handle_t **handle,\n
      \    TSK_IMG_INFO *image,\n     TSK_OFF_T offset,\n     libbfio_error_t **error
      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/pool/img_bfio_handle.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - img_bfio_handle
    - error
    argTypes:
    - img_bfio_handle_t**
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: img_bfio_handle_free
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_free(\n     img_bfio_handle_t **img_bfio_handle,\n
      \    libbfio_error_t **error )"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - img_bfio_handle
    - access_flags
    - error
    argTypes:
    - img_bfio_handle_t*
    - int
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: img_bfio_handle_open
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_open(\n     img_bfio_handle_t *img_bfio_handle,\n
      \    int access_flags,\n     libbfio_error_t **error )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - img_bfio_handle
    - error
    argTypes:
    - img_bfio_handle_t*
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: img_bfio_handle_close
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_close(\n     img_bfio_handle_t *img_bfio_handle,\n
      \    libbfio_error_t **error )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/pool/img_bfio_handle.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - img_bfio_handle
    - buffer
    - size
    - error
    argTypes:
    - img_bfio_handle_t*
    - uint8_t*
    - size_t
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 177
    functionName: img_bfio_handle_read
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached:
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t img_bfio_handle_read(\n         img_bfio_handle_t *img_bfio_handle,\n
      \        uint8_t *buffer,\n         size_t size,\n         libbfio_error_t **error
      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - img_bfio_handle
    - offset
    - whence
    - error
    argTypes:
    - img_bfio_handle_t*
    - off64_t
    - int
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: img_bfio_handle_seek_offset
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: off64_t
    signature: "off64_t img_bfio_handle_seek_offset(\n         img_bfio_handle_t *img_bfio_handle,\n
      \        off64_t offset,\n         int whence,\n         libbfio_error_t **error
      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - img_bfio_handle
    - error
    argTypes:
    - img_bfio_handle_t*
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: img_bfio_handle_exists
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_exists(\n     img_bfio_handle_t *img_bfio_handle,\n
      \    libbfio_error_t **error )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - img_bfio_handle
    - error
    argTypes:
    - img_bfio_handle_t*
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: img_bfio_handle_is_open
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_is_open(\n     img_bfio_handle_t *img_bfio_handle,\n
      \    libbfio_error_t **error )"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - img_bfio_handle
    - size
    - error
    argTypes:
    - img_bfio_handle_t*
    - size64_t*
    - libbfio_error_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 263
    functionName: img_bfio_handle_get_size
    functionSourceFile: /src/sleuthkit/tsk/pool/img_bfio_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int img_bfio_handle_get_size(\n     img_bfio_handle_t *img_bfio_handle,\n
      \    size64_t *size,\n     libbfio_error_t **error )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:22,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:25,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:26,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:31,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:32,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - part
    - type
    argTypes:
    - TSK_VS_PART_INFO*
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: tsk_pool_open_sing
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_pool_open_img_sing
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: "TSK_POOL_INFO *tsk_pool_open_sing(const TSK_VS_PART_INFO *part,\n
      \                                       TSK_POOL_TYPE_ENUM type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:51,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:54,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:55,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:60,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:61,1
    - Dst: std::make_unique<TSK_IMG_INFO *[]>
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:66,1
    - Dst: std::make_unique<TSK_OFF_T[]>
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:67,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:73,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:74,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:79,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:80,1
    - Dst: tsk_pool_open_img
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:90,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:90,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - num_vols
    - parts
    - type
    argTypes:
    - int
    - TSK_VS_PART_INFO*[]
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: tsk_pool_open
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_pool_open_img
    - std::make_unique<TSK_IMG_INFO *[]>
    - auto::get
    - tsk_error_set_errstr
    - tsk_error_reset
    - std::make_unique<TSK_OFF_T[]>
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: "TSK_POOL_INFO *tsk_pool_open(int num_vols,\n                                   const
      TSK_VS_PART_INFO *const parts[],\n                                   TSK_POOL_TYPE_ENUM
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_pool_open_img
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - img
    - offset
    - type
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: tsk_pool_open_img_sing
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_open.cpp
    functionUses: 1
    functionsReached:
    - tsk_pool_open_img
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: "TSK_POOL_INFO *tsk_pool_open_img_sing(TSK_IMG_INFO *img, TSK_OFF_T
      offset,\n                                            TSK_POOL_TYPE_ENUM type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:118,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:120,1
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:123,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:125,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:129,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:130,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:131,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:140,1
    - Dst: APFSPoolCompat::APFSPoolCompat
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:140,1
    - Dst: auto::pool_info
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:142,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:144,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:148,1
    - Dst: LVMPoolCompat::LVMPoolCompat
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:148,1
    - Dst: auto::pool_info
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:150,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:152,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:156,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:162,1
    - Dst: APFSPoolCompat::APFSPoolCompat
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:162,1
    - Dst: auto::pool_info
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:164,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:166,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:167,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:168,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:168,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:176,1
    - Dst: LVMPoolCompat::LVMPoolCompat
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:176,1
    - Dst: auto::pool_info
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:178,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:180,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:181,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:182,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:182,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:188,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:189,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:190,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:195,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:196,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 4
    argNames:
    - num_imgs
    - imgs
    - offsets
    - type
    argTypes:
    - int
    - TSK_IMG_INFO*[]
    - TSK_OFF_T[]
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 199
    functionName: tsk_pool_open_img
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_open.cpp
    functionUses: 2
    functionsReached:
    - what
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - LVMPoolCompat::LVMPoolCompat
    - APFSPoolCompat::APFSPoolCompat
    - auto::pool_info
    - tsk_error_set_errno
    - std::vector::reserve
    - std::move
    - std::vector::emplace_back
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: "TSK_POOL_INFO *tsk_pool_open_img(int num_imgs, TSK_IMG_INFO *const
      imgs[],\n                                       const TSK_OFF_T offsets[],\n
      \                                      TSK_POOL_TYPE_ENUM type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_POOL_INFO*::close
      Src: /src/sleuthkit/tsk/pool/pool_open.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: tsk_pool_close
    functionSourceFile: /src/sleuthkit/tsk/pool/pool_open.cpp
    functionUses: 0
    functionsReached:
    - TSK_POOL_INFO*::close
    linkageType: ''
    returnType: void
    signature: void tsk_pool_close(const TSK_POOL_INFO *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: LVMPool::LVMPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_lvm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LVMPool(LVMPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '&operator=(LVMPool &&)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_lvm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LVMPool
    signature: LVMPool &operator=(LVMPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: LVMPool::LVMPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_lvm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LVMPool(const LVMPool &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '&operator=(const LVMPool &)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_lvm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LVMPool
    signature: LVMPool &operator=(const LVMPool &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: TSKPool::TSKPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: TSKPool::TSKPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKPool(const TSKPool &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '&operator=(const TSKPool &)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKPool
    signature: TSKPool &operator=(const TSKPool &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: TSKPool::TSKPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKPool(TSKPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '&operator=(TSKPool &&)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKPool
    signature: TSKPool &operator=(TSKPool &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~TSKPool()
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TSKPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '&uuid() const'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid &uuid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TSKPool::block_size
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: TSKPool::dev_block_size
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dev_block_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: TSKPool::num_blocks
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t num_blocks() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tsk/pool/tsk_pool.hpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: TSKPool::first_img_offset
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t first_img_offset() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TSKPool::num_vols
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_vols() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TSKPool::unallocated_ranges
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<range>
    signature: std::vector<range> unallocated_ranges() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tsk/pool/tsk_pool.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: TSKPool::getTSKImgInfo
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: TSK_IMG_INFO *getTSKImgInfo(unsigned int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tsk/pool/tsk_pool.hpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - imgs
    argTypes:
    - std::vector<img_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: TSKPool::TSKPool
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TSKPool(std::vector<img_t> &&imgs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/sleuthkit/tsk/pool/tsk_pool.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: '&operator|=(T &a, T b)'
    functionSourceFile: /src/sleuthkit/tsk/pool/tsk_pool.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T &operator|=(T &a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libvslvm_error_backtrace_sprint
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vslvm_error
    - error_string
    argTypes:
    - libvslvm_error_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: getError
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - libvslvm_error_backtrace_sprint
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getError(libvslvm_error_t *vslvm_error, char error_string[512])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:35,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:37,1
    - Dst: libvslvm_volume_group_get_number_of_logical_volumes
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:40,1
    - Dst: libvslvm_volume_group_get_logical_volume
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:48,1
    - Dst: libvslvm_logical_volume_get_identifier
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:51,1
    - Dst: libvslvm_logical_volume_get_name
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:54,1
    - Dst: libvslvm_logical_volume_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:60,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:61,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:62,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:63,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:67,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:68,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:69,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 71
    functionName: LVMPoolCompat::poolstat
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - libvslvm_volume_group_get_logical_volume
    - what
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - libvslvm_logical_volume_get_name
    - libvslvm_logical_volume_free
    - libvslvm_volume_group_get_number_of_logical_volumes
    - libvslvm_logical_volume_get_identifier
    - c_str
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LVMPoolCompat::poolstat(FILE *hFile) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libvslvm_logical_volume_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:78,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:80,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: lvm_logical_volume_img_close
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_free
    - tsk_deinit_lock
    - libvslvm_logical_volume_free
    linkageType: ''
    returnType: void
    signature: void lvm_logical_volume_img_close(TSK_IMG_INFO * img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:88,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:89,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:90,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: lvm_logical_volume_img_imgstat
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void lvm_logical_volume_img_imgstat(TSK_IMG_INFO * img_info, FILE *hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:105,1
    - Dst: libvslvm_logical_volume_read_buffer_at_offset
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:111,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:115,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: lvm_logical_volume_img_read
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - getError
    - tsk_fprintf
    - libvslvm_logical_volume_read_buffer_at_offset
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lvm_logical_volume_img_read(TSK_IMG_INFO * img_info, TSK_OFF_T
      offset, char *buf, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libvslvm_volume_group_get_logical_volume
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:129,1
    - Dst: libvslvm_logical_volume_get_size
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:134,1
    - Dst: libvslvm_logical_volume_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:135,1
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:138,1
    - Dst: libvslvm_logical_volume_free
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:141,1
    - Dst: static_cast<LVMPoolCompat*>
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:161,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:171,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:177,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:178,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:179,1
    - Dst: what
      Src: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - pool_info
    - pvol_block
    argTypes:
    - TSK_POOL_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 181
    functionName: LVMPoolCompat::getImageInfo
    functionSourceFile: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
    functionUses: 0
    functionsReached:
    - libvslvm_logical_volume_get_size
    - libvslvm_volume_group_get_logical_volume
    - what
    - tsk_img_malloc
    - tsk_init_lock
    - tsk_error_reset
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - libvslvm_logical_volume_free
    - static_cast<LVMPoolCompat*>
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: TSK_IMG_INFO * LVMPoolCompat::getImageInfo(const TSK_POOL_INFO *pool_info,
      TSK_DADDR_T pvol_block) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_toid_utf8
      Src: /src/sleuthkit/tsk/vs/mm_types.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: tsk_vs_type_toid
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 0
    functionsReached:
    - tsk_vs_type_toid_utf8
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM tsk_vs_type_toid(const TSK_TCHAR * str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/vs/mm_types.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: tsk_vs_type_toid_utf8
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM tsk_vs_type_toid_utf8(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mm_types.c:87,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mm_types.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: tsk_vs_type_print
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_vs_type_print(FILE * hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: tsk_vs_type_supported
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM tsk_vs_type_supported()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: tsk_vs_type_toname
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_vs_type_toname(TSK_VS_TYPE_ENUM type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: tsk_vs_type_todesc
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_vs_type_todesc(TSK_VS_TYPE_ENUM type)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/sun.c:26,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:32,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:35,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:38,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:41,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:44,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:47,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:50,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:53,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:56,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:59,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/sun.c:62,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:65,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - fstype
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 70
    functionName: sun_get_desc
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - snprintf
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      sun_get_desc(uint16_t fstype)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:85,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:86,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:88,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:98,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:101,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:103,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:104,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:106,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:110,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:112,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:113,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:114,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:120,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:121,1
    - Dst: sun_get_desc
      Src: /src/sleuthkit/tsk/vs/sun.c:127,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:127,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/sun.c:131,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:132,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:134,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - vs
    - dlabel_x86
    argTypes:
    - TSK_VS_INFO*
    - sun_dlabel_i386*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 144
    functionName: sun_load_table_i386
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - sun_get_desc
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_vs_part_add
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sun_load_table_i386(TSK_VS_INFO * vs, sun_dlabel_i386 * dlabel_x86)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:159,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:160,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:163,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:164,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:166,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:174,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:177,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:181,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:185,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:192,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:193,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:194,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:200,1
    - Dst: sun_get_desc
      Src: /src/sleuthkit/tsk/vs/sun.c:206,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:206,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/sun.c:210,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:212,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - vs
    - dlabel_sp
    argTypes:
    - TSK_VS_INFO*
    - sun_dlabel_sparc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 220
    functionName: sun_load_table_sparc
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - sun_get_desc
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_vs_part_add
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sun_load_table_sparc(TSK_VS_INFO * vs, sun_dlabel_sparc * dlabel_sp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:246,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:247,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:248,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:254,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/sun.c:257,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/sun.c:262,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:268,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:269,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/sun.c:271,1
    - Dst: tsk_vs_guessu16
      Src: /src/sleuthkit/tsk/vs/sun.c:285,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:286,1
    - Dst: sun_load_table_sparc
      Src: /src/sleuthkit/tsk/vs/sun.c:287,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:290,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:293,1
    - Dst: sun_load_table_i386
      Src: /src/sleuthkit/tsk/vs/sun.c:294,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:297,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/sun.c:308,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/sun.c:311,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:316,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:317,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/sun.c:319,1
    - Dst: tsk_vs_guessu16
      Src: /src/sleuthkit/tsk/vs/sun.c:325,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:326,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:327,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:328,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:329,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/sun.c:334,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:335,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:336,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:337,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/sun.c:338,1
    - Dst: sun_load_table_i386
      Src: /src/sleuthkit/tsk/vs/sun.c:343,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:346,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:350,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 352
    functionName: sun_load_table
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - sun_load_table_i386
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - sun_load_table_sparc
    - tsk_vs_guessu16
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sun_load_table(TSK_VS_INFO * vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/sun.c:359,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/sun.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: sun_close
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_vs_part_free
    linkageType: ''
    returnType: void
    signature: void sun_close(TSK_VS_INFO * vs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:369,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/sun.c:372,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/sun.c:373,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/sun.c:374,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/sun.c:378,1
    - Dst: sun_load_table
      Src: /src/sleuthkit/tsk/vs/sun.c:398,1
    - Dst: sun_close
      Src: /src/sleuthkit/tsk/vs/sun.c:399,1
    - Dst: tsk_vs_part_unused
      Src: /src/sleuthkit/tsk/vs/sun.c:404,1
    - Dst: sun_close
      Src: /src/sleuthkit/tsk/vs/sun.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 410
    functionName: tsk_vs_sun_open
    functionSourceFile: /src/sleuthkit/tsk/vs/sun.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - sun_load_table
    - tsk_vs_part_unused
    - sun_close
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      tsk_vs_sun_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: dos_is_ext
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dos_is_ext(x)
  - BBCount: 186
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:34,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:40,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:43,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:46,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:49,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:53,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:56,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:59,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:62,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:65,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:68,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:80,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:83,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:86,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:89,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:92,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:95,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:99,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:102,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:105,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:110,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:113,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:121,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:134,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:137,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:140,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:143,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:146,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:149,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:157,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:160,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:163,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:166,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:169,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:172,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:184,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:187,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:191,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:194,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:205,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:208,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:211,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:214,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:221,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:226,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:238,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:241,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:244,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:247,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:257,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:260,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:263,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:266,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:274,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:277,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:280,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:283,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:286,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:292,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:295,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:298,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:304,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:307,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:310,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:313,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:316,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:319,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:322,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:325,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:328,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:332,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:336,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:339,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:343,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:346,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:350,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:353,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:356,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:359,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:363,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:370,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:373,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:377,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:381,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:385,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:388,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:392,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:396,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:399,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:402,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:405,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:408,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:411,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:414,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:417,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:420,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:423,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:426,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:430,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:434,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:438,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:445,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:448,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:451,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:454,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:457,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:469,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:472,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:475,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:478,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:481,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:485,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:489,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:492,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:495,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:498,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:501,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:504,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:507,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:510,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:513,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:519,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:522,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:526,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:530,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:534,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:537,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:540,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:550,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:553,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:562,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:566,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:570,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:573,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:577,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:581,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:584,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:587,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:590,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:593,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:596,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:599,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:602,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:608,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:611,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:614,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:617,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:620,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:623,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:626,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:629,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:645,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:648,1
    CyclomaticComplexity: 154
    EdgeCount: 154
    ICount: 494
    argCount: 1
    argNames:
    - ptype
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 653
    functionName: dos_get_desc
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      dos_get_desc(uint8_t ptype)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:681,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:687,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:688,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:689,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:694,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/dos.c:699,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:702,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:703,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/dos.c:705,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:707,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/dos.c:712,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:713,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:714,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:715,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:717,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:722,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:723,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:727,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:728,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:731,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/dos.c:745,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/dos.c:746,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:749,1
    - Dst: dos_is_ext
      Src: /src/sleuthkit/tsk/vs/dos.c:760,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:772,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:776,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:777,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:778,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:780,1
    - Dst: dos_get_desc
      Src: /src/sleuthkit/tsk/vs/dos.c:791,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:793,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:796,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:800,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:801,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:808,1
    - Dst: dos_load_ext_table
      Src: /src/sleuthkit/tsk/vs/dos.c:814,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:816,1
    - Dst: dos_get_desc
      Src: /src/sleuthkit/tsk/vs/dos.c:829,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:831,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:834,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:838,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:839,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:846,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 4
    argNames:
    - vs
    - sect_cur
    - sect_ext_base
    - table
    argTypes:
    - TSK_VS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 848
    functionName: dos_load_ext_table
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 1
    functionsReached:
    - tsk_vs_read_block
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - dos_get_desc
    - dos_load_ext_table
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_vs_part_add
    - dos_is_ext
    - tsk_error_set_errstr2
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t dos_load_ext_table(TSK_VS_INFO * vs, TSK_DADDR_T sect_cur,\n
      \   TSK_DADDR_T sect_ext_base, int table)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:874,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:877,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/dos.c:882,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:887,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:888,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/dos.c:890,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:892,1
    - Dst: tsk_vs_guessu16
      Src: /src/sleuthkit/tsk/vs/dos.c:898,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:899,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:900,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:901,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:905,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:908,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:918,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/vs/dos.c:921,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:922,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:923,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:924,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:927,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:929,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/vs/dos.c:932,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:933,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:934,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:935,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:938,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:940,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/vs/dos.c:943,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:944,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:945,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:946,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:949,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:951,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/vs/dos.c:954,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:955,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:956,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:957,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:960,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:962,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:968,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:969,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:973,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:974,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:976,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/dos.c:985,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/dos.c:986,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:989,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:998,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:999,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:1000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:1003,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1006,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:1012,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:1013,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:1014,1
    - Dst: dos_is_ext
      Src: /src/sleuthkit/tsk/vs/dos.c:1024,1
    - Dst: dos_get_desc
      Src: /src/sleuthkit/tsk/vs/dos.c:1026,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1028,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:1031,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1034,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1035,1
    - Dst: dos_load_ext_table
      Src: /src/sleuthkit/tsk/vs/dos.c:1040,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:1042,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/vs/dos.c:1044,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:1046,1
    - Dst: dos_get_desc
      Src: /src/sleuthkit/tsk/vs/dos.c:1051,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1053,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/dos.c:1056,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1059,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1060,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1066,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/dos.c:1070,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:1072,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:1073,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:1074,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 135
    argCount: 2
    argNames:
    - vs
    - test
    argTypes:
    - TSK_VS_INFO*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 1079
    functionName: dos_load_prim_table
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - strncmp
    - tsk_error_print
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - dos_get_desc
    - dos_load_ext_table
    - tsk_getu32
    - tsk_vs_guessu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_vs_part_add
    - dos_is_ext
    - tsk_error_set_errstr2
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t dos_load_prim_table(TSK_VS_INFO * vs, uint8_t test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/dos.c:1086,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/dos.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1088
    functionName: dos_close
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_vs_part_free
    linkageType: ''
    returnType: void
    signature: void dos_close(TSK_VS_INFO * vs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:1107,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/dos.c:1110,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/dos.c:1111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/dos.c:1112,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/dos.c:1116,1
    - Dst: dos_load_prim_table
      Src: /src/sleuthkit/tsk/vs/dos.c:1137,1
    - Dst: dos_close
      Src: /src/sleuthkit/tsk/vs/dos.c:1138,1
    - Dst: tsk_vs_part_unused
      Src: /src/sleuthkit/tsk/vs/dos.c:1143,1
    - Dst: dos_close
      Src: /src/sleuthkit/tsk/vs/dos.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - img_info
    - offset
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1101
    functionDepth: 4
    functionLinenumber: 1101
    functionLinenumberEnd: 1149
    functionName: tsk_vs_dos_open
    functionSourceFile: /src/sleuthkit/tsk/vs/dos.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - dos_load_prim_table
    - tsk_vs_part_unused
    - dos_close
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      tsk_vs_dos_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset, uint8_t test)'
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:50,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:53,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/gpt.c:61,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:66,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:67,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/gpt.c:69,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:72,1
    - Dst: tsk_vs_guessu16
      Src: /src/sleuthkit/tsk/vs/gpt.c:77,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:78,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:79,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:80,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:83,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:88,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:89,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:90,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:93,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/gpt.c:100,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:104,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:105,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/gpt.c:107,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:109,1
    - Dst: tsk_vs_guessu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:115,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:116,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:117,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:118,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:118,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:120,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:125,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:126,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:127,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:128,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:128,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:130,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:136,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:137,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:140,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/gpt.c:141,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:143,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:148,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:149,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:153,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/gpt.c:154,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/gpt.c:155,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:159,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/gpt.c:164,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:166,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:167,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:168,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:170,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:174,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/gpt.c:175,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:178,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:179,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:180,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:182,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:189,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:190,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:194,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/gpt.c:195,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:199,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:205,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:206,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/gpt.c:215,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:220,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:221,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/gpt.c:223,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:226,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:227,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:241,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:244,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:245,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:246,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:249,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:256,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:257,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:258,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:259,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:261,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:262,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:267,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:268,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:269,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/vs/gpt.c:277,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:284,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/gpt.c:290,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:291,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:292,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/vs/gpt.c:293,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:296,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:297,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:305,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:306,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 171
    argCount: 2
    argNames:
    - vs
    - gpt_type
    argTypes:
    - TSK_VS_INFO*
    - GPT_LOCATION_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 308
    functionName: gpt_load_table
    functionSourceFile: /src/sleuthkit/tsk/vs/gpt.c
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_UTF16toUTF8
    - tsk_vs_guessu64
    - tsk_getu32
    - tsk_vs_guessu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_vs_part_add
    - tsk_error_set_errstr2
    - snprintf
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t gpt_load_table(TSK_VS_INFO * vs, GPT_LOCATION_ENUM gpt_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/gpt.c:314,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/gpt.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: gpt_close
    functionSourceFile: /src/sleuthkit/tsk/vs/gpt.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_vs_part_free
    linkageType: ''
    returnType: void
    signature: void gpt_close(TSK_VS_INFO * vs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:324,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/gpt.c:327,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/gpt.c:328,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/gpt.c:329,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/gpt.c:333,1
    - Dst: gpt_load_table
      Src: /src/sleuthkit/tsk/vs/gpt.c:355,1
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/gpt.c:356,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:359,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:365,1
    - Dst: gpt_load_table
      Src: /src/sleuthkit/tsk/vs/gpt.c:368,1
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/gpt.c:369,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:380,1
    - Dst: gpt_load_table
      Src: /src/sleuthkit/tsk/vs/gpt.c:383,1
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/gpt.c:386,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/gpt.c:390,1
    - Dst: gpt_load_table
      Src: /src/sleuthkit/tsk/vs/gpt.c:393,1
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/gpt.c:394,1
    - Dst: gpt_close
      Src: /src/sleuthkit/tsk/vs/gpt.c:403,1
    - Dst: tsk_vs_part_unused
      Src: /src/sleuthkit/tsk/vs/gpt.c:413,1
    - Dst: gpt_close
      Src: /src/sleuthkit/tsk/vs/gpt.c:414,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 419
    functionName: tsk_vs_gpt_open
    functionSourceFile: /src/sleuthkit/tsk/vs/gpt.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_vs_part_free
    - gpt_close
    - tsk_malloc
    - tsk_error_set_errno
    - gpt_load_table
    - tsk_vs_part_unused
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      tsk_vs_gpt_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mm_part.c:37,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 7
    argNames:
    - a_vs
    - a_start
    - len
    - type
    - desc
    - table
    - slot
    argTypes:
    - TSK_VS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_VS_PART_FLAG_ENUM
    - char*
    - int8_t
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 114
    functionName: tsk_vs_part_add
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_part.c
    functionUses: 5
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: TSK_VS_PART_INFO
    signature: "TSK_VS_PART_INFO *\ntsk_vs_part_add(TSK_VS_INFO * a_vs, TSK_DADDR_T
      a_start, TSK_DADDR_T len,\n    TSK_VS_PART_FLAG_ENUM type, char *desc, int8_t
      table, int8_t slot)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mm_part.c:139,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/mm_part.c:142,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/mm_part.c:143,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mm_part.c:146,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mm_part.c:157,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/mm_part.c:160,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/mm_part.c:161,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mm_part.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - a_vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 170
    functionName: tsk_vs_part_unused
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_part.c
    functionUses: 3
    functionsReached:
    - free
    - tsk_malloc
    - snprintf
    - tsk_vs_part_add
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_vs_part_unused(TSK_VS_INFO * a_vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mm_part.c:182,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mm_part.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a_vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: tsk_vs_part_free
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_part.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_vs_part_free(TSK_VS_INFO * a_vs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_part.c:205,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_part.c:206,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_part.c:207,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_part.c:213,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_part.c:214,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_part.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - a_vs
    - a_idx
    argTypes:
    - TSK_VS_INFO*
    - TSK_PNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 225
    functionName: tsk_vs_part_get
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_part.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_VS_PART_INFO
    signature: 'TSK_VS_PART_INFO *

      tsk_vs_part_get(const TSK_VS_INFO * a_vs, TSK_PNUM_T a_idx)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_part.c:248,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_part.c:249,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_part.c:250,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_part.c:257,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_part.c:258,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_part.c:259,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/vs/mm_part.c:272,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - a_vs
    - a_start
    - a_last
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_VS_INFO*
    - TSK_PNUM_T
    - TSK_PNUM_T
    - TSK_VS_PART_FLAG_ENUM
    - TSK_VS_PART_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 283
    functionName: tsk_vs_part_walk
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_part.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - a_action
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_vs_part_walk(TSK_VS_INFO * a_vs, TSK_PNUM_T a_start, TSK_PNUM_T
      a_last,\n    TSK_VS_PART_FLAG_ENUM a_flags, TSK_VS_PART_WALK_CB a_action,\n
      \   void *a_ptr)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:40,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:41,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:42,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:47,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:48,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:49,1
    - Dst: tsk_vs_dos_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:69,1
    - Dst: tsk_vs_bsd_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:72,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:93,1
    - Dst: tsk_vs_gpt_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:96,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/vs/mm_open.c:98,1
    - Dst: TSK_VS_INFO*::close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:101,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mm_open.c:103,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/vs/mm_open.c:112,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/vs/mm_open.c:117,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mm_open.c:122,1
    - Dst: close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:125,1
    - Dst: close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:134,1
    - Dst: TSK_VS_INFO*::close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:135,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:136,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:137,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:138,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:148,1
    - Dst: tsk_vs_sun_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:151,1
    - Dst: close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:157,1
    - Dst: TSK_VS_INFO*::close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:158,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:159,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:160,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:161,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:167,1
    - Dst: tsk_vs_mac_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:170,1
    - Dst: close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:176,1
    - Dst: TSK_VS_INFO*::close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:177,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:178,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:179,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:180,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:186,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:190,1
    - Dst: detectDiskEncryption
      Src: /src/sleuthkit/tsk/vs/mm_open.c:195,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:198,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:199,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mm_open.c:201,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:205,1
    - Dst: tsk_vs_dos_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:218,1
    - Dst: tsk_vs_mac_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:220,1
    - Dst: tsk_vs_bsd_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:222,1
    - Dst: tsk_vs_sun_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:224,1
    - Dst: tsk_vs_gpt_open
      Src: /src/sleuthkit/tsk/vs/mm_open.c:226,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_open.c:230,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_open.c:231,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_open.c:232,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 126
    argCount: 3
    argNames:
    - img_info
    - offset
    - type
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 236
    functionName: tsk_vs_open
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_open.c
    functionUses: 0
    functionsReached:
    - tsk_vs_bsd_open
    - strncmp
    - tsk_fprintf
    - tsk_vs_sun_open
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_VS_INFO*::close
    - tsk_vs_dos_open
    - tsk_vs_mac_open
    - tsk_vs_gpt_open
    - strcmp
    - tsk_error_set_errno
    - close
    - detectDiskEncryption
    - free
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: "TSK_VS_INFO *\ntsk_vs_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset,\n
      \   TSK_VS_TYPE_ENUM type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_VS_INFO*::close
      Src: /src/sleuthkit/tsk/vs/mm_open.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: tsk_vs_close
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_open.c
    functionUses: 0
    functionsReached:
    - TSK_VS_INFO*::close
    linkageType: ''
    returnType: void
    signature: void tsk_vs_close(TSK_VS_INFO * a_vs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_io.c:35,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_io.c:36,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_io.c:37,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/vs/mm_io.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a_vs
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_VS_INFO*
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: tsk_vs_read_block
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_io.c
    functionUses: 4
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_vs_read_block(TSK_VS_INFO * a_vs, TSK_DADDR_T a_addr,
      char *a_buf,\n    size_t a_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/vs/mm_io.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_vs_part
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_VS_PART_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: tsk_vs_part_read
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_io.c
    functionUses: 0
    functionsReached:
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_vs_part_read(const TSK_VS_PART_INFO * a_vs_part, TSK_OFF_T
      a_off,\n    char *a_buf, size_t a_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mm_io.c:86,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mm_io.c:87,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mm_io.c:88,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/vs/mm_io.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a_vs_part
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_VS_PART_INFO*
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: tsk_vs_part_read_block
    functionSourceFile: /src/sleuthkit/tsk/vs/mm_io.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_vs_part_read_block(const TSK_VS_PART_INFO * a_vs_part,\n
      \   TSK_DADDR_T a_addr, char *a_buf, size_t a_len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:36,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mac.c:43,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/mac.c:58,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:64,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mac.c:65,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/mac.c:67,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:69,1
    - Dst: tsk_vs_guessu16
      Src: /src/sleuthkit/tsk/vs/mac.c:77,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:78,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mac.c:79,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mac.c:80,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/mac.c:82,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:84,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:86,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/mac.c:91,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/mac.c:93,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:94,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mac.c:95,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mac.c:96,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/mac.c:98,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:100,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:103,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/mac.c:108,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/mac.c:109,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/mac.c:110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:113,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:128,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mac.c:129,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mac.c:130,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:133,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:136,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mac.c:141,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:142,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/mac.c:146,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/mac.c:149,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:152,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:156,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mac.c:165,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:169,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/mac.c:170,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 176
    functionName: mac_load_table
    functionSourceFile: /src/sleuthkit/tsk/vs/mac.c
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_vs_guessu16
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_vs_part_add
    - strncpy
    - tsk_error_set_errstr2
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mac_load_table(TSK_VS_INFO * vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/mac.c:183,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/mac.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: mac_close
    functionSourceFile: /src/sleuthkit/tsk/vs/mac.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_vs_part_free
    linkageType: ''
    returnType: void
    signature: void mac_close(TSK_VS_INFO * vs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:197,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/mac.c:200,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/mac.c:201,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/mac.c:202,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/mac.c:206,1
    - Dst: mac_load_table
      Src: /src/sleuthkit/tsk/vs/mac.c:229,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:235,1
    - Dst: mac_load_table
      Src: /src/sleuthkit/tsk/vs/mac.c:238,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/mac.c:242,1
    - Dst: mac_load_table
      Src: /src/sleuthkit/tsk/vs/mac.c:245,1
    - Dst: mac_close
      Src: /src/sleuthkit/tsk/vs/mac.c:249,1
    - Dst: tsk_vs_part_unused
      Src: /src/sleuthkit/tsk/vs/mac.c:255,1
    - Dst: mac_close
      Src: /src/sleuthkit/tsk/vs/mac.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 261
    functionName: tsk_vs_mac_open
    functionSourceFile: /src/sleuthkit/tsk/vs/mac.c
    functionUses: 1
    functionsReached:
    - mac_close
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - mac_load_table
    - tsk_vs_part_unused
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      tsk_vs_mac_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_vsPartInfo
    argTypes:
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: TskVsPartInfo::TskVsPartInfo
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskVsPartInfo(TSK_VS_PART_INFO * a_vsPartInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_read
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: TskVsPartInfo::read
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_part_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(TSK_OFF_T a_off, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_read_block
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: TskVsPartInfo::readBlock
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_part_read_block
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t readBlock(TSK_DADDR_T a_addr, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: TskVsPartInfo::getStart
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getStart() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: TskVsPartInfo::getLen
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getLen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: TskVsPartInfo::getDesc
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getDesc() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: TskVsPartInfo::getTableNum
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t getTableNum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: TskVsPartInfo::getSlotNum
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t getSlotNum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: TskVsPartInfo::getAddr
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_PNUM_T
    signature: TSK_PNUM_T getAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: TskVsPartInfo::getFlags
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_VS_PART_FLAG_ENUM
    signature: TSK_VS_PART_FLAG_ENUM getFlags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_vsInfo
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: TskVsInfo::TskVsInfo
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskVsInfo(TSK_VS_INFO * a_vsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: TskVsInfo::TskVsInfo
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskVsInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: ~TskVsInfo()
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~TskVsInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - a_start
    - a_last
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_PNUM_T
    - TSK_PNUM_T
    - TSK_VS_PART_FLAG_ENUM
    - TSK_VS_PART_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: TskVsInfo::vsPartWalk
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_part_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t vsPartWalk(TSK_PNUM_T a_start, TSK_PNUM_T a_last,\n        TSK_VS_PART_FLAG_ENUM
      a_flags, TSK_VS_PART_WALK_CPP_CB a_action,\n        void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_imgInfo
    - a_offset
    - a_type
    argTypes:
    - TskImgInfo*
    - TSK_DADDR_T
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: TskVsInfo::open
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_open
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(TskImgInfo * a_imgInfo, TSK_DADDR_T a_offset,\n        TSK_VS_TYPE_ENUM
      a_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: TskVsInfo::readBlock
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t readBlock(TSK_DADDR_T a_addr, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: TskVsInfo::close
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: TskVsInfo::getOffset
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getOffset() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: TskVsInfo::getBlockSize
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int getBlockSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: TskVsInfo::getPartCount
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_PNUM_T
    signature: TSK_PNUM_T getPartCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "const_cast <\n            TSK_VS_PART_INFO * >"
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:452,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:453,1
    - Dst: TskVsPartInfo::TskVsPartInfo
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_idx
    argTypes:
    - TSK_PNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: TskVsInfo::getPart
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - TskVsPartInfo::TskVsPartInfo
    - "const_cast <\n            TSK_VS_PART_INFO * >"
    - tsk_vs_part_get
    linkageType: ''
    returnType: TskVsPartInfo
    signature: TskVsPartInfo *getPart(TSK_PNUM_T a_idx) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskImgInfo::TskImgInfo
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: TskVsInfo::getImgInfo
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - TskImgInfo::TskImgInfo
    linkageType: ''
    returnType: TskImgInfo
    signature: TskImgInfo *getImgInfo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: TskVsInfo::getVsType
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM getVsType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_toid
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: TskVsInfo::typeToId
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_type_toid
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM typeToId(const TSK_TCHAR * a_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: TskVsInfo::typePrint
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_type_print
    linkageType: ''
    returnType: void
    signature: void typePrint(FILE * a_hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_supported
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: TskVsInfo::typeSupported
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_type_supported
    linkageType: ''
    returnType: TSK_VS_TYPE_ENUM
    signature: TSK_VS_TYPE_ENUM typeSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_toname
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_type
    argTypes:
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: TskVsInfo::typeToName
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_type_toname
    linkageType: ''
    returnType: char
    signature: char *typeToName(TSK_VS_TYPE_ENUM a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_type_todesc
      Src: /src/sleuthkit/tsk/vs/tsk_vs.h:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_type
    argTypes:
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: TskVsInfo::typeToDesc
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs.h
    functionUses: 0
    functionsReached:
    - tsk_vs_type_todesc
    linkageType: ''
    returnType: char
    signature: char *typeToDesc(TSK_VS_TYPE_ENUM a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vs
    - ','
    - x
    - ','
    - mag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: tsk_vs_guessu16
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs_i.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_vs_guessu16(vs, x, mag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vs
    - ','
    - x
    - ','
    - mag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: tsk_vs_guessu32
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_vs_guessu32(vs, x, mag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vs
    - ','
    - x
    - ','
    - mag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: tsk_vs_guessu64
    functionSourceFile: /src/sleuthkit/tsk/vs/tsk_vs_i.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_vs_guessu64(vs, x, mag)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/bsd.c:25,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:32,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:35,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:38,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:41,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:44,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:47,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:50,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:53,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:56,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:59,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:62,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:65,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:68,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:71,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/vs/bsd.c:74,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/bsd.c:77,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - fstype
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: bsd_get_desc
    functionSourceFile: /src/sleuthkit/tsk/vs/bsd.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - snprintf
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      bsd_get_desc(uint8_t fstype)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/bsd.c:102,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/bsd.c:105,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/tsk/vs/bsd.c:110,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:114,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/bsd.c:115,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/vs/bsd.c:117,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:119,1
    - Dst: tsk_vs_guessu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:124,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:125,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/bsd.c:126,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/bsd.c:127,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:128,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:130,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:135,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:136,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/bsd.c:137,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/bsd.c:138,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:139,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:141,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/bsd.c:146,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:147,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/vs/bsd.c:151,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/bsd.c:152,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:154,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/vs/bsd.c:159,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:167,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/vs/bsd.c:168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/vs/bsd.c:171,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:181,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/bsd.c:182,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/bsd.c:183,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:185,1
    - Dst: bsd_get_desc
      Src: /src/sleuthkit/tsk/vs/bsd.c:192,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:194,1
    - Dst: tsk_vs_part_add
      Src: /src/sleuthkit/tsk/vs/bsd.c:197,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:200,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:201,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:207,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 1
    argNames:
    - a_vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 209
    functionName: bsd_load_table
    functionSourceFile: /src/sleuthkit/tsk/vs/bsd.c
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - bsd_get_desc
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_vs_part_add
    - tsk_vs_guessu32
    - tsk_error_set_errstr2
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bsd_load_table(TSK_VS_INFO * a_vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_part_free
      Src: /src/sleuthkit/tsk/vs/bsd.c:216,1
    - Dst: free
      Src: /src/sleuthkit/tsk/vs/bsd.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a_vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: bsd_close
    functionSourceFile: /src/sleuthkit/tsk/vs/bsd.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_vs_part_free
    linkageType: ''
    returnType: void
    signature: void bsd_close(TSK_VS_INFO * a_vs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:232,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/vs/bsd.c:235,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/vs/bsd.c:236,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/vs/bsd.c:237,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/vs/bsd.c:241,1
    - Dst: bsd_load_table
      Src: /src/sleuthkit/tsk/vs/bsd.c:262,1
    - Dst: bsd_close
      Src: /src/sleuthkit/tsk/vs/bsd.c:263,1
    - Dst: tsk_vs_part_unused
      Src: /src/sleuthkit/tsk/vs/bsd.c:268,1
    - Dst: bsd_close
      Src: /src/sleuthkit/tsk/vs/bsd.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 274
    functionName: tsk_vs_bsd_open
    functionSourceFile: /src/sleuthkit/tsk/vs/bsd.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - bsd_load_table
    - tsk_malloc
    - tsk_error_set_errno
    - bsd_close
    - tsk_vs_part_unused
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      tsk_vs_bsd_open(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8340
      start: 8339
    functionDepth: 0
    functionLinenumber: 8339
    functionLinenumberEnd: 8340
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8340
    functionDepth: 0
    functionLinenumber: 8340
    functionLinenumberEnd: 8341
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8343
      start: 8342
    functionDepth: 0
    functionLinenumber: 8342
    functionLinenumberEnd: 8343
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8344
      start: 8343
    functionDepth: 0
    functionLinenumber: 8343
    functionLinenumberEnd: 8344
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8346
      start: 8345
    functionDepth: 0
    functionLinenumber: 8345
    functionLinenumberEnd: 8346
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8347
      start: 8346
    functionDepth: 0
    functionLinenumber: 8346
    functionLinenumberEnd: 8347
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8349
      start: 8348
    functionDepth: 0
    functionLinenumber: 8348
    functionLinenumberEnd: 8349
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8350
      start: 8349
    functionDepth: 0
    functionLinenumber: 8349
    functionLinenumberEnd: 8350
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8507
      start: 8506
    functionDepth: 0
    functionLinenumber: 8506
    functionLinenumberEnd: 8507
    functionName: testcase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testcase(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8518
      start: 8517
    functionDepth: 0
    functionLinenumber: 8517
    functionLinenumberEnd: 8518
    functionName: TESTONLY
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8532
      start: 8531
    functionDepth: 0
    functionLinenumber: 8531
    functionLinenumberEnd: 8532
    functionName: VVA_ONLY
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VVA_ONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8553
      start: 8552
    functionDepth: 0
    functionLinenumber: 8552
    functionLinenumberEnd: 8553
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8554
      start: 8553
    functionDepth: 0
    functionLinenumber: 8553
    functionLinenumberEnd: 8554
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8556
      start: 8555
    functionDepth: 0
    functionLinenumber: 8555
    functionLinenumberEnd: 8556
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8557
      start: 8556
    functionDepth: 0
    functionLinenumber: 8556
    functionLinenumberEnd: 8557
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8559
      start: 8558
    functionDepth: 0
    functionLinenumber: 8558
    functionLinenumberEnd: 8559
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8560
      start: 8559
    functionDepth: 0
    functionLinenumber: 8559
    functionLinenumberEnd: 8560
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8569
      start: 8568
    functionDepth: 0
    functionLinenumber: 8568
    functionLinenumberEnd: 8569
    functionName: OSTRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8594
      start: 8593
    functionDepth: 0
    functionLinenumber: 8593
    functionLinenumberEnd: 8594
    functionName: IS_BIG_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BIG_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8602
    functionDepth: 0
    functionLinenumber: 8602
    functionLinenumberEnd: 8603
    functionName: likely
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8604
      start: 8603
    functionDepth: 0
    functionLinenumber: 8603
    functionLinenumberEnd: 8604
    functionName: unlikely
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8692
      start: 8691
    functionDepth: 0
    functionLinenumber: 8691
    functionLinenumberEnd: 8692
    functionName: sqliteHashFirst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashFirst(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8693
      start: 8692
    functionDepth: 0
    functionLinenumber: 8692
    functionLinenumberEnd: 8693
    functionName: sqliteHashNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashNext(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8694
      start: 8693
    functionDepth: 0
    functionLinenumber: 8693
    functionLinenumberEnd: 8694
    functionName: sqliteHashData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashData(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRUCTURE
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8972
      start: 8971
    functionDepth: 0
    functionLinenumber: 8971
    functionLinenumberEnd: 8972
    functionName: offsetof
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(STRUCTURE,FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8978
      start: 8977
    functionDepth: 0
    functionLinenumber: 8977
    functionLinenumberEnd: 8978
    functionName: MIN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8979
      start: 8978
    functionDepth: 0
    functionLinenumber: 8978
    functionLinenumberEnd: 8979
    functionName: MAX
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8984
      start: 8983
    functionDepth: 0
    functionLinenumber: 8983
    functionLinenumberEnd: 8984
    functionName: SWAP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(TYPE,A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9157
      start: 9156
    functionDepth: 0
    functionLinenumber: 9156
    functionLinenumberEnd: 9157
    functionName: ROUND8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9162
      start: 9161
    functionDepth: 0
    functionLinenumber: 9161
    functionLinenumberEnd: 9162
    functionName: ROUNDDOWN8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDDOWN8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9174
      start: 9173
    functionDepth: 0
    functionLinenumber: 9173
    functionLinenumberEnd: 9174
    functionName: EIGHT_BYTE_ALIGNMENT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EIGHT_BYTE_ALIGNMENT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9176
      start: 9175
    functionDepth: 0
    functionLinenumber: 9175
    functionLinenumberEnd: 9176
    functionName: EIGHT_BYTE_ALIGNMENT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EIGHT_BYTE_ALIGNMENT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9281
      start: 9280
    functionDepth: 0
    functionLinenumber: 9280
    functionLinenumberEnd: 9281
    functionName: SCHEMA_TABLE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEMA_TABLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9287
      start: 9286
    functionDepth: 0
    functionLinenumber: 9286
    functionLinenumberEnd: 9287
    functionName: ArraySize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ArraySize(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9292
      start: 9291
    functionDepth: 0
    functionLinenumber: 9291
    functionLinenumberEnd: 9292
    functionName: IsPowerOfTwo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsPowerOfTwo(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9320
      start: 9319
    functionDepth: 0
    functionLinenumber: 9319
    functionLinenumberEnd: 9320
    functionName: GLOBAL
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL(t,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9346
      start: 9345
    functionDepth: 0
    functionLinenumber: 9345
    functionLinenumberEnd: 9346
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9347
      start: 9346
    functionDepth: 0
    functionLinenumber: 9346
    functionLinenumberEnd: 9347
    functionName: UNUSED_PARAMETER2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER2(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9650
      start: 9648
    functionDepth: 0
    functionLinenumber: 9648
    functionLinenumberEnd: 9650
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeEnter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9667
      start: 9666
    functionDepth: 0
    functionLinenumber: 9666
    functionLinenumberEnd: 9667
    functionName: sqlite3BtreeSharable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeSharable(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9673
      start: 9672
    functionDepth: 0
    functionLinenumber: 9672
    functionLinenumberEnd: 9673
    functionName: sqlite3BtreeHoldsMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeHoldsMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9674
      start: 9673
    functionDepth: 0
    functionLinenumber: 9673
    functionLinenumberEnd: 9674
    functionName: sqlite3BtreeHoldsAllMutexes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeHoldsAllMutexes(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9675
      start: 9674
    functionDepth: 0
    functionLinenumber: 9674
    functionLinenumberEnd: 9675
    functionName: sqlite3SchemaMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3SchemaMutexHeld(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9840
      start: 9839
    functionDepth: 0
    functionLinenumber: 9839
    functionLinenumberEnd: 9840
    functionName: ADDR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10122
      start: 10121
    functionDepth: 0
    functionLinenumber: 10121
    functionLinenumberEnd: 10122
    functionName: VdbeComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10124
      start: 10123
    functionDepth: 0
    functionLinenumber: 10123
    functionLinenumberEnd: 10124
    functionName: VdbeNoopComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeNoopComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10126
      start: 10125
    functionDepth: 0
    functionLinenumber: 10125
    functionLinenumberEnd: 10126
    functionName: VdbeModuleComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeModuleComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10160
      start: 10159
    functionDepth: 0
    functionLinenumber: 10159
    functionLinenumberEnd: 10160
    functionName: VdbeCoverage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverage(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10161
      start: 10160
    functionDepth: 0
    functionLinenumber: 10160
    functionLinenumberEnd: 10161
    functionName: VdbeCoverageIf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageIf(v,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10162
      start: 10161
    functionDepth: 0
    functionLinenumber: 10161
    functionLinenumberEnd: 10162
    functionName: VdbeCoverageAlwaysTaken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageAlwaysTaken(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10163
      start: 10162
    functionDepth: 0
    functionLinenumber: 10162
    functionLinenumberEnd: 10163
    functionName: VdbeCoverageNeverTaken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageNeverTaken(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10164
      start: 10163
    functionDepth: 0
    functionLinenumber: 10163
    functionLinenumberEnd: 10164
    functionName: VDBE_OFFSET_LINENO
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDBE_OFFSET_LINENO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10170
      start: 10169
    functionDepth: 0
    functionLinenumber: 10169
    functionLinenumberEnd: 10170
    functionName: VDBE_OFFSET_LINENO
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDBE_OFFSET_LINENO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10236
    functionDepth: 0
    functionLinenumber: 10236
    functionLinenumberEnd: 10237
    functionName: PAGER_MJ_PGNO
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGER_MJ_PGNO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10319
      start: 10318
    functionDepth: 0
    functionLinenumber: 10318
    functionLinenumberEnd: 10319
    functionName: sqlite3PagerGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3PagerGet(A,B,C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10909
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10909
    functionName: sqlite3_mutex_alloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_alloc(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10912
      start: 10910
    functionDepth: 0
    functionLinenumber: 10910
    functionLinenumberEnd: 10912
    functionName: sqlite3_mutex_enter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_enter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10914
      start: 10912
    functionDepth: 0
    functionLinenumber: 10912
    functionLinenumberEnd: 10914
    functionName: sqlite3_mutex_leave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_leave(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10915
      start: 10914
    functionDepth: 0
    functionLinenumber: 10914
    functionLinenumberEnd: 10915
    functionName: sqlite3_mutex_notheld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_notheld(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10916
      start: 10915
    functionDepth: 0
    functionLinenumber: 10915
    functionLinenumberEnd: 10916
    functionName: sqlite3MutexAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MutexAlloc(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10917
      start: 10916
    functionDepth: 0
    functionLinenumber: 10916
    functionLinenumberEnd: 10917
    functionName: sqlite3MutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MutexInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10921
      start: 10920
    functionDepth: 0
    functionLinenumber: 10920
    functionLinenumberEnd: 10921
    functionName: MUTEX_LOGIC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_LOGIC(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10977
      start: 10976
    functionDepth: 0
    functionLinenumber: 10976
    functionLinenumberEnd: 10977
    functionName: DbHasProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbHasProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10978
      start: 10977
    functionDepth: 0
    functionLinenumber: 10977
    functionLinenumberEnd: 10978
    functionName: DbHasAnyProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbHasAnyProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10979
      start: 10978
    functionDepth: 0
    functionLinenumber: 10978
    functionLinenumberEnd: 10979
    functionName: DbSetProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbSetProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10980
      start: 10979
    functionDepth: 0
    functionLinenumber: 10979
    functionLinenumberEnd: 10980
    functionName: DbClearProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbClearProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11207
      start: 11206
    functionDepth: 0
    functionLinenumber: 11206
    functionLinenumberEnd: 11207
    functionName: SCHEMA_ENC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEMA_ENC(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11208
      start: 11207
    functionDepth: 0
    functionLinenumber: 11207
    functionLinenumberEnd: 11208
    functionName: ENC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11270
      start: 11269
    functionDepth: 0
    functionLinenumber: 11269
    functionLinenumberEnd: 11270
    functionName: OptimizationDisabled
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationDisabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11271
      start: 11270
    functionDepth: 0
    functionLinenumber: 11270
    functionLinenumberEnd: 11271
    functionName: OptimizationEnabled
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationEnabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11273
      start: 11272
    functionDepth: 0
    functionLinenumber: 11272
    functionLinenumberEnd: 11273
    functionName: OptimizationDisabled
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationDisabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11274
      start: 11273
    functionDepth: 0
    functionLinenumber: 11273
    functionLinenumberEnd: 11274
    functionName: OptimizationEnabled
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationEnabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11281
      start: 11280
    functionDepth: 0
    functionLinenumber: 11280
    functionLinenumberEnd: 11281
    functionName: ConstFactorOk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstFactorOk(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11382
      start: 11379
    functionDepth: 0
    functionLinenumber: 11379
    functionLinenumberEnd: 11382
    functionName: FUNCTION
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11385
      start: 11382
    functionDepth: 0
    functionLinenumber: 11382
    functionLinenumberEnd: 11385
    functionName: VFUNCTION
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFUNCTION(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - ','
    - extraFlags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11388
      start: 11385
    functionDepth: 0
    functionLinenumber: 11385
    functionLinenumberEnd: 11388
    functionName: FUNCTION2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - pArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11391
      start: 11388
    functionDepth: 0
    functionLinenumber: 11388
    functionLinenumberEnd: 11391
    functionName: STR_FUNCTION
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_FUNCTION(zName, nArg, pArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11394
      start: 11391
    functionDepth: 0
    functionLinenumber: 11391
    functionLinenumberEnd: 11394
    functionName: LIKEFUNC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKEFUNC(zName, nArg, arg, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - nc
    - ','
    - xStep
    - ','
    - xFinal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11397
      start: 11394
    functionDepth: 0
    functionLinenumber: 11394
    functionLinenumberEnd: 11397
    functionName: AGGREGATE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AGGREGATE(zName, nArg, arg, nc, xStep, xFinal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - nc
    - ','
    - xStep
    - ','
    - xFinal
    - ','
    - extraFlags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11400
      start: 11397
    functionDepth: 0
    functionLinenumber: 11397
    functionLinenumberEnd: 11400
    functionName: AGGREGATE2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AGGREGATE2(zName, nArg, arg, nc, xStep, xFinal, extraFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11500
      start: 11499
    functionDepth: 0
    functionLinenumber: 11499
    functionLinenumberEnd: 11500
    functionName: sqlite3IsNumericAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsNumericAffinity(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11637
      start: 11636
    functionDepth: 0
    functionLinenumber: 11636
    functionLinenumberEnd: 11637
    functionName: IsVirtual
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsVirtual(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11638
      start: 11637
    functionDepth: 0
    functionLinenumber: 11637
    functionLinenumberEnd: 11638
    functionName: IsHiddenColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11639
    functionDepth: 0
    functionLinenumber: 11639
    functionLinenumberEnd: 11640
    functionName: IsVirtual
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsVirtual(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11641
      start: 11640
    functionDepth: 0
    functionLinenumber: 11640
    functionLinenumberEnd: 11641
    functionName: IsHiddenColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11644
    functionDepth: 0
    functionLinenumber: 11644
    functionLinenumberEnd: 11645
    functionName: HasRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HasRowid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11646
      start: 11645
    functionDepth: 0
    functionLinenumber: 11645
    functionLinenumberEnd: 11646
    functionName: VisibleRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VisibleRowid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11854
    functionName: IsPrimaryKeyIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsPrimaryKeyIndex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11857
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11857
    functionName: IsUniqueIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsUniqueIndex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12087
      start: 12086
    functionDepth: 0
    functionLinenumber: 12086
    functionLinenumberEnd: 12087
    functionName: ExprHasProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprHasProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12088
      start: 12087
    functionDepth: 0
    functionLinenumber: 12087
    functionLinenumberEnd: 12088
    functionName: ExprHasAllProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprHasAllProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12089
      start: 12088
    functionDepth: 0
    functionLinenumber: 12088
    functionLinenumberEnd: 12089
    functionName: ExprSetProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprSetProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12090
      start: 12089
    functionDepth: 0
    functionLinenumber: 12089
    functionLinenumberEnd: 12090
    functionName: ExprClearProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprClearProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12097
      start: 12096
    functionDepth: 0
    functionLinenumber: 12096
    functionLinenumberEnd: 12097
    functionName: ExprSetVVAProperty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprSetVVAProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12204
      start: 12203
    functionDepth: 0
    functionLinenumber: 12203
    functionLinenumberEnd: 12204
    functionName: MASKBIT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASKBIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12205
      start: 12204
    functionDepth: 0
    functionLinenumber: 12204
    functionLinenumberEnd: 12205
    functionName: MASKBIT32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASKBIT32(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12477
      start: 12476
    functionDepth: 0
    functionLinenumber: 12476
    functionLinenumberEnd: 12477
    functionName: IgnorableOrderby
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IgnorableOrderby(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12553
      start: 12552
    functionDepth: 0
    functionLinenumber: 12552
    functionLinenumberEnd: 12553
    functionName: DbMaskTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskTest(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12554
      start: 12553
    functionDepth: 0
    functionLinenumber: 12553
    functionLinenumberEnd: 12554
    functionName: DbMaskZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12555
      start: 12554
    functionDepth: 0
    functionLinenumber: 12554
    functionLinenumberEnd: 12555
    functionName: DbMaskSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskSet(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12556
      start: 12555
    functionDepth: 0
    functionLinenumber: 12555
    functionLinenumberEnd: 12556
    functionName: DbMaskAllZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskAllZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12557
      start: 12556
    functionDepth: 0
    functionLinenumber: 12556
    functionLinenumberEnd: 12557
    functionName: DbMaskNonZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskNonZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12560
      start: 12559
    functionDepth: 0
    functionLinenumber: 12559
    functionLinenumberEnd: 12560
    functionName: DbMaskTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskTest(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12561
      start: 12560
    functionDepth: 0
    functionLinenumber: 12560
    functionLinenumberEnd: 12561
    functionName: DbMaskZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12562
      start: 12561
    functionDepth: 0
    functionLinenumber: 12561
    functionLinenumberEnd: 12562
    functionName: DbMaskSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskSet(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12563
      start: 12562
    functionDepth: 0
    functionLinenumber: 12562
    functionLinenumberEnd: 12563
    functionName: DbMaskAllZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskAllZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12564
      start: 12563
    functionDepth: 0
    functionLinenumber: 12563
    functionLinenumberEnd: 12564
    functionName: DbMaskNonZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskNonZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - zIn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13000
      start: 12995
    functionDepth: 0
    functionLinenumber: 12995
    functionLinenumberEnd: 13000
    functionName: SQLITE_SKIP_UTF8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_SKIP_UTF8(zIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13041
      start: 13040
    functionDepth: 0
    functionLinenumber: 13040
    functionLinenumberEnd: 13041
    functionName: sqlite3Toupper
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Toupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13042
      start: 13041
    functionDepth: 0
    functionLinenumber: 13041
    functionLinenumberEnd: 13042
    functionName: sqlite3Isspace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13043
      start: 13042
    functionDepth: 0
    functionLinenumber: 13042
    functionLinenumberEnd: 13043
    functionName: sqlite3Isalnum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13044
      start: 13043
    functionDepth: 0
    functionLinenumber: 13043
    functionLinenumberEnd: 13044
    functionName: sqlite3Isalpha
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13045
      start: 13044
    functionDepth: 0
    functionLinenumber: 13044
    functionLinenumberEnd: 13045
    functionName: sqlite3Isdigit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13046
      start: 13045
    functionDepth: 0
    functionLinenumber: 13045
    functionLinenumberEnd: 13046
    functionName: sqlite3Isxdigit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13047
      start: 13046
    functionDepth: 0
    functionLinenumber: 13046
    functionLinenumberEnd: 13047
    functionName: sqlite3Tolower
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Tolower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13049
      start: 13048
    functionDepth: 0
    functionLinenumber: 13048
    functionLinenumberEnd: 13049
    functionName: sqlite3Toupper
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Toupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13050
      start: 13049
    functionDepth: 0
    functionLinenumber: 13049
    functionLinenumberEnd: 13050
    functionName: sqlite3Isspace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13051
      start: 13050
    functionDepth: 0
    functionLinenumber: 13050
    functionLinenumberEnd: 13051
    functionName: sqlite3Isalnum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13052
      start: 13051
    functionDepth: 0
    functionLinenumber: 13051
    functionLinenumberEnd: 13052
    functionName: sqlite3Isalpha
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13053
      start: 13052
    functionDepth: 0
    functionLinenumber: 13052
    functionLinenumberEnd: 13053
    functionName: sqlite3Isdigit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13054
      start: 13053
    functionDepth: 0
    functionLinenumber: 13053
    functionLinenumberEnd: 13054
    functionName: sqlite3Isxdigit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13055
      start: 13054
    functionDepth: 0
    functionLinenumber: 13054
    functionLinenumberEnd: 13055
    functionName: sqlite3Tolower
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Tolower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13101
      start: 13100
    functionDepth: 0
    functionLinenumber: 13100
    functionLinenumberEnd: 13101
    functionName: sqlite3StackAllocRaw
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocRaw(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13102
      start: 13101
    functionDepth: 0
    functionLinenumber: 13101
    functionLinenumberEnd: 13102
    functionName: sqlite3StackAllocZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocZero(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13104
      start: 13102
    functionDepth: 0
    functionLinenumber: 13102
    functionLinenumberEnd: 13104
    functionName: sqlite3StackFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackFree(D,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13105
      start: 13104
    functionDepth: 0
    functionLinenumber: 13104
    functionLinenumberEnd: 13105
    functionName: sqlite3StackAllocRaw
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocRaw(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13106
      start: 13105
    functionDepth: 0
    functionLinenumber: 13105
    functionLinenumberEnd: 13106
    functionName: sqlite3StackAllocZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocZero(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13107
      start: 13106
    functionDepth: 0
    functionLinenumber: 13106
    functionLinenumberEnd: 13107
    functionName: sqlite3StackFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackFree(D,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13138
      start: 13137
    functionDepth: 0
    functionLinenumber: 13137
    functionLinenumberEnd: 13138
    functionName: sqlite3IsNaN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsNaN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13222
      start: 13221
    functionDepth: 0
    functionLinenumber: 13221
    functionLinenumberEnd: 13222
    functionName: sqlite3FaultSim
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FaultSim(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13249
      start: 13248
    functionDepth: 0
    functionLinenumber: 13248
    functionLinenumberEnd: 13249
    functionName: sqlite3ViewGetColumnNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ViewGetColumnNames(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13420
      start: 13419
    functionDepth: 0
    functionLinenumber: 13419
    functionLinenumberEnd: 13420
    functionName: sqlite3ParseToplevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ParseToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13422
      start: 13421
    functionDepth: 0
    functionLinenumber: 13421
    functionLinenumberEnd: 13422
    functionName: sqlite3TriggersExist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggersExist(B,C,D,E,F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13428
      start: 13427
    functionDepth: 0
    functionLinenumber: 13427
    functionLinenumberEnd: 13428
    functionName: sqlite3TriggerList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggerList(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13429
      start: 13428
    functionDepth: 0
    functionLinenumber: 13428
    functionLinenumberEnd: 13429
    functionName: sqlite3ParseToplevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ParseToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13430
      start: 13429
    functionDepth: 0
    functionLinenumber: 13429
    functionLinenumberEnd: 13430
    functionName: sqlite3TriggerColmask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggerColmask(A,B,C,D,E,F,G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13444
      start: 13443
    functionDepth: 0
    functionLinenumber: 13443
    functionLinenumberEnd: 13444
    functionName: sqlite3AuthCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3AuthCheck(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13446
      start: 13445
    functionDepth: 0
    functionLinenumber: 13445
    functionLinenumberEnd: 13446
    functionName: sqlite3AuthContextPop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3AuthContextPop(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13485
      start: 13483
    functionDepth: 0
    functionLinenumber: 13483
    functionLinenumberEnd: 13485
    functionName: getVarint32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getVarint32(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13488
      start: 13485
    functionDepth: 0
    functionLinenumber: 13485
    functionLinenumberEnd: 13488
    functionName: putVarint32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: putVarint32(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13650
      start: 13649
    functionDepth: 0
    functionLinenumber: 13649
    functionLinenumberEnd: 13650
    functionName: sqlite3VtabSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabSync(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13653
      start: 13652
    functionDepth: 0
    functionLinenumber: 13652
    functionLinenumberEnd: 13653
    functionName: sqlite3VtabInSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabInSync(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13655
      start: 13653
    functionDepth: 0
    functionLinenumber: 13653
    functionLinenumberEnd: 13655
    functionName: sqlite3VtabLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabLock(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13657
      start: 13656
    functionDepth: 0
    functionLinenumber: 13656
    functionLinenumberEnd: 13657
    functionName: sqlite3VtabSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabSavepoint(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13658
      start: 13657
    functionDepth: 0
    functionLinenumber: 13657
    functionLinenumberEnd: 13658
    functionName: sqlite3GetVTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3GetVTable(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13671
      start: 13670
    functionDepth: 0
    functionLinenumber: 13670
    functionLinenumberEnd: 13671
    functionName: sqlite3VtabInSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabInSync(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13724
      start: 13723
    functionDepth: 0
    functionLinenumber: 13723
    functionLinenumberEnd: 13724
    functionName: sqlite3FkOldmask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FkOldmask(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13725
      start: 13724
    functionDepth: 0
    functionLinenumber: 13724
    functionLinenumberEnd: 13725
    functionName: sqlite3FkRequired
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FkRequired(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pVfs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13777
      start: 13776
    functionDepth: 0
    functionLinenumber: 13776
    functionLinenumberEnd: 13777
    functionName: sqlite3JournalSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3JournalSize(pVfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13778
      start: 13777
    functionDepth: 0
    functionLinenumber: 13777
    functionLinenumberEnd: 13778
    functionName: sqlite3JournalExists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3JournalExists(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13790
      start: 13789
    functionDepth: 0
    functionLinenumber: 13789
    functionLinenumberEnd: 13790
    functionName: sqlite3SelectExprHeight
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3SelectExprHeight(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13817
      start: 13816
    functionDepth: 0
    functionLinenumber: 13816
    functionLinenumberEnd: 13817
    functionName: IOTRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOTRACE(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13859
      start: 13858
    functionDepth: 0
    functionLinenumber: 13858
    functionLinenumberEnd: 13859
    functionName: sqlite3MemdebugHasType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MemdebugHasType(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13860
      start: 13859
    functionDepth: 0
    functionLinenumber: 13859
    functionLinenumberEnd: 13860
    functionName: sqlite3MemdebugNoType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MemdebugNoType(X,Y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14550,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14551,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14555,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14556,1
    - Dst: sqlite3IsIdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - zOptName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14563
      start: 14541
    functionDepth: 1
    functionLinenumber: 14541
    functionLinenumberEnd: 14563
    functionName: sqlite3_compileoption_used
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsIdChar
    - sqlite3Strlen30
    - sqlite3StrNICmp
    - ArraySize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_compileoption_used(const char *zOptName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:14570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - N
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14574
      start: 14569
    functionDepth: 1
    functionLinenumber: 14569
    functionLinenumberEnd: 14574
    functionName: SQLITE_STDCALL::sqlite3_compileoption_get
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_compileoption_get(int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14753
      start: 14752
    functionDepth: 0
    functionLinenumber: 14752
    functionLinenumberEnd: 14753
    functionName: VdbeFrameMem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeFrameMem(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14841
      start: 14839
    functionDepth: 0
    functionLinenumber: 14839
    functionLinenumberEnd: 14841
    functionName: MemSetTypeFlag
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MemSetTypeFlag(p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14848
      start: 14847
    functionDepth: 0
    functionLinenumber: 14847
    functionLinenumberEnd: 14848
    functionName: memIsValid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memIsValid(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15052
      start: 15050
    functionDepth: 0
    functionLinenumber: 15050
    functionLinenumberEnd: 15052
    functionName: VdbeMemDynamic
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeMemDynamic(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15087
      start: 15086
    functionDepth: 0
    functionLinenumber: 15086
    functionLinenumberEnd: 15087
    functionName: sqlite3VdbeCheckFk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VdbeCheckFk(p,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15099
      start: 15098
    functionDepth: 0
    functionLinenumber: 15098
    functionLinenumberEnd: 15099
    functionName: ExpandBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExpandBlob(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15101
      start: 15100
    functionDepth: 0
    functionLinenumber: 15100
    functionLinenumberEnd: 15101
    functionName: sqlite3VdbeMemExpandBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VdbeMemExpandBlob(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15102
      start: 15101
    functionDepth: 0
    functionLinenumber: 15101
    functionLinenumberEnd: 15102
    functionName: ExpandBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExpandBlob(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15121
      start: 15113
    functionDepth: 0
    functionLinenumber: 15113
    functionLinenumberEnd: 15121
    functionName: sqlite3StatType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3StatType
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15161,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15161,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15162,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15163,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15163,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15163,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 15160
        line_start: 15160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 15163
        line_start: 15162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 15161
        line_start: 15161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 15166
      start: 15159
    functionDepth: 1
    functionLinenumber: 15159
    functionLinenumberEnd: 15166
    functionName: sqlite3_int64::sqlite3StatusValue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3MallocMutex
    - sqlite3Pcache1Mutex
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_int64 sqlite3StatusValue(int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15181,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15182,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15182,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15183,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15183,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15183,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - op
    - N
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 15180
        line_start: 15180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 15183
        line_start: 15182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 15181
        line_start: 15181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 15189
      start: 15179
    functionDepth: 1
    functionLinenumber: 15179
    functionLinenumberEnd: 15189
    functionName: sqlite3StatusUp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3MallocMutex
    - sqlite3Pcache1Mutex
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusUp(int op, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15192,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15193,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15194,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15194,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15194,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15196,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - N
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( N>=0 )
      pos:
        line_end: 15191
        line_start: 15191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 15194
        line_start: 15193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 15192
        line_start: 15192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 15195
        line_start: 15195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 15198
      start: 15190
    functionDepth: 1
    functionLinenumber: 15190
    functionLinenumberEnd: 15198
    functionName: sqlite3StatusDown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3MallocMutex
    - sqlite3Pcache1Mutex
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusDown(int op, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15206,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15206,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15207,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15207,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15208,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15208,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15208,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - op
    - X
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 15205
        line_start: 15205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 15208
        line_start: 15207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 15206
        line_start: 15206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 15214
      start: 15204
    functionDepth: 1
    functionLinenumber: 15204
    functionLinenumberEnd: 15214
    functionName: sqlite3StatusSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3MallocMutex
    - sqlite3Pcache1Mutex
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusSet(int op, int X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15227,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15233,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15233,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15234,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15243
      start: 15219
    functionDepth: 1
    functionLinenumber: 15219
    functionLinenumberEnd: 15243
    functionName: sqlite3_status64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MallocMutex
    - sqlite3Pcache1Mutex
    - ArraySize
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_status64(\n  int op,\n  sqlite3_int64 *pCurrent,\n
      \ sqlite3_int64 *pHighwater,\n  int resetFlag\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - int
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15256
      start: 15244
    functionDepth: 2
    functionLinenumber: 15244
    functionLinenumberEnd: 15256
    functionName: sqlite3_status
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_status(int op, int *pCurrent, int *pHighwater, int
      resetFlag)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15270,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15274,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15288,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15289,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15290,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15292,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15309,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15313,1
    - Dst: sqlite3PagerMemUsed
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15314,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15317,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15332,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15336,1
    - Dst: m::xRoundup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15339,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15345,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15346,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15347,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15348,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15350,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15350,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15351,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15351,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15353,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15353,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15354,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15354,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15359,1
    - Dst: sqlite3VdbeClearObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15377,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15378,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15398,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15399,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15403,1
    - Dst: sqlite3PagerCacheStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15404,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15428,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 101
    argCount: 5
    argNames:
    - db
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - sqlite3*
    - int
    - int*
    - int*
    - int
    assertStmts:
    - condition: ( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)>=0 )
      pos:
        line_end: 15290
        line_start: 15290
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)<3 )
      pos:
        line_end: 15291
        line_start: 15291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_WRITE==SQLITE_DBSTATUS_CACHE_HIT+2 )
      pos:
        line_end: 15398
        line_start: 15398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_MISS==SQLITE_DBSTATUS_CACHE_HIT+1 )
      pos:
        line_end: 15397
        line_start: 15397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 15430
      start: 15261
    functionDepth: 1
    functionLinenumber: 15261
    functionLinenumberEnd: 15430
    functionName: sqlite3_db_status
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePager
    - sqlite3DeleteTable
    - sqlite3PagerCacheStat
    - sqliteHashData
    - sqlite3VdbeClearObject
    - sqlite3DbFree
    - sqlite3DeleteTrigger
    - sqlite3BtreeLeaveAll
    - sqlite3SafetyCheckOk
    - sqlite3PagerMemUsed
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    - sqliteHashNext
    - assert
    - m::xRoundup
    - ALWAYS
    - sqlite3BtreeEnterAll
    - sqliteHashFirst
    - sqlite3MallocSize
    - testcase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_db_status(\n  sqlite3 *db,          /* The database
      connection whose status is desired */\n  int op,               /* Status verb
      */\n  int *pCurrent,        /* Write current value here */\n  int *pHighwater,
      \     /* Write high-water mark here */\n  int resetFlag         /* Reset high-water
      mark if true */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15526,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15528,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15529,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15530,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15531,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15532,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15535,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15549,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - zDate
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15551
      start: 15517
    functionDepth: 1
    functionLinenumber: 15517
    functionLinenumberEnd: 15551
    functionName: getDigits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - va_end
    - va_arg
    - va_start
    linkageType: ''
    returnType: int
    signature: int getDigits(const char *zDate, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15573,1
    - Dst: getDigits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15587,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15595
      start: 15569
    functionDepth: 2
    functionLinenumber: 15569
    functionLinenumberEnd: 15595
    functionName: parseTimezone
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - getDigits
    linkageType: ''
    returnType: int
    signature: int parseTimezone(const char *zDate, DateTime *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDigits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15607,1
    - Dst: getDigits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15613,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15617,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15620,1
    - Dst: parseTimezone
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15638
      start: 15604
    functionDepth: 3
    functionLinenumber: 15604
    functionLinenumberEnd: 15638
    functionName: parseHhMmSs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - getDigits
    - parseTimezone
    linkageType: ''
    returnType: int
    signature: int parseHhMmSs(const char *zDate, DateTime *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15678
      start: 15646
    functionDepth: 0
    functionLinenumber: 15646
    functionLinenumberEnd: 15678
    functionName: computeJD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void computeJD(DateTime *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDigits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15701,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15705,1
    - Dst: parseHhMmSs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15706,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15719,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15722
      start: 15692
    functionDepth: 4
    functionLinenumber: 15692
    functionLinenumberEnd: 15722
    functionName: parseYyyyMmDd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - computeJD
    - getDigits
    - parseHhMmSs
    linkageType: ''
    returnType: int
    signature: int parseYyyyMmDd(const char *zDate, DateTime *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StmtCurrentTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - context
    - p
    argTypes:
    - sqlite3_context*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15737
      start: 15729
    functionDepth: 0
    functionLinenumber: 15729
    functionLinenumberEnd: 15737
    functionName: setDateTimeToCurrent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StmtCurrentTime
    linkageType: ''
    returnType: int
    signature: int setDateTimeToCurrent(sqlite3_context *context, DateTime *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parseYyyyMmDd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15761,1
    - Dst: parseHhMmSs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15763,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15765,1
    - Dst: setDateTimeToCurrent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15766,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15767,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - context
    - zDate
    - p
    argTypes:
    - sqlite3_context*
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15773
      start: 15755
    functionDepth: 5
    functionLinenumber: 15755
    functionLinenumberEnd: 15773
    functionName: parseDateOrTime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - parseHhMmSs
    - sqlite3AtoF
    - sqlite3Strlen30
    - setDateTimeToCurrent
    - parseYyyyMmDd
    linkageType: ''
    returnType: int
    signature: "int parseDateOrTime(\n  sqlite3_context *context, \n  const char *zDate,
      \n  DateTime *p\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15799
      start: 15778
    functionDepth: 0
    functionLinenumber: 15778
    functionLinenumberEnd: 15799
    functionName: computeYMD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void computeYMD(DateTime *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15817
      start: 15804
    functionDepth: 1
    functionLinenumber: 15804
    functionLinenumberEnd: 15817
    functionName: computeHMS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeJD
    linkageType: ''
    returnType: void
    signature: void computeHMS(DateTime *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: computeYMD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15823,1
    - Dst: computeHMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15825
      start: 15822
    functionDepth: 2
    functionLinenumber: 15822
    functionLinenumberEnd: 15825
    functionName: computeYMD_HMS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeHMS
    - computeYMD
    linkageType: ''
    returnType: void
    signature: void computeYMD_HMS(DateTime *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15834
      start: 15830
    functionDepth: 0
    functionLinenumber: 15830
    functionLinenumberEnd: 15834
    functionName: clearYMD_HMS_TZ
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clearYMD_HMS_TZ(DateTime *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15873,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15875,1
    - Dst: localtime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15876,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15881,1
    - Dst: localtime_r
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15888,1
    - Dst: localtime_s
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - t
    - pTm
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15894
      start: 15868
    functionDepth: 1
    functionLinenumber: 15868
    functionLinenumberEnd: 15894
    functionName: osLocaltime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    - localtime
    - localtime_r
    - localtime_s
    linkageType: ''
    returnType: int
    signature: int osLocaltime(time_t *t, struct tm *pTm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15917,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15920,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15939,1
    - Dst: osLocaltime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15941,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15942,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - p
    - pCtx
    - pRc
    argTypes:
    - DateTime*
    - sqlite3_context*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15959
      start: 15907
    functionDepth: 3
    functionLinenumber: 15907
    functionLinenumberEnd: 15959
    functionName: localtimeOffset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - computeYMD_HMS
    - sqlite3_result_error
    - computeJD
    - osLocaltime
    linkageType: ''
    returnType: sqlite3_int64
    signature: "sqlite3_int64 localtimeOffset(\n  DateTime *p,                    /*
      Date at which to calculate offset */\n  sqlite3_context *pCtx,          /* Write
      error here if one occurs */\n  int *pRc                        /* OUT: Error
      code. SQLITE_OK or ERROR */\n)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:15992,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16004,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16005,1
    - Dst: localtimeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16006,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16007,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16019,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16021,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16025,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16027,1
    - Dst: localtimeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16028,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16031,1
    - Dst: localtimeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16032,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16046,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16047,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16047,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16050,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16053,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16057,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16069,1
    - Dst: computeYMD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16071,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16077,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16080,1
    - Dst: computeYMD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16081,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16085,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16103,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16104,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16117,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16118,1
    - Dst: parseHhMmSs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16119,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16120,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16125,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16126,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16132,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16133,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16136,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16139,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16141,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16143,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16145,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16147,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16149,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16155,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16160,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16162,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16165,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16172,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 164
    argCount: 3
    argNames:
    - pCtx
    - zMod
    - p
    argTypes:
    - sqlite3_context*
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16180
      start: 15986
    functionDepth: 4
    functionLinenumber: 15986
    functionLinenumberEnd: 16180
    functionName: parseModifier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    - memset
    - localtimeOffset
    - clearYMD_HMS_TZ
    - computeYMD_HMS
    - ArraySize
    - parseHhMmSs
    - strcmp
    - sqlite3AtoF
    - sqlite3Strlen30
    - computeYMD
    - sqlite3Isdigit
    - computeJD
    - sqlite3Isspace
    linkageType: ''
    returnType: int
    signature: int parseModifier(sqlite3_context *pCtx, const char *zMod, DateTime
      *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16200,1
    - Dst: setDateTimeToCurrent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16202,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16204,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16206,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16209,1
    - Dst: parseDateOrTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16210,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16215,1
    - Dst: parseModifier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - context
    - argc
    - argv
    - p
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16219
      start: 16191
    functionDepth: 6
    functionLinenumber: 16191
    functionLinenumberEnd: 16219
    functionName: isDate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - parseDateOrTime
    - sqlite3_value_text
    - sqlite3_value_double
    - setDateTimeToCurrent
    - sqlite3_value_type
    - parseModifier
    linkageType: ''
    returnType: int
    signature: "int isDate(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv, \n  DateTime *p\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16238,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16239,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16242
      start: 16232
    functionDepth: 7
    functionLinenumber: 16232
    functionLinenumberEnd: 16242
    functionName: juliandayFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeJD
    - sqlite3_result_double
    - isDate
    linkageType: ''
    returnType: void
    signature: "void juliandayFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16255,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16257,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16258,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16262
      start: 16249
    functionDepth: 7
    functionLinenumber: 16249
    functionLinenumberEnd: 16262
    functionName: datetimeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - computeYMD_HMS
    - sqlite3_snprintf
    - isDate
    linkageType: ''
    returnType: void
    signature: "void datetimeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16275,1
    - Dst: computeHMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16277,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16278,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16281
      start: 16269
    functionDepth: 7
    functionLinenumber: 16269
    functionLinenumberEnd: 16281
    functionName: timeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeHMS
    - sqlite3_result_text
    - sqlite3_snprintf
    - isDate
    linkageType: ''
    returnType: void
    signature: "void timeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16294,1
    - Dst: computeYMD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16296,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16297,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16300
      start: 16288
    functionDepth: 7
    functionLinenumber: 16288
    functionLinenumberEnd: 16300
    functionName: dateFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeYMD
    - sqlite3_result_text
    - sqlite3_snprintf
    - isDate
    linkageType: ''
    returnType: void
    signature: "void dateFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16334,1
    - Dst: isDate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16335,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16336,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16370,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16371,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16372,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16373,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16377,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16380,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16382,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16386,1
    - Dst: computeYMD_HMS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16387,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16394,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16398,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16399,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16402,1
    - Dst: computeJD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16410,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16415,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16418,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16424,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16425,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16428,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16429,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16431,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16433,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16436,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16442,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16442,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16450,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 135
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16452
      start: 16321
    functionDepth: 7
    functionLinenumber: 16321
    functionLinenumberEnd: 16452
    functionName: strftimeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeJD
    - sqlite3_result_error_toobig
    - sqlite3_result_error_nomem
    - sqlite3_result_text
    - computeYMD_HMS
    - sqlite3_value_text
    - sqlite3Strlen30
    - sqlite3DbMallocRaw
    - sqlite3_context_db_handle
    - testcase
    - sqlite3_snprintf
    - isDate
    linkageType: ''
    returnType: void
    signature: "void strftimeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16464,1
    - Dst: timeFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16466
      start: 16459
    functionDepth: 8
    functionLinenumber: 16459
    functionLinenumberEnd: 16466
    functionName: ctimeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - timeFunc
    linkageType: ''
    returnType: void
    signature: "void ctimeFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16478,1
    - Dst: dateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16480
      start: 16473
    functionDepth: 8
    functionLinenumber: 16473
    functionLinenumberEnd: 16480
    functionName: cdateFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - dateFunc
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: void
    signature: "void cdateFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16492,1
    - Dst: datetimeFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16494
      start: 16487
    functionDepth: 8
    functionLinenumber: 16487
    functionLinenumberEnd: 16494
    functionName: ctimestampFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - datetimeFunc
    linkageType: ''
    returnType: void
    signature: "void ctimestampFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16515,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16522,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16523,1
    - Dst: sqlite3StmtCurrentTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16525,1
    - Dst: gmtime_r
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16529,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16531,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16531,1
    - Dst: gmtime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16532,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16533,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16534,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16534,1
    - Dst: strftime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16537,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16540
      start: 16509
    functionDepth: 1
    functionLinenumber: 16509
    functionLinenumberEnd: 16540
    functionName: currentTimeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StmtCurrentTime
    - sqlite3_mutex_enter
    - sqlite3_user_data
    - gmtime_r
    - UNUSED_PARAMETER
    - sqlite3MutexAlloc
    - memcpy
    - strftime
    - sqlite3_result_text
    - sqlite3_mutex_leave
    - gmtime
    linkageType: ''
    returnType: void
    signature: "void currentTimeFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16551,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16552,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16553,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16554,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16555,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16556,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16557,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16558,1
    - Dst: STR_FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16560,1
    - Dst: STR_FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16561,1
    - Dst: STR_FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16562,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16566,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16567,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16569,1
    - Dst: sqlite3FuncDefInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16572
      start: 16548
    functionDepth: 1
    functionLinenumber: 16548
    functionLinenumberEnd: 16572
    functionName: sqlite3RegisterDateTimeFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FuncDefInsert
    - FUNCTION
    - ArraySize
    - GLOBAL
    - STR_FUNCTION
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterDateTimeFunctions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16627
      start: 16621
    functionDepth: 0
    functionLinenumber: 16621
    functionLinenumberEnd: 16627
    functionName: DO_OS_MALLOC_TEST
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_OS_MALLOC_TEST(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pId
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16644
      start: 16637
    functionDepth: 0
    functionLinenumber: 16637
    functionLinenumberEnd: 16644
    functionName: sqlite3OsClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsClose(sqlite3_file *pId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16646,1
    - Dst: sqlite3_file*::pMethods::xRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16648
      start: 16645
    functionDepth: 1
    functionLinenumber: 16645
    functionLinenumberEnd: 16648
    functionName: sqlite3OsRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xRead
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsRead(sqlite3_file *id, void *pBuf, int amt,
      i64 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16650,1
    - Dst: sqlite3_file*::pMethods::xWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16652
      start: 16649
    functionDepth: 1
    functionLinenumber: 16649
    functionLinenumberEnd: 16652
    functionName: sqlite3OsWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xWrite
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsWrite(sqlite3_file *id, const void *pBuf, int
      amt, i64 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - size
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16655
      start: 16653
    functionDepth: 0
    functionLinenumber: 16653
    functionLinenumberEnd: 16655
    functionName: sqlite3OsTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xTruncate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsTruncate(sqlite3_file *id, i64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16657,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16659
      start: 16656
    functionDepth: 1
    functionLinenumber: 16656
    functionLinenumberEnd: 16659
    functionName: sqlite3OsSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xSync
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSync(sqlite3_file *id, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16661,1
    - Dst: sqlite3_file*::pMethods::xFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16663
      start: 16660
    functionDepth: 1
    functionLinenumber: 16660
    functionLinenumberEnd: 16663
    functionName: sqlite3OsFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xFileSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileSize(sqlite3_file *id, i64 *pSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16665,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - lockType
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16667
      start: 16664
    functionDepth: 1
    functionLinenumber: 16664
    functionLinenumberEnd: 16667
    functionName: sqlite3OsLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsLock(sqlite3_file *id, int lockType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - lockType
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16670
      start: 16668
    functionDepth: 0
    functionLinenumber: 16668
    functionLinenumberEnd: 16670
    functionName: sqlite3OsUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xUnlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnlock(sqlite3_file *id, int lockType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16672,1
    - Dst: sqlite3_file*::pMethods::xCheckReservedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16674
      start: 16671
    functionDepth: 1
    functionLinenumber: 16671
    functionLinenumberEnd: 16674
    functionName: sqlite3OsCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xCheckReservedLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16697,1
    - Dst: sqlite3_file*::pMethods::xFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16701
      start: 16684
    functionDepth: 1
    functionLinenumber: 16684
    functionLinenumberEnd: 16701
    functionName: sqlite3OsFileControl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xFileControl
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileControl(sqlite3_file *id, int op, void
      *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16704
      start: 16702
    functionDepth: 0
    functionLinenumber: 16702
    functionLinenumberEnd: 16704
    functionName: sqlite3OsFileControlHint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xFileControl
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileControlHint(sqlite3_file *id, int op, void
      *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16709
      start: 16706
    functionDepth: 0
    functionLinenumber: 16706
    functionLinenumberEnd: 16709
    functionName: sqlite3OsSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xSectorSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSectorSize(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16712
      start: 16710
    functionDepth: 0
    functionLinenumber: 16710
    functionLinenumberEnd: 16712
    functionName: sqlite3OsDeviceCharacteristics
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xDeviceCharacteristics
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id
    - offset
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16715
      start: 16713
    functionDepth: 0
    functionLinenumber: 16713
    functionLinenumberEnd: 16715
    functionName: sqlite3OsShmLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmLock(sqlite3_file *id, int offset, int n,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16718
      start: 16716
    functionDepth: 0
    functionLinenumber: 16716
    functionLinenumberEnd: 16718
    functionName: sqlite3OsShmBarrier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmBarrier
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmBarrier(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmUnmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16721
      start: 16719
    functionDepth: 0
    functionLinenumber: 16719
    functionLinenumberEnd: 16721
    functionName: sqlite3OsShmUnmap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmUnmap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmUnmap(sqlite3_file *id, int deleteFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16729,1
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - id
    - iPage
    - pgsz
    - bExtend
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16731
      start: 16722
    functionDepth: 1
    functionLinenumber: 16722
    functionLinenumberEnd: 16731
    functionName: sqlite3OsShmMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xShmMap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsShmMap(\n  sqlite3_file *id,               /*
      Database file handle */\n  int iPage,\n  int pgsz,\n  int bExtend,                    /*
      True to extend file if necessary */\n  void volatile **pp              /* OUT:
      Pointer to mapping */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16736,1
    - Dst: sqlite3_file*::pMethods::xFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - iOff
    - iAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16738
      start: 16735
    functionDepth: 1
    functionLinenumber: 16735
    functionLinenumberEnd: 16738
    functionName: sqlite3OsFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_file*::pMethods::xFetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFetch(sqlite3_file *id, i64 iOff, int iAmt,
      void **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16741
      start: 16739
    functionDepth: 0
    functionLinenumber: 16739
    functionLinenumberEnd: 16741
    functionName: sqlite3OsUnfetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xUnfetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnfetch(sqlite3_file *id, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - iOff
    - iAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16747
      start: 16744
    functionDepth: 0
    functionLinenumber: 16744
    functionLinenumberEnd: 16747
    functionName: sqlite3OsFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFetch(sqlite3_file *id, i64 iOff, int iAmt,
      void **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16750
      start: 16748
    functionDepth: 0
    functionLinenumber: 16748
    functionLinenumberEnd: 16750
    functionName: sqlite3OsUnfetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnfetch(sqlite3_file *id, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16765,1
    - Dst: sqlite3_vfs*::xOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pVfs
    - zPath
    - pFile
    - flags
    - pFlagsOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ( rc==SQLITE_OK || pFile->pMethods==0 )
      pos:
        line_end: 16770
        line_start: 16770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 16773
      start: 16757
    functionDepth: 1
    functionLinenumber: 16757
    functionLinenumberEnd: 16773
    functionName: sqlite3OsOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - assert
    - sqlite3_vfs*::xOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsOpen(\n  sqlite3_vfs *pVfs, \n  const char
      *zPath, \n  sqlite3_file *pFile, \n  int flags, \n  int *pFlagsOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16775,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16776,1
    - Dst: sqlite3_vfs*::xDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pVfs
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts:
    - condition: ( dirSync==0 || dirSync==1 )
      pos:
        line_end: 16775
        line_start: 16775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 16778
      start: 16774
    functionDepth: 1
    functionLinenumber: 16774
    functionLinenumberEnd: 16778
    functionName: sqlite3OsDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - assert
    - sqlite3_vfs*::xDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDelete(sqlite3_vfs *pVfs, const char *zPath,
      int dirSync)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16785,1
    - Dst: sqlite3_vfs*::xAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16787
      start: 16779
    functionDepth: 1
    functionLinenumber: 16779
    functionLinenumberEnd: 16787
    functionName: sqlite3OsAccess
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_vfs*::xAccess
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsAccess(\n  sqlite3_vfs *pVfs, \n  const char
      *zPath, \n  int flags, \n  int *pResOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16794,1
    - Dst: sqlite3_vfs*::xFullPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nPathOut
    - zPathOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16797
      start: 16788
    functionDepth: 1
    functionLinenumber: 16788
    functionLinenumberEnd: 16797
    functionName: sqlite3OsFullPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DO_OS_MALLOC_TEST
    - sqlite3_vfs*::xFullPathname
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsFullPathname(\n  sqlite3_vfs *pVfs, \n  const
      char *zPath, \n  int nPathOut, \n  char *zPathOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - zPath
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16801
      start: 16799
    functionDepth: 0
    functionLinenumber: 16799
    functionLinenumberEnd: 16801
    functionName: sqlite3OsDlOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3OsDlOpen(sqlite3_vfs *pVfs, const char *zPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16804
      start: 16802
    functionDepth: 0
    functionLinenumber: 16802
    functionLinenumberEnd: 16804
    functionName: sqlite3OsDlError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDlError(sqlite3_vfs *pVfs, int nByte, char
      *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsDlSym
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16805,1
    - Dst: xDlSym
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16807
      start: 16805
    functionDepth: 0
    functionLinenumber: 16805
    functionLinenumberEnd: 16807
    functionName: (void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDlSym
    - xDlSym
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16810
      start: 16808
    functionDepth: 0
    functionLinenumber: 16808
    functionLinenumberEnd: 16810
    functionName: sqlite3OsDlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xRandomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16814
      start: 16812
    functionDepth: 0
    functionLinenumber: 16812
    functionLinenumberEnd: 16814
    functionName: sqlite3OsRandomness
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xRandomness
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsRandomness(sqlite3_vfs *pVfs, int nByte, char
      *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - nMicro
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16817
      start: 16815
    functionDepth: 0
    functionLinenumber: 16815
    functionLinenumberEnd: 16817
    functionName: sqlite3OsSleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xSleep
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSleep(sqlite3_vfs *pVfs, int nMicro)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16827,1
    - Dst: sqlite3_vfs*::xCurrentTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pVfs
    - pTimeOut
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16834
      start: 16818
    functionDepth: 0
    functionLinenumber: 16818
    functionLinenumberEnd: 16834
    functionName: sqlite3OsCurrentTimeInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xCurrentTimeInt64
    - sqlite3_vfs*::xCurrentTime
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64
      *pTimeOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16845,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16847,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - pVfs
    - zFile
    - ppFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file**
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16855
      start: 16836
    functionDepth: 2
    functionLinenumber: 16836
    functionLinenumberEnd: 16855
    functionName: sqlite3OsOpenMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3OsOpen
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsOpenMalloc(\n  sqlite3_vfs *pVfs, \n  const
      char *zFile, \n  sqlite3_file **ppFile, \n  int flags,\n  int *pOutFlags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16858,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16859,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 16857
        line_start: 16857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 16862
      start: 16856
    functionDepth: 1
    functionLinenumber: 16856
    functionLinenumberEnd: 16862
    functionName: sqlite3OsCloseFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsClose
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCloseFree(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16871,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16873,1
    - Dst: sqlite3_os_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16875
      start: 16870
    functionDepth: 1
    functionLinenumber: 16870
    functionLinenumberEnd: 16875
    functionName: sqlite3OsInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_os_init
    - sqlite3_free
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsInit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16893,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16897,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16899,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16902,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16904,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - zVfs
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16906
      start: 16887
    functionDepth: 1
    functionLinenumber: 16887
    functionLinenumberEnd: 16906
    functionName: sqlite3_vfs_find
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    - strcmp
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void sqlite3_vfs_find(const char *zVfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16912,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16912,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts:
    - condition: ( sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER))
        )
      pos:
        line_end: 16911
        line_start: 16911
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 16926
      start: 16911
    functionDepth: 1
    functionLinenumber: 16911
    functionLinenumberEnd: 16926
    functionName: vfsUnlink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3MutexAlloc
    - assert
    linkageType: ''
    returnType: void
    signature: void vfsUnlink(sqlite3_vfs *pVfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16934,1
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16936,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16943,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16943,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16944,1
    - Dst: vfsUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16945,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16953,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pVfs
    - makeDflt
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts:
    - condition: (vfsList)
      pos:
        line_end: 16952
        line_start: 16952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 16956
      start: 16933
    functionDepth: 2
    functionLinenumber: 16933
    functionLinenumberEnd: 16956
    functionName: sqlite3_vfs_register
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - assert
    - sqlite3MutexAlloc
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - vfsUnlink
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vfs_register(sqlite3_vfs *pVfs, int makeDflt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16963,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16965,1
    - Dst: vfsUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16966,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:16967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16969
      start: 16961
    functionDepth: 2
    functionLinenumber: 16961
    functionLinenumberEnd: 16969
    functionName: sqlite3_vfs_unregister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    - vfsUnlink
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vfs_unregister(sqlite3_vfs *pVfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17010
      start: 17007
    functionDepth: 0
    functionLinenumber: 17007
    functionLinenumberEnd: 17010
    functionName: BenignMallocHooks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD BenignMallocHooks
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17039
      start: 17032
    functionDepth: 0
    functionLinenumber: 17032
    functionLinenumberEnd: 17039
    functionName: sqlite3BenignMallocHooks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BenignMallocHooks(\n  void (*xBenignBegin)(void),\n
      \ void (*xBenignEnd)(void)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xBenignBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17051
      start: 17046
    functionDepth: 0
    functionLinenumber: 17046
    functionLinenumberEnd: 17051
    functionName: sqlite3BeginBenignMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBenignBegin
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginBenignMalloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xBenignEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17057
      start: 17052
    functionDepth: 0
    functionLinenumber: 17052
    functionLinenumberEnd: 17057
    functionName: sqlite3EndBenignMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBenignEnd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3EndBenignMalloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17093
      start: 17093
    functionDepth: 0
    functionLinenumber: 17093
    functionLinenumberEnd: 17093
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17094
      start: 17094
    functionDepth: 0
    functionLinenumber: 17094
    functionLinenumberEnd: 17094
    functionName: sqlite3MemFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17095
      start: 17095
    functionDepth: 0
    functionLinenumber: 17095
    functionLinenumberEnd: 17095
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17096
      start: 17096
    functionDepth: 0
    functionLinenumber: 17096
    functionLinenumberEnd: 17096
    functionName: sqlite3MemSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *pPrior)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17097
      start: 17097
    functionDepth: 0
    functionLinenumber: 17097
    functionLinenumberEnd: 17097
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17098
      start: 17098
    functionDepth: 0
    functionLinenumber: 17098
    functionLinenumberEnd: 17098
    functionName: sqlite3MemInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17099
      start: 17099
    functionDepth: 0
    functionLinenumber: 17099
    functionLinenumberEnd: 17099
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17119
      start: 17107
    functionDepth: 1
    functionLinenumber: 17107
    functionLinenumberEnd: 17119
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17187
      start: 17186
    functionDepth: 0
    functionLinenumber: 17186
    functionLinenumberEnd: 17187
    functionName: SQLITE_MALLOC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17188
      start: 17187
    functionDepth: 0
    functionLinenumber: 17187
    functionLinenumberEnd: 17188
    functionName: SQLITE_FREE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_FREE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17189
      start: 17188
    functionDepth: 0
    functionLinenumber: 17188
    functionLinenumberEnd: 17189
    functionName: SQLITE_REALLOC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_REALLOC(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17191
      start: 17189
    functionDepth: 0
    functionLinenumber: 17189
    functionLinenumberEnd: 17191
    functionName: SQLITE_MALLOCSIZE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOCSIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17199
      start: 17198
    functionDepth: 0
    functionLinenumber: 17198
    functionLinenumberEnd: 17199
    functionName: SQLITE_MALLOC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17200
      start: 17199
    functionDepth: 0
    functionLinenumber: 17199
    functionLinenumberEnd: 17200
    functionName: SQLITE_FREE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_FREE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17201
      start: 17200
    functionDepth: 0
    functionLinenumber: 17200
    functionLinenumberEnd: 17201
    functionName: SQLITE_REALLOC
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_REALLOC(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17232
      start: 17231
    functionDepth: 0
    functionLinenumber: 17231
    functionLinenumberEnd: 17232
    functionName: SQLITE_MALLOCSIZE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOCSIZE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_MALLOC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17252,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17254,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17255,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17260,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17261,1
    - Dst: SQLITE_MALLOC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17262,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17267,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 17259
        line_start: 17259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17272
      start: 17250
    functionDepth: 1
    functionLinenumber: 17250
    functionLinenumberEnd: 17272
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_MALLOC
    - sqlite3_log
    - ROUND8
    - testcase
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_FREE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17284,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17287,1
    - Dst: SQLITE_FREE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 17286
        line_start: 17286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17291
      start: 17282
    functionDepth: 1
    functionLinenumber: 17282
    functionLinenumberEnd: 17291
    functionName: sqlite3MemFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_FREE
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_MALLOCSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17307
      start: 17297
    functionDepth: 1
    functionLinenumber: 17297
    functionLinenumberEnd: 17307
    functionName: sqlite3MemSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_MALLOCSIZE
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_REALLOC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17321,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17323,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17324,1
    - Dst: SQLITE_MALLOCSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17326,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17332,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17332,1
    - Dst: SQLITE_REALLOC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17334,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17339,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17340,1
    - Dst: sqlite3MemSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( pPrior!=0 && nByte>0 )
      pos:
        line_end: 17330
        line_start: 17330
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nByte==ROUND8(nByte) )
      pos:
        line_end: 17331
        line_start: 17331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17346
      start: 17319
    functionDepth: 1
    functionLinenumber: 17319
    functionLinenumberEnd: 17346
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_MALLOCSIZE
    - sqlite3MemSize
    - assert
    - SQLITE_REALLOC
    - sqlite3_log
    - ROUND8
    - testcase
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17353
      start: 17351
    functionDepth: 1
    functionLinenumber: 17351
    functionLinenumberEnd: 17353
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17367,1
    - Dst: malloc_default_zone
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17370,1
    - Dst: malloc_create_zone
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17375,1
    - Dst: malloc_set_zone_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17376,1
    - Dst: OSAtomicCompareAndSwapPtrBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17378,1
    - Dst: malloc_destroy_zone
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17383,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17389
      start: 17358
    functionDepth: 1
    functionLinenumber: 17358
    functionLinenumberEnd: 17389
    functionName: sqlite3MemInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - malloc_create_zone
    - malloc_destroy_zone
    - UNUSED_PARAMETER
    - sysctlbyname
    - OSAtomicCompareAndSwapPtrBarrier
    - malloc_set_zone_name
    - malloc_default_zone
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17397
      start: 17394
    functionDepth: 1
    functionLinenumber: 17394
    functionLinenumberEnd: 17397
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17417
      start: 17405
    functionDepth: 1
    functionLinenumber: 17405
    functionLinenumberEnd: 17417
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17460
      start: 17459
    functionDepth: 0
    functionLinenumber: 17459
    functionLinenumberEnd: 17460
    functionName: backtrace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: backtrace(A,B)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17552,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - iSize
    - increment
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( mem.nCurrent[i]>=0 )
      pos:
        line_end: 17563
        line_start: 17563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17566
      start: 17551
    functionDepth: 1
    functionLinenumber: 17551
    functionLinenumberEnd: 17566
    functionName: adjustStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - assert
    linkageType: ''
    returnType: void
    signature: void adjustStats(int iSize, int increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17582,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17586,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pAllocation
    argTypes:
    - void*
    assertStmts:
    - condition: ( p->iForeGuard==(int)FOREGUARD )
      pos:
        line_end: 17581
        line_start: 17581
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInt[nReserve/sizeof(int)]==(int)REARGUARD )
      pos:
        line_end: 17585
        line_start: 17585
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pU8[nReserve]==0x65 )
      pos:
        line_end: 17590
        line_start: 17590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17593
      start: 17574
    functionDepth: 1
    functionLinenumber: 17574
    functionLinenumberEnd: 17593
    functionName: sqlite3MemsysGetHeader
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - assert
    linkageType: ''
    returnType: struct MemBlockHdr
    signature: struct MemBlockHdr *sqlite3MemsysGetHeader(void *pAllocation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17605
      start: 17598
    functionDepth: 2
    functionLinenumber: 17598
    functionLinenumberEnd: 17605
    functionName: sqlite3MemSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MemsysGetHeader
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17611,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17612,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( (sizeof(struct MemBlockHdr)&7) == 0 )
      pos:
        line_end: 17611
        line_start: 17611
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17619
      start: 17610
    functionDepth: 1
    functionLinenumber: 17610
    functionLinenumberEnd: 17619
    functionName: sqlite3MemInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MutexAlloc
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17627
      start: 17624
    functionDepth: 1
    functionLinenumber: 17624
    functionLinenumberEnd: 17627
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17634
      start: 17632
    functionDepth: 1
    functionLinenumber: 17632
    functionLinenumberEnd: 17634
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pBuf
    - nByte
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17659
      start: 17641
    functionDepth: 1
    functionLinenumber: 17641
    functionLinenumberEnd: 17659
    functionName: randomFill
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    linkageType: ''
    returnType: void
    signature: void randomFill(char *pBuf, int nByte)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17672,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17673,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17674,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17677,1
    - Dst: backtrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17696,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17698,1
    - Dst: xBacktrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17700,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17706,1
    - Dst: adjustStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17709,1
    - Dst: randomFill
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17712,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17713,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( mem.disallow==0 )
      pos:
        line_end: 17672
        line_start: 17672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pBt[0])
      pos:
        line_end: 17697
        line_start: 17697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17718
      start: 17664
    functionDepth: 2
    functionLinenumber: 17664
    functionLinenumberEnd: 17718
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memset
    - sqlite3_mutex_leave
    - assert
    - malloc
    - xBacktrace
    - randomFill
    - backtrace
    - memcpy
    - ROUND8
    - adjustStats
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17727,1
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17729,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17732,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17734,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17737,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17741,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17744,1
    - Dst: adjustStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17749,1
    - Dst: randomFill
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17750,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17752,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: "( sqlite3GlobalConfig.bMemstat || sqlite3GlobalConfig.bCoreMutex==0
        \n       || mem.mutex!=0 )"
      pos:
        line_end: 17727
        line_start: 17726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pHdr->pPrev->pNext==pHdr )
      pos:
        line_end: 17733
        line_start: 17733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem.pFirst==pHdr )
      pos:
        line_end: 17736
        line_start: 17736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pHdr->pNext->pPrev==pHdr )
      pos:
        line_end: 17740
        line_start: 17740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem.pLast==pHdr )
      pos:
        line_end: 17743
        line_start: 17743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17754
      start: 17723
    functionDepth: 2
    functionLinenumber: 17723
    functionLinenumberEnd: 17754
    functionName: sqlite3MemFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - assert
    - randomFill
    - sqlite3MemsysGetHeader
    - adjustStats
    - free
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17769,1
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17770,1
    - Dst: sqlite3MemMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17771,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17773,1
    - Dst: randomFill
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17775,1
    - Dst: sqlite3MemFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( mem.disallow==0 )
      pos:
        line_end: 17767
        line_start: 17767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nByte & 7)==0 )
      pos:
        line_end: 17768
        line_start: 17768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17780
      start: 17765
    functionDepth: 2
    functionLinenumber: 17765
    functionLinenumberEnd: 17780
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemFree
    - assert
    - randomFill
    - sqlite3MemsysGetHeader
    - memcpy
    - sqlite3MemMalloc
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17798
      start: 17786
    functionDepth: 1
    functionLinenumber: 17786
    functionLinenumberEnd: 17798
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17806,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 17806
        line_start: 17806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17810
      start: 17803
    functionDepth: 2
    functionLinenumber: 17803
    functionLinenumberEnd: 17810
    functionName: sqlite3MemdebugSetType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemsysGetHeader
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSetType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 17825
        line_start: 17825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17832
      start: 17821
    functionDepth: 2
    functionLinenumber: 17821
    functionLinenumberEnd: 17832
    functionName: sqlite3MemdebugHasType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemsysGetHeader
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugHasType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17847,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 17847
        line_start: 17847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 17854
      start: 17843
    functionDepth: 2
    functionLinenumber: 17843
    functionLinenumberEnd: 17854
    functionName: sqlite3MemdebugNoType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemsysGetHeader
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugNoType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17866
      start: 17861
    functionDepth: 0
    functionLinenumber: 17861
    functionLinenumberEnd: 17866
    functionName: sqlite3MemdebugBacktrace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugBacktrace(int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17870
      start: 17868
    functionDepth: 0
    functionLinenumber: 17868
    functionLinenumberEnd: 17870
    functionName: sqlite3MemdebugBacktraceCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugBacktraceCallback(void (*xBacktrace)(int,
      int, void **))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17876,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17877,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17879,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17881,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - zTitle
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17883
      start: 17875
    functionDepth: 1
    functionLinenumber: 17875
    functionLinenumberEnd: 17883
    functionName: sqlite3MemdebugSettitle
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memcpy
    - sqlite3Strlen30
    - ROUND8
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSettitle(const char *zTitle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xBacktrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17892
      start: 17885
    functionDepth: 0
    functionLinenumber: 17885
    functionLinenumberEnd: 17892
    functionName: sqlite3MemdebugSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBacktrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSync()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17903,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17905,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17912,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17915,1
    - Dst: backtrace_symbols_fd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17918,1
    - Dst: fileno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17918,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17919,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17922,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17925,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17930,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:17934,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17935
      start: 17898
    functionDepth: 0
    functionLinenumber: 17898
    functionLinenumberEnd: 17935
    functionName: sqlite3MemdebugDump
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - backtrace_symbols_fd
    - fopen
    - fflush
    - fprintf
    - fclose
    - fileno
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugDump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17947
      start: 17940
    functionDepth: 0
    functionLinenumber: 17940
    functionLinenumberEnd: 17947
    functionName: sqlite3MemdebugMallocCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugMallocCount()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18092
      start: 18053
    functionDepth: 0
    functionLinenumber: 18053
    functionLinenumberEnd: 18092
    functionName: Mem3Global
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem3Global
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18103,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - i
    - pRoot
    argTypes:
    - u32
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18102
        line_start: 18102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18114
      start: 18100
    functionDepth: 1
    functionLinenumber: 18100
    functionLinenumberEnd: 18114
    functionName: memsys3UnlinkFromList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys3UnlinkFromList(u32 i, u32 *pRoot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18122,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18122,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18123,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18126,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18127,1
    - Dst: memsys3UnlinkFromList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18129,1
    - Dst: memsys3UnlinkFromList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18121
        line_start: 18121
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( size==mem3.aPool[i+size-1].u.hdr.prevSize )
      pos:
        line_end: 18125
        line_start: 18125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 18123
        line_start: 18123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 )
      pos:
        line_end: 18122
        line_start: 18122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( size>=2 )
      pos:
        line_end: 18126
        line_start: 18126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18134
      start: 18120
    functionDepth: 2
    functionLinenumber: 18120
    functionLinenumberEnd: 18134
    functionName: memsys3Unlink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memsys3UnlinkFromList
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys3Unlink(u32 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18141,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - pRoot
    argTypes:
    - u32
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18140
        line_start: 18140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18148
      start: 18140
    functionDepth: 1
    functionLinenumber: 18140
    functionLinenumberEnd: 18148
    functionName: memsys3LinkIntoList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys3LinkIntoList(u32 i, u32 *pRoot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18156,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18156,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18157,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18158,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18160,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18161,1
    - Dst: memsys3LinkIntoList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18163,1
    - Dst: memsys3LinkIntoList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18155
        line_start: 18155
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( size==mem3.aPool[i+size-1].u.hdr.prevSize )
      pos:
        line_end: 18159
        line_start: 18159
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 18156
        line_start: 18156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 )
      pos:
        line_end: 18157
        line_start: 18157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( size>=2 )
      pos:
        line_end: 18160
        line_start: 18160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18168
      start: 18154
    functionDepth: 2
    functionLinenumber: 18154
    functionLinenumberEnd: 18168
    functionName: memsys3Link
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - memsys3LinkIntoList
    linkageType: ''
    returnType: void
    signature: void memsys3Link(u32 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18177,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18180
      start: 18175
    functionDepth: 1
    functionLinenumber: 18175
    functionLinenumberEnd: 18180
    functionName: memsys3Enter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void memsys3Enter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18183
      start: 18181
    functionDepth: 1
    functionLinenumber: 18181
    functionLinenumberEnd: 18183
    functionName: memsys3Leave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void memsys3Leave(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18191,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18191,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18192,1
    - Dst: sqlite3_release_memory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18193,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18190
        line_start: 18190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18197
      start: 18188
    functionDepth: 1
    functionLinenumber: 18188
    functionLinenumberEnd: 18197
    functionName: memsys3OutOfMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_mutex_enter
    - assert
    - sqlite3_release_memory
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void memsys3OutOfMemory(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18207,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18207,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18208,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18209,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - i
    - nBlock
    argTypes:
    - u32
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18206
        line_start: 18206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 18207
        line_start: 18207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem3.aPool[i-1].u.hdr.size4x/4==nBlock )
      pos:
        line_end: 18208
        line_start: 18208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem3.aPool[i+nBlock-1].u.hdr.prevSize==nBlock )
      pos:
        line_end: 18209
        line_start: 18209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18216
      start: 18205
    functionDepth: 1
    functionLinenumber: 18205
    functionLinenumberEnd: 18216
    functionName: memsys3Checkout
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: void
    signature: void *memsys3Checkout(u32 i, u32 nBlock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18224,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18224,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18225,1
    - Dst: memsys3Checkout
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18228,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - nBlock
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18223
        line_start: 18223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem3.szMaster>=nBlock )
      pos:
        line_end: 18224
        line_start: 18224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( newi > mem3.iMaster+1 )
      pos:
        line_end: 18236
        line_start: 18236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18250
      start: 18223
    functionDepth: 2
    functionLinenumber: 18223
    functionLinenumberEnd: 18250
    functionName: memsys3FromMaster
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memsys3Checkout
    - assert
    linkageType: ''
    returnType: void
    signature: void *memsys3FromMaster(u32 nBlock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18271,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18271,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18275,1
    - Dst: memsys3UnlinkFromList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18277,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18278,1
    - Dst: memsys3Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18283,1
    - Dst: memsys3Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - pRoot
    argTypes:
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18270
        line_start: 18270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i > mem3.aPool[i-1].u.hdr.prevSize )
      pos:
        line_end: 18277
        line_start: 18277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (size&1)==0 )
      pos:
        line_end: 18274
        line_start: 18274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18298
      start: 18268
    functionDepth: 3
    functionLinenumber: 18268
    functionLinenumberEnd: 18298
    functionName: memsys3Merge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memsys3UnlinkFromList
    - assert
    - memsys3Link
    - memsys3Unlink
    linkageType: ''
    returnType: void
    signature: void memsys3Merge(u32 *pRoot)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18312,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18319,1
    - Dst: memsys3UnlinkFromList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18329,1
    - Dst: memsys3Checkout
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18330,1
    - Dst: memsys3UnlinkFromList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18336,1
    - Dst: memsys3Checkout
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18337,1
    - Dst: memsys3FromMaster
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18347,1
    - Dst: memsys3OutOfMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18359,1
    - Dst: memsys3Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18361,1
    - Dst: memsys3Merge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18366,1
    - Dst: memsys3Merge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18369,1
    - Dst: memsys3Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18372,1
    - Dst: memsys3FromMaster
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18374,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18311
        line_start: 18311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(Mem3Block)==8 )
      pos:
        line_end: 18312
        line_start: 18312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nBlock>=2 )
      pos:
        line_end: 18318
        line_start: 18318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18381
      start: 18307
    functionDepth: 4
    functionLinenumber: 18307
    functionLinenumberEnd: 18381
    functionName: memsys3MallocUnsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memsys3UnlinkFromList
    - assert
    - memsys3Merge
    - memsys3Link
    - memsys3FromMaster
    - memsys3OutOfMemory
    - memsys3Unlink
    - memsys3Checkout
    linkageType: ''
    returnType: void
    signature: void *memsys3MallocUnsafe(int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18393,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18393,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18396,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18398,1
    - Dst: memsys3Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18402,1
    - Dst: memsys3Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18410,1
    - Dst: memsys3Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 18392
        line_start: 18392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p>mem3.aPool && p<&mem3.aPool[mem3.nPool] )
      pos:
        line_end: 18393
        line_start: 18393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x&1)==1 )
      pos:
        line_end: 18395
        line_start: 18395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i+size<=mem3.nPool+1 )
      pos:
        line_end: 18397
        line_start: 18397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18423
      start: 18389
    functionDepth: 3
    functionLinenumber: 18389
    functionLinenumberEnd: 18423
    functionName: memsys3FreeUnsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memsys3Unlink
    - memsys3Link
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys3FreeUnsafe(void *pOld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( (pBlock[-1].u.hdr.size4x&1)!=0 )
      pos:
        line_end: 18433
        line_start: 18433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18436
      start: 18430
    functionDepth: 0
    functionLinenumber: 18430
    functionLinenumberEnd: 18436
    functionName: memsys3Size
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int memsys3Size(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18447
      start: 18441
    functionDepth: 0
    functionLinenumber: 18441
    functionLinenumberEnd: 18447
    functionName: memsys3Roundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys3Roundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18454,1
    - Dst: memsys3Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18455,1
    - Dst: memsys3MallocUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18456,1
    - Dst: memsys3Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts:
    - condition: ( nBytes>0 )
      pos:
        line_end: 18453
        line_start: 18453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18459
      start: 18452
    functionDepth: 5
    functionLinenumber: 18452
    functionLinenumberEnd: 18459
    functionName: memsys3Malloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3Enter
    - memsys3MallocUnsafe
    - memsys3Leave
    - assert
    linkageType: ''
    returnType: void
    signature: void *memsys3Malloc(int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18465,1
    - Dst: memsys3Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18466,1
    - Dst: memsys3FreeUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18467,1
    - Dst: memsys3Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior )
      pos:
        line_end: 18464
        line_start: 18464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18469
      start: 18464
    functionDepth: 4
    functionLinenumber: 18464
    functionLinenumberEnd: 18469
    functionName: memsys3Free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3FreeUnsafe
    - memsys3Enter
    - memsys3Leave
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys3Free(void *pPrior)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18478,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18481,1
    - Dst: memsys3Size
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18484,1
    - Dst: memsys3Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18488,1
    - Dst: memsys3MallocUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18489,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18492,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18494,1
    - Dst: memsys3FreeUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18496,1
    - Dst: memsys3Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18500
      start: 18474
    functionDepth: 5
    functionLinenumber: 18474
    functionLinenumberEnd: 18500
    functionName: memsys3Realloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3Size
    - sqlite3_free
    - memsys3FreeUnsafe
    - memsys3Enter
    - memsys3Leave
    - sqlite3_malloc
    - memcpy
    - memsys3MallocUnsafe
    linkageType: ''
    returnType: void
    signature: void *memsys3Realloc(void *pPrior, int nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18506,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( sizeof(Mem3Block)==8 )
      pos:
        line_end: 18511
        line_start: 18511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18525
      start: 18505
    functionDepth: 1
    functionLinenumber: 18505
    functionLinenumberEnd: 18525
    functionName: memsys3Init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int memsys3Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18534
      start: 18530
    functionDepth: 1
    functionLinenumber: 18530
    functionLinenumberEnd: 18534
    functionName: memsys3Shutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void memsys3Shutdown(void *NotUsed)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18550,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18552,1
    - Dst: memsys3Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18557,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18558,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18563,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18567,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18568,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18572,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18573,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18577,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18579,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18585,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18587,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18590,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18594,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18596,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18599,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18601,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18602,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18603,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18604,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18606,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18608,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18611,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 18567
        line_start: 18567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 18562
        line_start: 18562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 18572
        line_start: 18572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18613
      start: 18542
    functionDepth: 2
    functionLinenumber: 18542
    functionLinenumberEnd: 18613
    functionName: sqlite3Memsys3Dump
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fopen
    - assert
    - fflush
    - fprintf
    - fclose
    - memsys3Enter
    - UNUSED_PARAMETER
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Memsys3Dump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18638
      start: 18626
    functionDepth: 0
    functionLinenumber: 18626
    functionLinenumberEnd: 18638
    functionName: sqlite3_mem_methods *sqlite3MemGetMemsys3(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetMemsys3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18773
      start: 18735
    functionDepth: 0
    functionLinenumber: 18735
    functionLinenumberEnd: 18773
    functionName: Mem5Global
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem5Global
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18785
      start: 18784
    functionDepth: 0
    functionLinenumber: 18784
    functionLinenumberEnd: 18785
    functionName: MEM5LINK
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM5LINK(idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18792,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18793,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18794,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18796,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18797,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18801,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18804,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - i
    - iLogsize
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 18791
        line_start: 18791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLogsize>=0 && iLogsize<=LOGMAX )
      pos:
        line_end: 18792
        line_start: 18792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem5.aCtrl[i] & CTRL_LOGSIZE)==iLogsize )
      pos:
        line_end: 18793
        line_start: 18793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18806
      start: 18790
    functionDepth: 1
    functionLinenumber: 18790
    functionLinenumberEnd: 18806
    functionName: memsys5Unlink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MEM5LINK
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys5Unlink(int i, int iLogsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18814,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18815,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18816,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18817,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18819,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18820,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18822,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - i
    - iLogsize
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem5.mutex) )
      pos:
        line_end: 18813
        line_start: 18813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLogsize>=0 && iLogsize<=LOGMAX )
      pos:
        line_end: 18815
        line_start: 18815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem5.aCtrl[i] & CTRL_LOGSIZE)==iLogsize )
      pos:
        line_end: 18816
        line_start: 18816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 18814
        line_start: 18814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( x<mem5.nBlock )
      pos:
        line_end: 18821
        line_start: 18821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18826
      start: 18812
    functionDepth: 1
    functionLinenumber: 18812
    functionLinenumberEnd: 18826
    functionName: memsys5Link
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MEM5LINK
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys5Link(int i, int iLogsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18835
      start: 18833
    functionDepth: 1
    functionLinenumber: 18833
    functionLinenumberEnd: 18835
    functionName: memsys5Enter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void memsys5Enter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18838
      start: 18836
    functionDepth: 1
    functionLinenumber: 18836
    functionLinenumberEnd: 18838
    functionName: memsys5Leave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void memsys5Leave(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 18848
        line_start: 18848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18853
      start: 18845
    functionDepth: 0
    functionLinenumber: 18845
    functionLinenumberEnd: 18853
    functionName: memsys5Size
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int memsys5Size(void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18872,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18896,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18897,1
    - Dst: memsys5Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18901,1
    - Dst: memsys5Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18908,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18924,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 18871
        line_start: 18871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18929
      start: 18865
    functionDepth: 2
    functionLinenumber: 18865
    functionLinenumberEnd: 18929
    functionName: memsys5MallocUnsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Unlink
    - memset
    - assert
    - sqlite3_log
    - memsys5Link
    - testcase
    linkageType: ''
    returnType: void
    signature: void *memsys5MallocUnsafe(int nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18944,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18945,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18946,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18955,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18958,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18959,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18962,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18969,1
    - Dst: memsys5Unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18972,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18988,1
    - Dst: memsys5Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:18991,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts:
    - condition: ( iBlock>=0 && iBlock<mem5.nBlock )
      pos:
        line_end: 18943
        line_start: 18943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((u8 *)pOld-mem5.zPool)%mem5.szAtom==0 )
      pos:
        line_end: 18944
        line_start: 18944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iBlock+size-1<(u32)mem5.nBlock )
      pos:
        line_end: 18949
        line_start: 18949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mem5.aCtrl[iBlock] & CTRL_FREE)==0 )
      pos:
        line_end: 18945
        line_start: 18945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem5.currentCount>0 )
      pos:
        line_end: 18953
        line_start: 18953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem5.currentOut>=(size*mem5.szAtom) )
      pos:
        line_end: 18954
        line_start: 18954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem5.currentOut>0 || mem5.currentCount==0 )
      pos:
        line_end: 18957
        line_start: 18957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem5.currentCount>0 || mem5.currentOut==0 )
      pos:
        line_end: 18958
        line_start: 18958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iBuddy>=0 )
      pos:
        line_end: 18968
        line_start: 18968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 18992
      start: 18934
    functionDepth: 2
    functionLinenumber: 18934
    functionLinenumberEnd: 18992
    functionName: memsys5FreeUnsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Unlink
    - memset
    - assert
    - ALWAYS
    - memsys5Link
    linkageType: ''
    returnType: void
    signature: void memsys5FreeUnsafe(void *pOld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memsys5Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19000,1
    - Dst: memsys5MallocUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19001,1
    - Dst: memsys5Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19005
      start: 18997
    functionDepth: 3
    functionLinenumber: 18997
    functionLinenumberEnd: 19005
    functionName: memsys5Malloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Leave
    - memsys5Enter
    - memsys5MallocUnsafe
    linkageType: ''
    returnType: void
    signature: void *memsys5Malloc(int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19014,1
    - Dst: memsys5Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19015,1
    - Dst: memsys5FreeUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19016,1
    - Dst: memsys5Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 19013
        line_start: 19013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19018
      start: 19013
    functionDepth: 3
    functionLinenumber: 19013
    functionLinenumberEnd: 19018
    functionName: memsys5Free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5FreeUnsafe
    - memsys5Enter
    - memsys5Leave
    - assert
    linkageType: ''
    returnType: void
    signature: void memsys5Free(void *pPrior)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19035,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19036,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19037,1
    - Dst: memsys5Size
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19041,1
    - Dst: memsys5Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19045,1
    - Dst: memsys5MallocUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19046,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19048,1
    - Dst: memsys5FreeUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19049,1
    - Dst: memsys5Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 19034
        line_start: 19034
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 19036
        line_start: 19036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nBytes&(nBytes-1))==0 )
      pos:
        line_end: 19035
        line_start: 19035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19053
      start: 19032
    functionDepth: 3
    functionLinenumber: 19032
    functionLinenumberEnd: 19053
    functionName: memsys5Realloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Leave
    - memsys5Enter
    - assert
    - memsys5Size
    - memsys5FreeUnsafe
    - memcpy
    - memsys5MallocUnsafe
    linkageType: ''
    returnType: void
    signature: void *memsys5Realloc(void *pPrior, int nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19069
      start: 19064
    functionDepth: 0
    functionLinenumber: 19064
    functionLinenumberEnd: 19069
    functionName: memsys5Roundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys5Roundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iValue
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19085
      start: 19081
    functionDepth: 0
    functionLinenumber: 19081
    functionLinenumberEnd: 19085
    functionName: memsys5Log
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys5Log(int iValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19112,1
    - Dst: memsys5Log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19115,1
    - Dst: memsys5Link
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19134,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19137,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( zByte!=0 )
      pos:
        line_end: 19111
        line_start: 19111
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (sizeof(Mem5Link)&(sizeof(Mem5Link)-1))==0 )
      pos:
        line_end: 19107
        line_start: 19107
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ((iOffset+nAlloc)>mem5.nBlock)
      pos:
        line_end: 19136
        line_start: 19136
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19146
      start: 19093
    functionDepth: 2
    functionLinenumber: 19093
    functionLinenumberEnd: 19146
    functionName: memsys5Init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MutexAlloc
    - UNUSED_PARAMETER
    - memsys5Link
    - memsys5Log
    linkageType: ''
    returnType: int
    signature: int memsys5Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19155
      start: 19151
    functionDepth: 1
    functionLinenumber: 19151
    functionLinenumberEnd: 19155
    functionName: memsys5Shutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void memsys5Shutdown(void *NotUsed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19170,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19172,1
    - Dst: memsys5Enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19177,1
    - Dst: memsys5Log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19178,1
    - Dst: MEM5LINK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19180,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19181,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19183,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19184,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19185,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19186,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19187,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19188,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19189,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19190,1
    - Dst: memsys5Leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19191,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19193,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19197
      start: 19162
    functionDepth: 2
    functionLinenumber: 19162
    functionLinenumberEnd: 19197
    functionName: sqlite3Memsys5Dump
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Leave
    - fopen
    - memsys5Enter
    - fflush
    - fprintf
    - fclose
    - MEM5LINK
    - memsys5Log
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Memsys5Dump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19217
      start: 19205
    functionDepth: 0
    functionLinenumber: 19205
    functionLinenumberEnd: 19217
    functionName: sqlite3_mem_methods *sqlite3MemGetMemsys5(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetMemsys5(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DefaultMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19266,1
    - Dst: sqlite3NoopMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19268,1
    - Dst: mutex::xMutexInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19287
      start: 19254
    functionDepth: 1
    functionLinenumber: 19254
    functionLinenumberEnd: 19287
    functionName: sqlite3MutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DefaultMutex
    - sqlite3NoopMutex
    - mutex::xMutexInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MutexInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19304
      start: 19293
    functionDepth: 0
    functionLinenumber: 19293
    functionLinenumberEnd: 19304
    functionName: sqlite3MutexEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexEnd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MutexEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19300
      start: 19300
    functionDepth: 0
    functionLinenumber: 19300
    functionLinenumberEnd: 19300
    functionName: GLOBAL
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GLOBAL(int, mutexIsInit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19311,1
    - Dst: sqlite3MutexInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19312,1
    - Dst: mutex::xMutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19315
      start: 19309
    functionDepth: 1
    functionLinenumber: 19309
    functionLinenumberEnd: 19315
    functionName: sqlite3_mutex_alloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - mutex::xMutexAlloc
    - sqlite3MutexInit
    linkageType: ''
    returnType: void
    signature: void sqlite3_mutex_alloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19323
      start: 19317
    functionDepth: 0
    functionLinenumber: 19317
    functionLinenumberEnd: 19323
    functionName: sqlite3_mutex *sqlite3MutexAlloc(int id)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3MutexAlloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19332
      start: 19328
    functionDepth: 0
    functionLinenumber: 19328
    functionLinenumberEnd: 19332
    functionName: sqlite3_mutex_free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_free(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19342
      start: 19338
    functionDepth: 0
    functionLinenumber: 19338
    functionLinenumberEnd: 19342
    functionName: sqlite3_mutex_enter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 13
    functionsReached:
    - mutex::xMutexEnter
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_enter(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexTry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19354
      start: 19348
    functionDepth: 0
    functionLinenumber: 19348
    functionLinenumberEnd: 19354
    functionName: sqlite3_mutex_try
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexTry
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_try(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19366
      start: 19362
    functionDepth: 0
    functionLinenumber: 19362
    functionLinenumberEnd: 19366
    functionName: sqlite3_mutex_leave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 14
    functionsReached:
    - mutex::xMutexLeave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_leave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19375
      start: 19373
    functionDepth: 0
    functionLinenumber: 19373
    functionLinenumberEnd: 19375
    functionName: sqlite3_mutex_held
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 16
    functionsReached:
    - mutex::xMutexHeld
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_held(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19378
      start: 19376
    functionDepth: 0
    functionLinenumber: 19376
    functionLinenumberEnd: 19378
    functionName: sqlite3_mutex_notheld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexNotheld
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_notheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19422
      start: 19422
    functionDepth: 0
    functionLinenumber: 19422
    functionLinenumberEnd: 19422
    functionName: noopMutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noopMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19423
      start: 19423
    functionDepth: 0
    functionLinenumber: 19423
    functionLinenumberEnd: 19423
    functionName: noopMutexEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noopMutexEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19427
      start: 19424
    functionDepth: 1
    functionLinenumber: 19424
    functionLinenumberEnd: 19427
    functionName: noopMutexAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *noopMutexAlloc(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19428
      start: 19428
    functionDepth: 1
    functionLinenumber: 19428
    functionLinenumberEnd: 19428
    functionName: noopMutexFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexFree(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19429
      start: 19429
    functionDepth: 1
    functionLinenumber: 19429
    functionLinenumberEnd: 19429
    functionName: noopMutexEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexEnter(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19433
      start: 19430
    functionDepth: 1
    functionLinenumber: 19430
    functionLinenumberEnd: 19433
    functionName: noopMutexTry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int noopMutexTry(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19434
      start: 19434
    functionDepth: 1
    functionLinenumber: 19434
    functionLinenumberEnd: 19434
    functionName: noopMutexLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19451
      start: 19436
    functionDepth: 0
    functionLinenumber: 19436
    functionLinenumberEnd: 19451
    functionName: sqlite3NoopMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NoopMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19476
      start: 19473
    functionDepth: 0
    functionLinenumber: 19473
    functionLinenumberEnd: 19476
    functionName: debugMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexHeld(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19480
      start: 19477
    functionDepth: 0
    functionLinenumber: 19477
    functionLinenumberEnd: 19480
    functionName: debugMutexNotheld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexNotheld(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19485
      start: 19485
    functionDepth: 0
    functionLinenumber: 19485
    functionLinenumberEnd: 19485
    functionName: debugMutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19486
      start: 19486
    functionDepth: 0
    functionLinenumber: 19486
    functionLinenumberEnd: 19486
    functionName: debugMutexEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexEnd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19499,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19519
      start: 19493
    functionDepth: 1
    functionLinenumber: 19493
    functionLinenumberEnd: 19519
    functionName: debugMutexAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Malloc
    - ArraySize
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *debugMutexAlloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19526,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->cnt==0 )
      pos:
        line_end: 19525
        line_start: 19525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19534
      start: 19524
    functionDepth: 1
    functionLinenumber: 19524
    functionLinenumberEnd: 19534
    functionName: debugMutexFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void debugMutexFree(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19549,1
    - Dst: debugMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 19548
        line_start: 19548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19551
      start: 19547
    functionDepth: 1
    functionLinenumber: 19547
    functionLinenumberEnd: 19551
    functionName: debugMutexEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - debugMutexNotheld
    linkageType: ''
    returnType: void
    signature: void debugMutexEnter(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19554,1
    - Dst: debugMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 19553
        line_start: 19553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19557
      start: 19552
    functionDepth: 1
    functionLinenumber: 19552
    functionLinenumberEnd: 19557
    functionName: debugMutexTry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - debugMutexNotheld
    linkageType: ''
    returnType: int
    signature: int debugMutexTry(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19567,1
    - Dst: debugMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19567,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19569,1
    - Dst: debugMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( debugMutexHeld(pX) )
      pos:
        line_end: 19566
        line_start: 19566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 19568
        line_start: 19568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19570
      start: 19565
    functionDepth: 1
    functionLinenumber: 19565
    functionLinenumberEnd: 19570
    functionName: debugMutexLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - debugMutexHeld
    - assert
    - debugMutexNotheld
    linkageType: ''
    returnType: void
    signature: void debugMutexLeave(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19587
      start: 19572
    functionDepth: 0
    functionLinenumber: 19572
    functionLinenumberEnd: 19587
    functionName: sqlite3NoopMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NoopMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NoopMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19597
      start: 19595
    functionDepth: 1
    functionLinenumber: 19595
    functionLinenumberEnd: 19597
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3NoopMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19678,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19679
      start: 19677
    functionDepth: 0
    functionLinenumber: 19677
    functionLinenumberEnd: 19679
    functionName: pthreadMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_equal
    - pthread_self
    linkageType: ''
    returnType: int
    signature: int pthreadMutexHeld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19681,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19682
      start: 19680
    functionDepth: 0
    functionLinenumber: 19680
    functionLinenumberEnd: 19682
    functionName: pthreadMutexNotheld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_equal
    - pthread_self
    linkageType: ''
    returnType: int
    signature: int pthreadMutexNotheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19688
      start: 19688
    functionDepth: 0
    functionLinenumber: 19688
    functionLinenumberEnd: 19688
    functionName: pthreadMutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthreadMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19689
      start: 19689
    functionDepth: 0
    functionLinenumber: 19689
    functionLinenumberEnd: 19689
    functionName: pthreadMutexEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthreadMutexEnd(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19757,1
    - Dst: pthread_mutex_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19762,1
    - Dst: pthread_mutexattr_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19766,1
    - Dst: pthread_mutexattr_settype
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19767,1
    - Dst: pthread_mutex_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19768,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19769,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19775,1
    - Dst: pthread_mutex_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19777,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19783,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - iType
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19796
      start: 19739
    functionDepth: 1
    functionLinenumber: 19739
    functionLinenumberEnd: 19796
    functionName: pthreadMutexAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - pthread_mutex_init
    - pthread_mutexattr_init
    - ArraySize
    - pthread_mutexattr_settype
    - pthread_mutexattr_destroy
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *pthreadMutexAlloc(int iType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19805,1
    - Dst: pthread_mutex_destroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19810,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->nRef==0 )
      pos:
        line_end: 19804
        line_start: 19804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19818
      start: 19804
    functionDepth: 1
    functionLinenumber: 19804
    functionLinenumberEnd: 19818
    functionName: pthreadMutexFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void pthreadMutexFree(sqlite3_mutex *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19832,1
    - Dst: pthreadMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19832,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19846,1
    - Dst: pthread_equal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19847,1
    - Dst: pthread_mutex_lock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19850,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19851,1
    - Dst: pthread_mutex_lock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19859,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19861,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19862,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || pthreadMutexNotheld(p) )
      pos:
        line_end: 19831
        line_start: 19831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==0 )
      pos:
        line_end: 19850
        line_start: 19850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef>0 || p->owner==0 )
      pos:
        line_end: 19860
        line_start: 19860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19872
      start: 19831
    functionDepth: 1
    functionLinenumber: 19831
    functionLinenumberEnd: 19872
    functionName: pthreadMutexEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthreadMutexNotheld
    - assert
    - pthread_mutex_lock
    - printf
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: void pthreadMutexEnter(sqlite3_mutex *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19875,1
    - Dst: pthreadMutexNotheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19875,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19889,1
    - Dst: pthread_equal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19890,1
    - Dst: pthread_mutex_trylock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19893,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19894,1
    - Dst: pthread_mutex_trylock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19905,1
    - Dst: pthread_self
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19907,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || pthreadMutexNotheld(p) )
      pos:
        line_end: 19874
        line_start: 19874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==0 )
      pos:
        line_end: 19893
        line_start: 19893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19922
      start: 19873
    functionDepth: 1
    functionLinenumber: 19873
    functionLinenumberEnd: 19922
    functionName: pthreadMutexTry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthreadMutexNotheld
    - assert
    - printf
    - pthread_self
    - pthread_equal
    - pthread_mutex_trylock
    linkageType: ''
    returnType: int
    signature: int pthreadMutexTry(sqlite3_mutex *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19931,1
    - Dst: pthreadMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19931,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19936,1
    - Dst: pthread_mutex_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19940,1
    - Dst: pthread_mutex_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19943,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:19948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( pthreadMutexHeld(p) )
      pos:
        line_end: 19930
        line_start: 19930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==0 || p->id==SQLITE_MUTEX_RECURSIVE )
      pos:
        line_end: 19935
        line_start: 19935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 19951
      start: 19930
    functionDepth: 1
    functionLinenumber: 19930
    functionLinenumberEnd: 19951
    functionName: pthreadMutexLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    - pthreadMutexHeld
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void pthreadMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19972
      start: 19953
    functionDepth: 0
    functionLinenumber: 19953
    functionLinenumberEnd: 19972
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20075
      start: 20071
    functionDepth: 0
    functionLinenumber: 20071
    functionLinenumberEnd: 20075
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20094
      start: 20090
    functionDepth: 0
    functionLinenumber: 20090
    functionLinenumberEnd: 20094
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20109
      start: 20098
    functionDepth: 0
    functionLinenumber: 20098
    functionLinenumberEnd: 20109
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20122
      start: 20122
    functionDepth: 0
    functionLinenumber: 20122
    functionLinenumberEnd: 20122
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20156
      start: 20155
    functionDepth: 0
    functionLinenumber: 20155
    functionLinenumberEnd: 20156
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20160
      start: 20156
    functionDepth: 0
    functionLinenumber: 20156
    functionLinenumberEnd: 20160
    functionName: SimulateIOError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20164
      start: 20160
    functionDepth: 1
    functionLinenumber: 20160
    functionLinenumberEnd: 20164
    functionName: local_ioerr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20176
      start: 20165
    functionDepth: 0
    functionLinenumber: 20165
    functionLinenumberEnd: 20176
    functionName: SimulateDiskfullError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20188
      start: 20187
    functionDepth: 0
    functionLinenumber: 20187
    functionLinenumberEnd: 20188
    functionName: OpenCounter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20335
      start: 20333
    functionDepth: 0
    functionLinenumber: 20333
    functionLinenumberEnd: 20335
    functionName: winMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: int
    signature: int winMutexHeld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - tid
    argTypes:
    - sqlite3_mutex*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20339
      start: 20337
    functionDepth: 0
    functionLinenumber: 20337
    functionLinenumberEnd: 20339
    functionName: winMutexNotheld2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winMutexNotheld2(sqlite3_mutex *p, DWORD tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20342,1
    - Dst: winMutexNotheld2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20344
      start: 20341
    functionDepth: 1
    functionLinenumber: 20341
    functionLinenumberEnd: 20344
    functionName: winMutexNotheld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMutexNotheld2
    - GetCurrentThreadId
    linkageType: ''
    returnType: int
    signature: int winMutexNotheld(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20379,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20381,1
    - Dst: InitializeCriticalSectionEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20383,1
    - Dst: InitializeCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20385,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20397
      start: 20377
    functionDepth: 1
    functionLinenumber: 20377
    functionLinenumberEnd: 20397
    functionName: winMutexInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - InitializeCriticalSection
    - InterlockedCompareExchange
    - sqlite3_win32_sleep
    - ArraySize
    - InitializeCriticalSectionEx
    linkageType: ''
    returnType: int
    signature: int winMutexInit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20402,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20405,1
    - Dst: DeleteCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20412
      start: 20399
    functionDepth: 1
    functionLinenumber: 20399
    functionLinenumberEnd: 20412
    functionName: winMutexEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - InterlockedCompareExchange
    - ArraySize
    linkageType: ''
    returnType: int
    signature: int winMutexEnd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20468,1
    - Dst: InitializeCriticalSectionEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20477,1
    - Dst: InitializeCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20479,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - iType
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20502
      start: 20462
    functionDepth: 1
    functionLinenumber: 20462
    functionLinenumberEnd: 20502
    functionName: winMutexAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - InitializeCriticalSection
    - InitializeCriticalSectionEx
    - ArraySize
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *winMutexAlloc(int iType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20512,1
    - Dst: DeleteCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20514,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 20510
        line_start: 20510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==0 && p->owner==0 )
      pos:
        line_end: 20511
        line_start: 20511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20521
      start: 20510
    functionDepth: 1
    functionLinenumber: 20510
    functionLinenumberEnd: 20521
    functionName: winMutexFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void winMutexFree(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20536,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20540,1
    - Dst: winMutexNotheld2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20540,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20542,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20544,1
    - Dst: EnterCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20545,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20547,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid) )
      pos:
        line_end: 20539
        line_start: 20539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 20538
        line_start: 20538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 20541
        line_start: 20541
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 20543
        line_start: 20543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef>0 || p->owner==0 )
      pos:
        line_end: 20546
        line_start: 20546
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20555
      start: 20534
    functionDepth: 1
    functionLinenumber: 20534
    functionLinenumberEnd: 20555
    functionName: winMutexEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - winMutexNotheld2
    - EnterCriticalSection
    - GetCurrentThreadId
    - OSTRACE
    linkageType: ''
    returnType: void
    signature: void winMutexEnter(sqlite3_mutex *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20563,1
    - Dst: winMutexNotheld2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20576,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20577,1
    - Dst: sqlite3_win32_is_nt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20579,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20581,1
    - Dst: TryEnterCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20582,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20590,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20594,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 20575
        line_start: 20575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid) )
      pos:
        line_end: 20562
        line_start: 20562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 20561
        line_start: 20561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMutex_isNt>=-1 && winMutex_isNt<=1 )
      pos:
        line_end: 20576
        line_start: 20576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMutex_isNt==0 || winMutex_isNt==1 )
      pos:
        line_end: 20580
        line_start: 20580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20599
      start: 20557
    functionDepth: 1
    functionLinenumber: 20557
    functionLinenumberEnd: 20599
    functionName: winMutexTry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - assert
    - winMutexNotheld2
    - sqlite3_win32_is_nt
    - UNUSED_PARAMETER
    - GetCurrentThreadId
    - OSTRACE
    - TryEnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int winMutexTry(sqlite3_mutex *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20609,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20611,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20613,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20614,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20617,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20619,1
    - Dst: LeaveCriticalSection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20620,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->owner==tid )
      pos:
        line_end: 20613
        line_start: 20613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef>0 )
      pos:
        line_end: 20612
        line_start: 20612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 20610
        line_start: 20610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==0 || p->id==SQLITE_MUTEX_RECURSIVE )
      pos:
        line_end: 20616
        line_start: 20616
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 20618
        line_start: 20618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20627
      start: 20607
    functionDepth: 1
    functionLinenumber: 20607
    functionLinenumberEnd: 20627
    functionName: winMutexLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - GetCurrentThreadId
    - OSTRACE
    - assert
    linkageType: ''
    returnType: void
    signature: void winMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20647
      start: 20629
    functionDepth: 0
    functionLinenumber: 20629
    functionLinenumberEnd: 20647
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheReleaseMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20677,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20685
      start: 20675
    functionDepth: 1
    functionLinenumber: 20675
    functionLinenumberEnd: 20685
    functionName: sqlite3_release_memory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3PcacheReleaseMemory
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_release_memory(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20726
      start: 20698
    functionDepth: 0
    functionLinenumber: 20698
    functionLinenumberEnd: 20726
    functionName: Mem0Global
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem0Global
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20735
      start: 20733
    functionDepth: 0
    functionLinenumber: 20733
    functionLinenumberEnd: 20735
    functionName: sqlite3_mutex *sqlite3MallocMutex(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3MallocMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20747,1
    - Dst: sqlite3_release_memory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - NotUsed
    - NotUsed2
    - allocSize
    argTypes:
    - void*
    - sqlite3_int64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20749
      start: 20742
    functionDepth: 2
    functionLinenumber: 20742
    functionLinenumberEnd: 20749
    functionName: softHeapLimitEnforcer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_release_memory
    linkageType: ''
    returnType: void
    signature: "void softHeapLimitEnforcer(\n  void *NotUsed, \n  sqlite3_int64 NotUsed2,\n
      \ int allocSize\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20760,1
    - Dst: sqlite3StatusValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20764,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pArg
    - iThreshold
    argTypes:
    - void*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20768
      start: 20754
    functionDepth: 1
    functionLinenumber: 20754
    functionLinenumberEnd: 20768
    functionName: sqlite3MemoryAlarm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3StatusValue
    linkageType: ''
    returnType: int
    signature: "int sqlite3MemoryAlarm(\n  void(*xCallback)(void *pArg, sqlite3_int64
      used,int N),\n  void *pArg,\n  sqlite3_int64 iThreshold\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemoryAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pArg
    - iThreshold
    argTypes:
    - void*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20781
      start: 20775
    functionDepth: 2
    functionLinenumber: 20775
    functionLinenumberEnd: 20781
    functionName: sqlite3_memory_alarm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemoryAlarm
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_memory_alarm(\n  void(*xCallback)(void *pArg, sqlite3_int64
      used,int N),\n  void *pArg,\n  sqlite3_int64 iThreshold\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20792,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20795,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20797,1
    - Dst: sqlite3MemoryAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20800,1
    - Dst: sqlite3MemoryAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20802,1
    - Dst: sqlite3_memory_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20804,1
    - Dst: sqlite3_release_memory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - n
    argTypes:
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20807
      start: 20788
    functionDepth: 2
    functionLinenumber: 20788
    functionLinenumberEnd: 20807
    functionName: sqlite3_soft_heap_limit64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - sqlite3MemoryAlarm
    - sqlite3_release_memory
    - sqlite3_mutex_leave
    - sqlite3_memory_used
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_soft_heap_limit64(sqlite3_int64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20811
      start: 20808
    functionDepth: 3
    functionLinenumber: 20808
    functionLinenumberEnd: 20811
    functionName: sqlite3_soft_heap_limit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_soft_heap_limit64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_soft_heap_limit(int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemSetDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20819,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20821,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20823,1
    - Dst: ROUNDDOWN8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20829,1
    - Dst: m::xInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20852,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20853,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20855
      start: 20816
    functionDepth: 2
    functionLinenumber: 20816
    functionLinenumberEnd: 20855
    functionName: sqlite3MallocInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - m::xInit
    - sqlite3MemSetDefault
    - sqlite3MutexAlloc
    - ROUNDDOWN8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20864
      start: 20862
    functionDepth: 0
    functionLinenumber: 20862
    functionLinenumberEnd: 20864
    functionName: sqlite3HeapNearlyFull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeapNearlyFull(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m::xShutdown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20871,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20874
      start: 20869
    functionDepth: 0
    functionLinenumber: 20869
    functionLinenumberEnd: 20874
    functionName: sqlite3MallocEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - m::xShutdown
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20883
      start: 20879
    functionDepth: 2
    functionLinenumber: 20879
    functionLinenumberEnd: 20883
    functionName: sqlite3_memory_used
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_memory_used(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - resetFlag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20894
      start: 20890
    functionDepth: 2
    functionLinenumber: 20890
    functionLinenumberEnd: 20894
    functionName: sqlite3_memory_highwater
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_memory_highwater(int resetFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StatusValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20905,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20908,1
    - Dst: xCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20909,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20913
      start: 20899
    functionDepth: 1
    functionLinenumber: 20899
    functionLinenumberEnd: 20913
    functionName: sqlite3MallocAlarm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xCallback
    - sqlite3_mutex_leave
    - sqlite3StatusValue
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void sqlite3MallocAlarm(int nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20922,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20922,1
    - Dst: m::xRoundup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20923,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20924,1
    - Dst: sqlite3StatusValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20926,1
    - Dst: sqlite3MallocAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20929,1
    - Dst: m::xMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20934,1
    - Dst: sqlite3MallocAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20937,1
    - Dst: m::xMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20938,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20942,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20943,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - n
    - pp
    argTypes:
    - int
    - void**
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem0.mutex) )
      pos:
        line_end: 20921
        line_start: 20921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20948
      start: 20919
    functionDepth: 2
    functionLinenumber: 20919
    functionLinenumberEnd: 20948
    functionName: mallocWithAlarm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - m::xRoundup
    - sqlite3StatusSet
    - sqlite3StatusValue
    - sqlite3StatusUp
    - sqlite3MallocSize
    - m::xMalloc
    - sqlite3MallocAlarm
    linkageType: ''
    returnType: int
    signature: int mallocWithAlarm(int n, void **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20964,1
    - Dst: mallocWithAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20965,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20966,1
    - Dst: m::xMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20968,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20970,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(p) )
      pos:
        line_end: 20969
        line_start: 20969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20972
      start: 20954
    functionDepth: 3
    functionLinenumber: 20954
    functionLinenumberEnd: 20972
    functionName: sqlite3Malloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - assert
    - mallocWithAlarm
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3_mutex_leave
    - m::xMalloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Malloc(u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20981,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20984
      start: 20979
    functionDepth: 4
    functionLinenumber: 20979
    functionLinenumberEnd: 20984
    functionName: SQLITE_STDCALL::sqlite3_malloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_malloc(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20987,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:20989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20990
      start: 20985
    functionDepth: 4
    functionLinenumber: 20985
    functionLinenumberEnd: 20990
    functionName: SQLITE_STDCALL::sqlite3_malloc64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_malloc64(sqlite3_uint64 n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21013,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21015,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21016,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21021,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21022,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21024,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21025,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21027,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21028,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21028,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21029,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21033,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21033,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts:
    - condition: ( n>0 )
      pos:
        line_end: 21012
        line_start: 21012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( scratchAllocOut==0 )
      pos:
        line_end: 21041
        line_start: 21041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_notheld(mem0.mutex) )
      pos:
        line_end: 21032
        line_start: 21032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21047
      start: 21011
    functionDepth: 4
    functionLinenumber: 21011
    functionLinenumberEnd: 21047
    functionName: sqlite3ScratchMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_notheld
    - assert
    - sqlite3Malloc
    - sqlite3StatusSet
    - sqlite3MemdebugSetType
    - sqlite3StatusUp
    - sqlite3_mutex_leave
    - sqlite3MallocSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ScratchMalloc(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21056,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21064,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21068,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21069,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21073,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21074,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21074,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21075,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21077,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21078,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21079,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21080,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21081,1
    - Dst: m::xFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21082,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21083,1
    - Dst: m::xFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21085,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( scratchAllocOut>=1 && scratchAllocOut<=2 )
      pos:
        line_end: 21055
        line_start: 21055
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem0.nScratchFree <= (u32)sqlite3GlobalConfig.nScratch )
      pos:
        line_end: 21067
        line_start: 21067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_SCRATCH) )
      pos:
        line_end: 21072
        line_start: 21072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_SCRATCH) )
      pos:
        line_end: 21073
        line_start: 21073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21089
      start: 21048
    functionDepth: 3
    functionLinenumber: 21048
    functionLinenumberEnd: 21089
    functionName: sqlite3ScratchFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - m::xFree
    - assert
    - sqlite3MemdebugSetType
    - sqlite3MemdebugNoType
    - sqlite3StatusDown
    - sqlite3MemdebugHasType
    - sqlite3_mutex_leave
    - sqlite3MallocSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ScratchFree(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21097
      start: 21095
    functionDepth: 0
    functionLinenumber: 21095
    functionLinenumberEnd: 21097
    functionName: isLookaside
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isLookaside(sqlite3 *db, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21100
      start: 21099
    functionDepth: 0
    functionLinenumber: 21099
    functionLinenumberEnd: 21100
    functionName: isLookaside
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isLookaside(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21107,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21107,1
    - Dst: m::xSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 21106
        line_start: 21106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21109
      start: 21106
    functionDepth: 1
    functionLinenumber: 21106
    functionLinenumberEnd: 21109
    functionName: sqlite3MallocSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - m::xSize
    - assert
    - sqlite3MemdebugHasType
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocSize(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21112,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21112,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21113,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21113,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21114,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21116,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21116,1
    - Dst: isLookaside
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21117,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21120,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21121,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21121,1
    - Dst: m::xSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 21111
        line_start: 21111
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 21112
        line_start: 21112
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 21115
        line_start: 21115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 21119
        line_start: 21119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 21120
        line_start: 21120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21125
      start: 21110
    functionDepth: 2
    functionLinenumber: 21110
    functionLinenumberEnd: 21125
    functionName: sqlite3DbMallocSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - isLookaside
    - sqlite3MemdebugNoType
    - sqlite3MemdebugHasType
    - sqlite3MallocSize
    - m::xSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbMallocSize(sqlite3 *db, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21127,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21127,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21128,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21128,1
    - Dst: m::xSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 21126
        line_start: 21126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 21127
        line_start: 21127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21130
      start: 21126
    functionDepth: 1
    functionLinenumber: 21126
    functionLinenumberEnd: 21130
    functionName: sqlite3_msize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemdebugNoType
    - m::xSize
    - assert
    - sqlite3MemdebugHasType
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_msize(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21137,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21137,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21138,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21138,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21140,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21141,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21141,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21142,1
    - Dst: m::xFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21143,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21144,1
    - Dst: m::xFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 21136
        line_start: 21136
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 21137
        line_start: 21137
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21148
      start: 21135
    functionDepth: 2
    functionLinenumber: 21135
    functionLinenumberEnd: 21148
    functionName: sqlite3_free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3_mutex_enter
    - m::xFree
    - assert
    - sqlite3MemdebugNoType
    - sqlite3StatusDown
    - sqlite3MemdebugHasType
    - sqlite3_mutex_leave
    - sqlite3MallocSize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_free(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21156
      start: 21154
    functionDepth: 3
    functionLinenumber: 21154
    functionLinenumberEnd: 21156
    functionName: measureAllocationSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocSize
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE measureAllocationSize(sqlite3 *db, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21163,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21163,1
    - Dst: measureAllocationSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21167,1
    - Dst: isLookaside
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21170,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21174,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21182,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21182,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21183,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21183,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21184,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21184,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21185,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( db==0 || sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 21162
        line_start: 21162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 21181
        line_start: 21181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 21182
        line_start: 21182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db!=0 || sqlite3MemdebugNoType(p, MEMTYPE_LOOKASIDE) )
      pos:
        line_end: 21183
        line_start: 21183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21187
      start: 21162
    functionDepth: 4
    functionLinenumber: 21162
    functionLinenumberEnd: 21187
    functionName: sqlite3DbFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - assert
    - sqlite3_free
    - sqlite3MemdebugSetType
    - measureAllocationSize
    - isLookaside
    - sqlite3MemdebugNoType
    - sqlite3MemdebugHasType
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbFree(sqlite3 *db, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21195,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21196,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21196,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21198,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21201,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21208,1
    - Dst: m::xRoundup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21212,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21216,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21217,1
    - Dst: sqlite3StatusValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21219,1
    - Dst: sqlite3MallocAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21221,1
    - Dst: m::xRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21223,1
    - Dst: sqlite3MallocAlarm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21225,1
    - Dst: m::xRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21226,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21229,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21230,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21232,1
    - Dst: m::xRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21236,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - pOld
    - nBytes
    argTypes:
    - void*
    - u64
    assertStmts:
    - condition: ( sqlite3MemdebugNoType(pOld, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 21195
        line_start: 21195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pNew) )
      pos:
        line_end: 21235
        line_start: 21235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(pOld, MEMTYPE_HEAP) )
      pos:
        line_end: 21194
        line_start: 21194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21238
      start: 21192
    functionDepth: 4
    functionLinenumber: 21192
    functionLinenumberEnd: 21238
    functionName: sqlite3Realloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_free
    - assert
    - sqlite3Malloc
    - m::xRoundup
    - sqlite3StatusSet
    - sqlite3MemdebugNoType
    - sqlite3StatusValue
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3StatusUp
    - sqlite3MemdebugHasType
    - m::xRealloc
    - sqlite3MallocSize
    - sqlite3MallocAlarm
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Realloc(void *pOld, u64 nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21246,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pOld
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21250
      start: 21244
    functionDepth: 5
    functionLinenumber: 21244
    functionLinenumberEnd: 21250
    functionName: SQLITE_STDCALL::sqlite3_realloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3Realloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_realloc(void *pOld, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21253,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pOld
    - n
    argTypes:
    - void*
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21256
      start: 21251
    functionDepth: 5
    functionLinenumber: 21251
    functionLinenumberEnd: 21256
    functionName: SQLITE_STDCALL::sqlite3_realloc64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3Realloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_realloc64(void *pOld, sqlite3_uint64
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21263,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21268
      start: 21262
    functionDepth: 4
    functionLinenumber: 21262
    functionLinenumberEnd: 21268
    functionName: sqlite3MallocZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3Malloc
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3MallocZero(u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21275,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21280
      start: 21274
    functionDepth: 1
    functionLinenumber: 21274
    functionLinenumberEnd: 21280
    functionName: sqlite3DbMallocZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbMallocZero(sqlite3 *db, u64 n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21302,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21302,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21303,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21331,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21335,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts:
    - condition: ( db==0 || sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 21301
        line_start: 21301
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db==0 || db->pnBytesFreed==0 )
      pos:
        line_end: 21302
        line_start: 21302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21338
      start: 21300
    functionDepth: 4
    functionLinenumber: 21300
    functionLinenumberEnd: 21338
    functionName: sqlite3DbMallocRaw
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3Malloc
    - sqlite3MemdebugSetType
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbMallocRaw(sqlite3 *db, u64 n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21346,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21347,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21347,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21350,1
    - Dst: isLookaside
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21352,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21356,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21358,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21359,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21362,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21362,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21363,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21363,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21364,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21365,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - void*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 21345
        line_start: 21345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 21346
        line_start: 21346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 21361
        line_start: 21361
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 21362
        line_start: 21362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21374
      start: 21344
    functionDepth: 5
    functionLinenumber: 21344
    functionLinenumberEnd: 21374
    functionName: sqlite3DbRealloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3MemdebugSetType
    - sqlite3_realloc64
    - memcpy
    - isLookaside
    - sqlite3MemdebugNoType
    - sqlite3MemdebugHasType
    - sqlite3DbFree
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbRealloc(sqlite3 *db, void *p, u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21382,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - void*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21387
      start: 21380
    functionDepth: 6
    functionLinenumber: 21380
    functionLinenumberEnd: 21387
    functionName: sqlite3DbReallocOrFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbRealloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbReallocOrFree(sqlite3 *db, void *p, u64 n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21402,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21403,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21404,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - z
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( (n&0x7fffffff)==n )
      pos:
        line_end: 21402
        line_start: 21402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21409
      start: 21396
    functionDepth: 5
    functionLinenumber: 21396
    functionLinenumberEnd: 21409
    functionName: sqlite3DbStrDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Strlen30
    - assert
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbStrDup(sqlite3 *db, const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21415,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21416,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - db
    - z
    - n
    argTypes:
    - sqlite3*
    - char*
    - u64
    assertStmts:
    - condition: ( (n&0x7fffffff)==n )
      pos:
        line_end: 21414
        line_start: 21414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21422
      start: 21410
    functionDepth: 5
    functionLinenumber: 21410
    functionLinenumberEnd: 21422
    functionName: sqlite3DbStrNDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbStrNDup(sqlite3 *db, const char *z, u64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21428,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pz
    - db
    - zNew
    argTypes:
    - char**
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21430
      start: 21427
    functionDepth: 6
    functionLinenumber: 21427
    functionLinenumberEnd: 21430
    functionName: sqlite3SetString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbStrDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SetString(char **pz, sqlite3 *db, const char
      *zNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21439
      start: 21435
    functionDepth: 1
    functionLinenumber: 21435
    functionLinenumberEnd: 21439
    functionName: apiOomError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Error
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE apiOomError(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21458,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21459,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21459,1
    - Dst: apiOomError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - db
    - rc
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 21457
        line_start: 21457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 21458
        line_start: 21458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21464
      start: 21453
    functionDepth: 2
    functionLinenumber: 21453
    functionLinenumberEnd: 21464
    functionName: sqlite3ApiExit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - apiOomError
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ApiExit(sqlite3* db, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - val
    - cnt
    argTypes:
    - LONGDOUBLE_TYPE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21598
      start: 21588
    functionDepth: 0
    functionLinenumber: 21588
    functionLinenumberEnd: 21598
    functionName: et_getdigit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - eError
    argTypes:
    - StrAccum*
    - u8
    assertStmts:
    - condition: ( eError==STRACCUM_NOMEM || eError==STRACCUM_TOOBIG )
      pos:
        line_end: 21604
        line_start: 21604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21608
      start: 21604
    functionDepth: 0
    functionLinenumber: 21604
    functionLinenumberEnd: 21608
    functionName: setStrAccumError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void setStrAccumError(StrAccum *p, u8 eError)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21616
      start: 21613
    functionDepth: 1
    functionLinenumber: 21613
    functionLinenumberEnd: 21616
    functionName: getIntArg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 getIntArg(PrintfArguments *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21620
      start: 21617
    functionDepth: 1
    functionLinenumber: 21617
    functionLinenumberEnd: 21620
    functionName: getDoubleArg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: double
    signature: double getDoubleArg(PrintfArguments *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21624
      start: 21621
    functionDepth: 0
    functionLinenumber: 21621
    functionLinenumberEnd: 21624
    functionName: getTextArg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    linkageType: ''
    returnType: char
    signature: char *getTextArg(PrintfArguments *p)
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21683,1
    - Dst: strchrnul
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21693,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21697,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21701,1
    - Dst: getIntArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21722,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21724,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21737,1
    - Dst: getIntArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21746,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21748,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21760,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21782,1
    - Dst: getIntArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21825,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21827,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21829,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21831,1
    - Dst: getIntArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21848,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21850,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21852,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21854,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21867,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21869,1
    - Dst: getDoubleArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21908,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21910,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21925,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21930,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21952,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21981,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21983,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21983,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:21985,1
    - Dst: et_getdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22001,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22011,1
    - Dst: et_getdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22016,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22021,1
    - Dst: getTextArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22080,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22083,1
    - Dst: sqlite3AppendChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22088,1
    - Dst: sqlite3AppendChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22091,1
    - Dst: getTextArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22100,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22102,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22112,1
    - Dst: getTextArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22125,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22127,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22138,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22140,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22163,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22165,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22171,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22172,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22174,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22175,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22177,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22178,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22185,1
    - Dst: sqlite3AppendChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22195,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22196,1
    - Dst: sqlite3AppendChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22197,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22200,1
    CyclomaticComplexity: 159
    EdgeCount: 159
    ICount: 502
    argCount: 4
    argNames:
    - pAccum
    - bFlags
    - fmt
    - ap
    argTypes:
    - StrAccum*
    - u32
    - char*
    - va_list
    assertStmts:
    - condition: ( bufpt>zOut )
      pos:
        line_end: 22020
        line_start: 22020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bArgList==0 )
      pos:
        line_end: 22162
        line_start: 22162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bArgList==0 )
      pos:
        line_end: 22173
        line_start: 22173
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( precision>0 )
      pos:
        line_end: 22010
        line_start: 22010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( k>=0 && k<pSrc->nSrc )
      pos:
        line_end: 22174
        line_start: 22174
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xtype==etINVALID )
      pos:
        line_end: 22184
        line_start: 22184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22204
      start: 21639
    functionDepth: 4
    functionLinenumber: 21639
    functionLinenumberEnd: 22204
    functionName: sqlite3VXPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNaN
    - va_arg
    - sqlite3StrAccumAppend
    - sqlite3AppendChar
    - assert
    - MAX
    - et_getdigit
    - sqlite3Malloc
    - sqlite3_free
    - sqlite3StrAccumAppendAll
    - ArraySize
    - strchrnul
    - getDoubleArg
    - setStrAccumError
    - sqlite3Strlen30
    - getTextArg
    - testcase
    - getIntArg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VXPrintf(\n  StrAccum *pAccum,          /* Accumulate
      results here */\n  u32 bFlags,                /* SQLITE_PRINTF_* flags */\n
      \ const char *fmt,           /* Format string */\n  va_list ap                 /*
      arguments */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22215,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22217,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22218,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22223,1
    - Dst: sqlite3StrAccumReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22235,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22236,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22242,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22247,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22248,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22250,1
    - Dst: sqlite3StrAccumReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22252,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - StrAccum*
    - int
    assertStmts:
    - condition: ( p->nChar+(i64)N >= p->nAlloc )
      pos:
        line_end: 22214
        line_start: 22214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zText!=0 || p->nChar==0 )
      pos:
        line_end: 22246
        line_start: 22246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22258
      start: 22213
    functionDepth: 6
    functionLinenumber: 22213
    functionLinenumberEnd: 22258
    functionName: sqlite3StrAccumEnlarge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumReset
    - assert
    - sqlite3DbMallocSize
    - sqlite3DbRealloc
    - sqlite3_realloc64
    - memcpy
    - setStrAccumError
    - testcase
    linkageType: ''
    returnType: int
    signature: int sqlite3StrAccumEnlarge(StrAccum *p, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22264,1
    - Dst: sqlite3StrAccumEnlarge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - p
    - N
    - c
    argTypes:
    - StrAccum*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22269
      start: 22263
    functionDepth: 7
    functionLinenumber: 22263
    functionLinenumberEnd: 22269
    functionName: sqlite3AppendChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrAccumEnlarge
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AppendChar(StrAccum *p, int N, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumEnlarge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22280,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - z
    - N
    argTypes:
    - StrAccum*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22285
      start: 22279
    functionDepth: 7
    functionLinenumber: 22279
    functionLinenumberEnd: 22285
    functionName: SQLITE_NOINLINE::enlargeAndAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumEnlarge
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE enlargeAndAppend(StrAccum *p, const char *z, int
      N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22292,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22293,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22295,1
    - Dst: enlargeAndAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22297,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22299,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - p
    - z
    - N
    argTypes:
    - StrAccum*
    - char*
    - int
    assertStmts:
    - condition: ( z!=0 || N==0 )
      pos:
        line_end: 22291
        line_start: 22291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zText!=0 || p->nChar==0 || p->accError )
      pos:
        line_end: 22292
        line_start: 22292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->accError==0 || p->nAlloc==0 )
      pos:
        line_end: 22294
        line_start: 22294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( N>=0 )
      pos:
        line_end: 22293
        line_start: 22293
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zText )
      pos:
        line_end: 22298
        line_start: 22298
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22303
      start: 22291
    functionDepth: 0
    functionLinenumber: 22291
    functionLinenumberEnd: 22303
    functionName: sqlite3StrAccumAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - enlargeAndAppend
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrAccumAppend(StrAccum *p, const char *z, int
      N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22309,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - z
    argTypes:
    - StrAccum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22310
      start: 22308
    functionDepth: 1
    functionLinenumber: 22308
    functionLinenumberEnd: 22310
    functionName: sqlite3StrAccumAppendAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Strlen30
    - sqlite3StrAccumAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrAccumAppendAll(StrAccum *p, const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22322,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22324,1
    - Dst: setStrAccumError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - StrAccum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22331
      start: 22318
    functionDepth: 5
    functionLinenumber: 22318
    functionLinenumberEnd: 22331
    functionName: sqlite3StrAccumFinish
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - setStrAccumError
    - memcpy
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3StrAccumFinish(StrAccum *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - StrAccum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22341
      start: 22336
    functionDepth: 5
    functionLinenumber: 22336
    functionLinenumberEnd: 22341
    functionName: sqlite3StrAccumReset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrAccumReset(StrAccum *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - p
    - db
    - zBase
    - n
    - mx
    argTypes:
    - StrAccum*
    - sqlite3*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22364
      start: 22357
    functionDepth: 0
    functionLinenumber: 22357
    functionLinenumberEnd: 22364
    functionName: sqlite3StrAccumInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrAccumInit(StrAccum *p, sqlite3 *db, char *zBase,
      int n, int mx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22374,1
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22375,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22377,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zFormat
    - ap
    argTypes:
    - sqlite3*
    - char*
    - va_list
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 22373
        line_start: 22373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22383
      start: 22370
    functionDepth: 6
    functionLinenumber: 22370
    functionLinenumberEnd: 22383
    functionName: sqlite3VMPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - assert
    - sqlite3VXPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VMPrintf(sqlite3 *db, const char *zFormat, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22392,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22393,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - db
    - zFormat
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22396
      start: 22389
    functionDepth: 7
    functionLinenumber: 22389
    functionLinenumberEnd: 22396
    functionName: sqlite3MPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3MPrintf(sqlite3 *db, const char *zFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22414,1
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22416,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22417,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - zFormat
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22420
      start: 22402
    functionDepth: 6
    functionLinenumber: 22402
    functionLinenumberEnd: 22420
    functionName: SQLITE_STDCALL::sqlite3_vmprintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - sqlite3VXPrintf
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_vmprintf(const char *zFormat, va_list
      ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22430,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22432,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22433,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - zFormat
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22436
      start: 22426
    functionDepth: 1
    functionLinenumber: 22426
    functionLinenumberEnd: 22436
    functionName: SQLITE_CDECL::sqlite3_mprintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - va_end
    - va_start
    - sqlite3_vmprintf
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_CDECL sqlite3_mprintf(const char *zFormat, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22461,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22462,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - n
    - zBuf
    - zFormat
    - ap
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22464
      start: 22451
    functionDepth: 6
    functionLinenumber: 22451
    functionLinenumberEnd: 22464
    functionName: SQLITE_STDCALL::sqlite3_vsnprintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - sqlite3VXPrintf
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_vsnprintf(int n, char *zBuf, const
      char *zFormat, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22468,1
    - Dst: sqlite3_vsnprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22469,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - n
    - zBuf
    - zFormat
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22472
      start: 22465
    functionDepth: 0
    functionLinenumber: 22465
    functionLinenumberEnd: 22472
    functionName: SQLITE_CDECL::sqlite3_snprintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3_vsnprintf
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_CDECL sqlite3_snprintf(int n, char *zBuf, const
      char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22492,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22493,1
    - Dst: xLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22494,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - iErrCode
    - zFormat
    - ap
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22496
      start: 22488
    functionDepth: 6
    functionLinenumber: 22488
    functionLinenumberEnd: 22496
    functionName: renderLogMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - xLog
    - sqlite3StrAccumFinish
    - sqlite3VXPrintf
    linkageType: ''
    returnType: void
    signature: void renderLogMsg(int iErrCode, const char *zFormat, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22504,1
    - Dst: renderLogMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22505,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iErrCode
    - zFormat
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22508
      start: 22501
    functionDepth: 7
    functionLinenumber: 22501
    functionLinenumberEnd: 22508
    functionName: sqlite3_log
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - renderLogMsg
    - va_end
    - va_start
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_log(int iErrCode, const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22520,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22521,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22522,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22523,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22524,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22525,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - zFormat
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22527
      start: 22516
    functionDepth: 6
    functionLinenumber: 22516
    functionLinenumberEnd: 22527
    functionName: sqlite3DebugPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fflush
    - sqlite3StrAccumInit
    - fprintf
    - va_start
    - va_end
    - sqlite3StrAccumFinish
    - sqlite3VXPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DebugPrintf(const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22536,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22537,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - bFlags
    - zFormat
    argTypes:
    - StrAccum*
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22539
      start: 22534
    functionDepth: 5
    functionLinenumber: 22534
    functionLinenumberEnd: 22539
    functionName: sqlite3XPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3VXPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3XPrintf(StrAccum *p, u32 bFlags, const char *zFormat,
      ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22571,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - moreToFollow
    argTypes:
    - TreeView*
    - u8
    assertStmts:
    - condition: ( moreToFollow==0 || moreToFollow==1 )
      pos:
        line_end: 22576
        line_start: 22576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22580
      start: 22569
    functionDepth: 0
    functionLinenumber: 22569
    functionLinenumberEnd: 22580
    functionName: sqlite3TreeViewPush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - memset
    - assert
    linkageType: ''
    returnType: TreeView
    signature: TreeView *sqlite3TreeViewPush(TreeView *p, u8 moreToFollow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - TreeView*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22589
      start: 22585
    functionDepth: 3
    functionLinenumber: 22585
    functionLinenumberEnd: 22589
    functionName: sqlite3TreeViewPop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewPop(TreeView *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22600,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22603,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22605,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22607,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22608,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22609,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22610,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22611,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22612,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - TreeView*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22614
      start: 22595
    functionDepth: 6
    functionLinenumber: 22595
    functionLinenumberEnd: 22614
    functionName: sqlite3TreeViewLine
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumAppend
    - fflush
    - sqlite3StrAccumInit
    - fprintf
    - va_start
    - va_end
    - sqlite3StrAccumFinish
    - sqlite3VXPrintf
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewLine(TreeView *p, const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22620,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - zLabel
    - moreFollows
    argTypes:
    - TreeView*
    - char*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22622
      start: 22619
    functionDepth: 7
    functionLinenumber: 22619
    functionLinenumberEnd: 22622
    functionName: sqlite3TreeViewItem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewLine
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewItem(TreeView *p, const char *zLabel,u8 moreFollows)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22630,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22631,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22643,1
    - Dst: sqlite3TreeViewPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22646,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22647,1
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22652,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22653,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22655,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22657,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22660,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22663,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22666,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22668,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22669,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22671,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22673,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22675,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22678,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22679,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22680,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22683,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22686,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22687,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22688,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22691,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22694,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22695,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22696,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22699,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22700,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22701,1
    - Dst: sqlite3TreeViewItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22710,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22711,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22712,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22714,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 3
    argNames:
    - pView
    - p
    - moreToFollow
    argTypes:
    - TreeView*
    - Select*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22715
      start: 22628
    functionDepth: 8
    functionLinenumber: 22628
    functionLinenumberEnd: 22715
    functionName: sqlite3TreeViewSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TreeViewSelect
    - sqlite3TreeViewItem
    - sqlite3StrAccumInit
    - sqlite3TreeViewExprList
    - sqlite3StrAccumFinish
    - sqlite3TreeViewPush
    - sqlite3TreeViewExpr
    - sqlite3TreeViewPop
    - sqlite3XPrintf
    - sqlite3TreeViewLine
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewSelect(TreeView *pView, const Select
      *p, u8 moreToFollow)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22724,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22726,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22727,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22731,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22737,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22744,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22746,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22753,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22755,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22761,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22766,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22770,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22775,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22780,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22785,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22789,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22790,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22794,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22800,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22801,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22835,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22836,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22843,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22849,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22852,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22855,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22861,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22862,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22866,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22867,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22871,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22872,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22873,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22874,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22876,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22897,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22898,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22899,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22900,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22911,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22916,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22917,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22918,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22930,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22935,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22940,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22941,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22942,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22944,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22945,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22947,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 244
    argCount: 3
    argNames:
    - pView
    - pExpr
    - moreToFollow
    argTypes:
    - TreeView*
    - Expr*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22948
      start: 22720
    functionDepth: 9
    functionLinenumber: 22720
    functionLinenumberEnd: 22948
    functionName: sqlite3TreeViewExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3TreeViewSelect
    - ExprHasProperty
    - sqlite3TreeViewExprList
    - sqlite3TreeViewPush
    - sqlite3TreeViewExpr
    - sqlite3TreeViewLine
    - sqlite3TreeViewPop
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr,
      u8 moreToFollow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22960,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22963,1
    - Dst: sqlite3TreeViewLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22965,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22967,1
    - Dst: sqlite3TreeViewPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:22970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pView
    - pList
    - moreToFollow
    - zLabel
    argTypes:
    - TreeView*
    - ExprList*
    - u8
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22971
      start: 22953
    functionDepth: 10
    functionLinenumber: 22953
    functionLinenumberEnd: 22971
    functionName: sqlite3TreeViewExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3TreeViewPop
    - sqlite3TreeViewPush
    - sqlite3TreeViewExpr
    - sqlite3TreeViewLine
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TreeViewExprList(\n  TreeView *pView,\n  const
      ExprList *pList,\n  u8 moreToFollow,\n  const char *zLabel\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23004
      start: 23000
    functionDepth: 0
    functionLinenumber: 23000
    functionLinenumberEnd: 23004
    functionName: sqlite3PrngType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3PrngType
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23020,1
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23031,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23035,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23038,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23041,1
    - Dst: sqlite3OsRandomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23059,1
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23059,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23072,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23082,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - N
    - pBuf
    argTypes:
    - int
    - void*
    assertStmts:
    - condition: ( N>0 )
      pos:
        line_end: 23071
        line_start: 23071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23083
      start: 23009
    functionDepth: 2
    functionLinenumber: 23009
    functionLinenumberEnd: 23083
    functionName: sqlite3_randomness
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - assert
    - sqlite3MutexAlloc
    - sqlite3_vfs_find
    - GLOBAL
    - sqlite3OsRandomness
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_randomness(int N, void *pBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23102
      start: 23096
    functionDepth: 0
    functionLinenumber: 23096
    functionLinenumberEnd: 23102
    functionName: sqlite3PrngSaveState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PrngSaveState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23109
      start: 23103
    functionDepth: 0
    functionLinenumber: 23103
    functionLinenumberEnd: 23109
    functionName: sqlite3PrngRestoreState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PrngRestoreState(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23172,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23173,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23175,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23178,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23180,1
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23183,1
    - Dst: pthread_create
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23186,1
    - Dst: xTask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 23171
        line_start: 23171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 23172
        line_start: 23172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3GlobalConfig.bCoreMutex!=0 )
      pos:
        line_end: 23174
        line_start: 23174
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23194
      start: 23164
    functionDepth: 4
    functionLinenumber: 23164
    functionLinenumberEnd: 23194
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3Malloc
    - sqlite3FaultSim
    - xTask
    - pthread_create
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23200,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23201,1
    - Dst: pthread_join
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23206,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 23199
        line_start: 23199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23210
      start: 23197
    functionDepth: 3
    functionLinenumber: 23197
    functionLinenumberEnd: 23210
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - pthread_join
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23245,1
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23247,1
    - Dst: SQLiteThread*::xTask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23248,1
    - Dst: _endthreadex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 23236
        line_start: 23236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->xTask!=0 )
      pos:
        line_end: 23246
        line_start: 23246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->id==GetCurrentThreadId() )
      pos:
        line_end: 23244
        line_start: 23244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23252
      start: 23232
    functionDepth: 0
    functionLinenumber: 23232
    functionLinenumberEnd: 23252
    functionName: sqlite3ThreadProc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    - SQLiteThread*::xTask
    - _endthreadex
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned sqlite3ThreadProc(\n  void *pArg  /* IN: Pointer to the SQLiteThread
      structure */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23262,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23263,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23265,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23268,1
    - Dst: _beginthreadex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23272,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23274,1
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23278,1
    - Dst: xTask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 23261
        line_start: 23261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 23262
        line_start: 23262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23283
      start: 23255
    functionDepth: 4
    functionLinenumber: 23255
    functionLinenumberEnd: 23283
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3Malloc
    - xTask
    - _beginthreadex
    - GetCurrentThreadId
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23292,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23293,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23295,1
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23297,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23299,1
    - Dst: GetCurrentThreadId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23299,1
    - Dst: sqlite3Win32Wait
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23300,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23301,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23302,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23303,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 23291
        line_start: 23291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->id==GetCurrentThreadId() )
      pos:
        line_end: 23294
        line_start: 23294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->tid==0 )
      pos:
        line_end: 23296
        line_start: 23296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->id!=0 && p->id!=GetCurrentThreadId() )
      pos:
        line_end: 23298
        line_start: 23298
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=WAIT_IO_COMPLETION )
      pos:
        line_end: 23300
        line_start: 23300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bRc )
      pos:
        line_end: 23302
        line_start: 23302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23308
      start: 23288
    functionDepth: 3
    functionLinenumber: 23288
    functionLinenumberEnd: 23308
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - sqlite3Win32Wait
    - sqlite3_free
    - GetCurrentThreadId
    - CloseHandle
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23337,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23338,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23340,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23342,1
    - Dst: xTask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 23336
        line_start: 23336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 23337
        line_start: 23337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23351
      start: 23330
    functionDepth: 4
    functionLinenumber: 23330
    functionLinenumberEnd: 23351
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xTask
    - sqlite3Malloc
    - SQLITE_PTR_TO_INT
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23356,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23357,1
    - Dst: SQLiteThread*::xTask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23359,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23363,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23367,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 23355
        line_start: 23355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23374
      start: 23354
    functionDepth: 4
    functionLinenumber: 23354
    functionLinenumberEnd: 23374
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3_free
    - assert
    - sqlite3Malloc
    - SQLiteThread*::xTask
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23464
      start: 23445
    functionDepth: 0
    functionLinenumber: 23445
    functionLinenumberEnd: 23464
    functionName: WRITE_UTF8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF8(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23476
      start: 23465
    functionDepth: 0
    functionLinenumber: 23465
    functionLinenumberEnd: 23476
    functionName: WRITE_UTF16LE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF16LE(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23488
      start: 23477
    functionDepth: 0
    functionLinenumber: 23477
    functionLinenumberEnd: 23488
    functionName: WRITE_UTF16BE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF16BE(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - TERM
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23498
      start: 23489
    functionDepth: 0
    functionLinenumber: 23489
    functionLinenumberEnd: 23498
    functionName: READ_UTF16LE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF16LE(zIn, TERM, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - TERM
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23508
      start: 23499
    functionDepth: 0
    functionLinenumber: 23499
    functionLinenumberEnd: 23508
    functionName: READ_UTF16BE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF16BE(zIn, TERM, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - zTerm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23547
      start: 23536
    functionDepth: 0
    functionLinenumber: 23536
    functionLinenumberEnd: 23547
    functionName: READ_UTF8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF8(zIn, zTerm, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pz
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23566
      start: 23547
    functionDepth: 0
    functionLinenumber: 23547
    functionLinenumberEnd: 23566
    functionName: sqlite3Utf8Read
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Utf8Read(\n  const unsigned char **pz    /*
      Pointer to string from which to read char */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23591,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23592,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23593,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23594,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23595,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23600,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23601,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23614,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23655,1
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23665,1
    - Dst: WRITE_UTF16LE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23666,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23669,1
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23672,1
    - Dst: WRITE_UTF16BE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23673,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23679,1
    - Dst: READ_UTF16LE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23683,1
    - Dst: WRITE_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23684,1
    - Dst: READ_UTF16BE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23689,1
    - Dst: WRITE_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23690,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23696,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23699,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23704,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23710,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23711,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 86
    argCount: 2
    argNames:
    - pMem
    - desiredEnc
    argTypes:
    - Mem*
    - u8
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 23590
        line_start: 23590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->enc!=desiredEnc )
      pos:
        line_end: 23592
        line_start: 23592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->enc!=0 )
      pos:
        line_end: 23593
        line_start: 23593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 23594
        line_start: 23594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( desiredEnc==SQLITE_UTF16BE )
      pos:
        line_end: 23668
        line_start: 23668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len )
      pos:
        line_end: 23695
        line_start: 23695
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->flags&MEM_Str )
      pos:
        line_end: 23591
        line_start: 23591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_NOMEM )
      pos:
        line_end: 23613
        line_start: 23613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( desiredEnc==SQLITE_UTF8 )
      pos:
        line_end: 23678
        line_start: 23678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23715
      start: 23583
    functionDepth: 5
    functionLinenumber: 23583
    functionLinenumberEnd: 23715
    functionName: sqlite3VdbeMemTranslate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - WRITE_UTF16BE
    - assert
    - fprintf
    - sqlite3VdbeMemPrettyPrint
    - READ_UTF8
    - sqlite3DbMallocSize
    - WRITE_UTF8
    - WRITE_UTF16LE
    - sqlite3VdbeMemRelease
    - READ_UTF16BE
    - sqlite3VdbeMemMakeWriteable
    - READ_UTF16LE
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23730,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23743,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 23729
        line_start: 23729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23754
      start: 23726
    functionDepth: 1
    functionLinenumber: 23726
    functionLinenumberEnd: 23754
    functionName: sqlite3VdbeMemHandleBom
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemMakeWriteable
    - memmove
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemHandleBom(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23773,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - zIn
    - nByte
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( z<=zTerm )
      pos:
        line_end: 23772
        line_start: 23772
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23779
      start: 23764
    functionDepth: 1
    functionLinenumber: 23764
    functionLinenumberEnd: 23779
    functionName: sqlite3Utf8CharLen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_SKIP_UTF8
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf8CharLen(const char *zIn, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23800,1
    - Dst: WRITE_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - zIn
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23807
      start: 23794
    functionDepth: 1
    functionLinenumber: 23794
    functionLinenumberEnd: 23807
    functionName: sqlite3Utf8To8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - WRITE_UTF8
    - sqlite3Utf8Read
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf8To8(unsigned char *zIn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23820,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23822,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23823,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23828,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23829,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - db
    - z
    - nByte
    - enc
    argTypes:
    - sqlite3*
    - void*
    - int
    - u8
    assertStmts:
    - condition: ( (m.flags & MEM_Term)!=0 || db->mallocFailed )
      pos:
        line_end: 23827
        line_start: 23827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (m.flags & MEM_Str)!=0 || db->mallocFailed )
      pos:
        line_end: 23828
        line_start: 23828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( m.z || db->mallocFailed )
      pos:
        line_end: 23829
        line_start: 23829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23832
      start: 23818
    functionDepth: 1
    functionLinenumber: 23818
    functionLinenumberEnd: 23832
    functionName: sqlite3Utf16to8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeChangeEncoding
    - sqlite3VdbeMemRelease
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Utf16to8(sqlite3 *db, const void *z, int nByte,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_UTF16BE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23846,1
    - Dst: READ_UTF16LE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - zIn
    - nChar
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23856
      start: 23839
    functionDepth: 1
    functionLinenumber: 23839
    functionLinenumberEnd: 23856
    functionName: sqlite3Utf16ByteLen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - READ_UTF16BE
    - READ_UTF16LE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf16ByteLen(const void *zIn, int nChar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23873,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23875,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23883,1
    - Dst: WRITE_UTF16LE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23888,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23890,1
    - Dst: READ_UTF16LE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23893,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23894,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23895,1
    - Dst: WRITE_UTF16BE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23900,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23902,1
    - Dst: READ_UTF16BE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23905,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23906,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23907,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( c==t )
      pos:
        line_end: 23881
        line_start: 23881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 23874
        line_start: 23874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 23882
        line_start: 23882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 23889
        line_start: 23889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( c==i )
      pos:
        line_end: 23893
        line_start: 23893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 23894
        line_start: 23894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 23906
        line_start: 23906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( c==i )
      pos:
        line_end: 23905
        line_start: 23905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 23901
        line_start: 23901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23909
      start: 23864
    functionDepth: 1
    functionLinenumber: 23864
    functionLinenumberEnd: 23909
    functionName: sqlite3UtfSelfTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - WRITE_UTF8
    - WRITE_UTF16LE
    - sqlite3Utf8Read
    - READ_UTF16BE
    - WRITE_UTF16BE
    - READ_UTF16LE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UtfSelfTest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23945
      start: 23942
    functionDepth: 0
    functionLinenumber: 23942
    functionLinenumberEnd: 23945
    functionName: sqlite3Coverage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Coverage(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:23962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iTest
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23963
      start: 23960
    functionDepth: 0
    functionLinenumber: 23960
    functionLinenumberEnd: 23963
    functionName: sqlite3FaultSim
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - xCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FaultSim(int iTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24006,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24010
      start: 23973
    functionDepth: 1
    functionLinenumber: 23973
    functionLinenumberEnd: 24010
    functionName: sqlite3IsNaN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - testcase
    - isnan
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsNaN(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24024
      start: 24021
    functionDepth: 0
    functionLinenumber: 24021
    functionLinenumberEnd: 24024
    functionName: sqlite3Strlen30
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 8
    functionsReached:
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Strlen30(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24030,1
    - Dst: sqlite3ValueSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - err_code
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 24029
        line_start: 24029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24033
      start: 24029
    functionDepth: 1
    functionLinenumber: 24029
    functionLinenumberEnd: 24033
    functionName: sqlite3Error
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ValueSetNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Error(sqlite3 *db, int err_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24057,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24060,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24061,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24064,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24065,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24066,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - db
    - err_code
    - zFormat
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 24056
        line_start: 24056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24069
      start: 24056
    functionDepth: 7
    functionLinenumber: 24056
    functionLinenumberEnd: 24069
    functionName: sqlite3ErrorWithMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - va_start
    - sqlite3ValueNew
    - sqlite3Error
    - sqlite3ValueSetStr
    - sqlite3VMPrintf
    - va_end
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ErrorWithMsg(sqlite3 *db, int err_code, const
      char *zFormat, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24092,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24093,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24094,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24096,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - zFormat
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24103
      start: 24088
    functionDepth: 7
    functionLinenumber: 24088
    functionLinenumberEnd: 24103
    functionName: sqlite3ErrorMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3DbFree
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ErrorMsg(Parse *pParse, const char *zFormat,
      ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( z[i] )
      pos:
        line_end: 24134
        line_start: 24134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24149
      start: 24122
    functionDepth: 0
    functionLinenumber: 24122
    functionLinenumberEnd: 24149
    functionName: sqlite3Dequote
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Dequote(char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - zLeft
    - zRight
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24175
      start: 24164
    functionDepth: 0
    functionLinenumber: 24164
    functionLinenumberEnd: 24175
    functionName: sqlite3_stricmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stricmp(const char *zLeft, const char *zRight)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - zLeft
    - zRight
    - N
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24187
      start: 24176
    functionDepth: 0
    functionLinenumber: 24176
    functionLinenumberEnd: 24187
    functionName: sqlite3_strnicmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_strnicmp(const char *zLeft, const char *zRight,
      int N)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24226,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24234,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24242,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24257,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24264,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24272,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24277,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24294,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24303,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24374,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 133
    argCount: 4
    argNames:
    - z
    - pResult
    - length
    - enc
    argTypes:
    - char*
    - double*
    - int
    - u8
    assertStmts:
    - condition: ( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE
        )
      pos:
        line_end: 24225
        line_start: 24225
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 24233
        line_start: 24233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24376
      start: 24211
    functionDepth: 1
    functionLinenumber: 24211
    functionLinenumberEnd: 24376
    functionName: sqlite3AtoF
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Isspace
    - sqlite3Isdigit
    - sqlite3Atoi64
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AtoF(const char *z, double *pResult, int length,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24402,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24403,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - zNum
    - incr
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24407
      start: 24392
    functionDepth: 1
    functionLinenumber: 24392
    functionLinenumberEnd: 24407
    functionName: compare2pow63
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    linkageType: ''
    returnType: int
    signature: int compare2pow63(const char *zNum, int incr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24437,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24442,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24448,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24469,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24470,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24478,1
    - Dst: compare2pow63
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24482,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24485,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24493,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 4
    argNames:
    - zNum
    - pNum
    - length
    - enc
    argTypes:
    - char*
    - i64*
    - int
    - u8
    assertStmts:
    - condition: ( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE
        )
      pos:
        line_end: 24436
        line_start: 24436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 24441
        line_start: 24441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( u<=LARGEST_INT64 )
      pos:
        line_end: 24477
        line_start: 24477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( u<=LARGEST_INT64 )
      pos:
        line_end: 24484
        line_start: 24484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( u-1==LARGEST_INT64 )
      pos:
        line_end: 24492
        line_start: 24492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24497
      start: 24428
    functionDepth: 2
    functionLinenumber: 24428
    functionLinenumberEnd: 24497
    functionName: sqlite3Atoi64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Isspace
    - compare2pow63
    - testcase
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Atoi64(const char *zNum, i64 *pNum, int length,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24514,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24519,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24520,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24522,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24527,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - z
    - pOut
    argTypes:
    - char*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24529
      start: 24510
    functionDepth: 3
    functionLinenumber: 24510
    functionLinenumberEnd: 24529
    functionName: sqlite3DecOrHexToI64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isxdigit
    - sqlite3HexToInt
    - memcpy
    - sqlite3Atoi64
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DecOrHexToI64(const char *z, i64 *pOut)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24554,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24559,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24560,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24562,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24563,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24580,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24584,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - zNum
    - pValue
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24593
      start: 24541
    functionDepth: 1
    functionLinenumber: 24541
    functionLinenumberEnd: 24593
    functionName: sqlite3GetInt32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isxdigit
    - testcase
    - memcpy
    - sqlite3HexToInt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetInt32(const char *zNum, int *pValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24603
      start: 24599
    functionDepth: 2
    functionLinenumber: 24599
    functionLinenumberEnd: 24603
    functionName: sqlite3Atoi
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetInt32
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Atoi(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts:
    - condition: ( n<=9 )
      pos:
        line_end: 24651
        line_start: 24651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24657
      start: 24634
    functionDepth: 0
    functionLinenumber: 24634
    functionLinenumberEnd: 24657
    functionName: SQLITE_NOINLINE::putVarint64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE putVarint64(unsigned char *p, u64 v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: putVarint64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24669
      start: 24658
    functionDepth: 0
    functionLinenumber: 24658
    functionLinenumberEnd: 24669
    functionName: sqlite3PutVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - putVarint64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PutVarint(unsigned char *p, u64 v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24712,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 101
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64*
    assertStmts:
    - condition: ( SLOT_2_0 == ((0x7f<<14) | (0x7f)) )
      pos:
        line_end: 24711
        line_start: 24711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SLOT_4_2_0 == ((0xfU<<28) | (0x7f<<14) | (0x7f)) )
      pos:
        line_end: 24712
        line_start: 24712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24845
      start: 24688
    functionDepth: 0
    functionLinenumber: 24688
    functionLinenumberEnd: 24845
    functionName: sqlite3GetVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetVarint(const unsigned char *p, u64 *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24918,1
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24969,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24970,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u32*
    assertStmts:
    - condition: ( n>3 && n<=9 )
      pos:
        line_end: 24917
        line_start: 24917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>5 && n<=9 )
      pos:
        line_end: 24969
        line_start: 24969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24975
      start: 24858
    functionDepth: 1
    functionLinenumber: 24858
    functionLinenumberEnd: 24975
    functionName: sqlite3GetVarint32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVarint
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetVarint32(const unsigned char *p, u32 *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24988
      start: 24981
    functionDepth: 1
    functionLinenumber: 24981
    functionLinenumberEnd: 24988
    functionName: sqlite3VarintLen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VarintLen(u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:24997,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25001,1
    - Dst: __builtin_bswap32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25002,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25005,1
    - Dst: _byteswap_ulong
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25006,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25011
      start: 24994
    functionDepth: 1
    functionLinenumber: 24994
    functionLinenumberEnd: 25011
    functionName: sqlite3Get4byte
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    - testcase
    - _byteswap_ulong
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Get4byte(const u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25014,1
    - Dst: __builtin_bswap32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25016,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25017,1
    - Dst: _byteswap_ulong
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25019,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25027
      start: 25012
    functionDepth: 0
    functionLinenumber: 25012
    functionLinenumberEnd: 25027
    functionName: sqlite3Put4byte
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    - _byteswap_ulong
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Put4byte(unsigned char *p, u32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25037,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    assertStmts:
    - condition: ( (h>='0' && h<='9') ||  (h>='a' && h<='f') ||  (h>='A' && h<='F')
        )
      pos:
        line_end: 25036
        line_start: 25036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25045
      start: 25036
    functionDepth: 0
    functionLinenumber: 25036
    functionLinenumberEnd: 25045
    functionName: sqlite3HexToInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HexToInt(int h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25058,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25062,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - db
    - z
    - n
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25067
      start: 25054
    functionDepth: 5
    functionLinenumber: 25054
    functionLinenumberEnd: 25067
    functionName: sqlite3HexToBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HexToInt
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HexToBlob(sqlite3 *db, const char *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zType
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25080
      start: 25075
    functionDepth: 8
    functionLinenumber: 25075
    functionLinenumberEnd: 25080
    functionName: logBadConnection
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void logBadConnection(const char *zType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: logBadConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25099,1
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25104,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25105,1
    - Dst: logBadConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25112
      start: 25096
    functionDepth: 9
    functionLinenumber: 25096
    functionLinenumberEnd: 25112
    functionName: sqlite3SafetyCheckOk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckSickOrOk
    - testcase
    - logBadConnection
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SafetyCheckOk(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25119,1
    - Dst: logBadConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25125
      start: 25113
    functionDepth: 9
    functionLinenumber: 25113
    functionLinenumberEnd: 25125
    functionName: sqlite3SafetyCheckSickOrOk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - testcase
    - logBadConnection
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SafetyCheckSickOrOk(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25135,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25135,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25136,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25136,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25138,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25139,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25142,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25148
      start: 25133
    functionDepth: 1
    functionLinenumber: 25133
    functionLinenumberEnd: 25148
    functionName: sqlite3AddInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddInt64(i64 *pA, i64 iB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25150,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25152,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25152,1
    - Dst: sqlite3AddInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25159
      start: 25149
    functionDepth: 2
    functionLinenumber: 25149
    functionLinenumberEnd: 25159
    functionName: sqlite3SubInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AddInt64
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SubInt64(i64 *pA, i64 iB)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25182,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25183,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25184,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25185,1
    - Dst: sqlite3AddInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25191
      start: 25162
    functionDepth: 2
    functionLinenumber: 25162
    functionLinenumberEnd: 25191
    functionName: sqlite3MulInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AddInt64
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MulInt64(i64 *pA, i64 iB)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25201
      start: 25197
    functionDepth: 0
    functionLinenumber: 25197
    functionLinenumberEnd: 25201
    functionName: sqlite3AbsInt32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AbsInt32(int x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25223,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25227,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25229,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - zBaseFilename
    - z
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25231
      start: 25221
    functionDepth: 1
    functionLinenumber: 25221
    functionLinenumberEnd: 25231
    functionName: sqlite3FileSuffix3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3Strlen30
    - memmove
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FileSuffix3(const char *zBaseFilename, char *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - LogEst
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25261
      start: 25240
    functionDepth: 0
    functionLinenumber: 25240
    functionLinenumberEnd: 25261
    functionName: sqlite3LogEstAdd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstAdd(LogEst a, LogEst b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25278
      start: 25267
    functionDepth: 0
    functionLinenumber: 25267
    functionLinenumberEnd: 25278
    functionName: sqlite3LogEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEst(u64 x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25288,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25290,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: ( sizeof(x)==8 && sizeof(a)==8 )
      pos:
        line_end: 25287
        line_start: 25287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25294
      start: 25285
    functionDepth: 1
    functionLinenumber: 25285
    functionLinenumberEnd: 25294
    functionName: sqlite3LogEstFromDouble
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3LogEst
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstFromDouble(double x)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25311
      start: 25300
    functionDepth: 0
    functionLinenumber: 25300
    functionLinenumberEnd: 25311
    functionName: sqlite3LogEstToInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstToInt(LogEst x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pNew
    argTypes:
    - Hash*
    assertStmts:
    - condition: ( pNew!=0 )
      pos:
        line_end: 25337
        line_start: 25337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25343
      start: 25337
    functionDepth: 0
    functionLinenumber: 25337
    functionLinenumberEnd: 25343
    functionName: sqlite3HashInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HashInit(Hash *pNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25352,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25355,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pH
    argTypes:
    - Hash*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 25351
        line_start: 25351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25364
      start: 25349
    functionDepth: 3
    functionLinenumber: 25349
    functionLinenumberEnd: 25364
    functionName: sqlite3HashClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HashClear(Hash *pH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25376
      start: 25369
    functionDepth: 0
    functionLinenumber: 25369
    functionLinenumberEnd: 25376
    functionName: strHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strHash(const char *z)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - pH
    - pEntry
    - pNew
    argTypes:
    - Hash*
    - struct _ht*
    - HashElem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25407
      start: 25382
    functionDepth: 0
    functionLinenumber: 25382
    functionLinenumberEnd: 25407
    functionName: insertElement
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void insertElement(\n  Hash *pH,              /* The complete hash
      table */\n  struct _ht *pEntry,    /* The entry into which pNew is inserted
      */\n  HashElem *pNew         /* The element to be inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25435,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25436,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25437,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25440,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25442,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25443,1
    - Dst: strHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25445,1
    - Dst: insertElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pH
    - new_size
    argTypes:
    - Hash*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25450
      start: 25416
    functionDepth: 4
    functionLinenumber: 25416
    functionLinenumberEnd: 25450
    functionName: rehash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strHash
    - memset
    - sqlite3_free
    - sqlite3BeginBenignMalloc
    - sqlite3Malloc
    - sqlite3EndBenignMalloc
    - insertElement
    - sqlite3MallocSize
    linkageType: ''
    returnType: int
    signature: int rehash(Hash *pH, unsigned int new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25467,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25478,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - pH
    - pKey
    - pHash
    argTypes:
    - Hash*
    - char*
    - unsigned int*
    assertStmts:
    - condition: ( elem!=0 )
      pos:
        line_end: 25477
        line_start: 25477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25485
      start: 25456
    functionDepth: 1
    functionLinenumber: 25456
    functionLinenumberEnd: 25485
    functionName: findElementWithHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strHash
    - sqlite3StrICmp
    - assert
    linkageType: ''
    returnType: HashElem
    signature: "HashElem *findElementWithHash(\n  const Hash *pH,     /* The pH to
      be searched */\n  const char *pKey,   /* The key we are searching for */\n  unsigned
      int *pHash /* Write the hash value here */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25510,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25512,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25515,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25516,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - pH
    - elem
    - h
    argTypes:
    - Hash*
    - HashElem*
    - unsigned int
    assertStmts:
    - condition: ( pEntry->count>=0 )
      pos:
        line_end: 25509
        line_start: 25509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->first==0 )
      pos:
        line_end: 25514
        line_start: 25514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->count==0 )
      pos:
        line_end: 25515
        line_start: 25515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25519
      start: 25490
    functionDepth: 4
    functionLinenumber: 25490
    functionLinenumberEnd: 25519
    functionName: removeElementGivenHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    - sqlite3HashClear
    linkageType: ''
    returnType: void
    signature: "void removeElementGivenHash(\n  Hash *pH,         /* The pH containing
      \"elem\" */\n  HashElem* elem,   /* The element to be removed from the pH */\n
      \ unsigned int h    /* Hash value for the element */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25529,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25530,1
    - Dst: findElementWithHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pH
    - pKey
    argTypes:
    - Hash*
    - char*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 25528
        line_start: 25528
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKey!=0 )
      pos:
        line_end: 25529
        line_start: 25529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25533
      start: 25525
    functionDepth: 2
    functionLinenumber: 25525
    functionLinenumberEnd: 25533
    functionName: sqlite3HashFind
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - findElementWithHash
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HashFind(const Hash *pH, const char *pKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25554,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25555,1
    - Dst: findElementWithHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25556,1
    - Dst: removeElementGivenHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25560,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25568,1
    - Dst: rehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25574,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25575,1
    - Dst: strHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25576,1
    - Dst: insertElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - pH
    - pKey
    - data
    argTypes:
    - Hash*
    - char*
    - void*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 25553
        line_start: 25553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKey!=0 )
      pos:
        line_end: 25554
        line_start: 25554
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 25574
        line_start: 25574
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25581
      start: 25549
    functionDepth: 5
    functionLinenumber: 25549
    functionLinenumberEnd: 25581
    functionName: sqlite3HashInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rehash
    - strHash
    - assert
    - sqlite3Malloc
    - insertElement
    - removeElementGivenHash
    - findElementWithHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HashInsert(Hash *pH, const char *pKey, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25590
      start: 25589
    functionDepth: 0
    functionLinenumber: 25589
    functionLinenumberEnd: 25590
    functionName: OpHelp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpHelp(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25595,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25596,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25597,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25598,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25599,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25600,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25601,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25602,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25603,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25604,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25605,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25606,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25607,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25608,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25609,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25610,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25611,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25612,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25613,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25614,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25615,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25616,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25617,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25618,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25619,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25620,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25621,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25622,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25623,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25624,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25625,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25626,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25627,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25628,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25629,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25630,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25631,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25632,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25633,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25634,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25635,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25636,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25637,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25638,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25639,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25640,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25641,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25642,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25643,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25644,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25645,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25646,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25647,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25648,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25649,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25650,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25651,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25652,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25653,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25654,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25655,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25656,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25657,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25658,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25659,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25660,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25661,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25662,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25663,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25664,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25665,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25666,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25667,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25668,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25669,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25670,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25671,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25672,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25673,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25674,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25675,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25676,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25677,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25678,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25679,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25680,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25681,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25682,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25683,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25684,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25685,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25686,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25687,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25688,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25689,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25690,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25691,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25692,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25693,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25694,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25695,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25696,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25697,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25698,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25699,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25700,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25701,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25702,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25703,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25704,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25705,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25706,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25707,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25708,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25709,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25710,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25711,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25712,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25713,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25714,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25715,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25716,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25717,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25718,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25719,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25720,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25721,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25722,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25723,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25724,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25725,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25726,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25727,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25728,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25729,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25730,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25731,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25732,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25733,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25734,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25735,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25736,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25737,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25738,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25739,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25740,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25741,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25742,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25743,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25744,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25745,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25746,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25747,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25748,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25749,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25750,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25751,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25752,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25753,1
    - Dst: OpHelp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:25754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25757
      start: 25593
    functionDepth: 1
    functionLinenumber: 25593
    functionLinenumberEnd: 25757
    functionName: sqlite3OpcodeName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - OpHelp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3OpcodeName(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25916
      start: 25915
    functionDepth: 0
    functionLinenumber: 25915
    functionLinenumberEnd: 25916
    functionName: osGetpid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osGetpid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25922
      start: 25921
    functionDepth: 0
    functionLinenumber: 25921
    functionLinenumberEnd: 25922
    functionName: IS_LOCK_ERROR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LOCK_ERROR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26106
      start: 26102
    functionDepth: 0
    functionLinenumber: 26102
    functionLinenumberEnd: 26106
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26125
      start: 26121
    functionDepth: 0
    functionLinenumber: 26121
    functionLinenumberEnd: 26125
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26140
      start: 26129
    functionDepth: 0
    functionLinenumber: 26129
    functionLinenumberEnd: 26140
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26153
      start: 26153
    functionDepth: 0
    functionLinenumber: 26153
    functionLinenumberEnd: 26153
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26187
      start: 26186
    functionDepth: 0
    functionLinenumber: 26186
    functionLinenumberEnd: 26187
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26191
      start: 26187
    functionDepth: 0
    functionLinenumber: 26187
    functionLinenumberEnd: 26191
    functionName: SimulateIOError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26195
      start: 26191
    functionDepth: 1
    functionLinenumber: 26191
    functionLinenumberEnd: 26195
    functionName: local_ioerr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26207
      start: 26196
    functionDepth: 0
    functionLinenumber: 26196
    functionLinenumberEnd: 26207
    functionName: SimulateDiskfullError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26219
      start: 26218
    functionDepth: 0
    functionLinenumber: 26218
    functionLinenumberEnd: 26219
    functionName: OpenCounter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - zFile
    - flags
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26284
      start: 26282
    functionDepth: 0
    functionLinenumber: 26282
    functionLinenumberEnd: 26284
    functionName: posixOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int posixOpen(const char *zFile, int flags, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26295,1
    - Dst: fchown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - uid
    - gid
    argTypes:
    - int
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26297
      start: 26291
    functionDepth: 0
    functionLinenumber: 26291
    functionLinenumberEnd: 26297
    functionName: posixFchown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fchown
    - geteuid
    linkageType: ''
    returnType: int
    signature: int posixFchown(int fd, uid_t uid, gid_t gid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26444,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26460,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pNotUsed
    - zName
    - pNewFunc
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_syscall_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26472
      start: 26436
    functionDepth: 1
    functionLinenumber: 26436
    functionLinenumberEnd: 26472
    functionName: unixSetSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int unixSetSystemCall(\n  sqlite3_vfs *pNotUsed,        /* The VFS
      pointer.  Not used */\n  const char *zName,            /* Name of system call
      to override */\n  sqlite3_syscall_ptr pNewFunc  /* Pointer to new system call
      value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26485,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pNotUsed
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26490
      start: 26479
    functionDepth: 1
    functionLinenumber: 26479
    functionLinenumberEnd: 26490
    functionName: unixGetSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_syscall_ptr
    signature: "sqlite3_syscall_ptr unixGetSystemCall(\n  sqlite3_vfs *pNotUsed,\n
      \ const char *zName\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26501,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26503,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26504,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26511
      start: 26498
    functionDepth: 1
    functionLinenumber: 26498
    functionLinenumberEnd: 26511
    functionName: unixNextSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    - ArraySize
    linkageType: ''
    returnType: char
    signature: char *unixNextSystemCall(sqlite3_vfs *p, const char *zName)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: osOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26544,1
    - Dst: osOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26546,1
    - Dst: osClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26553,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26554,1
    - Dst: osOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26557,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26562,1
    - Dst: osFchmod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26566,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26570,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26570,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 3
    argNames:
    - z
    - f
    - m
    argTypes:
    - char*
    - int
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26574
      start: 26539
    functionDepth: 8
    functionLinenumber: 26539
    functionLinenumberEnd: 26574
    functionName: robust_open
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFchmod
    - osFstat
    - sqlite3_log
    - osOpen
    - osFcntl
    - osClose
    linkageType: ''
    returnType: int
    signature: int robust_open(const char *z, int f, mode_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26591,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26592
      start: 26590
    functionDepth: 1
    functionLinenumber: 26590
    functionLinenumberEnd: 26592
    functionName: unixEnterMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void unixEnterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26594,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26595
      start: 26593
    functionDepth: 1
    functionLinenumber: 26593
    functionLinenumberEnd: 26595
    functionName: unixLeaveMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void unixLeaveMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26598,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26599
      start: 26597
    functionDepth: 1
    functionLinenumber: 26597
    functionLinenumberEnd: 26599
    functionName: unixMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: int
    signature: int unixMutexHeld(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - eFileLock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26618
      start: 26609
    functionDepth: 0
    functionLinenumber: 26609
    functionLinenumberEnd: 26618
    functionName: azFileLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *azFileLock(int eFileLock)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26639,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26640,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26650,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26652,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26653,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26655,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26661,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26669,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26671,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - fd
    - op
    - p
    argTypes:
    - int
    - int
    - struct flock*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 26649
        line_start: 26649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->l_whence==SEEK_SET )
      pos:
        line_end: 26651
        line_start: 26651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 26668
        line_start: 26668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26676
      start: 26630
    functionDepth: 7
    functionLinenumber: 26630
    functionLinenumberEnd: 26676
    functionName: lockTrace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    - assert
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: int
    signature: int lockTrace(int fd, int op, struct flock *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osFtruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h
    - sz
    argTypes:
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26701
      start: 26688
    functionDepth: 0
    functionLinenumber: 26688
    functionLinenumberEnd: 26701
    functionName: robust_ftruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFtruncate
    linkageType: ''
    returnType: int
    signature: int robust_ftruncate(int h, sqlite3_int64 sz)
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - posixError
    - sqliteIOErr
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26778
      start: 26713
    functionDepth: 0
    functionLinenumber: 26713
    functionLinenumberEnd: 26778
    functionName: sqliteErrorFromPosixError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqliteErrorFromPosixError(int posixError, int sqliteIOErr)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26846
      start: 26825
    functionDepth: 0
    functionLinenumber: 26825
    functionLinenumberEnd: 26846
    functionName: vxworksSimplifyName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vxworksSimplifyName(char *z, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26864,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26865,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26866,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26869,1
    - Dst: vxworksSimplifyName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26870,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26876,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26879,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26881,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26883,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - zAbsoluteName
    argTypes:
    - char*
    assertStmts:
    - condition: ( zAbsoluteName[0]=='/' )
      pos:
        line_end: 26863
        line_start: 26863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26895
      start: 26859
    functionDepth: 3
    functionLinenumber: 26859
    functionLinenumberEnd: 26895
    functionName: vxworksFindFileId
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - unixEnterMutex
    - assert
    - sqlite3_free
    - sqlite3_malloc64
    - memcpy
    - unixLeaveMutex
    - vxworksSimplifyName
    - strlen
    linkageType: ''
    returnType: struct vxworksFileId
    signature: struct vxworksFileId *vxworksFindFileId(const char *zAbsoluteName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26902,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26903,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26908,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26910,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:26912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pId
    argTypes:
    - struct vxworksFileId*
    assertStmts:
    - condition: ( *pp==pId )
      pos:
        line_end: 26907
        line_start: 26907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pId->nRef>0 )
      pos:
        line_end: 26902
        line_start: 26902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26913
      start: 26901
    functionDepth: 3
    functionLinenumber: 26901
    functionLinenumberEnd: 26913
    functionName: vxworksReleaseFileId
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixLeaveMutex
    - sqlite3_free
    - unixEnterMutex
    - assert
    linkageType: ''
    returnType: void
    signature: void vxworksReleaseFileId(struct vxworksFileId *pId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27073
      start: 27072
    functionDepth: 0
    functionLinenumber: 27072
    functionLinenumberEnd: 27073
    functionName: unixLogError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unixLogError(a,b,c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27088,1
    - Dst: strerror_r
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27106,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27113,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - errcode
    - zFunc
    - zPath
    - iLine
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27123
      start: 27073
    functionDepth: 8
    functionLinenumber: 27073
    functionLinenumberEnd: 27123
    functionName: unixLogErrorAtLine
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - strerror_r
    - strerror
    - sqlite3_log
    linkageType: ''
    returnType: int
    signature: "int unixLogErrorAtLine(\n  int errcode,                    /* SQLite
      error code */\n  const char *zFunc,              /* Name of OS function that
      failed */\n  const char *zPath,              /* File path associated with error
      */\n  int iLine                       /* Source line number where error occurred
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27139,1
    - Dst: unixLogErrorAtLine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pFile
    - h
    - lineno
    argTypes:
    - unixFile*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27143
      start: 27138
    functionDepth: 9
    functionLinenumber: 27138
    functionLinenumberEnd: 27143
    functionName: robust_close
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixLogErrorAtLine
    - osClose
    linkageType: ''
    returnType: void
    signature: void robust_close(unixFile *pFile, int h, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - error
    argTypes:
    - unixFile*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27151
      start: 27149
    functionDepth: 0
    functionLinenumber: 27149
    functionLinenumberEnd: 27151
    functionName: storeLastErrno
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storeLastErrno(unixFile *pFile, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27162,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27166
      start: 27156
    functionDepth: 10
    functionLinenumber: 27156
    functionLinenumberEnd: 27166
    functionName: closePendingFds
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - robust_close
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void closePendingFds(unixFile *pFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27176,1
    - Dst: unixMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27176,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27177,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27180,1
    - Dst: closePendingFds
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27183,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27190,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 27175
        line_start: 27175
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->pShmNode==0 )
      pos:
        line_end: 27179
        line_start: 27179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->pPrev->pNext==pInode )
      pos:
        line_end: 27182
        line_start: 27182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( inodeList==pInode )
      pos:
        line_end: 27185
        line_start: 27185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->pNext->pPrev==pInode )
      pos:
        line_end: 27189
        line_start: 27189
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27196
      start: 27174
    functionDepth: 11
    functionLinenumber: 27174
    functionLinenumberEnd: 27196
    functionName: releaseInodeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixMutexHeld
    - sqlite3_free
    - assert
    - ALWAYS
    - closePendingFds
    linkageType: ''
    returnType: void
    signature: void releaseInodeInfo(unixFile *pFile)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27218,1
    - Dst: unixMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27218,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27224,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27226,1
    - Dst: osWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27245,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27247,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27250,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27252,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27258,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27266,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27270,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27274,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - pFile
    - ppInode
    argTypes:
    - unixFile*
    - unixInodeInfo**
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 27217
        line_start: 27217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27286
      start: 27208
    functionDepth: 2
    functionLinenumber: 27208
    functionLinenumberEnd: 27286
    functionName: findInodeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - unixMutexHeld
    - osWrite
    - memset
    - assert
    - osFstat
    - sqlite3_malloc64
    - memcpy
    - storeLastErrno
    linkageType: ''
    returnType: int
    signature: "int findInodeInfo(\n  unixFile *pFile,               /* Unix file
      with file desc used in the key */\n  unixInodeInfo **ppInode        /* Return
      the unixInodeInfo object here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27299
      start: 27291
    functionDepth: 0
    functionLinenumber: 27291
    functionLinenumberEnd: 27299
    functionName: fileHasMoved
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osStat
    linkageType: ''
    returnType: int
    signature: int fileHasMoved(unixFile *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27319,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27321,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27326,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27331,1
    - Dst: fileHasMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27335,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27340
      start: 27311
    functionDepth: 8
    functionLinenumber: 27311
    functionLinenumberEnd: 27340
    functionName: verifyDbFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fileHasMoved
    - osFstat
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void verifyDbFile(unixFile *pFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27356,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27357,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27373,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27375,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27382,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 27355
        line_start: 27355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27387
      start: 27349
    functionDepth: 2
    functionLinenumber: 27349
    functionLinenumberEnd: 27387
    functionName: unixCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - osFcntl
    - OSTRACE
    - storeLastErrno
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int unixCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27411,1
    - Dst: unixMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27411,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27418,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27423,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pFile
    - pLock
    argTypes:
    - unixFile*
    - struct flock*
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 27410
        line_start: 27410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nLock==0 )
      pos:
        line_end: 27417
        line_start: 27417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode!=0 )
      pos:
        line_end: 27411
        line_start: 27411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27434
      start: 27408
    functionDepth: 2
    functionLinenumber: 27408
    functionLinenumberEnd: 27434
    functionName: unixFileLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    - unixMutexHeld
    - assert
    linkageType: ''
    returnType: int
    signature: int unixFileLock(unixFile *pFile, struct flock *pLock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27505,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27506,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27507,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27507,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27508,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27509,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27516,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27517,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27526,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27527,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27528,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27532,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27551,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27552,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27553,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27572,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27574,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27576,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27587,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27588,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27589,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27594,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27596,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27603,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27611,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27628,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27631,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27640,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27642,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27644,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27676,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27677,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27677,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK )
      pos:
        line_end: 27525
        line_start: 27525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock!=PENDING_LOCK )
      pos:
        line_end: 27526
        line_start: 27526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared==0 )
      pos:
        line_end: 27586
        line_start: 27586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared>0 )
      pos:
        line_end: 27552
        line_start: 27552
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0!=pFile->eFileLock )
      pos:
        line_end: 27627
        line_start: 27627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock==RESERVED_LOCK || eFileLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 27630
        line_start: 27630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 27504
        line_start: 27504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock==SHARED_LOCK )
      pos:
        line_end: 27550
        line_start: 27550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->eFileLock==0 )
      pos:
        line_end: 27587
        line_start: 27587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock!=RESERVED_LOCK || pFile->eFileLock==SHARED_LOCK )
      pos:
        line_end: 27527
        line_start: 27527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->eFileLock==0 )
      pos:
        line_end: 27551
        line_start: 27551
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 27588
        line_start: 27588
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27680
      start: 27460
    functionDepth: 3
    functionLinenumber: 27460
    functionLinenumberEnd: 27680
    functionName: unixLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - azFileLock
    - unixEnterMutex
    - assert
    - sqliteErrorFromPosixError
    - osGetpid
    - unixFileLock
    - OSTRACE
    - storeLastErrno
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int unixLock(sqlite3_file *id, int eFileLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27693
      start: 27686
    functionDepth: 0
    functionLinenumber: 27686
    functionLinenumberEnd: 27693
    functionName: setPendingFd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setPendingFd(unixFile *pFile)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27714,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27715,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27719,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27723,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27725,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27753,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27764,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27767,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27768,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27776,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27778,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27779,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27780,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27788,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27791,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27792,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27803,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27811,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27819,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27820,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27824,1
    - Dst: unixFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27838,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27853,1
    - Dst: closePendingFds
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27855,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27860,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 110
    argCount: 3
    argNames:
    - id
    - eFileLock
    - handleNFSUnlock
    argTypes:
    - sqlite3_file*
    - int
    - int
    assertStmts:
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 27718
        line_start: 27718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared!=0 )
      pos:
        line_end: 27724
        line_start: 27724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 27713
        line_start: 27713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( handleNFSUnlock==0 )
      pos:
        line_end: 27752
        line_start: 27752
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PENDING_BYTE+1==RESERVED_BYTE )
      pos:
        line_end: 27818
        line_start: 27818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nLock>=0 )
      pos:
        line_end: 27852
        line_start: 27852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->eFileLock==pFile->eFileLock )
      pos:
        line_end: 27726
        line_start: 27726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27863
      start: 27708
    functionDepth: 11
    functionLinenumber: 27708
    functionLinenumberEnd: 27863
    functionName: posixUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - sqliteErrorFromPosixError
    - osGetpid
    - unixFileLock
    - closePendingFds
    - OSTRACE
    - IS_LOCK_ERROR
    - storeLastErrno
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int posixUnlock(sqlite3_file *id, int eFileLock, int handleNFSUnlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27874,1
    - Dst: posixUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( eFileLock==SHARED_LOCK || ((unixFile *)id)->nFetchOut==0 )
      pos:
        line_end: 27873
        line_start: 27873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27877
      start: 27872
    functionDepth: 12
    functionLinenumber: 27872
    functionLinenumberEnd: 27877
    functionName: unixUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - posixUnlock
    - assert
    linkageType: ''
    returnType: int
    signature: int unixUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unixUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27897,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27900,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27906,1
    - Dst: vxworksReleaseFileId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27908,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27914,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27915,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27919,1
    - Dst: OpenCounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27920,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27921,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27924
      start: 27894
    functionDepth: 10
    functionLinenumber: 27894
    functionLinenumberEnd: 27924
    functionName: closeUnixFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - unixUnmapfile
    - robust_close
    - OSTRACE
    - vxworksReleaseFileId
    - osUnlink
    - OpenCounter
    linkageType: ''
    returnType: int
    signature: int closeUnixFile(sqlite3_file *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verifyDbFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27932,1
    - Dst: unixUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27933,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27934,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27939,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27940,1
    - Dst: setPendingFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27946,1
    - Dst: releaseInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27948,1
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27949,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pFile->pInode->nLock>0 || pFile->pInode->bProcessLock==0 )
      pos:
        line_end: 27938
        line_start: 27938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27952
      start: 27929
    functionDepth: 13
    functionLinenumber: 27929
    functionLinenumberEnd: 27952
    functionName: unixClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - verifyDbFile
    - ALWAYS
    - setPendingFd
    - releaseInodeInfo
    - unixUnlock
    - closeUnixFile
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int unixClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - NotUsed
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27978
      start: 27974
    functionDepth: 1
    functionLinenumber: 27974
    functionLinenumberEnd: 27978
    functionName: nolockCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int nolockCheckReservedLock(sqlite3_file *NotUsed, int *pResOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27982
      start: 27979
    functionDepth: 1
    functionLinenumber: 27979
    functionLinenumberEnd: 27982
    functionName: nolockLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int nolockLock(sqlite3_file *NotUsed, int NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27986
      start: 27983
    functionDepth: 1
    functionLinenumber: 27983
    functionLinenumberEnd: 27986
    functionName: nolockUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int nolockUnlock(sqlite3_file *NotUsed, int NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:27992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27993
      start: 27991
    functionDepth: 11
    functionLinenumber: 27991
    functionLinenumberEnd: 27993
    functionName: nolockClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - closeUnixFile
    linkageType: ''
    returnType: int
    signature: int nolockClose(sqlite3_file *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28043,1
    - Dst: osAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28053,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28042
        line_start: 28042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28058
      start: 28036
    functionDepth: 1
    functionLinenumber: 28036
    functionLinenumberEnd: 28058
    functionName: dotlockCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osAccess
    - OSTRACE
    - assert
    linkageType: ''
    returnType: int
    signature: int dotlockCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28100,1
    - Dst: utimes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28102,1
    - Dst: osMkdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28108,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28115,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28116,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28126
      start: 28087
    functionDepth: 1
    functionLinenumber: 28087
    functionLinenumberEnd: 28126
    functionName: dotlockLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteErrorFromPosixError
    - IS_LOCK_ERROR
    - storeLastErrno
    - utimes
    - osMkdir
    - utime
    linkageType: ''
    returnType: int
    signature: int dotlockLock(sqlite3_file *id, int eFileLock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28142,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28143,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28145,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28161,1
    - Dst: osRmdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28162,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28163,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28170,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28141
        line_start: 28141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock==NO_LOCK )
      pos:
        line_end: 28160
        line_start: 28160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 28144
        line_start: 28144
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28177
      start: 28137
    functionDepth: 1
    functionLinenumber: 28137
    functionLinenumberEnd: 28177
    functionName: dotlockUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osRmdir
    - osGetpid
    - OSTRACE
    - IS_LOCK_ERROR
    - osUnlink
    - storeLastErrno
    linkageType: ''
    returnType: int
    signature: int dotlockUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dotlockUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28186,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28187,1
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28191
      start: 28182
    functionDepth: 11
    functionLinenumber: 28182
    functionLinenumberEnd: 28191
    functionName: dotlockClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - dotlockUnlock
    - closeUnixFile
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int dotlockClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28219
      start: 28215
    functionDepth: 0
    functionLinenumber: 28215
    functionLinenumberEnd: 28219
    functionName: robust_flock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - flock
    linkageType: ''
    returnType: int
    signature: int robust_flock(int fd, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28222
      start: 28221
    functionDepth: 0
    functionLinenumber: 28221
    functionLinenumberEnd: 28222
    functionName: robust_flock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: robust_flock(a,b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28238,1
    - Dst: robust_flock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28248,1
    - Dst: robust_flock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28251,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28256,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28257,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28265,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28266,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28267,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28237
        line_start: 28237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28282
      start: 28231
    functionDepth: 1
    functionLinenumber: 28231
    functionLinenumberEnd: 28282
    functionName: flockCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqliteErrorFromPosixError
    - OSTRACE
    - storeLastErrno
    - IS_LOCK_ERROR
    - robust_flock
    linkageType: ''
    returnType: int
    signature: int flockCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28317,1
    - Dst: robust_flock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28328,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28331,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28332,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28333,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28339,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28316
        line_start: 28316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28347
      start: 28313
    functionDepth: 1
    functionLinenumber: 28313
    functionLinenumberEnd: 28347
    functionName: flockLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - azFileLock
    - assert
    - sqliteErrorFromPosixError
    - OSTRACE
    - storeLastErrno
    - IS_LOCK_ERROR
    - robust_flock
    linkageType: ''
    returnType: int
    signature: int flockLock(sqlite3_file *id, int eFileLock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28360,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28361,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28362,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28363,1
    - Dst: robust_flock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28359
        line_start: 28359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 28362
        line_start: 28362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28386
      start: 28357
    functionDepth: 1
    functionLinenumber: 28357
    functionLinenumberEnd: 28386
    functionName: flockUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetpid
    - robust_flock
    - OSTRACE
    - assert
    linkageType: ''
    returnType: int
    signature: int flockUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flockUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28394,1
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28398
      start: 28391
    functionDepth: 11
    functionLinenumber: 28391
    functionLinenumberEnd: 28398
    functionName: flockClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - flockUnlock
    - closeUnixFile
    linkageType: ''
    returnType: int
    signature: int flockClose(sqlite3_file *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28430,1
    - Dst: sem_trywait
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28441,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28444,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28445,1
    - Dst: sem_post
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28452,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28429
        line_start: 28429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28459
      start: 28423
    functionDepth: 1
    functionLinenumber: 28423
    functionLinenumberEnd: 28459
    functionName: semXCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_post
    - assert
    - sqliteErrorFromPosixError
    - sem_trywait
    - storeLastErrno
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int semXCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28514
      start: 28490
    functionDepth: 0
    functionLinenumber: 28490
    functionLinenumberEnd: 28514
    functionName: semXLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_trywait
    linkageType: ''
    returnType: int
    signature: int semXLock(sqlite3_file *id, int eFileLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28527,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28528,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28529,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28531,1
    - Dst: sem_post
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28545,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28547,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28548,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28526
        line_start: 28526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSem )
      pos:
        line_end: 28527
        line_start: 28527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 28530
        line_start: 28530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28555
      start: 28523
    functionDepth: 1
    functionLinenumber: 28523
    functionLinenumberEnd: 28555
    functionName: semXUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_post
    - assert
    - sqliteErrorFromPosixError
    - osGetpid
    - OSTRACE
    - IS_LOCK_ERROR
    - storeLastErrno
    linkageType: ''
    returnType: int
    signature: int semXUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semXUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28564,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28565,1
    - Dst: releaseInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28566,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28567,1
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28563
        line_start: 28563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28571
      start: 28560
    functionDepth: 12
    functionLinenumber: 28560
    functionLinenumberEnd: 28571
    functionName: semXClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - semXUnlock
    - releaseInodeInfo
    - closeUnixFile
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int semXClose(sqlite3_file *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28635,1
    - Dst: fsctl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28638,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28642,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28643,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28647,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28650,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - path
    - pFile
    - offset
    - length
    - setLockFlag
    argTypes:
    - char*
    - unixFile*
    - unsigned long long
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28657
      start: 28619
    functionDepth: 1
    functionLinenumber: 28619
    functionLinenumberEnd: 28657
    functionName: afpSetLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteErrorFromPosixError
    - OSTRACE
    - IS_LOCK_ERROR
    - storeLastErrno
    - strerror
    - fsctl
    linkageType: ''
    returnType: int
    signature: "int afpSetLock(\n  const char *path,              /* Name of the file
      to be locked or unlocked */\n  unixFile *pFile,               /* Open file descriptor
      on path */\n  unsigned long long offset,     /* First byte to be locked */\n
      \ unsigned long long length,     /* Number of bytes to lock */\n  int setLockFlag
      \               /* True to set lock.  False to clear lock */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28673,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28679,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28690,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28694,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28699,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28704,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 28672
        line_start: 28672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28709
      start: 28665
    functionDepth: 2
    functionLinenumber: 28665
    functionLinenumberEnd: 28709
    functionName: afpCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - afpSetLock
    - OSTRACE
    - IS_LOCK_ERROR
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int afpCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28741,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28742,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28743,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28743,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28744,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28744,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28751,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28752,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28762,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28763,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28786,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28787,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28788,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28803,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28817,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28818,1
    - Dst: random
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28823,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28825,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28827,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28831,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28833,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28834,1
    - Dst: IS_LOCK_ERROR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28837,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28857,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28860,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28871,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28875,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28877,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28904,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28905,1
    - Dst: azFileLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28905,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 104
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pInode->eFileLock==0 )
      pos:
        line_end: 28817
        line_start: 28817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock==SHARED_LOCK )
      pos:
        line_end: 28785
        line_start: 28785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0!=pFile->eFileLock )
      pos:
        line_end: 28856
        line_start: 28856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock!=RESERVED_LOCK || pFile->eFileLock==SHARED_LOCK )
      pos:
        line_end: 28762
        line_start: 28762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->eFileLock==0 )
      pos:
        line_end: 28786
        line_start: 28786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 28740
        line_start: 28740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared==0 )
      pos:
        line_end: 28816
        line_start: 28816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK )
      pos:
        line_end: 28760
        line_start: 28760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock!=PENDING_LOCK )
      pos:
        line_end: 28761
        line_start: 28761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared>0 )
      pos:
        line_end: 28787
        line_start: 28787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28908
      start: 28735
    functionDepth: 2
    functionLinenumber: 28735
    functionLinenumberEnd: 28908
    functionName: afpLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - azFileLock
    - unixEnterMutex
    - assert
    - osGetpid
    - afpSetLock
    - random
    - OSTRACE
    - IS_LOCK_ERROR
    - storeLastErrno
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int afpLock(sqlite3_file *id, int eFileLock)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28927,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28928,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28932,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28936,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28938,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28940,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28941,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28942,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28943,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28954,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28961,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28965,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28971,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28974,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28992,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28993,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28994,1
    - Dst: afpSetLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:28996,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29005,1
    - Dst: closePendingFds
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29007,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29012,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pInode->nLock>=0 )
      pos:
        line_end: 29004
        line_start: 29004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->eFileLock==pFile->eFileLock )
      pos:
        line_end: 28939
        line_start: 28939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pFile->inNormalWrite==0\n           || pFile->dbUpdate==0\n           ||
        pFile->transCntrChng==1 )"
      pos:
        line_end: 28955
        line_start: 28953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 28931
        line_start: 28931
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInode->nShared!=0 )
      pos:
        line_end: 28937
        line_start: 28937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 28926
        line_start: 28926
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29015
      start: 28917
    functionDepth: 11
    functionLinenumber: 28917
    functionLinenumberEnd: 29015
    functionName: afpUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - assert
    - SimulateIOError
    - osGetpid
    - afpSetLock
    - SimulateIOErrorBenign
    - closePendingFds
    - OSTRACE
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int afpUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: afpUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29024,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29025,1
    - Dst: setPendingFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29032,1
    - Dst: releaseInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29034,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29035,1
    - Dst: closeUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29036,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29040
      start: 29020
    functionDepth: 12
    functionLinenumber: 29020
    functionLinenumberEnd: 29040
    functionName: afpClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - afpUnlock
    - unixEnterMutex
    - sqlite3_free
    - setPendingFd
    - releaseInodeInfo
    - closeUnixFile
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: int afpClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posixUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29065
      start: 29063
    functionDepth: 12
    functionLinenumber: 29063
    functionLinenumberEnd: 29065
    functionName: nfsUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - posixUnlock
    linkageType: ''
    returnType: int
    signature: int nfsUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29106,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29107,1
    - Dst: osPread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29111,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29112,1
    - Dst: osPread64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29114,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29115,1
    - Dst: lseek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29117,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29118,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29121,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29123,1
    - Dst: osRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29127,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29133,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - id
    - offset
    - pBuf
    - cnt
    argTypes:
    - unixFile*
    - sqlite3_int64
    - void*
    - int
    assertStmts:
    - condition: ( cnt==(cnt&0x1ffff) )
      pos:
        line_end: 29105
        line_start: 29105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( id->h>2 )
      pos:
        line_end: 29106
        line_start: 29106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29146
      start: 29099
    functionDepth: 1
    functionLinenumber: 29099
    functionLinenumberEnd: 29146
    functionName: seekAndRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osRead
    - assert
    - SimulateIOError
    - lseek
    - osPread64
    - OSTRACE
    - osPread
    - storeLastErrno
    linkageType: ''
    returnType: int
    signature: int seekAndRead(unixFile *id, sqlite3_int64 offset, void *pBuf, int
      cnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29161,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29163,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29168,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29179,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29183,1
    - Dst: seekAndRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29191,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29198,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 29160
        line_start: 29160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pFile->pUnused==0\n       || offset>=PENDING_BYTE+512\n       ||
        offset+amt<=PENDING_BYTE \n  )"
      pos:
        line_end: 29170
        line_start: 29167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( amt>0 )
      pos:
        line_end: 29162
        line_start: 29162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset>=0 )
      pos:
        line_end: 29161
        line_start: 29161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29203
      start: 29153
    functionDepth: 2
    functionLinenumber: 29153
    functionLinenumberEnd: 29203
    functionName: unixRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - memcpy
    - storeLastErrno
    - seekAndRead
    linkageType: ''
    returnType: int
    signature: "int unixRead(\n  sqlite3_file *id, \n  void *pBuf, \n  int amt,\n
      \ sqlite3_int64 offset\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29221,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29222,1
    - Dst: osPwrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29227,1
    - Dst: osPwrite64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29229,1
    - Dst: lseek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29232,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29233,1
    - Dst: osWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29239,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29244,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - fd
    - iOff
    - pBuf
    - nBuf
    - piErrno
    argTypes:
    - int
    - i64
    - void*
    - int
    - int*
    assertStmts:
    - condition: ( nBuf==(nBuf&0x1ffff) )
      pos:
        line_end: 29220
        line_start: 29220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fd>2 )
      pos:
        line_end: 29221
        line_start: 29221
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29248
      start: 29212
    functionDepth: 1
    functionLinenumber: 29212
    functionLinenumberEnd: 29248
    functionName: seekAndWriteFd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osPwrite64
    - osWrite
    - osPwrite
    - assert
    - SimulateIOError
    - lseek
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: "int seekAndWriteFd(\n  int fd,                         /* File descriptor
      to write to */\n  i64 iOff,                       /* File offset to begin writing
      at */\n  const void *pBuf,               /* Copy data from this buffer to the
      file */\n  int nBuf,                       /* Size of buffer pBuf in bytes */\n
      \ int *piErrno                    /* OUT: Error number if error occurs */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seekAndWriteFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id
    - offset
    - pBuf
    - cnt
    argTypes:
    - unixFile*
    - i64
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29260
      start: 29258
    functionDepth: 2
    functionLinenumber: 29258
    functionLinenumberEnd: 29260
    functionName: seekAndWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - seekAndWriteFd
    linkageType: ''
    returnType: int
    signature: int seekAndWrite(unixFile *id, i64 offset, const void *pBuf, int cnt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29275,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29276,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29281,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29299,1
    - Dst: seekAndRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29300,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29301,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29302,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29314,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29318,1
    - Dst: seekAndWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29326,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29331,1
    - Dst: SimulateDiskfullError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29332,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29339,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 29274
        line_start: 29274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pFile->pUnused==0\n       || offset>=PENDING_BYTE+512\n       ||
        offset+amt<=PENDING_BYTE \n  )"
      pos:
        line_end: 29283
        line_start: 29280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( amt>0 )
      pos:
        line_end: 29275
        line_start: 29275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29345
      start: 29267
    functionDepth: 3
    functionLinenumber: 29267
    functionLinenumberEnd: 29345
    functionName: unixWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - SimulateIOError
    - seekAndWrite
    - memcpy
    - SimulateIOErrorBenign
    - storeLastErrno
    - seekAndRead
    - SimulateDiskfullError
    linkageType: ''
    returnType: int
    signature: "int unixWrite(\n  sqlite3_file *id, \n  const void *pBuf, \n  int
      amt,\n  sqlite3_int64 offset \n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29410,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29411,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29412,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29414,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29416,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29417,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29436,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29448,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29454,1
    - Dst: fdatasync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29456,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - fd
    - fullSync
    - dataOnly
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29468
      start: 29402
    functionDepth: 1
    functionLinenumber: 29402
    functionLinenumberEnd: 29468
    functionName: full_fsync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fsync
    - osFcntl
    - fdatasync
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int full_fsync(int fd, int fullSync, int dataOnly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29498,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29499,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29502,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29504,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - zFilename
    - pFd
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29509
      start: 29493
    functionDepth: 9
    functionLinenumber: 29493
    functionLinenumberEnd: 29509
    functionName: openDirectory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixLogError
    - robust_open
    - OSTRACE
    - strlen
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int openDirectory(const char *zFilename, int *pFd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29534,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29543,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29544,1
    - Dst: full_fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29545,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29546,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29548,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29549,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29558,1
    - Dst: osOpenDirectory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29560,1
    - Dst: full_fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29562,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: "((flags&0x0F)==SQLITE_SYNC_NORMAL\n      || (flags&0x0F)==SQLITE_SYNC_FULL\n
        \ )"
      pos:
        line_end: 29535
        line_start: 29533
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 29542
        line_start: 29542
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29570
      start: 29526
    functionDepth: 10
    functionLinenumber: 29526
    functionLinenumberEnd: 29570
    functionName: unixSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SimulateIOError
    - unixLogError
    - robust_close
    - OSTRACE
    - storeLastErrno
    - full_fsync
    - osOpenDirectory
    linkageType: ''
    returnType: int
    signature: int unixSync(sqlite3_file *id, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29578,1
    - Dst: robust_ftruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29590,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29592,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - id
    - nByte
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 29577
        line_start: 29577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29620
      start: 29575
    functionDepth: 1
    functionLinenumber: 29575
    functionLinenumberEnd: 29620
    functionName: unixTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixLogError
    - storeLastErrno
    - robust_ftruncate
    - assert
    linkageType: ''
    returnType: int
    signature: int unixTruncate(sqlite3_file *id, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29628,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29629,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29630,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - i64*
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 29627
        line_start: 29627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29647
      start: 29625
    functionDepth: 1
    functionLinenumber: 29625
    functionLinenumberEnd: 29647
    functionName: unixFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFstat
    - storeLastErrno
    - assert
    - SimulateIOError
    linkageType: ''
    returnType: int
    signature: int unixFileSize(sqlite3_file *id, i64 *pSize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29668,1
    - Dst: osFallocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29681,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29698,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29699,1
    - Dst: seekAndWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29701,1
    - Dst: seekAndWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29705,1
    - Dst: robust_ftruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29716,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29717,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29718,1
    - Dst: unixMapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29722,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - pFile
    - nByte
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( ((iWrite+1)%nBlk)==0 )
      pos:
        line_end: 29698
        line_start: 29698
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iWrite>=buf.st_size )
      pos:
        line_end: 29696
        line_start: 29696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (iWrite/nBlk)==((buf.st_size+nBlk-1)/nBlk) )
      pos:
        line_end: 29697
        line_start: 29697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29728
      start: 29663
    functionDepth: 3
    functionLinenumber: 29663
    functionLinenumberEnd: 29728
    functionName: fcntlSizeHint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - unixMapfile
    - osFstat
    - seekAndWrite
    - unixLogError
    - robust_ftruncate
    - osFallocate
    - storeLastErrno
    linkageType: ''
    returnType: int
    signature: int fcntlSizeHint(unixFile *pFile, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pFile
    - mask
    - pArg
    argTypes:
    - unixFile*
    - unsigned char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29744
      start: 29736
    functionDepth: 0
    functionLinenumber: 29736
    functionLinenumberEnd: 29744
    functionName: unixModeBit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unixModeBit(unixFile *pFile, unsigned char mask, int *pArg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29773,1
    - Dst: fcntlSizeHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29774,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29775,1
    - Dst: unixModeBit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29779,1
    - Dst: unixModeBit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29783,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29787,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29791,1
    - Dst: unixGetTempname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29793,1
    - Dst: fileHasMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29799,1
    - Dst: unixUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29813,1
    - Dst: unixMapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29814,1
    - Dst: proxyFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29834,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 70
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29839
      start: 29752
    functionDepth: 4
    functionLinenumber: 29752
    functionLinenumberEnd: 29839
    functionName: unixFileControl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fcntlSizeHint
    - unixMapfile
    - unixUnmapfile
    - sqlite3_malloc64
    - sqlite3_mprintf
    - fileHasMoved
    - SimulateIOErrorBenign
    - unixGetTempname
    - proxyFileControl
    - unixModeBit
    linkageType: ''
    returnType: int
    signature: int unixFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29855
      start: 29852
    functionDepth: 1
    functionLinenumber: 29852
    functionLinenumberEnd: 29855
    functionName: unixSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixSectorSize(sqlite3_file *NotUsed)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fstatvfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29872,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29876,1
    - Dst: strstr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29885,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29895,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29904,1
    - Dst: strstr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29935
      start: 29864
    functionDepth: 0
    functionLinenumber: 29864
    functionLinenumberEnd: 29935
    functionName: unixSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strstr
    - fstatvfs
    linkageType: ''
    returnType: int
    signature: int unixSectorSize(sqlite3_file *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unixSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29962
      start: 29951
    functionDepth: 2
    functionLinenumber: 29951
    functionLinenumberEnd: 29962
    functionName: unixDeviceCharacteristics
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixSectorSize
    linkageType: ''
    returnType: int
    signature: int unixDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29976,1
    - Dst: sysconf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:29978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29980
      start: 29972
    functionDepth: 0
    functionLinenumber: 29972
    functionLinenumberEnd: 29980
    functionName: unixGetpagesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - getpagesize
    - sysconf
    linkageType: ''
    returnType: int
    signature: int unixGetpagesize(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30079,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30079,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30082,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30085,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30090,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30097,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30105,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30109,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30113,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30117,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30118,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30124,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30126,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30128,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30129,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 4
    argNames:
    - pFile
    - lockType
    - ofst
    - n
    argTypes:
    - unixFile*
    - int
    - int
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pShmNode->mutex) || pShmNode->nRef==0 )
      pos:
        line_end: 30078
        line_start: 30078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==1 || lockType!=F_RDLCK )
      pos:
        line_end: 30081
        line_start: 30081
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>=1 && n<SQLITE_SHM_NLOCK )
      pos:
        line_end: 30084
        line_start: 30084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( lockType==F_WRLCK )
      pos:
        line_end: 30116
        line_start: 30116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( lockType==F_WRLCK )
      pos:
        line_end: 30127
        line_start: 30127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30138
      start: 30067
    functionDepth: 1
    functionLinenumber: 30067
    functionLinenumberEnd: 30138
    functionName: unixShmSystemLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - assert
    - osFcntl
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: "int unixShmSystemLock(\n  unixFile *pFile,       /* Open connection
      to the WAL file */\n  int lockType,          /* F_UNLCK, F_RDLCK, or F_WRLCK
      */\n  int ofst,              /* First byte of the locking range */\n  int n
      \                 /* Number of bytes to lock */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osGetpagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30151,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ((pgsz-1)&pgsz)==0 )
      pos:
        line_end: 30151
        line_start: 30151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30155
      start: 30149
    functionDepth: 0
    functionLinenumber: 30149
    functionLinenumberEnd: 30155
    functionName: unixShmRegionPerMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetpagesize
    - assert
    linkageType: ''
    returnType: int
    signature: int unixShmRegionPerMap(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30165,1
    - Dst: unixMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30165,1
    - Dst: unixShmRegionPerMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30169,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30170,1
    - Dst: osMunmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30173,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30175,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30178,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30180,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 30164
        line_start: 30164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pInode==pFd->pInode )
      pos:
        line_end: 30168
        line_start: 30168
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30186
      start: 30163
    functionDepth: 10
    functionLinenumber: 30163
    functionLinenumberEnd: 30186
    functionName: unixShmPurge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixMutexHeld
    - osMunmap
    - assert
    - sqlite3_free
    - sqlite3_mutex_free
    - unixShmRegionPerMap
    - robust_close
    linkageType: ''
    returnType: void
    signature: void unixShmPurge(unixFile *pFd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30232,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30235,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30240,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30253,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30261,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30263,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30268,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30271,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30275,1
    - Dst: sqlite3FileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30276,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30281,1
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30289,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30293,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30295,1
    - Dst: osFchown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30303,1
    - Dst: unixShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30309,1
    - Dst: robust_ftruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30310,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30311,1
    - Dst: unixShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30315,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30328,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30337,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30340,1
    - Dst: unixShmPurge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30345,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30346,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 79
    argCount: 1
    argNames:
    - pDbFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pDbFd->pShm==0 )
      pos:
        line_end: 30234
        line_start: 30234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30349
      start: 30223
    functionDepth: 11
    functionLinenumber: 30223
    functionLinenumberEnd: 30349
    functionName: unixOpenSharedMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixShmSystemLock
    - memset
    - sqlite3_malloc64
    - robust_open
    - robust_ftruncate
    - sqlite3FileSuffix3
    - unixLeaveMutex
    - strlen
    - sqlite3_mutex_alloc
    - sqlite3_free
    - osFchown
    - unixLogError
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    - assert
    - osFstat
    - unixEnterMutex
    - unixShmPurge
    - sqlite3_snprintf
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: int
    signature: int unixOpenSharedMemory(unixFile *pDbFd)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unixShmRegionPerMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30381,1
    - Dst: unixOpenSharedMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30386,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30392,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30393,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30395,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30396,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30413,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30438,1
    - Dst: seekAndWriteFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30440,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30442,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30451,1
    - Dst: osMmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30464,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30469,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30473,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30478,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30495,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 5
    argNames:
    - fd
    - iRegion
    - szRegion
    - bExtend
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 30393
        line_start: 30393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 )
      pos:
        line_end: 30392
        line_start: 30392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 )
      pos:
        line_end: 30394
        line_start: 30394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 )
      pos:
        line_end: 30395
        line_start: 30395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nByte % pgsz)==0 )
      pos:
        line_end: 30437
        line_start: 30437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30497
      start: 30370
    functionDepth: 12
    functionLinenumber: 30370
    functionLinenumberEnd: 30497
    functionName: unixShmMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memset
    - assert
    - sqlite3_realloc
    - osFstat
    - seekAndWriteFd
    - unixShmRegionPerMap
    - osMmap
    - sqlite3_malloc64
    - unixLogError
    - sqlite3_mutex_leave
    - unixOpenSharedMemory
    linkageType: ''
    returnType: int
    signature: "int unixShmMap(\n  sqlite3_file *fd,               /* Handle open
      on database file */\n  int iRegion,                    /* Region to retrieve
      */\n  int szRegion,                   /* Size of regions */\n  int bExtend,
      \                   /* True to extend file if necessary */\n  void volatile
      **pp              /* OUT: Mapped memory */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30520,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30521,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30522,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30523,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30524,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30528,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30529,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30533,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30534,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30541,1
    - Dst: unixShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30547,1
    - Dst: unixShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30575,1
    - Dst: unixShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30600,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30602,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30607,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30608,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30609,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 4
    argNames:
    - fd
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pShmNode==pDbFd->pInode->pShmNode )
      pos:
        line_end: 30519
        line_start: 30519
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>=1 )
      pos:
        line_end: 30522
        line_start: 30522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 30520
        line_start: 30520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( flags==(SQLITE_SHM_LOCK | SQLITE_SHM_SHARED)\n       || flags==(SQLITE_SHM_LOCK
        | SQLITE_SHM_EXCLUSIVE)\n       || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED)\n
        \      || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) )"
      pos:
        line_end: 30526
        line_start: 30523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ofst>=0 && ofst+n<=SQLITE_SHM_NLOCK )
      pos:
        line_end: 30521
        line_start: 30521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 )
      pos:
        line_end: 30527
        line_start: 30527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 )
      pos:
        line_end: 30528
        line_start: 30528
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 )
      pos:
        line_end: 30529
        line_start: 30529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>1 || mask==(1<<ofst) )
      pos:
        line_end: 30532
        line_start: 30532
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pX->exclMask & (p->exclMask|p->sharedMask))==0 )
      pos:
        line_end: 30540
        line_start: 30540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->sharedMask & mask)==0 )
      pos:
        line_end: 30601
        line_start: 30601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30611
      start: 30507
    functionDepth: 2
    functionLinenumber: 30507
    functionLinenumberEnd: 30611
    functionName: unixShmLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - unixShmSystemLock
    - assert
    - osGetpid
    - OSTRACE
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: "int unixShmLock(\n  sqlite3_file *fd,          /* Database file holding
      the shared memory */\n  int ofst,                  /* First lock to acquire
      or release */\n  int n,                     /* Number of locks to acquire or
      release */\n  int flags                  /* What to do with the lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30622,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30623,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30625
      start: 30619
    functionDepth: 2
    functionLinenumber: 30619
    functionLinenumberEnd: 30625
    functionName: unixShmBarrier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - UNUSED_PARAMETER
    - unixLeaveMutex
    linkageType: ''
    returnType: void
    signature: "void unixShmBarrier(\n  sqlite3_file *fd                /* Database
      file holding the shared memory */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30649,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30653,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30658,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30660,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30664,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30665,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30669,1
    - Dst: unixShmPurge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30671,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - fd
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pShmNode==pDbFd->pInode->pShmNode )
      pos:
        line_end: 30647
        line_start: 30647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 30648
        line_start: 30648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pShmNode->nRef>0 )
      pos:
        line_end: 30664
        line_start: 30664
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30676
      start: 30634
    functionDepth: 11
    functionLinenumber: 30634
    functionLinenumberEnd: 30676
    functionName: unixShmUnmap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - unixEnterMutex
    - sqlite3_free
    - assert
    - unixShmPurge
    - osUnlink
    - sqlite3_mutex_leave
    - unixLeaveMutex
    linkageType: ''
    returnType: int
    signature: "int unixShmUnmap(\n  sqlite3_file *fd,               /* The underlying
      database file */\n  int deleteFlag                  /* Delete shared-memory
      if true */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30691,1
    - Dst: osMunmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pFd->nFetchOut==0 )
      pos:
        line_end: 30690
        line_start: 30690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30698
      start: 30690
    functionDepth: 0
    functionLinenumber: 30690
    functionLinenumberEnd: 30698
    functionName: unixUnmapfile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - osMunmap
    - assert
    linkageType: ''
    returnType: void
    signature: void unixUnmapfile(unixFile *pFd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30726,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30728,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30729,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30730,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30731,1
    - Dst: osGetpagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30739,1
    - Dst: osMunmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30746,1
    - Dst: osMremap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30750,1
    - Dst: osMmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30753,1
    - Dst: osMunmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30756,1
    - Dst: osMunmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30766,1
    - Dst: osMmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30772,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30778,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - pFd
    - nNew
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( pFd->nFetchOut==0 )
      pos:
        line_end: 30725
        line_start: 30725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew>0 )
      pos:
        line_end: 30728
        line_start: 30728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew>pFd->mmapSize )
      pos:
        line_end: 30726
        line_start: 30726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew<=pFd->mmapSizeMax )
      pos:
        line_end: 30727
        line_start: 30727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFd->mmapSizeActual>=pFd->mmapSize )
      pos:
        line_end: 30729
        line_start: 30729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( MAP_FAILED!=0 )
      pos:
        line_end: 30730
        line_start: 30730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30787
      start: 30715
    functionDepth: 1
    functionLinenumber: 30715
    functionLinenumberEnd: 30787
    functionName: unixRemapfile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetpagesize
    - osMunmap
    - assert
    - osMmap
    - unixLogError
    - osMremap
    linkageType: ''
    returnType: void
    signature: "void unixRemapfile(\n  unixFile *pFd,                  /* File descriptor
      object */\n  i64 nNew                        /* Required mapping size */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30809,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30814,1
    - Dst: unixRemapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30826,1
    - Dst: unixUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30828,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - pFd
    - nByte
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( nMap>=0 || pFd->nFetchOut==0 )
      pos:
        line_end: 30808
        line_start: 30808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30833
      start: 30805
    functionDepth: 2
    functionLinenumber: 30805
    functionLinenumberEnd: 30833
    functionName: unixMapfile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - unixRemapfile
    - unixUnmapfile
    - osFstat
    - assert
    linkageType: ''
    returnType: int
    signature: int unixMapfile(unixFile *pFd, i64 nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unixMapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - iOff
    - nAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30867
      start: 30848
    functionDepth: 3
    functionLinenumber: 30848
    functionLinenumberEnd: 30867
    functionName: unixFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixMapfile
    linkageType: ''
    returnType: int
    signature: int unixFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30887,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30890,1
    - Dst: unixUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30895,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30898,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30900,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30901,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:30902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts:
    - condition: ( pFd->nFetchOut>=0 )
      pos:
        line_end: 30897
        line_start: 30897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] )
      pos:
        line_end: 30889
        line_start: 30889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p==0)==(pFd->nFetchOut==0) )
      pos:
        line_end: 30886
        line_start: 30886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30905
      start: 30879
    functionDepth: 1
    functionLinenumber: 30879
    functionLinenumberEnd: 30905
    functionName: unixUnfetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixUnmapfile
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int unixUnfetch(sqlite3_file *fd, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - FINDER
    - ','
    - METHOD
    - ','
    - VERSION
    - ','
    - CLOSE
    - ','
    - LOCK
    - ','
    - UNLOCK
    - ','
    - CKLOCK
    - ','
    - SHMMAP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30949
      start: 30947
    functionDepth: 0
    functionLinenumber: 30947
    functionLinenumberEnd: 30949
    functionName: IOMETHODS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOMETHODS(FINDER,METHOD,VERSION,CLOSE,LOCK,UNLOCK,CKLOCK,SHMMAP)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31123,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31128,1
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31142,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - filePath
    - pNew
    argTypes:
    - char*
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31151
      start: 31099
    functionDepth: 0
    functionLinenumber: 31099
    functionLinenumberEnd: 31151
    functionName: autolockIoFinderImpl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - osFcntl
    - statfs
    linkageType: ''
    returnType: sqlite3_io_methods
    signature: "sqlite3_io_methods *autolockIoFinderImpl(\n  const char *filePath,
      \   /* name of the database file */\n  unixFile *pNew           /* open file
      object for the database file */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - filePath
    - pNew
    argTypes:
    - char*
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31187
      start: 31163
    functionDepth: 0
    functionLinenumber: 31163
    functionLinenumberEnd: 31187
    functionName: vxworksIoFinderImpl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    linkageType: ''
    returnType: sqlite3_io_methods
    signature: "sqlite3_io_methods *vxworksIoFinderImpl(\n  const char *filePath,
      \   /* name of the database file */\n  unixFile *pNew           /* the open
      file object */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31234,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31236,1
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31244,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31248,1
    - Dst: vxworksFindFileId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31253,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31277,1
    - Dst: findInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31278,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31298,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31301,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31310,1
    - Dst: srandomdev
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31319,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31320,1
    - Dst: findInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31321,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31323,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31324,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31327,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31338,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31339,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31340,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31344,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31354,1
    - Dst: findInodeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31355,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31359,1
    - Dst: sem_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31363,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31369,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31373,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31376,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31378,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31383,1
    - Dst: OpenCounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31386,1
    - Dst: verifyDbFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31387,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 5
    argNames:
    - pVfs
    - h
    - pId
    - zFilename
    - ctrlFlags
    argTypes:
    - sqlite3_vfs*
    - int
    - sqlite3_file*
    - char*
    - int
    assertStmts:
    - condition: ( pNew->pInode==NULL )
      pos:
        line_end: 31219
        line_start: 31219
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zFilename==0 || zFilename[0]=='/' )
      pos:
        line_end: 31229
        line_start: 31229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zFilename!=0 || (ctrlFlags & UNIXFILE_NOLOCK)!=0 )
      pos:
        line_end: 31233
        line_start: 31233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( zFilename==0 || zFilename[0]=='/' \n    || pVfs->pAppData==(void*)&autolockIoFinder
        )"
      pos:
        line_end: 31227
        line_start: 31226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zFilename!=0 )
      pos:
        line_end: 31337
        line_start: 31337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31390
      start: 31209
    functionDepth: 10
    functionLinenumber: 31209
    functionLinenumberEnd: 31390
    functionName: fillInUnixFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - verifyDbFile
    - sqlite3_malloc64
    - findInodeInfo
    - storeLastErrno
    - osUnlink
    - strlen
    - unixLeaveMutex
    - sqlite3_free
    - vxworksFindFileId
    - srandomdev
    - sem_open
    - assert
    - strcmp
    - unixEnterMutex
    - robust_close
    - OSTRACE
    - OpenCounter
    - sqlite3_snprintf
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: int
    signature: "int fillInUnixFile(\n  sqlite3_vfs *pVfs,      /* Pointer to vfs object
      */\n  int h,                  /* Open file descriptor of file being opened */\n
      \ sqlite3_file *pId,      /* Write to the unixFile structure here */\n  const
      char *zFilename,  /* Name of the file being opened */\n  int ctrlFlags           /*
      Zero or more UNIXFILE_* values */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31411,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31412,1
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31415,1
    - Dst: S_ISDIR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31416,1
    - Dst: osAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31421
      start: 31396
    functionDepth: 0
    functionLinenumber: 31396
    functionLinenumberEnd: 31421
    functionName: unixTempFileDir
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - getenv
    - S_ISDIR
    - osStat
    - osAccess
    linkageType: ''
    returnType: char
    signature: char *unixTempFileDir(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unixTempFileDir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31442,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31448,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31448,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31453,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31454,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31455,1
    - Dst: osAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nBuf
    - zBuf
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31463
      start: 31428
    functionDepth: 3
    functionLinenumber: 31428
    functionLinenumberEnd: 31463
    functionName: unixGetTempname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osAccess
    - sqlite3_randomness
    - strlen
    - sqlite3_snprintf
    - unixTempFileDir
    linkageType: ''
    returnType: int
    signature: int unixGetTempname(int nBuf, char *zBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31509,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31512,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - zPath
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31530
      start: 31490
    functionDepth: 2
    functionLinenumber: 31490
    functionLinenumberEnd: 31530
    functionName: findReusableFd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osStat
    - unixEnterMutex
    - unixLeaveMutex
    linkageType: ''
    returnType: UnixUnusedFd
    signature: UnixUnusedFd *findReusableFd(const char *zPath, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31581,1
    - Dst: sqlite3Isalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31587,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31588,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31592,1
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - zPath
    - flags
    - pMode
    - pUid
    - pGid
    argTypes:
    - char*
    - int
    - mode_t*
    - uid_t*
    - gid_t*
    assertStmts:
    - condition: ( zPath[nDb]!='\n' )
      pos:
        line_end: 31587
        line_start: 31587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nDb>0 )
      pos:
        line_end: 31586
        line_start: 31586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31606
      start: 31553
    functionDepth: 1
    functionLinenumber: 31553
    functionLinenumberEnd: 31606
    functionName: findCreateFileMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osStat
    - memcpy
    - sqlite3Strlen30
    - sqlite3Isalnum
    linkageType: ''
    returnType: int
    signature: "int findCreateFileMode(\n  const char *zPath,              /* Path
      of file (possibly) being created */\n  int flags,                      /* Flags
      passed as 4th argument to xOpen() */\n  mode_t *pMode,                  /* OUT:
      Permissions to open file with */\n  uid_t *pUid,                    /* OUT:
      uid to set on the file */\n  gid_t *pGid                     /* OUT: gid to
      set on the file */\n)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31680,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31681,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31682,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31683,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31687,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31688,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31689,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31690,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31693,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31704,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31705,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31706,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31709,1
    - Dst: findReusableFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31713,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31727,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31731,1
    - Dst: unixGetTempname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31732,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31740,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31740,1
    - Dst: findCreateFileMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31759,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31760,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31763,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31764,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31772,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31775,1
    - Dst: osFchown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31784,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31787,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31801,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31803,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31807,1
    - Dst: fstatfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31820,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31821,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31822,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31825,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31828,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31845,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31851,1
    - Dst: fillInUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31856,1
    - Dst: proxyTransformUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31858,1
    - Dst: unixClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31864,1
    - Dst: fillInUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31873,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31877,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 139
    argCount: 5
    argNames:
    - pVfs
    - zPath
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ((isReadonly==0 || isReadWrite==0) && (isReadWrite || isReadonly))
      pos:
        line_end: 31679
        line_start: 31679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isDelete==0 || isCreate)
      pos:
        line_end: 31682
        line_start: 31682
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 31686
        line_start: 31686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fd>=0 )
      pos:
        line_end: 31786
        line_start: 31786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isExclusive==0 || isCreate)
      pos:
        line_end: 31681
        line_start: 31681
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_WAL )
      pos:
        line_end: 31689
        line_start: 31689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isDelete && !syncDir)
      pos:
        line_end: 31730
        line_start: 31730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (flags & SQLITE_OPEN_URI) || zName[strlen(zName)+1]==0 )
      pos:
        line_end: 31726
        line_start: 31726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !p->pUnused )
      pos:
        line_end: 31758
        line_start: 31758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType==SQLITE_OPEN_WAL || eType==SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 31759
        line_start: 31759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isCreate==0 || isReadWrite)
      pos:
        line_end: 31680
        line_start: 31680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( eType==SQLITE_OPEN_MAIN_DB      || eType==SQLITE_OPEN_TEMP_DB
        \n       || eType==SQLITE_OPEN_MAIN_JOURNAL || eType==SQLITE_OPEN_TEMP_JOURNAL
        \n       || eType==SQLITE_OPEN_SUBJOURNAL   || eType==SQLITE_OPEN_MASTER_JOURNAL
        \n       || eType==SQLITE_OPEN_TRANSIENT_DB || eType==SQLITE_OPEN_WAL\n  )"
      pos:
        line_end: 31696
        line_start: 31692
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zName[strlen(zName)+1]==0 )
      pos:
        line_end: 31739
        line_start: 31739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 31687
        line_start: 31687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MASTER_JOURNAL )
      pos:
        line_end: 31688
        line_start: 31688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31880
      start: 31630
    functionDepth: 14
    functionLinenumber: 31630
    functionLinenumberEnd: 31880
    functionName: unixOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    - osGetpid
    - robust_open
    - storeLastErrno
    - osUnlink
    - fillInUnixFile
    - strlen
    - fstatfs
    - findReusableFd
    - sqlite3_free
    - osFchown
    - sqlite3_randomness
    - unixLogError
    - proxyTransformUnixFile
    - findCreateFileMode
    - strncmp
    - assert
    - unixClose
    - getenv
    - atoi
    - sqlite3_mprintf
    - unixGetTempname
    - OSTRACE
    - robust_close
    linkageType: ''
    returnType: int
    signature: "int unixOpen(\n  sqlite3_vfs *pVfs,           /* The VFS for which
      this is the xOpen method */\n  const char *zPath,           /* Pathname of file
      to be opened */\n  sqlite3_file *pFile,         /* The file descriptor to be
      filled in */\n  int flags,                   /* Input flags to control the opening
      */\n  int *pOutFlags               /* Output flags returned to SQLite core */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31893,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31895,1
    - Dst: osAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31898,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31903,1
    - Dst: osOpenDirectory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31910,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31913,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31915,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31918,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31920,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - NotUsed
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31927
      start: 31887
    functionDepth: 10
    functionLinenumber: 31887
    functionLinenumberEnd: 31927
    functionName: unixDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osAccess
    - UNUSED_PARAMETER
    - unixLogError
    - fsync
    - robust_close
    - osUnlink
    - osOpenDirectory
    linkageType: ''
    returnType: int
    signature: "int unixDelete(\n  sqlite3_vfs *NotUsed,     /* VFS containing this
      as the xDelete method */\n  const char *zPath,        /* Name of file to be
      deleted */\n  int dirSync               /* If true, fsync() directory after
      deleting file */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31946,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31960,1
    - Dst: osAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31962,1
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31965,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - NotUsed
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts:
    - condition: (!"Invalid flags argument")
      pos:
        line_end: 31959
        line_start: 31959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31970
      start: 31939
    functionDepth: 1
    functionLinenumber: 31939
    functionLinenumberEnd: 31970
    functionName: unixAccess
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osStat
    - osAccess
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: "int unixAccess(\n  sqlite3_vfs *NotUsed,   /* The VFS containing this
      xAccess method */\n  const char *zPath,      /* Path of the file to examine
      */\n  int flags,              /* What do we want to learn about the zPath file?
      */\n  int *pResOut            /* Write result boolean here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31996,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:31997,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32001,1
    - Dst: osGetcwd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32004,1
    - Dst: unixLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32005,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32007,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts:
    - condition: ( pVfs->mxPathname==MAX_PATHNAME )
      pos:
        line_end: 31995
        line_start: 31995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32011
      start: 31982
    functionDepth: 1
    functionLinenumber: 31982
    functionLinenumberEnd: 32011
    functionName: unixFullPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - unixLogError
    - osGetcwd
    - strlen
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int unixFullPathname(\n  sqlite3_vfs *pVfs,            /* Pointer
      to vfs object */\n  const char *zPath,            /* Possibly relative input
      path */\n  int nOut,                     /* Size of output buffer in bytes */\n
      \ char *zOut                    /* Output buffer */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32021,1
    - Dst: dlopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - zFilename
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32023
      start: 32020
    functionDepth: 1
    functionLinenumber: 32020
    functionLinenumberEnd: 32023
    functionName: unixDlOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - dlopen
    linkageType: ''
    returnType: void
    signature: void *unixDlOpen(sqlite3_vfs *NotUsed, const char *zFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32034,1
    - Dst: unixEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32035,1
    - Dst: dlerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32036,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32038,1
    - Dst: unixLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - NotUsed
    - nBuf
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32041
      start: 32032
    functionDepth: 2
    functionLinenumber: 32032
    functionLinenumberEnd: 32041
    functionName: unixDlError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - dlerror
    - unixEnterMutex
    - UNUSED_PARAMETER
    - unixLeaveMutex
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void unixDlError(sqlite3_vfs *NotUsed, int nBuf, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32064
      start: 32042
    functionDepth: 1
    functionLinenumber: 32042
    functionLinenumberEnd: 32064
    functionName: (*unixDlSym(sqlite3_vfs *NotUsed, void *p, const char*zSym))(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void (*unixDlSym(sqlite3_vfs *NotUsed, void *p, const char*zSym))(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32066,1
    - Dst: dlclose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32068
      start: 32065
    functionDepth: 1
    functionLinenumber: 32065
    functionLinenumberEnd: 32068
    functionName: unixDlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - dlclose
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void unixDlClose(sqlite3_vfs *NotUsed, void *pHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32081,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32095,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32096,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32100,1
    - Dst: time
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32103,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32104,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32105,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32106,1
    - Dst: osRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32109,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - NotUsed
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts:
    - condition: ((size_t)nBuf>=(sizeof(time_t)+sizeof(int)))
      pos:
        line_end: 32080
        line_start: 32080
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(t)+sizeof(randomnessPid)<=(size_t)nBuf )
      pos:
        line_end: 32105
        line_start: 32105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32115
      start: 32079
    functionDepth: 10
    functionLinenumber: 32079
    functionLinenumberEnd: 32115
    functionName: unixRandomness
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - osRead
    - time
    - assert
    - UNUSED_PARAMETER
    - memcpy
    - osGetpid
    - robust_close
    - robust_open
    linkageType: ''
    returnType: int
    signature: int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32132,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32133,1
    - Dst: usleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32136,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32137,1
    - Dst: sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32141,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - NotUsed
    - microseconds
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32145
      start: 32126
    functionDepth: 1
    functionLinenumber: 32126
    functionLinenumberEnd: 32145
    functionName: unixSleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nanosleep
    - sleep
    - usleep
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixSleep(sqlite3_vfs *NotUsed, int microseconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32171,1
    - Dst: clock_gettime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32175,1
    - Dst: gettimeofday
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32179,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - NotUsed
    - piNow
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32193
      start: 32166
    functionDepth: 1
    functionLinenumber: 32166
    functionLinenumberEnd: 32193
    functionName: unixCurrentTimeInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - clock_gettime
    - UNUSED_PARAMETER
    - time
    linkageType: ''
    returnType: int
    signature: int unixCurrentTimeInt64(sqlite3_vfs *NotUsed, sqlite3_int64 *piNow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32203,1
    - Dst: unixCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - NotUsed
    - prNow
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32207
      start: 32200
    functionDepth: 2
    functionLinenumber: 32200
    functionLinenumberEnd: 32207
    functionName: unixCurrentTime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixCurrentTimeInt64
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixCurrentTime(sqlite3_vfs *NotUsed, double *prNow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32217,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32218,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - NotUsed
    - NotUsed2
    - NotUsed3
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32221
      start: 32216
    functionDepth: 1
    functionLinenumber: 32216
    functionLinenumberEnd: 32221
    functionName: unixGetLastError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixGetLastError(sqlite3_vfs *NotUsed, int NotUsed2, char *NotUsed3)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32411,1
    - Dst: confstr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32415,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32416,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32417,1
    - Dst: strlcat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32420,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32423,1
    - Dst: strlcat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32428,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32432,1
    - Dst: strlcat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32438,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32439,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - dbPath
    - lPath
    - maxLen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32441
      start: 32405
    functionDepth: 1
    functionLinenumber: 32405
    functionLinenumberEnd: 32441
    functionName: proxyGetLockPath
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - strlcat
    - osGetpid
    - confstr
    - OSTRACE
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyGetLockPath(const char *dbPath, char *lPath, size_t maxLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32451,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32453,1
    - Dst: osMkdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32461,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32464,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32466,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32466,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32475,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32475,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - lockPath
    argTypes:
    - char*
    assertStmts:
    - condition: (lockPath!=NULL)
      pos:
        line_end: 32450
        line_start: 32450
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32477
      start: 32446
    functionDepth: 1
    functionLinenumber: 32446
    functionLinenumberEnd: 32477
    functionName: proxyCreateLockPath
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osGetpid
    - OSTRACE
    - osMkdir
    - strerror
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyCreateLockPath(const char *lockPath)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: findReusableFd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32505,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32509,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32515,1
    - Dst: proxyCreateLockPath
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32518,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32519,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32525,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32542,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32547,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32549,1
    - Dst: fillInUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32556,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32562,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32563,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 3
    argNames:
    - path
    - ppFile
    - islockfile
    argTypes:
    - char*
    - unixFile**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32566
      start: 32486
    functionDepth: 11
    functionLinenumber: 32486
    functionLinenumberEnd: 32566
    functionName: proxyCreateUnixFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - proxyCreateLockPath
    - findReusableFd
    - sqlite3_free
    - sqlite3_malloc64
    - robust_close
    - robust_open
    - fillInUnixFile
    linkageType: ''
    returnType: int
    signature: "int proxyCreateUnixFile(\n    const char *path,        /* path for
      the new unixFile */\n    unixFile **ppFile,       /* unixFile created and returned
      by ref */\n    int islockfile           /* if non zero missing dirs will be
      created */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32584,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32585,1
    - Dst: gethostuuid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32589,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pHostID
    - pError
    argTypes:
    - unsigned char*
    - int*
    assertStmts:
    - condition: (PROXY_HOSTIDLEN == sizeof(uuid_t))
      pos:
        line_end: 32583
        line_start: 32583
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32608
      start: 32583
    functionDepth: 1
    functionLinenumber: 32583
    functionLinenumberEnd: 32608
    functionName: proxyGetHostID
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - gethostuuid
    - memset
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int proxyGetHostID(unsigned char *pHostID, int *pError)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32634,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32637,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32639,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32640,1
    - Dst: osPread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32644,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32646,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32650,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32652,1
    - Dst: osPwrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32655,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32656,1
    - Dst: rename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32659,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32660,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32664,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32665,1
    - Dst: osUnlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32672,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32673,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32675,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - pFile
    - myHostID
    argTypes:
    - unixFile*
    - uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32678
      start: 32623
    functionDepth: 10
    functionLinenumber: 32623
    functionLinenumberEnd: 32678
    functionName: proxyBreakConchLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rename
    - strlcpy
    - osPwrite
    - fprintf
    - UNUSED_PARAMETER
    - robust_close
    - robust_open
    - osPread
    - osUnlink
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int proxyBreakConchLock(unixFile *pFile, uuid_t myHostID)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32690,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32692,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32702,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32703,1
    - Dst: usleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32713,1
    - Dst: osPread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32721,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32723,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32728,1
    - Dst: usleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32735,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32739,1
    - Dst: proxyBreakConchLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32740,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32743,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - pFile
    - myHostID
    - lockType
    argTypes:
    - unixFile*
    - uuid_t
    - int
    assertStmts:
    - condition: ( nTries>1 )
      pos:
        line_end: 32712
        line_start: 32712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nTries==3 )
      pos:
        line_end: 32738
        line_start: 32738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32753
      start: 32683
    functionDepth: 11
    functionLinenumber: 32683
    functionLinenumberEnd: 32753
    functionName: proxyConchLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memset
    - proxyBreakConchLock
    - assert
    - osFstat
    - usleep
    - unixFile*::pMethod::xLock
    - storeLastErrno
    - osPread
    linkageType: ''
    returnType: int
    signature: int proxyConchLock(unixFile *pFile, uuid_t myHostID, int lockType)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32780,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32782,1
    - Dst: proxyGetHostID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32784,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32786,1
    - Dst: proxyConchLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32789,1
    - Dst: seekAndRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32794,1
    - Dst: storeLastErrno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32797,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32814,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32827,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32835,1
    - Dst: proxyGetLockPath
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32851,1
    - Dst: futimes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32860,1
    - Dst: proxyConchLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32867,1
    - Dst: proxyConchLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32870,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32877,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32879,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32882,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32884,1
    - Dst: robust_ftruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32885,1
    - Dst: unixWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32886,1
    - Dst: fsync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32887,1
    - Dst: osFstat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32893,1
    - Dst: osFchmod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32899,1
    - Dst: osFchmod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32902,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32906,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32907,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32909,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32913,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32914,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32919,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32922,1
    - Dst: robust_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32926,1
    - Dst: robust_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32929,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32930,1
    - Dst: proxyCreateUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32940,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32955,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32970,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32972,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 140
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32978
      start: 32761
    functionDepth: 12
    functionLinenumber: 32761
    functionLinenumberEnd: 32978
    functionName: proxyTakeConch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fprintf
    - osGetpid
    - fsync
    - robust_ftruncate
    - storeLastErrno
    - robust_open
    - strlen
    - strerror
    - futimes
    - osFchmod
    - memcpy
    - sqlite3DbStrDup
    - proxyGetHostID
    - strncmp
    - osFstat
    - proxyGetLockPath
    - seekAndRead
    - unixWrite
    - strlcpy
    - unixFile*::pMethod::xUnlock
    - proxyConchLock
    - robust_close
    - OSTRACE
    - proxyCreateUnixFile
    linkageType: ''
    returnType: int
    signature: int proxyTakeConch(unixFile *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32990,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32992,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32994,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:32997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33000
      start: 32983
    functionDepth: 1
    functionLinenumber: 32983
    functionLinenumberEnd: 33000
    functionName: proxyReleaseConch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetpid
    - OSTRACE
    - unixFile*::pMethod::xUnlock
    linkageType: ''
    returnType: int
    signature: int proxyReleaseConch(unixFile *pFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33015,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33020,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33024,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33040,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33041,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dbPath
    - pConchPath
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: ( (int)strlen(conchPath) == len+7 )
      pos:
        line_end: 33040
        line_start: 33040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33044
      start: 33013
    functionDepth: 0
    functionLinenumber: 33013
    functionLinenumberEnd: 33044
    functionName: proxyCreateConchPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - assert
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int proxyCreateConchPathname(char *dbPath, char **pConchPath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33060,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33061,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33068,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33070,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33072,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33073,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - pFile
    - path
    argTypes:
    - unixFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33077
      start: 33050
    functionDepth: 6
    functionLinenumber: 33050
    functionLinenumberEnd: 33077
    functionName: switchLockProxyPath
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    - sqlite3_free
    - sqlite3DbStrDup
    - strcmp
    - unixFile*::pMethod::xClose
    linkageType: ''
    returnType: int
    signature: int switchLockProxyPath(unixFile *pFile, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33091,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33091,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33092,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33099,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33099,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33103,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33103,1
    - Dst: strlcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pFile
    - dbPath
    argTypes:
    - unixFile*
    - char*
    assertStmts:
    - condition: ( (int)strlen((char*)pFile->lockingContext)<=MAXPATHLEN )
      pos:
        line_end: 33090
        line_start: 33090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( strlen((char*)pFile->lockingContext)<=MAXPATHLEN )
      pos:
        line_end: 33102
        line_start: 33102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33107
      start: 33086
    functionDepth: 0
    functionLinenumber: 33086
    functionLinenumberEnd: 33107
    functionName: proxyGetDbPathForUnixFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlcpy
    - strlen
    - assert
    linkageType: ''
    returnType: int
    signature: int proxyGetDbPathForUnixFile(unixFile *pFile, char *dbPath)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: proxyGetDbPathForUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33126,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33127,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33133,1
    - Dst: osGetpid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33134,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33136,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33140,1
    - Dst: proxyCreateConchPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33142,1
    - Dst: proxyCreateUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33144,1
    - Dst: osStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33155,1
    - Dst: statfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33157,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33168,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33172,1
    - Dst: proxyLockingContext*::conchFile::pMethod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33187,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33188,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33190,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33191,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33192,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33194,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - pFile
    - path
    argTypes:
    - unixFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33197
      start: 33117
    functionDepth: 12
    functionLinenumber: 33117
    functionLinenumberEnd: 33197
    functionName: proxyTransformUnixFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3_free
    - sqlite3_malloc64
    - osStat
    - sqlite3DbStrDup
    - osGetpid
    - strcmp
    - OSTRACE
    - proxyCreateConchPathname
    - proxyCreateUnixFile
    - proxyGetDbPathForUnixFile
    - statfs
    - proxyLockingContext*::conchFile::pMethod::xClose
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: int proxyTransformUnixFile(unixFile *pFile, const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33210,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33241,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33243,1
    - Dst: switchLockProxyPath
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33247,1
    - Dst: proxyTransformUnixFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33251,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 33256
        line_start: 33256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33262
      start: 33204
    functionDepth: 13
    functionLinenumber: 33204
    functionLinenumberEnd: 33262
    functionName: proxyFileControl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - strncmp
    - proxyTakeConch
    - assert
    - strcmp
    - proxyTransformUnixFile
    - switchLockProxyPath
    linkageType: ''
    returnType: int
    signature: int proxyFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33279,1
    - Dst: unixFile*::pMethod::xCheckReservedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33290
      start: 33277
    functionDepth: 13
    functionLinenumber: 33277
    functionLinenumberEnd: 33290
    functionName: proxyCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - proxyTakeConch
    - unixFile*::pMethod::xCheckReservedLock
    linkageType: ''
    returnType: int
    signature: int proxyCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33318,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33330
      start: 33316
    functionDepth: 13
    functionLinenumber: 33316
    functionLinenumberEnd: 33330
    functionName: proxyLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixFile*::pMethod::xLock
    - proxyTakeConch
    linkageType: ''
    returnType: int
    signature: int proxyLock(sqlite3_file *id, int eFileLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33342,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33354
      start: 33340
    functionDepth: 13
    functionLinenumber: 33340
    functionLinenumberEnd: 33354
    functionName: proxyUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - proxyTakeConch
    - unixFile*::pMethod::xUnlock
    linkageType: ''
    returnType: int
    signature: int proxyUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33368,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33370,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33372,1
    - Dst: proxyReleaseConch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33377,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33380,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33382,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33384,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33385,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33386,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33390,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33394
      start: 33359
    functionDepth: 5
    functionLinenumber: 33359
    functionLinenumberEnd: 33394
    functionName: proxyClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - unixFile*::pMethod::xClose
    - unixFile*::pMethod::xUnlock
    - proxyReleaseConch
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: int proxyClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33475,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33476,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33478,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33480,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33482,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33483,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33484,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33486,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33489,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33492,1
    - Dst: defined
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33494,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33495,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33496,1
    - Dst: UNIXVFS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33497,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33504,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33504,1
    - Dst: sqlite3_vfs_register
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ArraySize(aSyscall)==25 )
      pos:
        line_end: 33503
        line_start: 33503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33511
      start: 33421
    functionDepth: 3
    functionLinenumber: 33421
    functionLinenumberEnd: 33511
    functionName: sqlite3_os_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - defined
    - assert
    - ArraySize
    - sqlite3_vfs_register
    - UNIXVFS
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VFSNAME
    - ','
    - FINDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33443
      start: 33442
    functionDepth: 0
    functionLinenumber: 33442
    functionLinenumberEnd: 33443
    functionName: UNIXVFS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNIXVFS(VFSNAME, FINDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33522
      start: 33520
    functionDepth: 0
    functionLinenumber: 33520
    functionLinenumberEnd: 33522
    functionName: sqlite3_os_end
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33626
      start: 33622
    functionDepth: 0
    functionLinenumber: 33622
    functionLinenumberEnd: 33626
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33645
      start: 33641
    functionDepth: 0
    functionLinenumber: 33641
    functionLinenumberEnd: 33645
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33660
      start: 33649
    functionDepth: 0
    functionLinenumber: 33649
    functionLinenumberEnd: 33660
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33673
      start: 33673
    functionDepth: 0
    functionLinenumber: 33673
    functionLinenumberEnd: 33673
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33707
      start: 33706
    functionDepth: 0
    functionLinenumber: 33706
    functionLinenumberEnd: 33707
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33711
      start: 33707
    functionDepth: 0
    functionLinenumber: 33707
    functionLinenumberEnd: 33711
    functionName: SimulateIOError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:33712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33715
      start: 33711
    functionDepth: 1
    functionLinenumber: 33711
    functionLinenumberEnd: 33715
    functionName: local_ioerr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33727
      start: 33716
    functionDepth: 0
    functionLinenumber: 33716
    functionLinenumberEnd: 33727
    functionName: SimulateDiskfullError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33739
      start: 33738
    functionDepth: 0
    functionLinenumber: 33738
    functionLinenumberEnd: 33739
    functionName: OpenCounter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33877
      start: 33876
    functionDepth: 0
    functionLinenumber: 33876
    functionLinenumberEnd: 33877
    functionName: winIsDirSep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winIsDirSep(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33885
      start: 33884
    functionDepth: 0
    functionLinenumber: 33884
    functionLinenumberEnd: 33885
    functionName: UNUSED_VARIABLE_VALUE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_VARIABLE_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33892
      start: 33891
    functionDepth: 0
    functionLinenumber: 33891
    functionLinenumberEnd: 33892
    functionName: winGetDirSep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winGetDirSep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34112
      start: 34111
    functionDepth: 0
    functionLinenumber: 34111
    functionLinenumberEnd: 34112
    functionName: winMemAssertMagic1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34113
      start: 34112
    functionDepth: 0
    functionLinenumber: 34112
    functionLinenumberEnd: 34113
    functionName: winMemAssertMagic2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34114
      start: 34113
    functionDepth: 0
    functionLinenumber: 34113
    functionLinenumberEnd: 34114
    functionName: winMemAssertMagic
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34119
      start: 34118
    functionDepth: 0
    functionLinenumber: 34118
    functionLinenumberEnd: 34119
    functionName: winMemGetDataPtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetDataPtr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34120
      start: 34119
    functionDepth: 0
    functionLinenumber: 34119
    functionLinenumberEnd: 34120
    functionName: winMemGetHeap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetHeap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34121
      start: 34120
    functionDepth: 0
    functionLinenumber: 34120
    functionLinenumberEnd: 34121
    functionName: winMemGetOwned
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetOwned()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34161
      start: 34160
    functionDepth: 0
    functionLinenumber: 34160
    functionLinenumberEnd: 34161
    functionName: osAreFileApisANSI
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osAreFileApisANSI()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34838,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pNotUsed
    - zName
    - pNewFunc
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_syscall_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34866
      start: 34830
    functionDepth: 1
    functionLinenumber: 34830
    functionLinenumberEnd: 34866
    functionName: winSetSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int winSetSystemCall(\n  sqlite3_vfs *pNotUsed,        /* The VFS
      pointer.  Not used */\n  const char *zName,            /* Name of system call
      to override */\n  sqlite3_syscall_ptr pNewFunc  /* Pointer to new system call
      value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34879,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pNotUsed
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34884
      start: 34873
    functionDepth: 1
    functionLinenumber: 34873
    functionLinenumberEnd: 34884
    functionName: winGetSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_syscall_ptr
    signature: "sqlite3_syscall_ptr winGetSystemCall(\n  sqlite3_vfs *pNotUsed,\n
      \ const char *zName\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34895,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34897,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34898,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34901,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34905
      start: 34892
    functionDepth: 1
    functionLinenumber: 34892
    functionLinenumberEnd: 34905
    functionName: winNextSystemCall
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    - ArraySize
    linkageType: ''
    returnType: char
    signature: char *winNextSystemCall(sqlite3_vfs *p, const char *zName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34920,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34921,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34922,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34923,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34925,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34925,1
    - Dst: osHeapCompact
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34928,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34929,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34931,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34935,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34936,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pnLargest
    argTypes:
    - LPUINT
    assertStmts:
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 34922
        line_start: 34922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) )
      pos:
        line_end: 34924
        line_start: 34924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 34921
        line_start: 34921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34947
      start: 34915
    functionDepth: 8
    functionLinenumber: 34915
    functionLinenumberEnd: 34947
    functionName: sqlite3_win32_compact_heap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osHeapValidate
    - assert
    - sqlite3_log
    - winMemGetHeap
    - osGetLastError
    - winMemAssertMagic
    - osHeapCompact
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_compact_heap(LPUINT pnLargest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34957,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34958,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34959,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34959,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34960,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34960,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34961,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34962,1
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34963,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34964,1
    - Dst: winMemGetOwned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34964,1
    - Dst: sqlite3_memory_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34964,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34972,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34972,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34973,1
    - Dst: winMemGetOwned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34974,1
    - Dst: sqlite3_memory_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34974,1
    - Dst: winMemShutdown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34975,1
    - Dst: winMemGetDataPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34976,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34977,1
    - Dst: winMemGetOwned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34977,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34978,1
    - Dst: sqlite3_memory_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34978,1
    - Dst: winMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34979,1
    - Dst: winMemGetDataPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34979,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34980,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34980,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34981,1
    - Dst: winMemGetOwned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34982,1
    - Dst: sqlite3_memory_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34982,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34989,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:34990,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !winMemGetOwned() )
      pos:
        line_end: 34976
        line_start: 34976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_memory_used()==0 )
      pos:
        line_end: 34977
        line_start: 34977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || winMemGetHeap()!=NULL )
      pos:
        line_end: 34979
        line_start: 34979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMemGetOwned() )
      pos:
        line_end: 34972
        line_start: 34972
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMemGetHeap()!=NULL )
      pos:
        line_end: 34971
        line_start: 34971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winMemGetHeap()==NULL )
      pos:
        line_end: 34975
        line_start: 34975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || winMemGetOwned() )
      pos:
        line_end: 34980
        line_start: 34980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || sqlite3_memory_used()==0 )
      pos:
        line_end: 34981
        line_start: 34981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_memory_used()==0 )
      pos:
        line_end: 34973
        line_start: 34973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34992
      start: 34955
    functionDepth: 3
    functionLinenumber: 34955
    functionLinenumberEnd: 34992
    functionName: sqlite3_win32_reset_heap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_alloc
    - sqlite3_mutex_leave
    - assert
    - winMemGetHeap
    - winMemGetOwned
    - winMemAssertMagic
    - winMemInit
    - winMemShutdown
    - MUTEX_LOGIC
    - winMemGetDataPtr
    - sqlite3_memory_used
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_reset_heap()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35004,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35007,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35008,1
    - Dst: osOutputDebugStringA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35009,1
    - Dst: osOutputDebugStringA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35011,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35014,1
    - Dst: osMultiByteToWideChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35015,1
    - Dst: osAreFileApisANSI
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35016,1
    - Dst: osOutputDebugStringW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35020,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35023,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35024,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35025,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - zBuf
    - nBuf
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( nMin==-1 || nMin==0 || nMin<SQLITE_WIN32_DBG_BUF_SIZE )
      pos:
        line_end: 35003
        line_start: 35003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35030
      start: 35000
    functionDepth: 1
    functionLinenumber: 35000
    functionLinenumberEnd: 35030
    functionName: sqlite3_win32_write_debug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osOutputDebugStringA
    - memset
    - osAreFileApisANSI
    - assert
    - fprintf
    - osMultiByteToWideChar
    - memcpy
    - osOutputDebugStringW
    - MIN
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_write_debug(const char *zBuf, int nBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osCreateEventExW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35043,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35046,1
    - Dst: osWaitForSingleObjectEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35047,1
    - Dst: osSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - milliseconds
    argTypes:
    - DWORD
    assertStmts:
    - condition: ( sleepObj!=NULL )
      pos:
        line_end: 35045
        line_start: 35045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35051
      start: 35040
    functionDepth: 0
    functionLinenumber: 35040
    functionLinenumberEnd: 35051
    functionName: sqlite3_win32_sleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osCreateEventExW
    - osWaitForSingleObjectEx
    - osSleep
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_sleep(DWORD milliseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osWaitForSingleObjectEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hObject
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35060
      start: 35055
    functionDepth: 0
    functionLinenumber: 35055
    functionLinenumberEnd: 35060
    functionName: sqlite3Win32Wait
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osWaitForSingleObjectEx
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Win32Wait(HANDLE hObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35077
      start: 35076
    functionDepth: 0
    functionLinenumber: 35076
    functionLinenumberEnd: 35077
    functionName: osIsNT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35079
      start: 35078
    functionDepth: 0
    functionLinenumber: 35078
    functionLinenumberEnd: 35079
    functionName: osIsNT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35081
      start: 35080
    functionDepth: 0
    functionLinenumber: 35080
    functionLinenumberEnd: 35081
    functionName: osIsNT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35083
      start: 35082
    functionDepth: 0
    functionLinenumber: 35082
    functionLinenumberEnd: 35083
    functionName: osIsNT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osInterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35097,1
    - Dst: osGetVersionExA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35101,1
    - Dst: osInterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35102,1
    - Dst: osGetVersionExW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35107,1
    - Dst: osInterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35108,1
    - Dst: osInterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35112,1
    - Dst: osInterlockedCompareExchange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35122
      start: 35089
    functionDepth: 0
    functionLinenumber: 35089
    functionLinenumberEnd: 35122
    functionName: sqlite3_win32_is_nt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osInterlockedCompareExchange
    - osGetVersionExW
    - osGetVersionExA
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_is_nt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35132,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35133,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35134,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35137,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35137,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35139,1
    - Dst: osHeapAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35140,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35142,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts:
    - condition: ( hHeap!=0 )
      pos:
        line_end: 35133
        line_start: 35133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35134
        line_start: 35134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) )
      pos:
        line_end: 35136
        line_start: 35136
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 35138
        line_start: 35138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35146
      start: 35128
    functionDepth: 8
    functionLinenumber: 35128
    functionLinenumberEnd: 35146
    functionName: winMemMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osHeapAlloc
    - osHeapValidate
    - assert
    - sqlite3_log
    - winMemGetHeap
    - osGetLastError
    - winMemAssertMagic
    linkageType: ''
    returnType: void
    signature: void *winMemMalloc(int nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35154,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35155,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35156,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35157,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35159,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35159,1
    - Dst: osHeapFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35162,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35163,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) )
      pos:
        line_end: 35158
        line_start: 35158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35156
        line_start: 35156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 35155
        line_start: 35155
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35166
      start: 35151
    functionDepth: 8
    functionLinenumber: 35151
    functionLinenumberEnd: 35166
    functionName: winMemFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osHeapValidate
    - assert
    - sqlite3_log
    - winMemGetHeap
    - osHeapFree
    - osGetLastError
    - winMemAssertMagic
    linkageType: ''
    returnType: void
    signature: void winMemFree(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35175,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35176,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35177,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35180,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35182,1
    - Dst: osHeapAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35184,1
    - Dst: osHeapReAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35186,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35189,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35177
        line_start: 35177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 35176
        line_start: 35176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) )
      pos:
        line_end: 35179
        line_start: 35179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 35181
        line_start: 35181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35194
      start: 35171
    functionDepth: 8
    functionLinenumber: 35171
    functionLinenumberEnd: 35194
    functionName: winMemRealloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osHeapAlloc
    - osHeapValidate
    - osHeapReAlloc
    - assert
    - sqlite3_log
    - winMemGetHeap
    - osGetLastError
    - winMemAssertMagic
    linkageType: ''
    returnType: void
    signature: void *winMemRealloc(void *pPrior, int nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35203,1
    - Dst: winMemGetHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35204,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35206,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35208,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35208,1
    - Dst: osHeapSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35211,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35213,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( hHeap!=0 )
      pos:
        line_end: 35204
        line_start: 35204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, p) )
      pos:
        line_end: 35207
        line_start: 35207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35205
        line_start: 35205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35218
      start: 35199
    functionDepth: 8
    functionLinenumber: 35199
    functionLinenumberEnd: 35218
    functionName: winMemSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osHeapValidate
    - assert
    - sqlite3_log
    - winMemGetHeap
    - osHeapSize
    - osGetLastError
    - winMemAssertMagic
    linkageType: ''
    returnType: int
    signature: int winMemSize(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35225
      start: 35223
    functionDepth: 0
    functionLinenumber: 35223
    functionLinenumberEnd: 35225
    functionName: winMemRoundup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winMemRoundup(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35235,1
    - Dst: osHeapCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35246,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35249,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35251,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35256,1
    - Dst: osGetProcessHeap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35259,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35261,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35262,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35266,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35271,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - pAppData
    argTypes:
    - void*
    assertStmts:
    - condition: ( pWinMemData->magic1==WINMEM_MAGIC1 )
      pos:
        line_end: 35233
        line_start: 35233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->magic2==WINMEM_MAGIC2 )
      pos:
        line_end: 35234
        line_start: 35234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->bOwned )
      pos:
        line_end: 35255
        line_start: 35255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pWinMemData->bOwned )
      pos:
        line_end: 35265
        line_start: 35265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35268
        line_start: 35268
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->hHeap!=0 )
      pos:
        line_end: 35267
        line_start: 35267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL)
        )
      pos:
        line_end: 35270
        line_start: 35270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35274
      start: 35230
    functionDepth: 8
    functionLinenumber: 35230
    functionLinenumberEnd: 35274
    functionName: winMemInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osGetProcessHeap
    - osHeapValidate
    - assert
    - osHeapCreate
    - sqlite3_log
    - osGetLastError
    linkageType: ''
    returnType: int
    signature: int winMemInit(void *pAppData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35284,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35287,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35289,1
    - Dst: osHeapValidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35289,1
    - Dst: osHeapDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35292,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35293,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - pAppData
    argTypes:
    - void*
    assertStmts:
    - condition: ( pWinMemData->magic1==WINMEM_MAGIC1 )
      pos:
        line_end: 35282
        line_start: 35282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->magic2==WINMEM_MAGIC2 )
      pos:
        line_end: 35283
        line_start: 35283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL)
        )
      pos:
        line_end: 35288
        line_start: 35288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWinMemData->hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 35286
        line_start: 35286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35300
      start: 35279
    functionDepth: 8
    functionLinenumber: 35279
    functionLinenumberEnd: 35300
    functionName: winMemShutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osHeapValidate
    - assert
    - sqlite3_log
    - osHeapDestroy
    - osGetLastError
    linkageType: ''
    returnType: void
    signature: void winMemShutdown(void *pAppData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35322
      start: 35310
    functionDepth: 0
    functionLinenumber: 35310
    functionLinenumberEnd: 35322
    functionName: sqlite3_mem_methods *sqlite3MemGetWin32(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetWin32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35325,1
    - Dst: sqlite3MemGetWin32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35326
      start: 35324
    functionDepth: 1
    functionLinenumber: 35324
    functionLinenumberEnd: 35326
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_config
    - sqlite3MemGetWin32
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osMultiByteToWideChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35338,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35342,1
    - Dst: osMultiByteToWideChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35346,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35353
      start: 35334
    functionDepth: 5
    functionLinenumber: 35334
    functionLinenumberEnd: 35353
    functionName: winUtf8ToUnicode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osMultiByteToWideChar
    - sqlite3_free
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR winUtf8ToUnicode(const char *zFilename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osWideCharToMultiByte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35363,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35367,1
    - Dst: osWideCharToMultiByte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35371,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zWideFilename
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35378
      start: 35359
    functionDepth: 5
    functionLinenumber: 35359
    functionLinenumberEnd: 35378
    functionName: winUnicodeToUtf8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3_free
    - osWideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: char *winUnicodeToUtf8(LPCWSTR zWideFilename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osAreFileApisANSI
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35390,1
    - Dst: osMultiByteToWideChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35392,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35397,1
    - Dst: osMultiByteToWideChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35401,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35408
      start: 35387
    functionDepth: 5
    functionLinenumber: 35387
    functionLinenumberEnd: 35408
    functionName: winMbcsToUnicode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osMultiByteToWideChar
    - osAreFileApisANSI
    - sqlite3_free
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR winMbcsToUnicode(const char *zFilename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osAreFileApisANSI
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35420,1
    - Dst: osWideCharToMultiByte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35422,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35426,1
    - Dst: osWideCharToMultiByte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35430,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zWideFilename
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35437
      start: 35417
    functionDepth: 5
    functionLinenumber: 35417
    functionLinenumberEnd: 35437
    functionName: winUnicodeToMbcs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osAreFileApisANSI
    - sqlite3_free
    - osWideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: char *winUnicodeToMbcs(LPCWSTR zWideFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winMbcsToUnicode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35447,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35451,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35454
      start: 35443
    functionDepth: 6
    functionLinenumber: 35443
    functionLinenumberEnd: 35454
    functionName: SQLITE_STDCALL::sqlite3_win32_mbcs_to_utf8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToUtf8
    - winMbcsToUnicode
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_win32_mbcs_to_utf8(const char *zFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winUtf8ToUnicode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35464,1
    - Dst: winUnicodeToMbcs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35468,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35471
      start: 35460
    functionDepth: 6
    functionLinenumber: 35460
    functionLinenumberEnd: 35471
    functionName: SQLITE_STDCALL::sqlite3_win32_utf8_to_mbcs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToMbcs
    - winUtf8ToUnicode
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_win32_utf8_to_mbcs(const char *zFilename)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35483,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35491,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35494,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35494,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35498,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - type
    - zValue
    argTypes:
    - DWORD
    - LPCWSTR
    assertStmts:
    - condition: "( !ppDirectory || type==SQLITE_WIN32_DATA_DIRECTORY_TYPE\n          ||
        type==SQLITE_WIN32_TEMP_DIRECTORY_TYPE\n  )"
      pos:
        line_end: 35492
        line_start: 35490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ppDirectory || sqlite3MemdebugHasType(*ppDirectory, MEMTYPE_HEAP)
        )
      pos:
        line_end: 35493
        line_start: 35493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35508
      start: 35480
    functionDepth: 6
    functionLinenumber: 35480
    functionLinenumberEnd: 35508
    functionName: sqlite3_win32_set_directory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_free
    - assert
    - sqlite3MemdebugHasType
    - winUnicodeToUtf8
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_set_directory(DWORD type, LPCWSTR zValue)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35523,1
    - Dst: osFormatMessageW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35526,1
    - Dst: osFormatMessageW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35536,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35548,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35549,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35550,1
    - Dst: osLocalFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35553,1
    - Dst: osFormatMessageA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35560,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35571,1
    - Dst: sqlite3_win32_mbcs_to_utf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35572,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35573,1
    - Dst: osLocalFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35575,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35580,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35583,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - lastErrno
    - nBuf
    - zBuf
    argTypes:
    - DWORD
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35588
      start: 35515
    functionDepth: 6
    functionLinenumber: 35515
    functionLinenumberEnd: 35588
    functionName: winGetLastErrorMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osLocalFree
    - sqlite3_free
    - sqlite3BeginBenignMalloc
    - sqlite3EndBenignMalloc
    - osFormatMessageW
    - osFormatMessageA
    - sqlite3_win32_mbcs_to_utf8
    - winUnicodeToUtf8
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int winGetLastErrorMsg(DWORD lastErrno, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35606
      start: 35605
    functionDepth: 0
    functionLinenumber: 35605
    functionLinenumberEnd: 35606
    functionName: winLogError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winLogError(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winGetLastErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35617,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35618,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - errcode
    - lastErrno
    - zFunc
    - zPath
    - iLine
    argTypes:
    - int
    - DWORD
    - char*
    - char*
    - int
    assertStmts:
    - condition: ( errcode!=SQLITE_OK )
      pos:
        line_end: 35617
        line_start: 35617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35628
      start: 35606
    functionDepth: 8
    functionLinenumber: 35606
    functionLinenumberEnd: 35628
    functionName: winLogErrorAtLine
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - sqlite3_log
    - assert
    linkageType: ''
    returnType: int
    signature: "int winLogErrorAtLine(\n  int errcode,                    /* SQLite
      error code */\n  DWORD lastErrno,                /* Win32 last error */\n  const
      char *zFunc,              /* Name of OS function that failed */\n  const char
      *zPath,              /* File path associated with error */\n  int iLine                       /*
      Source line number where error occurred */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35669
      start: 35662
    functionDepth: 0
    functionLinenumber: 35662
    functionLinenumberEnd: 35669
    functionName: winIoerrCanRetry1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winIoerrCanRetry1(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35677,1
    - Dst: winIoerrCanRetry1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35684,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35685,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pnRetry
    - pError
    argTypes:
    - int*
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35700
      start: 35676
    functionDepth: 1
    functionLinenumber: 35676
    functionLinenumberEnd: 35700
    functionName: winRetryIoerr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIoerrCanRetry1
    - osGetLastError
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: int
    signature: int winRetryIoerr(int *pnRetry, DWORD *pError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35694
      start: 35690
    functionDepth: 1
    functionLinenumber: 35690
    functionLinenumberEnd: 35694
    functionName: if
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: else
    signature: else if( winIoerrCanRetry2(e) )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nRetry
    - lineno
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35712
      start: 35705
    functionDepth: 8
    functionLinenumber: 35705
    functionLinenumberEnd: 35712
    functionName: winLogIoerr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void winLogIoerr(int nRetry, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osFileTimeToLocalFileTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35734,1
    - Dst: osFileTimeToSystemTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35744
      start: 35724
    functionDepth: 0
    functionLinenumber: 35724
    functionLinenumberEnd: 35744
    functionName: localtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osFileTimeToLocalFileTime
    - osFileTimeToSystemTime
    linkageType: ''
    returnType: struct tm
    signature: struct tm *__cdecl localtime(const time_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35748
      start: 35747
    functionDepth: 0
    functionLinenumber: 35747
    functionLinenumberEnd: 35748
    functionName: HANDLE_TO_WINFILE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_TO_WINFILE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osWaitForSingleObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35757
      start: 35752
    functionDepth: 0
    functionLinenumber: 35752
    functionLinenumberEnd: 35757
    functionName: winceMutexAcquire
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osWaitForSingleObject
    linkageType: ''
    returnType: void
    signature: void winceMutexAcquire(HANDLE h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35762
      start: 35761
    functionDepth: 0
    functionLinenumber: 35761
    functionLinenumberEnd: 35762
    functionName: winceMutexRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winceMutexRelease(h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: winUtf8ToUnicode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35774,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35781,1
    - Dst: osCharLowerW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35785,1
    - Dst: osCreateMutexW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35791,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35793,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35794,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35795,1
    - Dst: winceMutexAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35800,1
    - Dst: osCharUpperW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35806,1
    - Dst: osCreateFileMappingW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35807,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35813,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35818,1
    - Dst: osMapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35822,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35826,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35827,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35830,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35839,1
    - Dst: winceMutexRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35843,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35844,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35851,1
    - Dst: winceMutexRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35854,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - zFilename
    - pFile
    argTypes:
    - char*
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35856
      start: 35767
    functionDepth: 6
    functionLinenumber: 35767
    functionLinenumberEnd: 35856
    functionName: winceCreateLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osMapViewOfFile
    - memset
    - osCloseHandle
    - osCharLowerW
    - sqlite3_free
    - winLogError
    - osCreateFileMappingW
    - osCreateMutexW
    - winceMutexRelease
    - osGetLastError
    - osCharUpperW
    - winUtf8ToUnicode
    - winceMutexAcquire
    linkageType: ''
    returnType: int
    signature: int winceCreateLock(const char *zFilename, winFile *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: winceMutexAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35864,1
    - Dst: osUnmapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35882,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35883,1
    - Dst: winceMutexRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35886,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35890
      start: 35861
    functionDepth: 1
    functionLinenumber: 35861
    functionLinenumberEnd: 35890
    functionName: winceDestroyLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osCloseHandle
    - osUnmapViewOfFile
    - winceMutexRelease
    - winceMutexAcquire
    linkageType: ''
    returnType: void
    signature: void winceDestroyLock(winFile *pFile)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_TO_WINFILE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35902,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35905,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35906,1
    - Dst: winceMutexAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35909,1
    - Dst: winceMutexRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35954,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 5
    argNames:
    - phFile
    - dwFileOffsetLow
    - dwFileOffsetHigh
    - nNumberOfBytesToLockLow
    - nNumberOfBytesToLockHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35956
      start: 35895
    functionDepth: 1
    functionLinenumber: 35895
    functionLinenumberEnd: 35956
    functionName: winceLockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winceMutexRelease
    - HANDLE_TO_WINFILE
    - UNUSED_PARAMETER
    - winceMutexAcquire
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winceLockFile(\n  LPHANDLE phFile,\n  DWORD dwFileOffsetLow,\n
      \ DWORD dwFileOffsetHigh,\n  DWORD nNumberOfBytesToLockLow,\n  DWORD nNumberOfBytesToLockHigh\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_TO_WINFILE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35968,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35971,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35972,1
    - Dst: winceMutexAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:35989,1
    - Dst: winceMutexRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36019,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - phFile
    - dwFileOffsetLow
    - dwFileOffsetHigh
    - nNumberOfBytesToUnlockLow
    - nNumberOfBytesToUnlockHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts:
    - condition: (nNumberOfBytesToUnlockLow == (DWORD)SHARED_SIZE)
      pos:
        line_end: 35980
        line_start: 35980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "(nNumberOfBytesToUnlockLow == (DWORD)SHARED_SIZE\n             ||
        nNumberOfBytesToUnlockLow == 1)"
      pos:
        line_end: 35989
        line_start: 35988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36021
      start: 35961
    functionDepth: 1
    functionLinenumber: 35961
    functionLinenumberEnd: 36021
    functionName: winceUnlockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - winceMutexRelease
    - HANDLE_TO_WINFILE
    - winceMutexAcquire
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winceUnlockFile(\n  LPHANDLE phFile,\n  DWORD dwFileOffsetLow,\n
      \ DWORD dwFileOffsetHigh,\n  DWORD nNumberOfBytesToUnlockLow,\n  DWORD nNumberOfBytesToUnlockHigh\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winceLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36043,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36046,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36048,1
    - Dst: osLockFileEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36051,1
    - Dst: osLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - phFile
    - flags
    - offsetLow
    - offsetHigh
    - numBytesLow
    - numBytesHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36057
      start: 36030
    functionDepth: 2
    functionLinenumber: 36030
    functionLinenumberEnd: 36057
    functionName: winLockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - memset
    - osLockFile
    - osLockFileEx
    - winceLockFile
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winLockFile(\n  LPHANDLE phFile,\n  DWORD flags,\n  DWORD offsetLow,\n
      \ DWORD offsetHigh,\n  DWORD numBytesLow,\n  DWORD numBytesHigh\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winceUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36074,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36077,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36079,1
    - Dst: osUnlockFileEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36082,1
    - Dst: osUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - phFile
    - offsetLow
    - offsetHigh
    - numBytesLow
    - numBytesHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36088
      start: 36062
    functionDepth: 2
    functionLinenumber: 36062
    functionLinenumberEnd: 36088
    functionName: winUnlockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - memset
    - osUnlockFile
    - winceUnlockFile
    - osUnlockFileEx
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winUnlockFile(\n  LPHANDLE phFile,\n  DWORD offsetLow,\n  DWORD
      offsetHigh,\n  DWORD numBytesLow,\n  DWORD numBytesHigh\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36114,1
    - Dst: osSetFilePointer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36126,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36129,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36131,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36133,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36137,1
    - Dst: osSetFilePointerEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36148,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36151,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36152,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36154,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - pFile
    - iOffset
    argTypes:
    - winFile*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36161
      start: 36107
    functionDepth: 1
    functionLinenumber: 36107
    functionLinenumberEnd: 36161
    functionName: winSeekFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osSetFilePointer
    - osGetLastError
    - OSTRACE
    - osSetFilePointerEx
    linkageType: ''
    returnType: int
    signature: int winSeekFile(winFile *pFile, sqlite3_int64 iOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36184,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36188,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36189,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36190,1
    - Dst: winUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36193,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36197,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36199,1
    - Dst: winceDestroyLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36202,1
    - Dst: osDeleteFileW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36206,1
    - Dst: osGetFileAttributesW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36207,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36210,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36212,1
    - Dst: OpenCounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36218,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36219,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36220,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36222,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 36183
        line_start: 36183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->h!=NULL && pFile->h!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 36187
        line_start: 36187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->pShm==0 )
      pos:
        line_end: 36185
        line_start: 36185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36224
      start: 36180
    functionDepth: 3
    functionLinenumber: 36180
    functionLinenumberEnd: 36224
    functionName: winClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetCurrentProcessId
    - osCloseHandle
    - winUnmapfile
    - assert
    - sqlite3_free
    - winceDestroyLock
    - winLogError
    - osDeleteFileW
    - sqlite3_win32_sleep
    - osGetLastError
    - OSTRACE
    - OpenCounter
    - osGetFileAttributesW
    linkageType: ''
    returnType: int
    signature: int winClose(sqlite3_file *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36425,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36427,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36428,1
    - Dst: winSeekFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36440,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36441,1
    - Dst: osSetEndOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36443,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36444,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36446,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36460,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36461,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - id
    - nByte
    argTypes:
    - sqlite3_file*
    - sqlite3_int64
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 36424
        line_start: 36424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36463
      start: 36420
    functionDepth: 2
    functionLinenumber: 36420
    functionLinenumberEnd: 36463
    functionName: winTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - osGetCurrentProcessId
    - assert
    - winLogError
    - osSetEndOfFile
    - osGetLastError
    - OSTRACE
    - winSeekFile
    linkageType: ''
    returnType: int
    signature: int winTruncate(sqlite3_file *id, sqlite3_int64 nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36492,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36495,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36497,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36506,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36507,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36511,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36523,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36524,1
    - Dst: osFlushViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36529,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36530,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36531,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36534,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36535,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36536,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36538,1
    - Dst: osFlushFileBuffers
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36543,1
    - Dst: SimulateIOError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36544,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36546,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36547,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36550,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36551,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36552,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36553,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: "((flags&0x0F)==SQLITE_SYNC_NORMAL\n      || (flags&0x0F)==SQLITE_SYNC_FULL\n
        \ )"
      pos:
        line_end: 36498
        line_start: 36496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 36494
        line_start: 36494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36557
      start: 36477
    functionDepth: 1
    functionLinenumber: 36477
    functionLinenumberEnd: 36557
    functionName: winSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetCurrentProcessId
    - assert
    - winLogError
    - SimulateIOError
    - UNUSED_PARAMETER
    - osGetLastError
    - OSTRACE
    - osFlushViewOfFile
    - osFlushFileBuffers
    linkageType: ''
    returnType: int
    signature: int winSync(sqlite3_file *id, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36566,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36567,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36569,1
    - Dst: osGetFileInformationByHandleEx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36574,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36578,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36579,1
    - Dst: osGetFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36589,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36592,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36594,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36599,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite3_int64*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 36565
        line_start: 36565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSize!=0 )
      pos:
        line_end: 36566
        line_start: 36566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36602
      start: 36562
    functionDepth: 1
    functionLinenumber: 36562
    functionLinenumberEnd: 36602
    functionName: winFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - assert
    - winLogError
    - osGetLastError
    - osGetFileInformationByHandleEx
    - OSTRACE
    - osGetFileSize
    linkageType: ''
    returnType: int
    signature: int winFileSize(sqlite3_file *id, sqlite3_int64 *pSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36642,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36643,1
    - Dst: winceLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36649,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36651,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36658,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36660,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36665,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36670
      start: 36640
    functionDepth: 3
    functionLinenumber: 36640
    functionLinenumberEnd: 36670
    functionName: winGetReadLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - winLockFile
    - sqlite3_randomness
    - winceLockFile
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winGetReadLock(winFile *pFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36678,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36679,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36680,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36684,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36687,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36689,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36694
      start: 36675
    functionDepth: 3
    functionLinenumber: 36675
    functionLinenumberEnd: 36694
    functionName: winUnlockReadLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - winUnlockFile
    - winLogError
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winUnlockReadLock(winFile *pFile)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36730,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36731,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36751,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36752,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36753,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36765,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36773,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36774,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36779,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36780,1
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36783,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36787,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36794,1
    - Dst: winGetReadLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36795,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36799,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36806,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36807,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36811,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36825,1
    - Dst: winUnlockReadLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36826,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36827,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36832,1
    - Dst: winGetReadLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36833,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36841,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36852,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36856,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36857,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK )
      pos:
        line_end: 36752
        line_start: 36752
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->locktype==NO_LOCK )
      pos:
        line_end: 36793
        line_start: 36793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->locktype==SHARED_LOCK )
      pos:
        line_end: 36805
        line_start: 36805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( id!=0 )
      pos:
        line_end: 36729
        line_start: 36729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( locktype!=PENDING_LOCK )
      pos:
        line_end: 36751
        line_start: 36751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK )
      pos:
        line_end: 36750
        line_start: 36750
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile->locktype>=SHARED_LOCK )
      pos:
        line_end: 36824
        line_start: 36824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36859
      start: 36722
    functionDepth: 4
    functionLinenumber: 36722
    functionLinenumberEnd: 36859
    functionName: winLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - winGetReadLock
    - winUnlockFile
    - assert
    - winUnlockReadLock
    - winLockFile
    - sqlite3_win32_sleep
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winLock(sqlite3_file *id, int locktype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36871,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36873,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36876,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36878,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36880,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36883,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 36872
        line_start: 36872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36889
      start: 36866
    functionDepth: 3
    functionLinenumber: 36866
    functionLinenumberEnd: 36889
    functionName: winCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLockFile
    - winUnlockFile
    - OSTRACE
    - assert
    linkageType: ''
    returnType: int
    signature: int winCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36906,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36907,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36908,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36912,1
    - Dst: winGetReadLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36913,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36916,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36916,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36921,1
    - Dst: winUnlockReadLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36924,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36927,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36930,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile!=0 )
      pos:
        line_end: 36905
        line_start: 36905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( locktype<=SHARED_LOCK )
      pos:
        line_end: 36906
        line_start: 36906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36933
      start: 36902
    functionDepth: 4
    functionLinenumber: 36902
    functionLinenumberEnd: 36933
    functionName: winUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - winGetReadLock
    - winUnlockFile
    - assert
    - winUnlockReadLock
    - winLogError
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winUnlock(sqlite3_file *id, int locktype)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pFile
    - mask
    - pArg
    argTypes:
    - winFile*
    - unsigned char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36949
      start: 36941
    functionDepth: 0
    functionLinenumber: 36941
    functionLinenumberEnd: 36949
    functionName: winModeBit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void winModeBit(winFile *pFile, unsigned char mask, int *pArg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36961,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36965,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36970,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36975,1
    - Dst: winFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36981,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36985,1
    - Dst: winTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36986,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36987,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36990,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36990,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36993,1
    - Dst: winModeBit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36997,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:36998,1
    - Dst: winModeBit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37002,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37003,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37007,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37008,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37023,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37032,1
    - Dst: winGetTempname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37039,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37043,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37043,1
    - Dst: winUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37057,1
    - Dst: winMapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37058,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37061,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37061,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37066,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 93
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37068
      start: 36959
    functionDepth: 3
    functionLinenumber: 36959
    functionLinenumberEnd: 37068
    functionName: winFileControl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - winFileSize
    - winTruncate
    - winUnmapfile
    - sqlite3_mprintf
    - winMapfile
    - SimulateIOErrorBenign
    - OSTRACE
    - winModeBit
    - winGetTempname
    linkageType: ''
    returnType: int
    signature: int winFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37083
      start: 37080
    functionDepth: 0
    functionLinenumber: 37080
    functionLinenumberEnd: 37083
    functionName: winSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winSectorSize(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37092
      start: 37088
    functionDepth: 0
    functionLinenumber: 37088
    functionLinenumberEnd: 37092
    functionName: winDeviceCharacteristics
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37118,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37119
      start: 37117
    functionDepth: 1
    functionLinenumber: 37117
    functionLinenumberEnd: 37119
    functionName: winShmEnterMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void winShmEnterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37121,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37122
      start: 37120
    functionDepth: 1
    functionLinenumber: 37120
    functionLinenumberEnd: 37122
    functionName: winShmLeaveMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void winShmLeaveMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37125,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37126
      start: 37124
    functionDepth: 1
    functionLinenumber: 37124
    functionLinenumberEnd: 37126
    functionName: winShmMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: int
    signature: int winShmMutexHeld(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37225,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37225,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37227,1
    - Dst: winUnlockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37232,1
    - Dst: winLockFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37237,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37243,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37247,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - pFile
    - lockType
    - ofst
    - nByte
    argTypes:
    - winShmNode*
    - int
    - int
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pFile->mutex) || pFile->nRef==0 )
      pos:
        line_end: 37224
        line_start: 37224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37252
      start: 37216
    functionDepth: 3
    functionLinenumber: 37216
    functionLinenumberEnd: 37252
    functionName: winShmSystemLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3ErrName
    - winUnlockFile
    - assert
    - winLockFile
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: "int winShmSystemLock(\n  winShmNode *pFile,    /* Apply locks to this
      open shared-memory segment */\n  int lockType,         /* _SHM_UNLCK, _SHM_RDLCK,
      or _SHM_WRLCK */\n  int ofst,             /* Offset to first byte to be locked/unlocked
      */\n  int nByte             /* Number of bytes to lock or unlock */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37267,1
    - Dst: winShmMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37267,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37268,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37269,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37274,1
    - Dst: osUnmapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37276,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37277,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37278,1
    - Dst: UNUSED_VARIABLE_VALUE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37279,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37280,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37281,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37282,1
    - Dst: UNUSED_VARIABLE_VALUE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37283,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37286,1
    - Dst: winClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37287,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37288,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37291,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37292,1
    - Dst: winDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37293,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37294,1
    - Dst: SimulateIOErrorBenign
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37295,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37298,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - pVfs
    - deleteFlag
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts:
    - condition: ( winShmMutexHeld() )
      pos:
        line_end: 37266
        line_start: 37266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37304
      start: 37264
    functionDepth: 4
    functionLinenumber: 37264
    functionLinenumberEnd: 37304
    functionName: winShmPurge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetCurrentProcessId
    - osCloseHandle
    - winClose
    - assert
    - sqlite3BeginBenignMalloc
    - winShmMutexHeld
    - UNUSED_VARIABLE_VALUE
    - sqlite3_mutex_free
    - sqlite3_free
    - osUnmapViewOfFile
    - sqlite3EndBenignMalloc
    - winDelete
    - SimulateIOErrorBenign
    - OSTRACE
    linkageType: ''
    returnType: void
    signature: void winShmPurge(sqlite3_vfs *pVfs, int deleteFlag)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37320,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37325,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37327,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37328,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37330,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37334,1
    - Dst: sqlite3FileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37335,1
    - Dst: winShmEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37340,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37345,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37348,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37356,1
    - Dst: winOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37362,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37374,1
    - Dst: winTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37375,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37377,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37377,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37382,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37383,1
    - Dst: winShmLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37395,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37404,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37407,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37412,1
    - Dst: winShmPurge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37413,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37414,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37415,1
    - Dst: winShmLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37416,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 1
    argNames:
    - pDbFd
    argTypes:
    - winFile*
    assertStmts:
    - condition: ( pDbFd->pShm==0 )
      pos:
        line_end: 37319
        line_start: 37319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37418
      start: 37313
    functionDepth: 5
    functionLinenumber: 37313
    functionLinenumberEnd: 37418
    functionName: winOpenSharedMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3_mutex_enter
    - sqlite3_mutex_alloc
    - winShmSystemLock
    - winShmEnterMutex
    - sqlite3StrICmp
    - sqlite3_free
    - assert
    - winTruncate
    - winLogError
    - winOpen
    - winShmLeaveMutex
    - sqlite3Strlen30
    - osGetLastError
    - winShmPurge
    - sqlite3_mutex_leave
    - sqlite3FileSuffix3
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int winOpenSharedMemory(winFile *pDbFd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37440,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37445,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37447,1
    - Dst: winShmEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37451,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37452,1
    - Dst: winShmPurge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37455,1
    - Dst: winShmLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pShmNode->nRef>0 )
      pos:
        line_end: 37451
        line_start: 37451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37460
      start: 37424
    functionDepth: 5
    functionLinenumber: 37424
    functionLinenumberEnd: 37460
    functionName: winShmUnmap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - winShmEnterMutex
    - assert
    - sqlite3_free
    - winShmLeaveMutex
    - sqlite3_mutex_leave
    - winShmPurge
    linkageType: ''
    returnType: int
    signature: "int winShmUnmap(\n  sqlite3_file *fd,          /* Database holding
      shared memory */\n  int deleteFlag             /* Delete after closing if true
      */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37478,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37479,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37480,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37484,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37487,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37488,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37495,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37501,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37529,1
    - Dst: winShmSystemLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37554,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37556,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37561,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37562,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37563,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37564,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 4
    argNames:
    - fd
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( ofst>=0 && ofst+n<=SQLITE_SHM_NLOCK )
      pos:
        line_end: 37477
        line_start: 37477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>=1 )
      pos:
        line_end: 37478
        line_start: 37478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( flags==(SQLITE_SHM_LOCK | SQLITE_SHM_SHARED)\n       || flags==(SQLITE_SHM_LOCK
        | SQLITE_SHM_EXCLUSIVE)\n       || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED)\n
        \      || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) )"
      pos:
        line_end: 37482
        line_start: 37479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 )
      pos:
        line_end: 37483
        line_start: 37483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>1 || mask==(1<<ofst) )
      pos:
        line_end: 37486
        line_start: 37486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pX->exclMask & (p->exclMask|p->sharedMask))==0 )
      pos:
        line_end: 37494
        line_start: 37494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->sharedMask & mask)==0 )
      pos:
        line_end: 37555
        line_start: 37555
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37566
      start: 37465
    functionDepth: 4
    functionLinenumber: 37465
    functionLinenumberEnd: 37566
    functionName: winShmLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ErrName
    - winShmSystemLock
    - osGetCurrentProcessId
    - assert
    - OSTRACE
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: "int winShmLock(\n  sqlite3_file *fd,          /* Database file holding
      the shared memory */\n  int ofst,                  /* First lock to acquire
      or release */\n  int n,                     /* Number of locks to acquire or
      release */\n  int flags                  /* What to do with the lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37577,1
    - Dst: winShmEnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37579,1
    - Dst: winShmLeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37581
      start: 37574
    functionDepth: 2
    functionLinenumber: 37574
    functionLinenumberEnd: 37581
    functionName: winShmBarrier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winShmLeaveMutex
    - winShmEnterMutex
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: "void winShmBarrier(\n  sqlite3_file *fd          /* Database holding
      the shared memory */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: winOpenSharedMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37615,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37621,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37622,1
    - Dst: winFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37635,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37637,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37637,1
    - Dst: winTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37650,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37652,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37652,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37659,1
    - Dst: osCreateFileMappingFromApp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37673,1
    - Dst: osCreateFileMappingW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37677,1
    - Dst: osCreateFileMappingA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37681,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37685,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37686,1
    - Dst: osMapViewOfFileFromApp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37692,1
    - Dst: osMapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37696,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37700,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37701,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37705,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37706,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37708,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37727,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 5
    argNames:
    - fd
    - iRegion
    - szRegion
    - isWrite
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 )
      pos:
        line_end: 37621
        line_start: 37621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37729
      start: 37602
    functionDepth: 6
    functionLinenumber: 37602
    functionLinenumberEnd: 37729
    functionName: winShmMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - osMapViewOfFile
    - osGetCurrentProcessId
    - winFileSize
    - winTruncate
    - assert
    - osCreateFileMappingA
    - osCloseHandle
    - winLogError
    - osCreateFileMappingW
    - sqlite3_realloc64
    - osCreateFileMappingFromApp
    - osGetLastError
    - OSTRACE
    - osMapViewOfFileFromApp
    - sqlite3_mutex_leave
    - winOpenSharedMemory
    linkageType: ''
    returnType: int
    signature: "int winShmMap(\n  sqlite3_file *fd,               /* Handle open on
      database file */\n  int iRegion,                    /* Region to retrieve */\n
      \ int szRegion,                   /* Size of regions */\n  int isWrite,                    /*
      True to extend file if necessary */\n  void volatile **pp              /* OUT:
      Mapped memory */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37743,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37744,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37746,1
    - Dst: osUnmapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37749,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37750,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37751,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37752,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37754,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37762,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37763,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37764,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37765,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37766,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37771,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts:
    - condition: ( pFile!=0 )
      pos:
        line_end: 37742
        line_start: 37742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37774
      start: 37742
    functionDepth: 1
    functionLinenumber: 37742
    functionLinenumberEnd: 37774
    functionName: winUnmapfile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - osGetCurrentProcessId
    - osCloseHandle
    - assert
    - winLogError
    - osUnmapViewOfFile
    - osGetLastError
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winUnmapfile(winFile *pFile)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37796,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37797,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37798,1
    - Dst: winFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37803,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37805,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37806,1
    - Dst: winUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37816,1
    - Dst: winUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37823,1
    - Dst: osCreateFileMappingFromApp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37829,1
    - Dst: osCreateFileMappingW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37831,1
    - Dst: osCreateFileMappingA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37835,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37840,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37841,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37844,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37845,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37845,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37848,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37849,1
    - Dst: osMapViewOfFileFromApp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37851,1
    - Dst: osMapViewOfFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37853,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37856,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37858,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37859,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37862,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37863,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37863,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37871,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37872,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - pFd
    - nByte
    argTypes:
    - winFile*
    - sqlite3_int64
    assertStmts:
    - condition: ( sizeof(SIZE_T)==sizeof(sqlite3_int64) || nMap<=0xffffffff )
      pos:
        line_end: 37848
        line_start: 37848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nMap>=0 || pFd->nFetchOut==0 )
      pos:
        line_end: 37795
        line_start: 37795
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nMap % winSysInfo.dwPageSize)==0 )
      pos:
        line_end: 37847
        line_start: 37847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37874
      start: 37792
    functionDepth: 2
    functionLinenumber: 37792
    functionLinenumberEnd: 37874
    functionName: winMapfile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrName
    - osMapViewOfFile
    - osGetCurrentProcessId
    - winFileSize
    - winUnmapfile
    - assert
    - osCreateFileMappingA
    - osCloseHandle
    - osCreateFileMappingW
    - winLogError
    - osGetLastError
    - OSTRACE
    - osMapViewOfFileFromApp
    - osCreateFileMappingFromApp
    linkageType: ''
    returnType: int
    signature: int winMapfile(winFile *pFd, sqlite3_int64 nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37895,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37896,1
    - Dst: winMapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37901,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37903,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37904,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37904,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37915,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - iOff
    - nAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37918
      start: 37889
    functionDepth: 3
    functionLinenumber: 37889
    functionLinenumberEnd: 37918
    functionName: winFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrName
    - winMapfile
    - osGetCurrentProcessId
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int winFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37937,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37940,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37942,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37943,1
    - Dst: winUnmapfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37955,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37958,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:37959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts:
    - condition: ( (p==0)==(pFd->nFetchOut==0) )
      pos:
        line_end: 37936
        line_start: 37936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] )
      pos:
        line_end: 37939
        line_start: 37939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFd->nFetchOut>=0 )
      pos:
        line_end: 37954
        line_start: 37954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37961
      start: 37930
    functionDepth: 2
    functionLinenumber: 37930
    functionLinenumberEnd: 37961
    functionName: winUnfetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnmapfile
    - osGetCurrentProcessId
    - OSTRACE
    - assert
    linkageType: ''
    returnType: int
    signature: int winUnfetch(sqlite3_file *fd, i64 iOff, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38010,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38011,1
    - Dst: sqlite3_win32_mbcs_to_utf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38020
      start: 38008
    functionDepth: 6
    functionLinenumber: 38008
    functionLinenumberEnd: 38020
    functionName: winConvertToUtf8Filename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - winUnicodeToUtf8
    - sqlite3_win32_mbcs_to_utf8
    linkageType: ''
    returnType: char
    signature: char *winConvertToUtf8Filename(const void *zFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38031,1
    - Dst: winUtf8ToUnicode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38032,1
    - Dst: sqlite3_win32_utf8_to_mbcs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38041
      start: 38029
    functionDepth: 6
    functionLinenumber: 38029
    functionLinenumberEnd: 38041
    functionName: winConvertFromUtf8Filename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_win32_utf8_to_mbcs
    - osIsNT
    - winUtf8ToUnicode
    linkageType: ''
    returnType: void
    signature: void *winConvertFromUtf8Filename(const char *zFilename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38050,1
    - Dst: winIsDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38052,1
    - Dst: winGetDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - nBuf
    - zBuf
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38062
      start: 38048
    functionDepth: 1
    functionLinenumber: 38048
    functionLinenumberEnd: 38062
    functionName: winMakeEndInDirSep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIsDirSep
    - sqlite3Strlen30
    - winGetDirSep
    linkageType: ''
    returnType: int
    signature: int winMakeEndInDirSep(int nBuf, char *zBuf)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38074,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38088,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38090,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38099,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38101,1
    - Dst: winIsDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38103,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38107,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38108,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38109,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38111,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38131,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38132,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38133,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38134,1
    - Dst: getenv
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38135,1
    - Dst: winIsDriveLetterAndColon
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38144,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38145,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38147,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38148,1
    - Dst: winIsDir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38151,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38152,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38153,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38156,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38158,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38160,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38161,1
    - Dst: cygwin_conv_path
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38164,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38165,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38167,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38168,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38169,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38170,1
    - Dst: winIsDir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38173,1
    - Dst: winConvertToUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38178,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38180,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38181,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38182,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38185,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38186,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38187,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38190,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38197,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38199,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38200,1
    - Dst: osGetTempPathW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38203,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38204,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38205,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38206,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38207,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38207,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38210,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38212,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38213,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38214,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38216,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38217,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38218,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38225,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38227,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38228,1
    - Dst: osGetTempPathA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38231,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38232,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38233,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38234,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38234,1
    - Dst: sqlite3_win32_mbcs_to_utf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38237,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38239,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38240,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38242,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38243,1
    - Dst: winMakeEndInDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38255,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38256,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38257,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38258,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38272,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38274,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38275,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38276,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38279,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38281,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38282,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38290,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 144
    argCount: 2
    argNames:
    - pVfs
    - pzBuf
    argTypes:
    - sqlite3_vfs*
    - char**
    assertStmts:
    - condition: ( nDir>0 )
      pos:
        line_end: 38098
        line_start: 38098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38292
      start: 38068
    functionDepth: 7
    functionLinenumber: 38068
    functionLinenumberEnd: 38292
    functionName: winGetTempname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - winIsDriveLetterAndColon
    - winMakeEndInDirSep
    - sqlite3Strlen30
    - winIsDir
    - sqlite3MallocZero
    - osGetTempPathW
    - sqlite3_free
    - sqlite3_randomness
    - winUnicodeToUtf8
    - assert
    - winLogError
    - cygwin_conv_path
    - osGetTempPathA
    - winConvertFromUtf8Filename
    - getenv
    - sqlite3_win32_mbcs_to_utf8
    - winConvertToUtf8Filename
    - osIsNT
    - winIsDirSep
    - osGetLastError
    - OSTRACE
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38197,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38199,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38200,1
    - Dst: osGetTempPathW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38203,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38204,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38205,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38206,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38207,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38207,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38210,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38212,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38213,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38214,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38216,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38217,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38221
      start: 38195
    functionDepth: 6
    functionLinenumber: 38195
    functionLinenumberEnd: 38221
    functionName: if
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osGetTempPathW
    - sqlite3_free
    - winLogError
    - osGetLastError
    - OSTRACE
    - winUnicodeToUtf8
    - sqlite3_snprintf
    linkageType: ''
    returnType: else
    signature: else if( osIsNT() )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38304,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38307,1
    - Dst: osGetFileAttributesExW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38308,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38310,1
    - Dst: osGetFileAttributesA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - zConverted
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38321
      start: 38299
    functionDepth: 2
    functionLinenumber: 38299
    functionLinenumberEnd: 38321
    functionName: winIsDir
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - memset
    - osGetFileAttributesExW
    - winRetryIoerr
    - osGetFileAttributesA
    linkageType: ''
    returnType: int
    signature: int winIsDir(const void *zConverted)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38371,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38381,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38382,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38383,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38384,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38388,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38389,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38391,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38400,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38401,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38406,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38415,1
    - Dst: winGetTempname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38416,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38418,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38418,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38428,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38429,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38432,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38434,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38435,1
    - Dst: winIsDir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38439,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38440,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38441,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38442,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38488,1
    - Dst: osCreateFile2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38498,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38503,1
    - Dst: osCreateFileW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38507,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38513,1
    - Dst: while
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38520,1
    - Dst: osCreateFileA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38520,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38526,1
    - Dst: winLogIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38531,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38533,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38538,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38539,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38540,1
    - Dst: winOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38542,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38559,1
    - Dst: winceCreateLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38565,1
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38567,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38568,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38569,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38570,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38570,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38578,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38581,1
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38588,1
    - Dst: OpenCounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38601,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 125
    argCount: 5
    argNames:
    - pVfs
    - zName
    - id
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ((isReadonly==0 || isReadWrite==0) && (isReadWrite || isReadonly))
      pos:
        line_end: 38380
        line_start: 38380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isDelete==0 || isCreate)
      pos:
        line_end: 38383
        line_start: 38383
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 38387
        line_start: 38387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (eType!=SQLITE_OPEN_MAIN_DB) || (flags & SQLITE_OPEN_URI) ||\n
        \      zUtf8Name[sqlite3Strlen30(zUtf8Name)+1]==0 )"
      pos:
        line_end: 38428
        line_start: 38427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isExclusive==0 || isCreate)
      pos:
        line_end: 38382
        line_start: 38382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isDelete && !isOpenJournal )
      pos:
        line_end: 38414
        line_start: 38414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (isCreate==0 || isReadWrite)
      pos:
        line_end: 38381
        line_start: 38381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( eType==SQLITE_OPEN_MAIN_DB      || eType==SQLITE_OPEN_TEMP_DB\n
        \      || eType==SQLITE_OPEN_MAIN_JOURNAL || eType==SQLITE_OPEN_TEMP_JOURNAL\n
        \      || eType==SQLITE_OPEN_SUBJOURNAL   || eType==SQLITE_OPEN_MASTER_JOURNAL\n
        \      || eType==SQLITE_OPEN_TRANSIENT_DB || eType==SQLITE_OPEN_WAL\n  )"
      pos:
        line_end: 38397
        line_start: 38393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile!=0 )
      pos:
        line_end: 38399
        line_start: 38399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 38388
        line_start: 38388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MASTER_JOURNAL )
      pos:
        line_end: 38389
        line_start: 38389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_WAL )
      pos:
        line_end: 38390
        line_start: 38390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38603
      start: 38326
    functionDepth: 9
    functionLinenumber: 38326
    functionLinenumberEnd: 38603
    functionName: winOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - memset
    - sqlite3_log
    - winRetryIoerr
    - sqlite3Strlen30
    - winIsDir
    - sqlite3ErrName
    - sqlite3_free
    - winLogIoerr
    - osCreateFile2
    - winGetTempname
    - assert
    - winLogError
    - winceCreateLock
    - winConvertFromUtf8Filename
    - osCreateFileW
    - osIsNT
    - osCloseHandle
    - winOpen
    - OSTRACE
    - osCreateFileA
    - while
    - OpenCounter
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: int
    signature: "int winOpen(\n  sqlite3_vfs *pVfs,        /* Used to get maximum path
      name length */\n  const char *zName,        /* Name of the file (UTF-8) */\n
      \ sqlite3_file *id,         /* Write the SQLite file handle here */\n  int flags,
      \               /* Open mode flags */\n  int *pOutFlags            /* Status
      return flags */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38627,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38628,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38631,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38633,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38635,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38638,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38642,1
    - Dst: osGetFileAttributesExW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38643,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38647,1
    - Dst: osGetFileAttributesW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38657,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38660,1
    - Dst: osDeleteFileW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38673,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38677,1
    - Dst: osGetFileAttributesA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38686,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38688,1
    - Dst: if
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38697,1
    - Dst: if
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38705,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38705,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38713,1
    - Dst: winLogIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38715,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38717,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38718,1
    - Dst: sqlite3ErrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38718,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - pVfs
    - zFilename
    - syncDir
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38720
      start: 38617
    functionDepth: 9
    functionLinenumber: 38617
    functionLinenumberEnd: 38720
    functionName: winDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - memset
    - sqlite3ErrName
    - sqlite3_free
    - winLogError
    - osGetFileAttributesExW
    - osDeleteFileW
    - winRetryIoerr
    - UNUSED_PARAMETER
    - if
    - winLogIoerr
    - osGetLastError
    - OSTRACE
    - osGetFileAttributesA
    - winConvertFromUtf8Filename
    - osGetFileAttributesW
    linkageType: ''
    returnType: int
    signature: "int winDelete(\n  sqlite3_vfs *pVfs,          /* Not used on win32
      */\n  const char *zFilename,      /* Name of file to delete */\n  int syncDir
      \                /* Not used on win32 */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38735,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38738,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38741,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38743,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38746,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38749,1
    - Dst: osGetFileAttributesExW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38750,1
    - Dst: winRetryIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38752,1
    - Dst: winLogIoerr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38765,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38767,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38768,1
    - Dst: osGetFileAttributesA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38777,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38780,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38791,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38794,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - pVfs
    - zFilename
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts:
    - condition: (!"Invalid flags argument")
      pos:
        line_end: 38790
        line_start: 38790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38797
      start: 38725
    functionDepth: 9
    functionLinenumber: 38725
    functionLinenumberEnd: 38797
    functionName: winAccess
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - memset
    - sqlite3_free
    - assert
    - winLogError
    - osGetFileAttributesExW
    - winRetryIoerr
    - winLogIoerr
    - UNUSED_PARAMETER
    - OSTRACE
    - winConvertFromUtf8Filename
    - osGetFileAttributesA
    linkageType: ''
    returnType: int
    signature: "int winAccess(\n  sqlite3_vfs *pVfs,         /* Not used on win32
      */\n  const char *zFilename,     /* Name of file to check */\n  int flags,                 /*
      Type of test to make on this file */\n  int *pResOut               /* OUT: Result
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isalpha
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - zPathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38807
      start: 38803
    functionDepth: 1
    functionLinenumber: 38803
    functionLinenumberEnd: 38807
    functionName: winIsDriveLetterAndColon
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Isalpha
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winIsDriveLetterAndColon(\n  const char *zPathname\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winIsDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38825,1
    - Dst: winIsDriveLetterAndColon
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zPathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38844
      start: 38815
    functionDepth: 2
    functionLinenumber: 38815
    functionLinenumberEnd: 38844
    functionName: winIsVerbatimPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIsDirSep
    - winIsDriveLetterAndColon
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winIsVerbatimPathname(\n  const char *zPathname\n)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38861,1
    - Dst: winIsVerbatimPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38862,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38869,1
    - Dst: cygwin_conv_path
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38873,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38874,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38876,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38877,1
    - Dst: winConvertToUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38880,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38882,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38885,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38885,1
    - Dst: winGetDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38886,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38887,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38888,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38891,1
    - Dst: cygwin_conv_path
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38895,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38896,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38898,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38899,1
    - Dst: winConvertToUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38902,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38904,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38907,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38907,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38908,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38909,1
    - Dst: winIsVerbatimPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38919,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38926,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38926,1
    - Dst: winGetDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38927,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38929,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38929,1
    - Dst: winIsDriveLetterAndColon
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38942,1
    - Dst: winIsVerbatimPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38952,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38959,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38959,1
    - Dst: winGetDirSep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38960,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38963,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38967,1
    - Dst: osGetFullPathNameW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38969,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38971,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38972,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38972,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38976,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38978,1
    - Dst: osGetFullPathNameW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38981,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38983,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38984,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38985,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38985,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38988,1
    - Dst: winUnicodeToUtf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38989,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38990,1
    - Dst: osGetFullPathNameA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38995,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38997,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38998,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:38998,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39002,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39004,1
    - Dst: osGetFullPathNameA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39007,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39009,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39010,1
    - Dst: winLogError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39011,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39011,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39014,1
    - Dst: sqlite3_win32_mbcs_to_utf8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39015,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39016,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39020,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39020,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39021,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 106
    argCount: 4
    argNames:
    - pVfs
    - zRelative
    - nFull
    - zFull
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts:
    - condition: ( nFull>=pVfs->mxPathname )
      pos:
        line_end: 38860
        line_start: 38860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39027
      start: 38851
    functionDepth: 7
    functionLinenumber: 38851
    functionLinenumberEnd: 39027
    functionName: winFullPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIsDriveLetterAndColon
    - UNUSED_PARAMETER
    - sqlite3MallocZero
    - sqlite3_free
    - winIsVerbatimPathname
    - winUnicodeToUtf8
    - MIN
    - assert
    - winLogError
    - cygwin_conv_path
    - winConvertFromUtf8Filename
    - sqlite3_win32_mbcs_to_utf8
    - winConvertToUtf8Filename
    - osIsNT
    - osGetFullPathNameW
    - osGetFullPathNameA
    - osGetLastError
    - winGetDirSep
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int winFullPathname(\n  sqlite3_vfs *pVfs,            /* Pointer to
      vfs object */\n  const char *zRelative,        /* Possibly relative input path
      */\n  int nFull,                    /* Size of output buffer in bytes */\n  char
      *zFull                   /* Output buffer */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39038,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39041,1
    - Dst: winFullPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39044,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39045,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39046,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39049,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39050,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39052,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39053,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39056,1
    - Dst: osIsNT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39059,1
    - Dst: osLoadPackagedLibrary
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39061,1
    - Dst: osLoadLibraryW
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39063,1
    - Dst: osLoadLibraryA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39068,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39071,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - pVfs
    - zFilename
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39074
      start: 39034
    functionDepth: 8
    functionLinenumber: 39034
    functionLinenumberEnd: 39074
    functionName: winDlOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osIsNT
    - osLoadLibraryA
    - sqlite3_free
    - UNUSED_PARAMETER
    - osLoadPackagedLibrary
    - osLoadLibraryW
    - OSTRACE
    - winConvertFromUtf8Filename
    - winFullPathname
    linkageType: ''
    returnType: void
    signature: void *winDlOpen(sqlite3_vfs *pVfs, const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39076,1
    - Dst: winGetLastErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39077,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39078
      start: 39075
    functionDepth: 7
    functionLinenumber: 39075
    functionLinenumberEnd: 39078
    functionName: winDlError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - osGetLastError
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void winDlError(sqlite3_vfs *pVfs, int nBuf, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39081,1
    - Dst: osGetProcAddressA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39082,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39086
      start: 39079
    functionDepth: 1
    functionLinenumber: 39079
    functionLinenumberEnd: 39086
    functionName: (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetProcAddressA
    - OSTRACE
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39088,1
    - Dst: osFreeLibrary
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39089,1
    - Dst: OSTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39091
      start: 39087
    functionDepth: 1
    functionLinenumber: 39087
    functionLinenumberEnd: 39091
    functionName: winDlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - OSTRACE
    - UNUSED_PARAMETER
    - osFreeLibrary
    linkageType: ''
    returnType: void
    signature: void winDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39105,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39108,1
    - Dst: osGetSystemTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39112,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39113,1
    - Dst: osGetCurrentProcessId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39117,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39118,1
    - Dst: osGetTickCount64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39123,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39124,1
    - Dst: osGetTickCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39129,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39130,1
    - Dst: osQueryPerformanceCounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39136,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39137,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39143,1
    - Dst: osUuidCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39144,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39145,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39150,1
    - Dst: osUuidCreateSequential
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39151,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39158
      start: 39103
    functionDepth: 1
    functionLinenumber: 39103
    functionLinenumberEnd: 39158
    functionName: winRandomness
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUuidCreateSequential
    - memset
    - osGetCurrentProcessId
    - osGetSystemTime
    - osGetTickCount64
    - UNUSED_PARAMETER
    - memcpy
    - osGetTickCount
    - osQueryPerformanceCounter
    - osUuidCreate
    linkageType: ''
    returnType: int
    signature: int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_sleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39165,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVfs
    - microsec
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39168
      start: 39164
    functionDepth: 1
    functionLinenumber: 39164
    functionLinenumberEnd: 39168
    functionName: winSleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: int
    signature: int winSleep(sqlite3_vfs *pVfs, int microsec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osGetSystemTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39205,1
    - Dst: osSystemTimeToFileTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39207,1
    - Dst: osGetSystemTimeAsFileTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39211,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pVfs
    - piNow
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39225
      start: 39189
    functionDepth: 1
    functionLinenumber: 39189
    functionLinenumberEnd: 39225
    functionName: winCurrentTimeInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osSystemTimeToFileTime
    - UNUSED_PARAMETER
    - osGetSystemTimeAsFileTime
    - osGetSystemTime
    linkageType: ''
    returnType: int
    signature: int winCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *piNow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pVfs
    - prNow
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39240
      start: 39232
    functionDepth: 2
    functionLinenumber: 39232
    functionLinenumberEnd: 39240
    functionName: winCurrentTime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winCurrentTimeInt64
    linkageType: ''
    returnType: int
    signature: int winCurrentTime(sqlite3_vfs *pVfs, double *prNow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39273,1
    - Dst: winGetLastErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39274,1
    - Dst: osGetLastError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39275
      start: 39272
    functionDepth: 7
    functionLinenumber: 39272
    functionLinenumberEnd: 39275
    functionName: winGetLastError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - osGetLastError
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winGetLastError(sqlite3_vfs *pVfs, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39334,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39334,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39337,1
    - Dst: osGetNativeSystemInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39339,1
    - Dst: osGetSystemInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39341,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39343,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39344,1
    - Dst: sqlite3_vfs_register
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39346,1
    - Dst: sqlite3_vfs_register
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ArraySize(aSyscall)==80 )
      pos:
        line_end: 39333
        line_start: 39333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winSysInfo.dwAllocationGranularity>0 )
      pos:
        line_end: 39342
        line_start: 39342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( winSysInfo.dwPageSize>0 )
      pos:
        line_end: 39343
        line_start: 39343
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39353
      start: 39280
    functionDepth: 3
    functionLinenumber: 39280
    functionLinenumberEnd: 39353
    functionName: sqlite3_os_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - assert
    - ArraySize
    - osGetSystemInfo
    - sqlite3_vfs_register
    - osGetNativeSystemInfo
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osCloseHandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39363
      start: 39355
    functionDepth: 0
    functionLinenumber: 39355
    functionLinenumberEnd: 39363
    functionName: sqlite3_os_end
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - osCloseHandle
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39436
      start: 39435
    functionDepth: 0
    functionLinenumber: 39435
    functionLinenumberEnd: 39436
    functionName: BITVEC_HASH
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITVEC_HASH(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39484,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iSize
    argTypes:
    - u32
    assertStmts:
    - condition: ( sizeof(*p)==BITVEC_SZ )
      pos:
        line_end: 39483
        line_start: 39483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39490
      start: 39482
    functionDepth: 5
    functionLinenumber: 39482
    functionLinenumberEnd: 39490
    functionName: sqlite3BitvecCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BitvecCreate(u32 iSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39498,1
    - Dst: BITVEC_HASH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 39497
        line_start: 39497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39519
      start: 39497
    functionDepth: 1
    functionLinenumber: 39497
    functionLinenumberEnd: 39519
    functionName: sqlite3BitvecTestNotNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - BITVEC_HASH
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecTestNotNull(Bitvec *p, u32 i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39522
      start: 39520
    functionDepth: 2
    functionLinenumber: 39520
    functionLinenumberEnd: 39522
    functionName: sqlite3BitvecTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTestNotNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecTest(Bitvec *p, u32 i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39540,1
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39546,1
    - Dst: BITVEC_HASH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39555,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39580,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39584,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39585,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39587,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39589,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39591,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts:
    - condition: ( i>0 )
      pos:
        line_end: 39538
        line_start: 39538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<=p->iSize )
      pos:
        line_end: 39539
        line_start: 39539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39599
      start: 39536
    functionDepth: 6
    functionLinenumber: 39536
    functionLinenumberEnd: 39599
    functionName: sqlite3BitvecSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - assert
    - sqlite3BitvecSet
    - sqlite3StackAllocRaw
    - memcpy
    - BITVEC_HASH
    - sqlite3BitvecCreate
    - sqlite3StackFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecSet(Bitvec *p, u32 i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39609,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39624,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39625,1
    - Dst: BITVEC_HASH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39629,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - p
    - i
    - pBuf
    argTypes:
    - Bitvec*
    - u32
    - void*
    assertStmts:
    - condition: ( i>0 )
      pos:
        line_end: 39608
        line_start: 39608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39639
      start: 39607
    functionDepth: 1
    functionLinenumber: 39607
    functionLinenumberEnd: 39639
    functionName: sqlite3BitvecClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BITVEC_HASH
    - memset
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecClear(Bitvec *p, u32 i, void *pBuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39649,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Bitvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39653
      start: 39644
    functionDepth: 3
    functionLinenumber: 39644
    functionLinenumberEnd: 39653
    functionName: sqlite3BitvecDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BitvecDestroy
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecDestroy(Bitvec *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Bitvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39661
      start: 39659
    functionDepth: 0
    functionLinenumber: 39659
    functionLinenumberEnd: 39661
    functionName: sqlite3BitvecSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecSize(Bitvec *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39671
      start: 39670
    functionDepth: 0
    functionLinenumber: 39670
    functionLinenumberEnd: 39671
    functionName: SETBIT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(V,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39672
      start: 39671
    functionDepth: 0
    functionLinenumber: 39671
    functionLinenumberEnd: 39672
    functionName: CLEARBIT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEARBIT(V,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39673
      start: 39672
    functionDepth: 0
    functionLinenumber: 39672
    functionLinenumberEnd: 39673
    functionName: TESTBIT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTBIT(V,I)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39713,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39714,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39715,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39719,1
    - Dst: sqlite3BitvecClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39720,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39738,1
    - Dst: SETBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39746,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39748,1
    - Dst: CLEARBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39751,1
    - Dst: sqlite3BitvecClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39752,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39761,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39761,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39762,1
    - Dst: sqlite3BitvecSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39763,1
    - Dst: TESTBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39765,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39765,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39773,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39774,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39775,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - sz
    - aOp
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39777
      start: 39704
    functionDepth: 7
    functionLinenumber: 39704
    functionLinenumberEnd: 39777
    functionName: sqlite3BitvecBuiltinTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - SETBIT
    - sqlite3_free
    - sqlite3BitvecSet
    - sqlite3_malloc64
    - sqlite3_randomness
    - sqlite3BitvecDestroy
    - CLEARBIT
    - sqlite3BitvecCreate
    - sqlite3BitvecSize
    - sqlite3BitvecClear
    - sqlite3BitvecTest
    - TESTBIT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecBuiltinTest(int sz, int *aOp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39846,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39867,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39872,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - pPage
    - addRemove
    argTypes:
    - PgHdr*
    - u8
    assertStmts:
    - condition: ( pPage->pDirtyNext || pPage==p->pDirtyTail )
      pos:
        line_end: 39830
        line_start: 39830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage==p->pDirty )
      pos:
        line_end: 39851
        line_start: 39851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eCreate==1 )
      pos:
        line_end: 39854
        line_start: 39854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pDirtyPrev || pPage==p->pDirty )
      pos:
        line_end: 39831
        line_start: 39831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage==p->pDirtyTail )
      pos:
        line_end: 39845
        line_start: 39845
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pDirtyNext==0 && pPage->pDirtyPrev==0 && p->pDirty!=pPage
        )
      pos:
        line_end: 39862
        line_start: 39862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pDirtyNext->pDirtyPrev==0 )
      pos:
        line_end: 39866
        line_start: 39866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eCreate==2 )
      pos:
        line_end: 39871
        line_start: 39871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39881
      start: 39827
    functionDepth: 0
    functionLinenumber: 39827
    functionLinenumberEnd: 39881
    functionName: pcacheManageDirtyList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache2::xUnpin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39891
      start: 39887
    functionDepth: 0
    functionLinenumber: 39887
    functionLinenumberEnd: 39891
    functionName: pcacheUnpin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xUnpin
    linkageType: ''
    returnType: void
    signature: void pcacheUnpin(PgHdr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39910
      start: 39899
    functionDepth: 0
    functionLinenumber: 39899
    functionLinenumberEnd: 39910
    functionName: numberOfCachePages
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int numberOfCachePages(PCache *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PCacheSetDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39922,1
    - Dst: pcache2::xInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39925
      start: 39917
    functionDepth: 1
    functionLinenumber: 39917
    functionLinenumberEnd: 39925
    functionName: sqlite3PcacheInitialize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xInit
    - sqlite3PCacheSetDefault
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheInitialize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache2::xShutdown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39931
      start: 39926
    functionDepth: 0
    functionLinenumber: 39926
    functionLinenumberEnd: 39931
    functionName: sqlite3PcacheShutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xShutdown
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheShutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39936
      start: 39936
    functionDepth: 0
    functionLinenumber: 39936
    functionLinenumberEnd: 39936
    functionName: sqlite3PcacheSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39952,1
    - Dst: sqlite3PcacheSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - szPage
    - szExtra
    - bPurgeable
    - pStress
    - p
    argTypes:
    - int
    - int
    - int
    - void*
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39961
      start: 39944
    functionDepth: 1
    functionLinenumber: 39944
    functionLinenumberEnd: 39961
    functionName: sqlite3PcacheOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3PcacheSetPageSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheOpen(\n  int szPage,                  /*
      Size of every page */\n  int szExtra,                 /* Extra space associated
      with each page */\n  int bPurgeable,              /* True if pages are on backing
      store */\n  int (*xStress)(void*,PgHdr*),/* Call to try to make pages clean
      */\n  void *pStress,               /* Argument to xStress */\n  PCache *p                    /*
      Preallocated space for the PCache */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39968,1
    - Dst: pcache2::xCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39971,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39972,1
    - Dst: pcache2::xCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39976,1
    - Dst: numberOfCachePages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39976,1
    - Dst: pcache2::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:39978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pCache
    - szPage
    argTypes:
    - PCache*
    - int
    assertStmts:
    - condition: ( pCache->nRef==0 && pCache->pDirty==0 )
      pos:
        line_end: 39967
        line_start: 39967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39984
      start: 39967
    functionDepth: 1
    functionLinenumber: 39967
    functionLinenumberEnd: 39984
    functionName: sqlite3PcacheSetPageSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - pcache2::xDestroy
    - pcache2::xCachesize
    - pcache2::xCreate
    - ROUND8
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSetPageSize(PCache *pCache, int szPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40018,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40019,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40020,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40030,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40032,1
    - Dst: pcache2::xFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pCache!=0 )
      pos:
        line_end: 40016
        line_start: 40016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgno>0 )
      pos:
        line_end: 40019
        line_start: 40019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eCreate==0 || eCreate==1 || eCreate==2 )
      pos:
        line_end: 40029
        line_start: 40029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 40017
        line_start: 40017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( createFlag==3 || createFlag==0 )
      pos:
        line_end: 40018
        line_start: 40018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( createFlag==0 || pCache->eCreate==eCreate )
      pos:
        line_end: 40030
        line_start: 40030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( createFlag==0 || eCreate==1+(!pCache->bPurgeable||!pCache->pDirty)
        )
      pos:
        line_end: 40031
        line_start: 40031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40034
      start: 40010
    functionDepth: 0
    functionLinenumber: 40010
    functionLinenumberEnd: 40034
    functionName: "sqlite3_pcache_page *sqlite3PcacheFetch(\n  PCache *pCache,       /*
      Obtain the page from this cache */\n  Pgno pgno,            /* Page number to
      obtain */\n  int createFlag        /* If true, create page if it does not exist
      already */\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xFetch
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3_pcache_page *sqlite3PcacheFetch(\n  PCache
      *pCache,       /* Obtain the page from this cache */\n  Pgno pgno,            /*
      Page number to obtain */\n  int createFlag        /* If true, create page if
      it does not exist already */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40072,1
    - Dst: pcache::xPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40075,1
    - Dst: numberOfCachePages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40076,1
    - Dst: PCache*::xStress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40078,1
    - Dst: pcache2::xFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40083,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - pCache
    - pgno
    - ppPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40085
      start: 40047
    functionDepth: 8
    functionLinenumber: 40047
    functionLinenumberEnd: 40085
    functionName: sqlite3PcacheFetchStress
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache::xPagecount
    - sqlite3_log
    - PCache*::xStress
    - pcache2::xFetch
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheFetchStress(\n  PCache *pCache,                 /*
      Obtain the page from this cache */\n  Pgno pgno,                      /* Page
      number to obtain */\n  sqlite3_pcache_page **ppPage    /* Write result here
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40104,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40105,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40109,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - pCache
    - pgno
    - pPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 40101
        line_start: 40101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPgHdr->pPage==0 )
      pos:
        line_end: 40103
        line_start: 40103
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40114
      start: 40096
    functionDepth: 1
    functionLinenumber: 40096
    functionLinenumberEnd: 40114
    functionName: pcacheFetchFinishWithInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3PcacheFetchFinish
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE *pcacheFetchFinishWithInit(\n  PCache *pCache,             /*
      Obtain the page from this cache */\n  Pgno pgno,                  /* Page number
      obtained */\n  sqlite3_pcache_page *pPage  /* Page obtained by prior PcacheFetch()
      call */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40129,1
    - Dst: pcacheFetchFinishWithInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pCache
    - pgno
    - pPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 40128
        line_start: 40128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40140
      start: 40122
    functionDepth: 2
    functionLinenumber: 40122
    functionLinenumberEnd: 40140
    functionName: sqlite3PcacheFetchFinish
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - pcacheFetchFinishWithInit
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3PcacheFetchFinish(\n  PCache *pCache,             /*
      Obtain the page from this cache */\n  Pgno pgno,                  /* Page number
      obtained */\n  sqlite3_pcache_page *pPage  /* Page obtained by prior PcacheFetch()
      call */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40147,1
    - Dst: pcacheUnpin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40152,1
    - Dst: pcacheManageDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 40146
        line_start: 40146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40158
      start: 40146
    functionDepth: 1
    functionLinenumber: 40146
    functionLinenumberEnd: 40158
    functionName: sqlite3PcacheRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheUnpin
    - pcacheManageDirtyList
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRelease(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: (p->nRef>0)
      pos:
        line_end: 40163
        line_start: 40163
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40166
      start: 40163
    functionDepth: 0
    functionLinenumber: 40163
    functionLinenumberEnd: 40166
    functionName: sqlite3PcacheRef
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRef(PgHdr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40174,1
    - Dst: pcacheManageDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40176,1
    - Dst: pcache2::xUnpin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef==1 )
      pos:
        line_end: 40173
        line_start: 40173
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40180
      start: 40173
    functionDepth: 1
    functionLinenumber: 40173
    functionLinenumberEnd: 40180
    functionName: sqlite3PcacheDrop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheManageDirtyList
    - assert
    - pcache2::xUnpin
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheDrop(PgHdr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40192,1
    - Dst: pcacheManageDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 40186
        line_start: 40186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags & (PGHDR_DIRTY|PGHDR_CLEAN))==PGHDR_DIRTY )
      pos:
        line_end: 40191
        line_start: 40191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40196
      start: 40186
    functionDepth: 1
    functionLinenumber: 40186
    functionLinenumberEnd: 40196
    functionName: sqlite3PcacheMakeDirty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheManageDirtyList
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMakeDirty(PgHdr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40204,1
    - Dst: pcacheManageDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40205,1
    - Dst: pcacheUnpin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( (p->flags & PGHDR_CLEAN)==0 )
      pos:
        line_end: 40203
        line_start: 40203
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40212
      start: 40202
    functionDepth: 1
    functionLinenumber: 40202
    functionLinenumberEnd: 40212
    functionName: sqlite3PcacheMakeClean
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheUnpin
    - pcacheManageDirtyList
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMakeClean(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheMakeClean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40222
      start: 40217
    functionDepth: 2
    functionLinenumber: 40217
    functionLinenumberEnd: 40222
    functionName: sqlite3PcacheCleanAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheMakeClean
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheCleanAll(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40233
      start: 40227
    functionDepth: 0
    functionLinenumber: 40227
    functionLinenumberEnd: 40233
    functionName: sqlite3PcacheClearSyncFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClearSyncFlags(PCache *pCache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40240,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40241,1
    - Dst: pcache2::xRekey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40242,1
    - Dst: pcacheManageDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - newPgno
    argTypes:
    - PgHdr*
    - Pgno
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 40239
        line_start: 40239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( newPgno>0 )
      pos:
        line_end: 40240
        line_start: 40240
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40247
      start: 40238
    functionDepth: 1
    functionLinenumber: 40238
    functionLinenumberEnd: 40247
    functionName: sqlite3PcacheMove
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xRekey
    - pcacheManageDirtyList
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMove(PgHdr *p, Pgno newPgno)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40268,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40270,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40271,1
    - Dst: pcache2::xFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40276,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40277,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40279,1
    - Dst: pcache2::xTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pCache
    - pgno
    argTypes:
    - PCache*
    - Pgno
    assertStmts:
    - condition: ( p->pgno>0 )
      pos:
        line_end: 40267
        line_start: 40267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->flags&PGHDR_DIRTY )
      pos:
        line_end: 40269
        line_start: 40269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40285
      start: 40258
    functionDepth: 2
    functionLinenumber: 40258
    functionLinenumberEnd: 40285
    functionName: sqlite3PcacheTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheMakeClean
    - memset
    - assert
    - ALWAYS
    - pcache2::xTruncate
    - pcache2::xFetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheTruncate(PCache *pCache, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40291,1
    - Dst: pcache2::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 40290
        line_start: 40290
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40293
      start: 40290
    functionDepth: 0
    functionLinenumber: 40290
    functionLinenumberEnd: 40293
    functionName: sqlite3PcacheClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xDestroy
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClose(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40300
      start: 40298
    functionDepth: 3
    functionLinenumber: 40298
    functionLinenumberEnd: 40300
    functionName: sqlite3PcacheClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheTruncate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClear(PCache *pCache)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - PgHdr*
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40328
      start: 40306
    functionDepth: 0
    functionLinenumber: 40306
    functionLinenumberEnd: 40328
    functionName: pcacheMergeDirtyList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PgHdr
    signature: PgHdr *pcacheMergeDirtyList(PgHdr *pA, PgHdr *pB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40344,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40349,1
    - Dst: pcacheMergeDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40354,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40358,1
    - Dst: pcacheMergeDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40362,1
    - Dst: pcacheMergeDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40370
      start: 40341
    functionDepth: 1
    functionLinenumber: 40341
    functionLinenumberEnd: 40370
    functionName: pcacheSortDirtyList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - memset
    - ALWAYS
    - pcacheMergeDirtyList
    linkageType: ''
    returnType: PgHdr
    signature: PgHdr *pcacheSortDirtyList(PgHdr *pIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcacheSortDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40381
      start: 40375
    functionDepth: 2
    functionLinenumber: 40375
    functionLinenumberEnd: 40381
    functionName: sqlite3PcacheDirtyList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheSortDirtyList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PcacheDirtyList(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40388
      start: 40386
    functionDepth: 0
    functionLinenumber: 40386
    functionLinenumberEnd: 40388
    functionName: sqlite3PcacheRefCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRefCount(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40395
      start: 40393
    functionDepth: 0
    functionLinenumber: 40393
    functionLinenumberEnd: 40395
    functionName: sqlite3PcachePageRefcount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcachePageRefcount(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40401,1
    - Dst: pcache2::xPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 40400
        line_start: 40400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40403
      start: 40400
    functionDepth: 0
    functionLinenumber: 40400
    functionLinenumberEnd: 40403
    functionName: sqlite3PcachePagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xPagecount
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcachePagecount(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numberOfCachePages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40411
      start: 40409
    functionDepth: 1
    functionLinenumber: 40409
    functionLinenumberEnd: 40411
    functionName: sqlite3PcacheGetCachesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheGetCachesize(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40418,1
    - Dst: pcache2::xCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40420,1
    - Dst: numberOfCachePages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pCache
    - mxPage
    argTypes:
    - PCache*
    - int
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 40417
        line_start: 40417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40422
      start: 40417
    functionDepth: 1
    functionLinenumber: 40417
    functionLinenumberEnd: 40422
    functionName: sqlite3PcacheSetCachesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - numberOfCachePages
    - pcache2::xCachesize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSetCachesize(PCache *pCache, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40428,1
    - Dst: pcache2::xShrink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 40427
        line_start: 40427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40430
      start: 40427
    functionDepth: 0
    functionLinenumber: 40427
    functionLinenumberEnd: 40430
    functionName: sqlite3PcacheShrink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xShrink
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheShrink(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40436
      start: 40436
    functionDepth: 1
    functionLinenumber: 40436
    functionLinenumberEnd: 40436
    functionName: sqlite3HeaderSizePcache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizePcache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xIter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40450
      start: 40445
    functionDepth: 0
    functionLinenumber: 40445
    functionLinenumberEnd: 40450
    functionName: sqlite3PcacheIterateDirty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xIter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40662
      start: 40638
    functionDepth: 0
    functionLinenumber: 40638
    functionLinenumberEnd: 40662
    functionName: PCacheGlobal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD PCacheGlobal
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40676
      start: 40675
    functionDepth: 0
    functionLinenumber: 40675
    functionLinenumberEnd: 40676
    functionName: pcache1EnterMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1EnterMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40677
      start: 40676
    functionDepth: 0
    functionLinenumber: 40676
    functionLinenumberEnd: 40677
    functionName: pcache1LeaveMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1LeaveMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40680
      start: 40679
    functionDepth: 0
    functionLinenumber: 40679
    functionLinenumberEnd: 40680
    functionName: pcache1EnterMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1EnterMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40681
      start: 40680
    functionDepth: 0
    functionLinenumber: 40680
    functionLinenumberEnd: 40681
    functionName: pcache1LeaveMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1LeaveMutex(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDDOWN8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - pBuf
    - sz
    - n
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40715
      start: 40696
    functionDepth: 1
    functionLinenumber: 40696
    functionLinenumberEnd: 40715
    functionName: sqlite3PCacheBufferSetup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUNDDOWN8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCacheBufferSetup(void *pBuf, int sz, int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40727,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40736,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40737,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40752
      start: 40721
    functionDepth: 4
    functionLinenumber: 40721
    functionLinenumberEnd: 40752
    functionName: pcache1InitBulk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Malloc
    - sqlite3MallocSize
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    linkageType: ''
    returnType: int
    signature: int pcache1InitBulk(PCache1 *pCache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40765,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40765,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40773,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40774,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40775,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40777,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40783,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40786,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40787,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40788,1
    - Dst: sqlite3StatusUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40789,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40790,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40793,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pcache1.grp.mutex) )
      pos:
        line_end: 40764
        line_start: 40764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pcache1.nFreeSlot>=0 )
      pos:
        line_end: 40772
        line_start: 40772
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40796
      start: 40763
    functionDepth: 4
    functionLinenumber: 40763
    functionLinenumberEnd: 40796
    functionName: pcache1Alloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_notheld
    - assert
    - sqlite3Malloc
    - sqlite3StatusSet
    - sqlite3MemdebugSetType
    - sqlite3StatusUp
    - sqlite3_mutex_leave
    - sqlite3MallocSize
    linkageType: ''
    returnType: void
    signature: void *pcache1Alloc(int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40806,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40807,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40813,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40816,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40816,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40817,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40819,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40820,1
    - Dst: sqlite3StatusDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40821,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40822,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.nFreeSlot<=pcache1.nSlot )
      pos:
        line_end: 40812
        line_start: 40812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_PCACHE) )
      pos:
        line_end: 40815
        line_start: 40815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40826
      start: 40801
    functionDepth: 3
    functionLinenumber: 40801
    functionLinenumberEnd: 40826
    functionName: pcache1Free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - assert
    - sqlite3_free
    - sqlite3MemdebugSetType
    - sqlite3StatusDown
    - sqlite3MemdebugHasType
    - sqlite3_mutex_leave
    - sqlite3MallocSize
    linkageType: ''
    returnType: void
    signature: void pcache1Free(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40837,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40837,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40838,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40839,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_PCACHE) )
      pos:
        line_end: 40836
        line_start: 40836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40843
      start: 40832
    functionDepth: 3
    functionLinenumber: 40832
    functionLinenumberEnd: 40843
    functionName: pcache1MemSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemdebugSetType
    - sqlite3MallocSize
    - assert
    - sqlite3MemdebugHasType
    linkageType: ''
    returnType: int
    signature: int pcache1MemSize(void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40853,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40853,1
    - Dst: pcache1InitBulk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40864,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40865,1
    - Dst: pcache1Alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40868,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40869,1
    - Dst: pcache1Free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40871,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40872,1
    - Dst: pcache1Alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40876,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 40852
        line_start: 40852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->pGroup==&pcache1.grp )
      pos:
        line_end: 40863
        line_start: 40863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pcache1.separateCache==0 )
      pos:
        line_end: 40862
        line_start: 40862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40891
      start: 40849
    functionDepth: 5
    functionLinenumber: 40849
    functionLinenumberEnd: 40891
    functionName: pcache1AllocPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - pcache1Free
    - assert
    - pcache1Alloc
    - pcache1InitBulk
    - sqlite3Malloc
    - sqlite3_free
    - pcache1EnterMutex
    - pcache1LeaveMutex
    linkageType: ''
    returnType: PgHdr1
    signature: PgHdr1 *pcache1AllocPage(PCache1 *pCache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40898,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40900,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40900,1
    - Dst: pcache1Free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40905,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr1*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 40897
        line_start: 40897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pCache->pGroup->mutex) )
      pos:
        line_end: 40899
        line_start: 40899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40913
      start: 40896
    functionDepth: 4
    functionLinenumber: 40896
    functionLinenumberEnd: 40913
    functionName: pcache1FreePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - pcache1Free
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void pcache1FreePage(PgHdr1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1Alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40922
      start: 40920
    functionDepth: 5
    functionLinenumber: 40920
    functionLinenumberEnd: 40922
    functionName: sqlite3PageMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1Alloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PageMalloc(int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1Free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40929
      start: 40927
    functionDepth: 4
    functionLinenumber: 40927
    functionLinenumberEnd: 40929
    functionName: sqlite3PageFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1Free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PageFree(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HeapNearlyFull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40954
      start: 40948
    functionDepth: 1
    functionLinenumber: 40948
    functionLinenumberEnd: 40954
    functionName: pcache1UnderMemoryPressure
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HeapNearlyFull
    linkageType: ''
    returnType: int
    signature: int pcache1UnderMemoryPressure(PCache1 *pCache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40970,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40970,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40977,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40978,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40979,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40980,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40981,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:40993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCache1*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pGroup->mutex) )
      pos:
        line_end: 40969
        line_start: 40969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40997
      start: 40965
    functionDepth: 5
    functionLinenumber: 40965
    functionLinenumberEnd: 40997
    functionName: pcache1ResizeHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3MallocZero
    - assert
    - sqlite3BeginBenignMalloc
    - sqlite3_free
    - pcache1EnterMutex
    - sqlite3EndBenignMalloc
    - pcache1LeaveMutex
    linkageType: ''
    returnType: void
    signature: void pcache1ResizeHash(PCache1 *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41010,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41012,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41013,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41014,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr1*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 41008
        line_start: 41008
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pLruPrev || pPage==pCache->pGroup->pLruHead )
      pos:
        line_end: 41012
        line_start: 41012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isPinned==0 )
      pos:
        line_end: 41009
        line_start: 41009
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 41013
        line_start: 41013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pLruNext || pPage==pCache->pGroup->pLruTail )
      pos:
        line_end: 41011
        line_start: 41011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41030
      start: 41006
    functionDepth: 1
    functionLinenumber: 41006
    functionLinenumberEnd: 41030
    functionName: pcache1PinPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: PgHdr1
    signature: PgHdr1 *pcache1PinPage(PgHdr1 *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41045,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41045,1
    - Dst: pcache1FreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pPage
    - freeFlag
    argTypes:
    - PgHdr1*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 41044
        line_start: 41044
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41052
      start: 41040
    functionDepth: 5
    functionLinenumber: 41040
    functionLinenumberEnd: 41052
    functionName: pcache1RemoveFromHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - pcache1FreePage
    - assert
    linkageType: ''
    returnType: void
    signature: void pcache1RemoveFromHash(PgHdr1 *pPage, int freeFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41060,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41060,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41063,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41064,1
    - Dst: pcache1PinPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41065,1
    - Dst: pcache1RemoveFromHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41066,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pGroup->mutex) )
      pos:
        line_end: 41059
        line_start: 41059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->isPinned==0 )
      pos:
        line_end: 41063
        line_start: 41063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pCache->pGroup==pGroup )
      pos:
        line_end: 41062
        line_start: 41062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41072
      start: 41058
    functionDepth: 6
    functionLinenumber: 41058
    functionLinenumberEnd: 41072
    functionName: pcache1EnforceMaxPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_free
    - assert
    - pcache1PinPage
    - pcache1RemoveFromHash
    linkageType: ''
    returnType: void
    signature: void pcache1EnforceMaxPage(PCache1 *pCache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41087,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41087,1
    - Dst: pcache1PinPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41095,1
    - Dst: pcache1FreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41096,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41099,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pCache
    - iLimit
    argTypes:
    - PCache1*
    - unsigned int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 41086
        line_start: 41086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->nPage==nPage )
      pos:
        line_end: 41102
        line_start: 41102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41104
      start: 41081
    functionDepth: 5
    functionLinenumber: 41081
    functionLinenumberEnd: 41104
    functionName: pcache1TruncateUnsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - pcache1PinPage
    - TESTONLY
    - pcache1FreePage
    linkageType: ''
    returnType: void
    signature: "void pcache1TruncateUnsafe(\n  PCache1 *pCache,             /* The
      cache to truncate */\n  unsigned int iLimit          /* Drop pages with this
      pgno or larger */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41113,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41114,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41115,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41143,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.isInit==0 )
      pos:
        line_end: 41113
        line_start: 41113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41158
      start: 41112
    functionDepth: 1
    functionLinenumber: 41112
    functionLinenumberEnd: 41158
    functionName: pcache1Init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_alloc
    - memset
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int pcache1Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41166,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41167,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.isInit!=0 )
      pos:
        line_end: 41166
        line_start: 41166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41169
      start: 41165
    functionDepth: 1
    functionLinenumber: 41165
    functionLinenumberEnd: 41169
    functionName: pcache1Shutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: void
    signature: void pcache1Shutdown(void *NotUsed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41184,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41185,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41188,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41199,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41201,1
    - Dst: pcache1ResizeHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41202,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41208,1
    - Dst: pcache1Destroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - szPage
    - szExtra
    - bPurgeable
    argTypes:
    - int
    - int
    - int
    assertStmts:
    - condition: ( (szPage & (szPage-1))==0 && szPage>=512 && szPage<=65536 )
      pos:
        line_end: 41183
        line_start: 41183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szExtra < 300 )
      pos:
        line_end: 41184
        line_start: 41184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41215
      start: 41179
    functionDepth: 6
    functionLinenumber: 41179
    functionLinenumberEnd: 41215
    functionName: pcache1Create
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - assert
    - pcache1EnterMutex
    - pcache1LeaveMutex
    - pcache1ResizeHash
    - ROUND8
    - pcache1Destroy
    linkageType: ''
    returnType: sqlite3_pcache
    signature: sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41226,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41231,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - nMax
    argTypes:
    - sqlite3_pcache*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41234
      start: 41222
    functionDepth: 7
    functionLinenumber: 41222
    functionLinenumberEnd: 41234
    functionName: pcache1Cachesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1EnforceMaxPage
    linkageType: ''
    returnType: void
    signature: void pcache1Cachesize(sqlite3_pcache *p, int nMax)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41246,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41249,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41253
      start: 41241
    functionDepth: 7
    functionLinenumber: 41241
    functionLinenumberEnd: 41253
    functionName: pcache1Shrink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1EnforceMaxPage
    linkageType: ''
    returnType: void
    signature: void pcache1Shrink(sqlite3_pcache *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41261,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41265
      start: 41258
    functionDepth: 1
    functionLinenumber: 41258
    functionLinenumberEnd: 41265
    functionName: pcache1Pagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    linkageType: ''
    returnType: int
    signature: int pcache1Pagecount(sqlite3_pcache *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41286,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41289,1
    - Dst: pcache1UnderMemoryPressure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41293,1
    - Dst: pcache1ResizeHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41298,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41299,1
    - Dst: pcache1UnderMemoryPressure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41304,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41308,1
    - Dst: pcache1RemoveFromHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41309,1
    - Dst: pcache1PinPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41310,1
    - Dst: pcache1FreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41313,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41324,1
    - Dst: pcache1AllocPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41325,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41326,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - pCache
    - iKey
    - createFlag
    argTypes:
    - PCache1*
    - unsigned int
    - int
    assertStmts:
    - condition: ( pCache->nPage >= pCache->nRecyclable )
      pos:
        line_end: 41285
        line_start: 41285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->n90pct == pCache->nMax*9/10 )
      pos:
        line_end: 41288
        line_start: 41288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pGroup->mxPinned == pGroup->nMaxPage + 10 - pGroup->nMinPage )
      pos:
        line_end: 41287
        line_start: 41287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->nHash>0 && pCache->apHash )
      pos:
        line_end: 41298
        line_start: 41298
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isPinned==0 )
      pos:
        line_end: 41307
        line_start: 41307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41345
      start: 41276
    functionDepth: 6
    functionLinenumber: 41276
    functionLinenumberEnd: 41345
    functionName: pcache1FetchStage2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BeginBenignMalloc
    - pcache1PinPage
    - sqlite3EndBenignMalloc
    - pcache1AllocPage
    - pcache1ResizeHash
    - pcache1UnderMemoryPressure
    - pcache1FreePage
    - pcache1RemoveFromHash
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE *pcache1FetchStage2(\n  PCache1 *pCache, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcache1PinPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41421,1
    - Dst: pcache1FetchStage2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41431
      start: 41406
    functionDepth: 7
    functionLinenumber: 41406
    functionLinenumberEnd: 41431
    functionName: pcache1FetchNoMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1PinPage
    - pcache1FetchStage2
    linkageType: ''
    returnType: PgHdr1
    signature: "PgHdr1 *pcache1FetchNoMutex(\n  sqlite3_pcache *p, \n  unsigned int
      iKey, \n  int createFlag\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41441,1
    - Dst: pcache1FetchNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41442,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41443,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts:
    - condition: ( pPage==0 || pCache->iMaxKey>=iKey )
      pos:
        line_end: 41442
        line_start: 41442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41446
      start: 41433
    functionDepth: 8
    functionLinenumber: 41433
    functionLinenumberEnd: 41446
    functionName: pcache1FetchWithMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1FetchNoMutex
    - assert
    linkageType: ''
    returnType: PgHdr1
    signature: "PgHdr1 *pcache1FetchWithMutex(\n  sqlite3_pcache *p, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41457,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41458,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41459,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41460,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41461,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41462,1
    - Dst: pcache1FetchWithMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41465,1
    - Dst: pcache1FetchNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts:
    - condition: ( offsetof(PgHdr1,page)==0 )
      pos:
        line_end: 41456
        line_start: 41456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->nMin==0 || pCache->bPurgeable )
      pos:
        line_end: 41460
        line_start: 41460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->bPurgeable || createFlag!=1 )
      pos:
        line_end: 41457
        line_start: 41457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->bPurgeable || pCache->nMin==0 )
      pos:
        line_end: 41458
        line_start: 41458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->bPurgeable==0 || pCache->nMin==10 )
      pos:
        line_end: 41459
        line_start: 41459
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCache->nHash>0 )
      pos:
        line_end: 41461
        line_start: 41461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41471
      start: 41448
    functionDepth: 9
    functionLinenumber: 41448
    functionLinenumberEnd: 41471
    functionName: pcache1Fetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1FetchNoMutex
    - pcache1FetchWithMutex
    - assert
    linkageType: ''
    returnType: sqlite3_pcache_page
    signature: "sqlite3_pcache_page *pcache1Fetch(\n  sqlite3_pcache *p, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41488,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41489,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41494,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41495,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41496,1
    - Dst: pcache1RemoveFromHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41499,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p
    - pPg
    - reuseUnlikely
    argTypes:
    - sqlite3_pcache*
    - sqlite3_pcache_page*
    - int
    assertStmts:
    - condition: ( pPage->pCache==pCache )
      pos:
        line_end: 41487
        line_start: 41487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pGroup->pLruHead!=pPage && pGroup->pLruTail!=pPage )
      pos:
        line_end: 41494
        line_start: 41494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pLruPrev==0 && pPage->pLruNext==0 )
      pos:
        line_end: 41493
        line_start: 41493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isPinned==1 )
      pos:
        line_end: 41495
        line_start: 41495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41515
      start: 41479
    functionDepth: 6
    functionLinenumber: 41479
    functionLinenumberEnd: 41515
    functionName: pcache1Unpin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1RemoveFromHash
    - assert
    linkageType: ''
    returnType: void
    signature: "void pcache1Unpin(\n  sqlite3_pcache *p, \n  sqlite3_pcache_page *pPg,
      \n  int reuseUnlikely\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41531,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41533,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - p
    - pPg
    - iOld
    - iNew
    argTypes:
    - sqlite3_pcache*
    - sqlite3_pcache_page*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: ( pPage->iKey==iOld )
      pos:
        line_end: 41529
        line_start: 41529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pCache==pCache )
      pos:
        line_end: 41530
        line_start: 41530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41551
      start: 41520
    functionDepth: 1
    functionLinenumber: 41520
    functionLinenumberEnd: 41551
    functionName: pcache1Rekey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - assert
    linkageType: ''
    returnType: void
    signature: "void pcache1Rekey(\n  sqlite3_pcache *p,\n  sqlite3_pcache_page *pPg,\n
      \ unsigned int iOld,\n  unsigned int iNew\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41562,1
    - Dst: pcache1TruncateUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41564,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - iLimit
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41568
      start: 41560
    functionDepth: 6
    functionLinenumber: 41560
    functionLinenumberEnd: 41568
    functionName: pcache1Truncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1TruncateUnsafe
    linkageType: ''
    returnType: void
    signature: void pcache1Truncate(sqlite3_pcache *p, unsigned int iLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41578,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41579,1
    - Dst: pcache1TruncateUnsafe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41580,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41581,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41583,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41586,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41587,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41588,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41589,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts:
    - condition: ( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) )
      pos:
        line_end: 41577
        line_start: 41577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pGroup->nMinPage >= pCache->nMin )
      pos:
        line_end: 41582
        line_start: 41582
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pGroup->nMaxPage >= pCache->nMax )
      pos:
        line_end: 41580
        line_start: 41580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41591
      start: 41575
    functionDepth: 7
    functionLinenumber: 41575
    functionLinenumberEnd: 41591
    functionName: pcache1Destroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - pcache1TruncateUnsafe
    - pcache1EnforceMaxPage
    - assert
    - sqlite3_free
    - pcache1EnterMutex
    - pcache1LeaveMutex
    linkageType: ''
    returnType: void
    signature: void pcache1Destroy(sqlite3_pcache *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41615
      start: 41598
    functionDepth: 1
    functionLinenumber: 41598
    functionLinenumberEnd: 41615
    functionName: sqlite3PCacheSetDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCacheSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41620
      start: 41620
    functionDepth: 1
    functionLinenumber: 41620
    functionLinenumberEnd: 41620
    functionName: sqlite3HeaderSizePcache1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizePcache1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41628
      start: 41626
    functionDepth: 0
    functionLinenumber: 41626
    functionLinenumberEnd: 41628
    functionName: sqlite3_mutex *sqlite3Pcache1Mutex(void)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3Pcache1Mutex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41642,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41642,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41643,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41643,1
    - Dst: pcache1EnterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41646,1
    - Dst: pcache1MemSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41648,1
    - Dst: sqlite3MemSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41650,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41652,1
    - Dst: pcache1PinPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41653,1
    - Dst: pcache1RemoveFromHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41654,1
    - Dst: pcache1LeaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - nReq
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pcache1.grp.mutex) )
      pos:
        line_end: 41641
        line_start: 41641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_notheld(pcache1.mutex) )
      pos:
        line_end: 41642
        line_start: 41642
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->isPinned==0 )
      pos:
        line_end: 41651
        line_start: 41651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41659
      start: 41640
    functionDepth: 6
    functionLinenumber: 41640
    functionLinenumberEnd: 41659
    functionName: sqlite3PcacheReleaseMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - pcache1MemSize
    - sqlite3MemSize
    - sqlite3_mutex_notheld
    - assert
    - pcache1PinPage
    - pcache1EnterMutex
    - pcache1LeaveMutex
    - pcache1RemoveFromHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheReleaseMemory(int nReq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pnCurrent
    - pnMax
    - pnMin
    - pnRecyclable
    argTypes:
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( p->isPinned==0 )
      pos:
        line_end: 41675
        line_start: 41675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41683
      start: 41667
    functionDepth: 0
    functionLinenumber: 41667
    functionLinenumberEnd: 41683
    functionName: sqlite3PcacheStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheStats(\n  int *pnCurrent,      /* OUT:
      Total number of pages cached */\n  int *pnMax,          /* OUT: Global maximum
      cache size */\n  int *pnMin,          /* OUT: Sum of PCache1.nMin for purgeable
      caches */\n  int *pnRecyclable    /* OUT: Total number of pages available for
      recycling */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41826,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41826,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41833,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - db
    - pSpace
    - N
    argTypes:
    - sqlite3*
    - void*
    - unsigned int
    assertStmts:
    - condition: ( N >= ROUND8(sizeof(*p)) )
      pos:
        line_end: 41825
        line_start: 41825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41838
      start: 41824
    functionDepth: 1
    functionLinenumber: 41824
    functionLinenumberEnd: 41838
    functionName: sqlite3RowSetInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3RowSetInit(sqlite3 *db, void *pSpace, unsigned
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - RowSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41857
      start: 41845
    functionDepth: 5
    functionLinenumber: 41845
    functionLinenumberEnd: 41857
    functionName: sqlite3RowSetClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetClear(RowSet *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41868,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - RowSet*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 41867
        line_start: 41867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41882
      start: 41867
    functionDepth: 5
    functionLinenumber: 41867
    functionLinenumberEnd: 41882
    functionName: rowSetEntryAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetEntryAlloc(RowSet *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41895,1
    - Dst: rowSetEntryAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - rowid
    argTypes:
    - RowSet*
    - i64
    assertStmts:
    - condition: ( p!=0 && (p->rsFlags & ROWSET_NEXT)==0 )
      pos:
        line_end: 41894
        line_start: 41894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41911
      start: 41890
    functionDepth: 6
    functionLinenumber: 41890
    functionLinenumberEnd: 41911
    functionName: sqlite3RowSetInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rowSetEntryAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetInsert(RowSet *p, i64 rowid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41928,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41929,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41943,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41946,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - struct RowSetEntry*
    - struct RowSetEntry*
    assertStmts:
    - condition: ( pA->pRight==0 || pA->v<=pA->pRight->v )
      pos:
        line_end: 41927
        line_start: 41927
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pB->pRight==0 || pB->v<=pB->pRight->v )
      pos:
        line_end: 41928
        line_start: 41928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pB==0 || pB->pRight==0 || pB->v<=pB->pRight->v )
      pos:
        line_end: 41945
        line_start: 41945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pA->pRight==0 || pA->v<=pA->pRight->v )
      pos:
        line_end: 41942
        line_start: 41942
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41950
      start: 41919
    functionDepth: 0
    functionLinenumber: 41919
    functionLinenumberEnd: 41950
    functionName: rowSetEntryMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: struct RowSetEntry
    signature: "struct RowSetEntry *rowSetEntryMerge(\n  struct RowSetEntry *pA,    /*
      First sorted list to be merged */\n  struct RowSetEntry *pB     /* Second sorted
      list to be merged */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41960,1
    - Dst: rowSetEntryMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41965,1
    - Dst: rowSetEntryMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - struct RowSetEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41976
      start: 41956
    functionDepth: 1
    functionLinenumber: 41956
    functionLinenumberEnd: 41976
    functionName: rowSetEntrySort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - rowSetEntryMerge
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetEntrySort(struct RowSetEntry *pIn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41989,1
    - Dst: rowSetTreeToList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41992,1
    - Dst: rowSetTreeToList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:41998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pIn
    - ppFirst
    - ppLast
    argTypes:
    - struct RowSetEntry*
    - struct RowSetEntry**
    - struct RowSetEntry**
    assertStmts:
    - condition: ( pIn!=0 )
      pos:
        line_end: 41988
        line_start: 41988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (*ppLast)->pRight==0 )
      pos:
        line_end: 42001
        line_start: 42001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42003
      start: 41984
    functionDepth: 1
    functionLinenumber: 41984
    functionLinenumberEnd: 42003
    functionName: rowSetTreeToList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - rowSetTreeToList
    linkageType: ''
    returnType: void
    signature: "void rowSetTreeToList(\n  struct RowSetEntry *pIn,         /* Root
      of the input tree */\n  struct RowSetEntry **ppFirst,    /* Write head of the
      output list here */\n  struct RowSetEntry **ppLast      /* Write tail of the
      output list here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rowSetNDeepTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42034,1
    - Dst: rowSetNDeepTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ppList
    - iDepth
    argTypes:
    - struct RowSetEntry**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42043
      start: 42019
    functionDepth: 1
    functionLinenumber: 42019
    functionLinenumberEnd: 42043
    functionName: rowSetNDeepTree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - rowSetNDeepTree
    linkageType: ''
    returnType: struct RowSetEntry
    signature: "struct RowSetEntry *rowSetNDeepTree(\n  struct RowSetEntry **ppList,\n
      \ int iDepth\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42054,1
    - Dst: rowSetNDeepTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pList
    argTypes:
    - struct RowSetEntry*
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 42053
        line_start: 42053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42066
      start: 42049
    functionDepth: 2
    functionLinenumber: 42049
    functionLinenumberEnd: 42066
    functionName: rowSetListToTree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rowSetNDeepTree
    - assert
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetListToTree(struct RowSetEntry *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42077,1
    - Dst: rowSetEntrySort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42087,1
    - Dst: rowSetTreeToList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42093,1
    - Dst: rowSetEntryMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - RowSet*
    assertStmts:
    - condition: ( p!=0 && (p->rsFlags & ROWSET_NEXT)==0 )
      pos:
        line_end: 42076
        line_start: 42076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pForest==0 )
      pos:
        line_end: 42086
        line_start: 42086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42100
      start: 42074
    functionDepth: 2
    functionLinenumber: 42074
    functionLinenumberEnd: 42100
    functionName: rowSetToList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rowSetTreeToList
    - rowSetEntryMerge
    - assert
    - rowSetEntrySort
    linkageType: ''
    returnType: void
    signature: void rowSetToList(RowSet *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42111,1
    - Dst: rowSetToList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42114,1
    - Dst: sqlite3RowSetClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - p
    - pRowid
    argTypes:
    - RowSet*
    - i64*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 42110
        line_start: 42110
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42127
      start: 42110
    functionDepth: 6
    functionLinenumber: 42110
    functionLinenumberEnd: 42127
    functionName: sqlite3RowSetNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RowSetClear
    - assert
    - rowSetToList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetNext(RowSet *p, i64 *pRowid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42141,1
    - Dst: rowSetEntrySort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42150,1
    - Dst: rowSetListToTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42155,1
    - Dst: rowSetTreeToList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42159,1
    - Dst: rowSetEntryMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42161,1
    - Dst: rowSetEntryAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42165,1
    - Dst: rowSetListToTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:42169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - pRowSet
    - iBatch
    - iRowid
    argTypes:
    - RowSet*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( pRowSet!=0 && (pRowSet->rsFlags & ROWSET_NEXT)==0 )
      pos:
        line_end: 42140
        line_start: 42140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42195
      start: 42137
    functionDepth: 6
    functionLinenumber: 42137
    functionLinenumberEnd: 42195
    functionName: sqlite3RowSetTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rowSetEntryMerge
    - rowSetTreeToList
    - rowSetEntrySort
    - rowSetEntryAlloc
    - rowSetListToTree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetTest(RowSet *pRowSet, int iBatch, sqlite3_int64
      iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42252
      start: 42251
    functionDepth: 0
    functionLinenumber: 42251
    functionLinenumberEnd: 42252
    functionName: sqlite3WalOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalOpen(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42254
      start: 42253
    functionDepth: 0
    functionLinenumber: 42253
    functionLinenumberEnd: 42254
    functionName: sqlite3WalClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalClose(w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42255
      start: 42254
    functionDepth: 0
    functionLinenumber: 42254
    functionLinenumberEnd: 42255
    functionName: sqlite3WalBeginReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalBeginReadTransaction(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42257
      start: 42256
    functionDepth: 0
    functionLinenumber: 42256
    functionLinenumberEnd: 42257
    functionName: sqlite3WalDbsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalDbsize(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42258
      start: 42257
    functionDepth: 0
    functionLinenumber: 42257
    functionLinenumberEnd: 42258
    functionName: sqlite3WalBeginWriteTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalBeginWriteTransaction(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42259
      start: 42258
    functionDepth: 0
    functionLinenumber: 42258
    functionLinenumberEnd: 42259
    functionName: sqlite3WalEndWriteTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalEndWriteTransaction(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42260
      start: 42259
    functionDepth: 0
    functionLinenumber: 42259
    functionLinenumberEnd: 42260
    functionName: sqlite3WalUndo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalUndo(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42262
      start: 42261
    functionDepth: 0
    functionLinenumber: 42261
    functionLinenumberEnd: 42262
    functionName: sqlite3WalSavepointUndo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalSavepointUndo(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42263
      start: 42262
    functionDepth: 0
    functionLinenumber: 42262
    functionLinenumberEnd: 42263
    functionName: sqlite3WalFrames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFrames(u,v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - r
    - ','
    - s
    - ','
    - t
    - ','
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42264
      start: 42263
    functionDepth: 0
    functionLinenumber: 42263
    functionLinenumberEnd: 42264
    functionName: sqlite3WalCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalCheckpoint(r,s,t,u,v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42265
      start: 42264
    functionDepth: 0
    functionLinenumber: 42264
    functionLinenumberEnd: 42265
    functionName: sqlite3WalCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalCallback(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42266
      start: 42265
    functionDepth: 0
    functionLinenumber: 42265
    functionLinenumberEnd: 42266
    functionName: sqlite3WalExclusiveMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalExclusiveMode(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42267
      start: 42266
    functionDepth: 0
    functionLinenumber: 42266
    functionLinenumberEnd: 42267
    functionName: sqlite3WalHeapMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalHeapMemory(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42268
      start: 42267
    functionDepth: 0
    functionLinenumber: 42267
    functionLinenumberEnd: 42268
    functionName: sqlite3WalFramesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFramesize(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42269
      start: 42268
    functionDepth: 0
    functionLinenumber: 42268
    functionLinenumberEnd: 42269
    functionName: sqlite3WalFindFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFindFrame(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42458
      start: 42457
    functionDepth: 0
    functionLinenumber: 42457
    functionLinenumberEnd: 42458
    functionName: PAGERTRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGERTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42471
      start: 42470
    functionDepth: 0
    functionLinenumber: 42470
    functionLinenumberEnd: 42471
    functionName: PAGERID
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGERID(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42472
      start: 42471
    functionDepth: 0
    functionLinenumber: 42471
    functionLinenumberEnd: 42472
    functionName: FILEHANDLEID
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILEHANDLEID(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42754
      start: 42752
    functionDepth: 0
    functionLinenumber: 42752
    functionLinenumberEnd: 42754
    functionName: CODEC1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC1(P,D,N,X,E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42757
      start: 42754
    functionDepth: 0
    functionLinenumber: 42754
    functionLinenumberEnd: 42757
    functionName: CODEC2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC2(P,D,N,X,E,O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42760
      start: 42759
    functionDepth: 0
    functionLinenumber: 42759
    functionLinenumberEnd: 42760
    functionName: CODEC2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC2(P,D,N,X,E,O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43066
      start: 43065
    functionDepth: 0
    functionLinenumber: 43065
    functionLinenumberEnd: 43066
    functionName: PAGER_INCR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGER_INCR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pPager
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43104
      start: 43103
    functionDepth: 0
    functionLinenumber: 43103
    functionLinenumberEnd: 43104
    functionName: JOURNAL_PG_SZ
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOURNAL_PG_SZ(pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pPager
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43110
      start: 43109
    functionDepth: 0
    functionLinenumber: 43109
    functionLinenumberEnd: 43110
    functionName: JOURNAL_HDR_SZ
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOURNAL_HDR_SZ(pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43129
      start: 43128
    functionDepth: 0
    functionLinenumber: 43128
    functionLinenumberEnd: 43129
    functionName: USEFETCH
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USEFETCH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43131
      start: 43130
    functionDepth: 0
    functionLinenumber: 43130
    functionLinenumberEnd: 43131
    functionName: USEFETCH
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USEFETCH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pFd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43151
      start: 43150
    functionDepth: 0
    functionLinenumber: 43150
    functionLinenumberEnd: 43151
    functionName: isOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isOpen(pFd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43159
      start: 43157
    functionDepth: 0
    functionLinenumber: 43157
    functionLinenumberEnd: 43159
    functionName: pagerUseWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pagerUseWal(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43162
      start: 43161
    functionDepth: 0
    functionLinenumber: 43161
    functionLinenumberEnd: 43162
    functionName: pagerUseWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerUseWal(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43163
      start: 43162
    functionDepth: 0
    functionLinenumber: 43162
    functionLinenumberEnd: 43163
    functionName: pagerRollbackWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerRollbackWal(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43164
      start: 43163
    functionDepth: 0
    functionLinenumber: 43163
    functionLinenumberEnd: 43164
    functionName: pagerWalFrames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerWalFrames(v,w,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43165
      start: 43164
    functionDepth: 0
    functionLinenumber: 43164
    functionLinenumberEnd: 43165
    functionName: pagerOpenWalIfPresent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerOpenWalIfPresent(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43166
      start: 43165
    functionDepth: 0
    functionLinenumber: 43165
    functionLinenumberEnd: 43166
    functionName: pagerBeginReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerBeginReadTransaction(z)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43194,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43200,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43201,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43201,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43212,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43216,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43217,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43223,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43224,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43228,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43229,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43230,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43235,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43240,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43241,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43242,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43243,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43246,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43247,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43248,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43253,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43260,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43261,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43261,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43266,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43267,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43271,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43272,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43273,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43273,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43274,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43275,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43275,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43279,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43284,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43285,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43285,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43286,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43286,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43297,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43298,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43298,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 66
    argCount: 1
    argNames:
    - p
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( p->tempFile==0 || pPager->changeCountDone )
      pos:
        line_end: 43194
        line_start: 43194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eState!=PAGER_ERROR && p->eState!=PAGER_OPEN )
      pos:
        line_end: 43215
        line_start: 43215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 43234
        line_start: 43234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbFileSize )
      pos:
        line_end: 43245
        line_start: 43245
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock>=RESERVED_LOCK )
      pos:
        line_end: 43259
        line_start: 43259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( isOpen(p->jfd) \n             || p->journalMode==PAGER_JOURNALMODE_OFF
        \n             || p->journalMode==PAGER_JOURNALMODE_WAL \n        )"
      pos:
        line_end: 43263
        line_start: 43260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode!=SQLITE_OK )
      pos:
        line_end: 43296
        line_start: 43296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbFileSize )
      pos:
        line_end: 43265
        line_start: 43265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( isOpen(p->jfd) \n           || p->journalMode==PAGER_JOURNALMODE_OFF
        \n           || p->journalMode==PAGER_JOURNALMODE_WAL \n      )"
      pos:
        line_end: 43277
        line_start: 43274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->journalMode==PAGER_JOURNALMODE_OFF || p->useJournal )
      pos:
        line_end: 43199
        line_start: 43199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->journalMode==PAGER_JOURNALMODE_OFF \n         || p->journalMode==PAGER_JOURNALMODE_MEMORY
        \n    )"
      pos:
        line_end: 43214
        line_start: 43212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pagerUseWal(p)==0 )
      pos:
        line_end: 43216
        line_start: 43216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->changeCountDone==0 || pPager->eLock>=RESERVED_LOCK )
      pos:
        line_end: 43222
        line_start: 43222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)==0 || pPager->tempFile )
      pos:
        line_end: 43229
        line_start: 43229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock>=SHARED_LOCK )
      pos:
        line_end: 43235
        line_start: 43235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbHintSize )
      pos:
        line_end: 43266
        line_start: 43266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)>0 )
      pos:
        line_end: 43297
        line_start: 43297
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( isOpen(p->jfd) \n           || p->journalMode==PAGER_JOURNALMODE_OFF
        \n           || p->journalMode==PAGER_JOURNALMODE_WAL \n      )"
      pos:
        line_end: 43288
        line_start: 43285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->journalMode!=PAGER_JOURNALMODE_OFF || !isOpen(p->jfd) )
      pos:
        line_end: 43200
        line_start: 43200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock!=PENDING_LOCK )
      pos:
        line_end: 43223
        line_start: 43223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 43227
        line_start: 43227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43228
        line_start: 43228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43233
        line_start: 43233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock>=RESERVED_LOCK )
      pos:
        line_end: 43242
        line_start: 43242
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbSize==pPager->dbOrigSize )
      pos:
        line_end: 43244
        line_start: 43244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbHintSize )
      pos:
        line_end: 43246
        line_start: 43246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 43272
        line_start: 43272
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 43251
        line_start: 43251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->eState==PAGER_OPEN\n       || p->eState==PAGER_READER\n       ||
        p->eState==PAGER_WRITER_LOCKED\n       || p->eState==PAGER_WRITER_CACHEMOD\n
        \      || p->eState==PAGER_WRITER_DBMOD\n       || p->eState==PAGER_WRITER_FINISHED\n
        \      || p->eState==PAGER_ERROR\n  )"
      pos:
        line_end: 43187
        line_start: 43180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->tempFile==0 || p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 43193
        line_start: 43193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->noSync )
      pos:
        line_end: 43211
        line_start: 43211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 43239
        line_start: 43239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43240
        line_start: 43240
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->setMaster==0 )
      pos:
        line_end: 43247
        line_start: 43247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 43270
        line_start: 43270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43271
        line_start: 43271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock>=EXCLUSIVE_LOCK )
      pos:
        line_end: 43273
        line_start: 43273
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 43282
        line_start: 43282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbOrigSize<=pPager->dbHintSize )
      pos:
        line_end: 43278
        line_start: 43278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 43284
        line_start: 43284
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43283
        line_start: 43283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 43252
        line_start: 43252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43303
      start: 43177
    functionDepth: 1
    functionLinenumber: 43177
    functionLinenumberEnd: 43303
    functionName: assert_pager_state
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - pagerUseWal
    - sqlite3PcacheRefCount
    - assert
    linkageType: ''
    returnType: int
    signature: int assert_pager_state(Pager *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43354
      start: 43315
    functionDepth: 0
    functionLinenumber: 43315
    functionLinenumberEnd: 43354
    functionName: print_pager_state
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *print_pager_state(Pager *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43378
      start: 43366
    functionDepth: 2
    functionLinenumber: 43366
    functionLinenumberEnd: 43378
    functionName: subjRequiresPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTestNotNull
    linkageType: ''
    returnType: int
    signature: int subjRequiresPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - pPg
    argTypes:
    - Pager*
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43386
      start: 43384
    functionDepth: 3
    functionLinenumber: 43384
    functionLinenumberEnd: 43386
    functionName: pageInJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTest
    linkageType: ''
    returnType: int
    signature: int pageInJournal(Pager *pPager, PgHdr *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43398,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - offset
    - pRes
    argTypes:
    - sqlite3_file*
    - i64
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43403
      start: 43396
    functionDepth: 2
    functionLinenumber: 43396
    functionLinenumberEnd: 43403
    functionName: read32bits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Get4byte
    - sqlite3OsRead
    linkageType: ''
    returnType: int
    signature: int read32bits(sqlite3_file *fd, i64 offset, u32 *pRes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43409
      start: 43408
    functionDepth: 0
    functionLinenumber: 43408
    functionLinenumberEnd: 43409
    functionName: put32bits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put32bits(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43417,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - offset
    - val
    argTypes:
    - sqlite3_file*
    - i64
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43419
      start: 43415
    functionDepth: 2
    functionLinenumber: 43415
    functionLinenumberEnd: 43419
    functionName: write32bits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - put32bits
    - sqlite3OsWrite
    linkageType: ''
    returnType: int
    signature: int write32bits(sqlite3_file *fd, i64 offset, u32 val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43434,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43435,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43435,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43436,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43437,1
    - Dst: sqlite3OsUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43438,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pPager
    - eLock
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( !pPager->exclusiveMode || pPager->eLock==eLock )
      pos:
        line_end: 43432
        line_start: 43432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock!=NO_LOCK || pagerUseWal(pPager)==0 )
      pos:
        line_end: 43434
        line_start: 43434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==NO_LOCK || eLock==SHARED_LOCK )
      pos:
        line_end: 43433
        line_start: 43433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock>=eLock )
      pos:
        line_end: 43436
        line_start: 43436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43445
      start: 43430
    functionDepth: 1
    functionLinenumber: 43430
    functionLinenumberEnd: 43445
    functionName: pagerUnlockDb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - assert
    - sqlite3OsUnlock
    - isOpen
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int pagerUnlockDb(Pager *pPager, int eLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43460,1
    - Dst: sqlite3OsLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43462,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - pPager
    - eLock
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( eLock==SHARED_LOCK || eLock==RESERVED_LOCK || eLock==EXCLUSIVE_LOCK
        )
      pos:
        line_end: 43459
        line_start: 43459
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43469
      start: 43457
    functionDepth: 2
    functionLinenumber: 43457
    functionLinenumberEnd: 43469
    functionName: pagerLockDb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsLock
    - IOTRACE
    - assert
    linkageType: ''
    returnType: int
    signature: int pagerLockDb(Pager *pPager, int eLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43496,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43496,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43497,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43502,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43508,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 43489
        line_start: 43489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 43495
        line_start: 43495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC512==(512>>8))
      pos:
        line_end: 43500
        line_start: 43500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC64K==(65536>>8))
      pos:
        line_end: 43501
        line_start: 43501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43509
      start: 43489
    functionDepth: 1
    functionLinenumber: 43489
    functionLinenumberEnd: 43509
    functionName: jrnlBufferSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - isOpen
    - JOURNAL_PG_SZ
    - sqlite3OsDeviceCharacteristics
    - JOURNAL_HDR_SZ
    linkageType: ''
    returnType: int
    signature: int jrnlBufferSize(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nByte
    - pData
    argTypes:
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43528
      start: 43521
    functionDepth: 0
    functionLinenumber: 43521
    functionLinenumberEnd: 43528
    functionName: pager_datahash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 pager_datahash(int nByte, unsigned char *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pager_datahash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43531
      start: 43529
    functionDepth: 1
    functionLinenumber: 43529
    functionLinenumberEnd: 43531
    functionName: pager_pagehash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_datahash
    linkageType: ''
    returnType: u32
    signature: u32 pager_pagehash(PgHdr *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pager_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43534
      start: 43532
    functionDepth: 2
    functionLinenumber: 43532
    functionLinenumberEnd: 43534
    functionName: pager_set_pagehash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_pagehash
    linkageType: ''
    returnType: void
    signature: void pager_set_pagehash(PgHdr *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43542
      start: 43541
    functionDepth: 0
    functionLinenumber: 43541
    functionLinenumberEnd: 43542
    functionName: CHECK_PAGE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PAGE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43544,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43545,1
    - Dst: pager_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 43543
        line_start: 43543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPg->flags&PGHDR_DIRTY) || pPg->pageHash==pager_pagehash(pPg)
        )
      pos:
        line_end: 43544
        line_start: 43544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43546
      start: 43542
    functionDepth: 2
    functionLinenumber: 43542
    functionLinenumberEnd: 43546
    functionName: checkPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_pagehash
    - assert
    linkageType: ''
    returnType: void
    signature: void checkPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43550
      start: 43549
    functionDepth: 0
    functionLinenumber: 43549
    functionLinenumberEnd: 43550
    functionName: pager_datahash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pager_datahash(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43551
      start: 43550
    functionDepth: 0
    functionLinenumber: 43550
    functionLinenumberEnd: 43551
    functionName: pager_pagehash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pager_pagehash(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43589,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43591,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43594,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43595,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43596,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43597,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 3
    argNames:
    - pJrnl
    - zMaster
    - nMaster
    argTypes:
    - sqlite3_file*
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43617
      start: 43580
    functionDepth: 3
    functionLinenumber: 43580
    functionLinenumberEnd: 43617
    functionName: readMasterJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sqlite3OsFileSize
    - sqlite3OsRead
    - read32bits
    linkageType: ''
    returnType: int
    signature: int readMasterJournal(sqlite3_file *pJrnl, char *zMaster, u32 nMaster)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43638,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43638,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43640,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43640,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43641,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43642,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( offset>=c )
      pos:
        line_end: 43640
        line_start: 43640
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset%JOURNAL_HDR_SZ(pPager)==0 )
      pos:
        line_end: 43639
        line_start: 43639
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (offset-c)<JOURNAL_HDR_SZ(pPager) )
      pos:
        line_end: 43641
        line_start: 43641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43644
      start: 43634
    functionDepth: 1
    functionLinenumber: 43634
    functionLinenumberEnd: 43644
    functionName: journalHdrOffset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - JOURNAL_HDR_SZ
    - assert
    linkageType: ''
    returnType: i64
    signature: i64 journalHdrOffset(Pager *pPager)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43669,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43669,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43673,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43675,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43678,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43681,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43692,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - pPager
    - doTruncate
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 43668
        line_start: 43668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43699
      start: 43667
    functionDepth: 2
    functionLinenumber: 43667
    functionLinenumberEnd: 43699
    functionName: zeroJournalHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    - assert
    - sqlite3OsSync
    - isOpen
    - sqlite3OsWrite
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int zeroJournalHdr(Pager *pPager, int doTruncate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43723,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43723,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43725,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43726,1
    - Dst: journalHdrOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43761,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43761,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43763,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43765,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43766,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43768,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43772,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43773,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43775,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43777,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43780,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43787,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43807,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43808,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43809,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43810,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 43722
        line_start: 43722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalHdr <= pPager->journalOff )
      pos:
        line_end: 43809
        line_start: 43809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->noSync )
      pos:
        line_end: 43760
        line_start: 43760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43815
      start: 43716
    functionDepth: 3
    functionLinenumber: 43716
    functionLinenumberEnd: 43815
    functionName: writeJournalHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - put32bits
    - sqlite3_randomness
    - memcpy
    - isOpen
    - sqlite3OsWrite
    - journalHdrOffset
    - sqlite3OsDeviceCharacteristics
    - IOTRACE
    - JOURNAL_HDR_SZ
    linkageType: ''
    returnType: int
    signature: int writeJournalHdr(Pager *pPager)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43845,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43845,1
    - Dst: journalHdrOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43851,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43852,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43863,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43867,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43876,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43877,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43878,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43888,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43889,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43923,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43924,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43935,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 5
    argNames:
    - pPager
    - isHot
    - journalSize
    - pNRec
    - pDbSize
    argTypes:
    - Pager*
    - int
    - i64
    - u32*
    - u32*
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 43844
        line_start: 43844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43937
      start: 43834
    functionDepth: 3
    functionLinenumber: 43834
    functionLinenumberEnd: 43937
    functionName: readJournalHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sqlite3PagerSetPagesize
    - assert
    - isOpen
    - sqlite3OsRead
    - journalHdrOffset
    - JOURNAL_HDR_SZ
    - testcase
    - read32bits
    linkageType: ''
    returnType: int
    signature: "int readJournalHdr(\n  Pager *pPager,               /* Pager object
      */\n  int isHot,\n  i64 journalSize,             /* Size of the open journal
      file in bytes */\n  u32 *pNRec,                  /* OUT: Value read from the
      nRec field */\n  u32 *pDbSize                 /* OUT: Value of original database
      size field */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43966,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43967,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43967,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43971,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43976,1
    - Dst: journalHdrOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43988,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43995,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43995,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43996,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43997,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43998,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:43999,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44016,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44019,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( pPager->setMaster==0 )
      pos:
        line_end: 43965
        line_start: 43965
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 43966
        line_start: 43966
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalHdr <= pPager->journalOff )
      pos:
        line_end: 43975
        line_start: 43975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44022
      start: 43959
    functionDepth: 3
    functionLinenumber: 43959
    functionLinenumberEnd: 44022
    functionName: writeMasterJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - sqlite3OsFileSize
    - sqlite3OsTruncate
    - assert
    - PAGER_MJ_PGNO
    - isOpen
    - sqlite3OsWrite
    - journalHdrOffset
    - write32bits
    linkageType: ''
    returnType: int
    signature: int writeMasterJournal(Pager *pPager, const char *zMaster)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BackupRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44029,1
    - Dst: sqlite3PcacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44031
      start: 44027
    functionDepth: 4
    functionLinenumber: 44027
    functionLinenumberEnd: 44031
    functionName: pager_reset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheClear
    - sqlite3BackupRestart
    linkageType: ''
    returnType: void
    signature: void pager_reset(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState>PAGER_OPEN )
      pos:
        line_end: 44036
        line_start: 44036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44039
      start: 44036
    functionDepth: 0
    functionLinenumber: 44036
    functionLinenumberEnd: 44039
    functionName: sqlite3PagerDataVersion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerDataVersion(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44049,1
    - Dst: sqlite3IsMemJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44051,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44052,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44054,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44058
      start: 44046
    functionDepth: 4
    functionLinenumber: 44046
    functionLinenumberEnd: 44058
    functionName: releaseAllSavepoints
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsMemJournal
    - sqlite3BitvecDestroy
    - sqlite3_free
    - sqlite3OsClose
    linkageType: ''
    returnType: void
    signature: void releaseAllSavepoints(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44072,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - pgno
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 44073
        line_start: 44073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44078
      start: 44065
    functionDepth: 7
    functionLinenumber: 44065
    functionLinenumberEnd: 44078
    functionName: addToSavepointBitvecs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - assert
    - sqlite3BitvecSet
    linkageType: ''
    returnType: int
    signature: int addToSavepointBitvecs(Pager *pPager, Pgno pgno)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44099,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44104,1
    - Dst: releaseAllSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44106,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44109,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44109,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44110,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44114,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44114,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44121,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44122,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44123,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44125,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44126,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44130,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44138,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44147,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44158,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44159,1
    - Dst: USEFETCH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44163,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( !isOpen(pPager->jfd) )
      pos:
        line_end: 44108
        line_start: 44108
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_OFF      & 5)!=1 )
      pos:
        line_end: 44121
        line_start: 44121
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_TRUNCATE & 5)==1 )
      pos:
        line_end: 44124
        line_start: 44124
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_WAL      & 5)!=1 )
      pos:
        line_end: 44122
        line_start: 44122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode || pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 44146
        line_start: 44146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_DELETE   & 5)!=1 )
      pos:
        line_end: 44123
        line_start: 44123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_MEMORY   & 5)!=1 )
      pos:
        line_end: 44120
        line_start: 44120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_READER \n       || pPager->eState==PAGER_OPEN
        \n       || pPager->eState==PAGER_ERROR \n  )"
      pos:
        line_end: 44101
        line_start: 44098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_PERSIST  & 5)==1 )
      pos:
        line_end: 44125
        line_start: 44125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 44157
        line_start: 44157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44169
      start: 44097
    functionDepth: 5
    functionLinenumber: 44097
    functionLinenumberEnd: 44169
    functionName: pager_unlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - pager_reset
    - sqlite3OsUnfetch
    - sqlite3OsClose
    - assert
    - pagerUnlockDb
    - isOpen
    - releaseAllSavepoints
    - sqlite3BitvecDestroy
    - sqlite3WalEndReadTransaction
    - sqlite3OsDeviceCharacteristics
    - USEFETCH
    linkageType: ''
    returnType: void
    signature: void pager_unlock(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44192,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - pPager
    - rc
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( rc==SQLITE_OK || !MEMDB )
      pos:
        line_end: 44191
        line_start: 44191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "(\n       pPager->errCode==SQLITE_FULL ||\n       pPager->errCode==SQLITE_OK
        ||\n       (pPager->errCode & 0xff)==SQLITE_IOERR\n  )"
      pos:
        line_end: 44196
        line_start: 44192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44203
      start: 44190
    functionDepth: 0
    functionLinenumber: 44190
    functionLinenumberEnd: 44203
    functionName: pager_error
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int pager_error(Pager *pPager, int rc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44277,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44277,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44278,1
    - Dst: releaseAllSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44284,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44284,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44285,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44286,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44286,1
    - Dst: sqlite3IsMemJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44289,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44290,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44291,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44296,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44303,1
    - Dst: zeroJournalHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44310,1
    - Dst: sqlite3JournalExists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44318,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44319,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44323,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44325,1
    - Dst: sqlite3PcacheIterateDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44331,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44332,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44333,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44336,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44341,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44344,1
    - Dst: sqlite3PcacheTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44345,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44347,1
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44352,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44353,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44361,1
    - Dst: pager_truncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44362,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44365,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44366,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44371,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44371,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44373,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 3
    argNames:
    - pPager
    - hasMaster
    - bCommit
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( isOpen(pPager->jfd) || pPager->pInJournal==0 )
      pos:
        line_end: 44283
        line_start: 44283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 44276
        line_start: 44276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 44285
        line_start: 44285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc2==SQLITE_OK )
      pos:
        line_end: 44352
        line_start: 44352
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 44277
        line_start: 44277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalMode==PAGER_JOURNALMODE_MEMORY )
      pos:
        line_end: 44289
        line_start: 44289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->journalMode==PAGER_JOURNALMODE_DELETE \n           ||
        pPager->journalMode==PAGER_JOURNALMODE_MEMORY \n           || pPager->journalMode==PAGER_JOURNALMODE_WAL
        \n      )"
      pos:
        line_end: 44321
        line_start: 44318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 44360
        line_start: 44360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44380
      start: 44260
    functionDepth: 5
    functionLinenumber: 44260
    functionLinenumberEnd: 44380
    functionName: pager_end_transaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - sqlite3PcacheTruncate
    - sqlite3OsSync
    - isOpen
    - sqlite3IsMemJournal
    - sqlite3WalEndWriteTransaction
    - sqlite3JournalExists
    - sqlite3OsDelete
    - sqlite3PcacheRefCount
    - sqlite3PcacheCleanAll
    - sqlite3PagerLookup
    - zeroJournalHdr
    - sqlite3PcacheIterateDirty
    - sqlite3OsTruncate
    - pager_truncate
    - assert
    - releaseAllSavepoints
    - sqlite3BitvecDestroy
    - sqlite3WalExclusiveMode
    - sqlite3OsClose
    - pagerUnlockDb
    - sqlite3PagerUnrefNotNull
    - sqlite3OsFileControl
    linkageType: ''
    returnType: int
    signature: int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44401,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44401,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44403,1
    - Dst: sqlite3PagerRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44404,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44405,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44407,1
    - Dst: pager_end_transaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44408,1
    - Dst: pager_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 44400
        line_start: 44400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER )
      pos:
        line_end: 44406
        line_start: 44406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44412
      start: 44399
    functionDepth: 6
    functionLinenumber: 44399
    functionLinenumberEnd: 44412
    functionName: pagerUnlockAndRollback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - assert
    - sqlite3BeginBenignMalloc
    - sqlite3EndBenignMalloc
    - sqlite3PagerRollback
    - pager_end_transaction
    - pager_unlock
    linkageType: ''
    returnType: void
    signature: void pagerUnlockAndRollback(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - aData
    argTypes:
    - Pager*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44441
      start: 44433
    functionDepth: 0
    functionLinenumber: 44433
    functionLinenumberEnd: 44441
    functionName: pager_cksum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 pager_cksum(Pager *pPager, const u8 *aData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pager*::xCodecSizeChng
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44453
      start: 44448
    functionDepth: 0
    functionLinenumber: 44448
    functionLinenumberEnd: 44453
    functionName: pagerReportSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - Pager*::xCodecSizeChng
    linkageType: ''
    returnType: void
    signature: void pagerReportSize(Pager *pPager)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44512,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44513,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44516,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44517,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44517,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44525,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44528,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44534,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44536,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44545,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44546,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44549,1
    - Dst: read32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44553,1
    - Dst: pager_cksum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44555,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44563,1
    - Dst: pagerReportSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44571,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44609,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44614,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44615,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44616,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44617,1
    - Dst: pager_datahash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44617,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44625,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44630,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44631,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44631,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44632,1
    - Dst: CODEC1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44637,1
    - Dst: sqlite3BackupUpdate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44638,1
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44658,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44659,1
    - Dst: sqlite3PagerAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44661,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44662,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44666,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44677,1
    - Dst: Pager*::xReiniter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44678,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44699,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44699,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44700,1
    - Dst: pager_set_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44702,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44707,1
    - Dst: CODEC1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44711,1
    - Dst: sqlite3PcacheRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44712,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 94
    argCount: 5
    argNames:
    - pPager
    - pOffset
    - pDone
    - isMainJrnl
    - isSavepnt
    argTypes:
    - Pager*
    - i64*
    - Bitvec*
    - int
    - int
    assertStmts:
    - condition: ( isSavepnt || pDone==0 )
      pos:
        line_end: 44512
        line_start: 44512
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_OPEN || pPg==0 )
      pos:
        line_end: 44614
        line_start: 44614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 44630
        line_start: 44630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (isMainJrnl&~1)==0 )
      pos:
        line_end: 44509
        line_start: 44509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 || (!isMainJrnl && isSavepnt) )
      pos:
        line_end: 44516
        line_start: 44516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD || isMainJrnl )
      pos:
        line_end: 44527
        line_start: 44527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (isSavepnt&~1)==0 )
      pos:
        line_end: 44510
        line_start: 44510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isMainJrnl || pDone )
      pos:
        line_end: 44511
        line_start: 44511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aData )
      pos:
        line_end: 44515
        line_start: 44515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState>=PAGER_WRITER_CACHEMOD\n       || (pPager->eState==PAGER_OPEN
        && pPager->eLock==EXCLUSIVE_LOCK)\n  )"
      pos:
        line_end: 44526
        line_start: 44524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg || !MEMDB )
      pos:
        line_end: 44613
        line_start: 44613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 44698
        line_start: 44698
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !isSavepnt )
      pos:
        line_end: 44545
        line_start: 44545
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSavepnt )
      pos:
        line_end: 44657
        line_start: 44657
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)==0 )
      pos:
        line_end: 44658
        line_start: 44658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)!=0 )
      pos:
        line_end: 44661
        line_start: 44661
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44715
      start: 44495
    functionDepth: 7
    functionLinenumber: 44495
    functionLinenumberEnd: 44715
    functionName: pager_playback_one_page
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - CODEC1
    - pagerReportSize
    - PAGER_MJ_PGNO
    - isOpen
    - sqlite3OsRead
    - Pager*::xReiniter
    - CODEC2
    - sqlite3BackupUpdate
    - PAGERTRACE
    - sqlite3PagerAcquire
    - sqlite3PagerLookup
    - memcpy
    - read32bits
    - assert
    - sqlite3BitvecSet
    - pager_cksum
    - sqlite3PcacheMakeClean
    - sqlite3PcacheRelease
    - sqlite3PcacheMakeDirty
    - sqlite3OsWrite
    - pager_set_pagehash
    - pager_datahash
    - testcase
    - sqlite3BitvecTest
    - PAGERID
    linkageType: ''
    returnType: int
    signature: "int pager_playback_one_page(\n  Pager *pPager,                /* The
      pager being played back */\n  i64 *pOffset,                 /* Offset of record
      to playback */\n  Bitvec *pDone,                /* Bitvec of pages already played
      back */\n  int isMainJrnl,               /* 1 -> main journal. 0 -> sub-journal.
      */\n  int isSavepnt                 /* True for a savepoint rollback */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44774,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44780,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44789,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44792,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44798,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44805,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44816,1
    - Dst: readMasterJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44821,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44822,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44827,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44833,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44836,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44837,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44840,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44843,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44843,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44844,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( !isOpen(pJournal) )
      pos:
        line_end: 44842
        line_start: 44842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44847
      start: 44760
    functionDepth: 5
    functionLinenumber: 44760
    functionLinenumberEnd: 44847
    functionName: pager_delmaster
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3OsFileSize
    - sqlite3OsClose
    - sqlite3OsDelete
    - sqlite3_free
    - assert
    - sqlite3Malloc
    - isOpen
    - strcmp
    - sqlite3OsOpen
    - sqlite3Strlen30
    - sqlite3OsRead
    - readMasterJournal
    - sqlite3OsAccess
    linkageType: ''
    returnType: int
    signature: int pager_delmaster(Pager *pPager, const char *zMaster)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44873,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44875,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44880,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44882,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44886,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44889,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44890,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44891,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44892,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pPager
    - nPage
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 44871
        line_start: 44871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 44879
        line_start: 44879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_READER )
      pos:
        line_end: 44872
        line_start: 44872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44900
      start: 44870
    functionDepth: 2
    functionLinenumber: 44870
    functionLinenumberEnd: 44900
    functionName: pager_truncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    - memset
    - assert
    - isOpen
    - sqlite3OsWrite
    - testcase
    linkageType: ''
    returnType: int
    signature: int pager_truncate(Pager *pPager, Pgno nPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44907,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( MAX_SECTOR_SIZE>=512 )
      pos:
        line_end: 44910
        line_start: 44910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44915
      start: 44906
    functionDepth: 1
    functionLinenumber: 44906
    functionLinenumberEnd: 44915
    functionName: sqlite3SectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSectorSize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SectorSize(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44941,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44941,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44944,1
    - Dst: sqlite3SectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:44952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 44940
        line_start: 44940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44954
      start: 44940
    functionDepth: 2
    functionLinenumber: 44940
    functionLinenumberEnd: 44954
    functionName: setSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsDeviceCharacteristics
    - sqlite3SectorSize
    - assert
    linkageType: ''
    returnType: void
    signature: void setSectorSize(Pager *pPager)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45028,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45028,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45029,1
    - Dst: readMasterJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45046,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45048,1
    - Dst: readJournalHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45067,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45081,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45081,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45082,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45082,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45100,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45101,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45107,1
    - Dst: pager_truncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45108,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45120,1
    - Dst: pager_playback_one_page
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45123,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45150,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45160,1
    - Dst: readMasterJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45177,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45178,1
    - Dst: sqlite3PagerSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45183,1
    - Dst: pager_end_transaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45186,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45187,1
    - Dst: pager_delmaster
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45193,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45194,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45197,1
    - Dst: setSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45205,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - pPager
    - isHot
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 45027
        line_start: 45027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalOff==JOURNAL_HDR_SZ(pPager) )
      pos:
        line_end: 45080
        line_start: 45080
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 45149
        line_start: 45149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45207
      start: 45013
    functionDepth: 8
    functionLinenumber: 45013
    functionLinenumberEnd: 45207
    functionName: pager_playback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_reset
    - sqlite3OsFileSize
    - sqlite3OsFileControlHint
    - pager_truncate
    - assert
    - sqlite3_log
    - pager_end_transaction
    - setSectorSize
    - isOpen
    - pager_delmaster
    - JOURNAL_PG_SZ
    - readJournalHdr
    - readMasterJournal
    - sqlite3PagerSync
    - JOURNAL_HDR_SZ
    - testcase
    - sqlite3OsAccess
    - pager_playback_one_page
    linkageType: ''
    returnType: int
    signature: int pager_playback(Pager *pPager, int isHot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45228,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45228,1
    - Dst: sqlite3WalReadFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45233,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45238,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45258,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45261,1
    - Dst: CODEC1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45264,1
    - Dst: PAGER_INCR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45266,1
    - Dst: PAGER_INCR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45267,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45268,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45269,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45270,1
    - Dst: pager_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - pPg
    - iFrame
    argTypes:
    - PgHdr*
    - u32
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER && !MEMDB )
      pos:
        line_end: 45226
        line_start: 45226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 45227
        line_start: 45227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45273
      start: 45221
    functionDepth: 2
    functionLinenumber: 45221
    functionLinenumberEnd: 45273
    functionName: readDbPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_pagehash
    - CODEC1
    - memset
    - PAGERTRACE
    - assert
    - memcpy
    - isOpen
    - sqlite3OsRead
    - PAGER_INCR
    - IOTRACE
    - sqlite3WalReadFrame
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int readDbPage(PgHdr *pPg, u32 iFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45287,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45288,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45293,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45295
      start: 45283
    functionDepth: 2
    functionLinenumber: 45283
    functionLinenumberEnd: 45295
    functionName: pager_write_changecounter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Get4byte
    - put32bits
    linkageType: ''
    returnType: void
    signature: void pager_write_changecounter(PgHdr *pPg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45315,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45315,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45316,1
    - Dst: sqlite3PcachePageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45318,1
    - Dst: sqlite3PcacheDrop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45319,1
    - Dst: sqlite3WalFindFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45322,1
    - Dst: readDbPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45324,1
    - Dst: Pager*::xReiniter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45327,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45329,1
    - Dst: sqlite3BackupRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pCtx
    - iPg
    argTypes:
    - void*
    - Pgno
    assertStmts:
    - condition: ( pagerUseWal(pPager) )
      pos:
        line_end: 45314
        line_start: 45314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45344
      start: 45310
    functionDepth: 3
    functionLinenumber: 45310
    functionLinenumberEnd: 45344
    functionName: pagerUndoCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - sqlite3PcacheDrop
    - Pager*::xReiniter
    - sqlite3BackupRestart
    - assert
    - sqlite3PcachePageRefcount
    - sqlite3PagerLookup
    - readDbPage
    - sqlite3PagerUnrefNotNull
    - sqlite3WalFindFrame
    linkageType: ''
    returnType: int
    signature: int pagerUndoCallback(void *pCtx, Pgno iPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalUndo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45361,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45362,1
    - Dst: pagerUndoCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45370
      start: 45349
    functionDepth: 4
    functionLinenumber: 45349
    functionLinenumberEnd: 45370
    functionName: pagerRollbackWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUndoCallback
    - sqlite3PcacheDirtyList
    - sqlite3WalUndo
    linkageType: ''
    returnType: int
    signature: int pagerRollbackWal(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45391,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45392,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45396,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45414,1
    - Dst: pager_write_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45420,1
    - Dst: sqlite3WalFrames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45421,1
    - Dst: sqlite3BackupUpdate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45426,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45431,1
    - Dst: pager_set_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45433,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - pPager
    - pList
    - nTruncate
    - isCommit
    argTypes:
    - Pager*
    - PgHdr*
    - Pgno
    - int
    assertStmts:
    - condition: ( pPager->pWal )
      pos:
        line_end: 45390
        line_start: 45390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pgno < p->pDirty->pgno )
      pos:
        line_end: 45395
        line_start: 45395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList )
      pos:
        line_end: 45413
        line_start: 45413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->pDirty==0 || isCommit )
      pos:
        line_end: 45399
        line_start: 45399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList )
      pos:
        line_end: 45391
        line_start: 45391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45438
      start: 45381
    functionDepth: 3
    functionLinenumber: 45381
    functionLinenumberEnd: 45438
    functionName: pagerWalFrames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalFrames
    - sqlite3PcacheDirtyList
    - assert
    - pager_write_changecounter
    - pager_set_pagehash
    - sqlite3BackupUpdate
    linkageType: ''
    returnType: int
    signature: "int pagerWalFrames(\n  Pager *pPager,                  /* Pager object
      */\n  PgHdr *pList,                   /* List of frames to log */\n  Pgno nTruncate,
      \                /* Database size after this commit */\n  int isCommit                    /*
      True if this is a commit */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45452,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45452,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45453,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45460,1
    - Dst: sqlite3WalBeginReadTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45462,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45464,1
    - Dst: USEFETCH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45465,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pagerUseWal(pPager) )
      pos:
        line_end: 45451
        line_start: 45451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER )
      pos:
        line_end: 45452
        line_start: 45452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45469
      start: 45448
    functionDepth: 5
    functionLinenumber: 45448
    functionLinenumberEnd: 45469
    functionName: pagerBeginReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - sqlite3WalBeginReadTransaction
    - pager_reset
    - sqlite3OsUnfetch
    - assert
    - sqlite3WalEndReadTransaction
    - USEFETCH
    linkageType: ''
    returnType: int
    signature: int pagerBeginReadTransaction(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45491,1
    - Dst: sqlite3WalDbsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45492,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45501,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45501,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45502,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pPager
    - pnPage
    argTypes:
    - Pager*
    - Pgno*
    assertStmts:
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 45489
        line_start: 45489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock>=SHARED_LOCK )
      pos:
        line_end: 45490
        line_start: 45490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 45500
        line_start: 45500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45521
      start: 45481
    functionDepth: 2
    functionLinenumber: 45481
    functionLinenumberEnd: 45521
    functionName: pagerPagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsFileSize
    - sqlite3WalDbsize
    - assert
    linkageType: ''
    returnType: int
    signature: int pagerPagecount(Pager *pPager, Pgno *pnPage)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45544,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45545,1
    - Dst: pagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45551,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45554,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45558,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45564,1
    - Dst: sqlite3PcachePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45564,1
    - Dst: sqlite3PagerOpenWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45565,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 45543
        line_start: 45543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock>=SHARED_LOCK )
      pos:
        line_end: 45544
        line_start: 45544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45572
      start: 45542
    functionDepth: 3
    functionLinenumber: 45542
    functionLinenumberEnd: 45572
    functionName: pagerOpenWalIfPresent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDelete
    - assert
    - pagerPagecount
    - sqlite3PcachePagecount
    - sqlite3PagerOpenWal
    - testcase
    - sqlite3OsAccess
    linkageType: ''
    returnType: int
    signature: int pagerOpenWalIfPresent(Pager *pPager)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45617,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45618,1
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45622,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45634,1
    - Dst: pagerRollbackWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45635,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45644,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45644,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45653,1
    - Dst: pager_playback_one_page
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45657,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45659,1
    - Dst: readJournalHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45673,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45674,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45682,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45684,1
    - Dst: pager_playback_one_page
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45687,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45689,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45691,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45701,1
    - Dst: sqlite3WalSavepointUndo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45702,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45705,1
    - Dst: pager_playback_one_page
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45708,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45711,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 2
    argNames:
    - pPager
    - pSavepoint
    argTypes:
    - Pager*
    - PagerSavepoint*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 45617
        line_start: 45617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 || szJ==0 )
      pos:
        line_end: 45643
        line_start: 45643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 45658
        line_start: 45658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPager->journalOff>=szJ )
      pos:
        line_end: 45690
        line_start: 45690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 45688
        line_start: 45688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 45673
        line_start: 45673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset==(i64)ii*(4+pPager->pageSize) )
      pos:
        line_end: 45704
        line_start: 45704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 45707
        line_start: 45707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 45616
        line_start: 45616
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45717
      start: 45611
    functionDepth: 8
    functionLinenumber: 45611
    functionLinenumberEnd: 45717
    functionName: pagerPlaybackSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - pagerRollbackWal
    - assert
    - sqlite3WalSavepointUndo
    - JOURNAL_PG_SZ
    - sqlite3BitvecDestroy
    - readJournalHdr
    - sqlite3BitvecCreate
    - JOURNAL_HDR_SZ
    - pager_playback_one_page
    linkageType: ''
    returnType: int
    signature: int pagerPlaybackSavepoint(Pager *pPager, PagerSavepoint *pSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheSetCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - mxPage
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45724
      start: 45722
    functionDepth: 2
    functionLinenumber: 45722
    functionLinenumberEnd: 45724
    functionName: sqlite3PagerSetCachesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheSetCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetCachesize(Pager *pPager, int mxPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45732,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45739
      start: 45729
    functionDepth: 1
    functionLinenumber: 45729
    functionLinenumberEnd: 45739
    functionName: pagerFixMaplimit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsFileControlHint
    linkageType: ''
    returnType: void
    signature: void pagerFixMaplimit(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pagerFixMaplimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pPager
    - szMmap
    argTypes:
    - Pager*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45747
      start: 45744
    functionDepth: 2
    functionLinenumber: 45744
    functionLinenumberEnd: 45747
    functionName: sqlite3PagerSetMmapLimit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerFixMaplimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetMmapLimit(Pager *pPager, sqlite3_int64
      szMmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheShrink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45754
      start: 45752
    functionDepth: 1
    functionLinenumber: 45752
    functionLinenumberEnd: 45754
    functionName: sqlite3PagerShrink
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheShrink
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerShrink(Pager *pPager)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45808,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - pPager
    - pgFlags
    argTypes:
    - Pager*
    - unsigned
    assertStmts:
    - condition: ( level>=1 && level<=3 )
      pos:
        line_end: 45807
        line_start: 45807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45833
      start: 45803
    functionDepth: 0
    functionLinenumber: 45803
    functionLinenumberEnd: 45833
    functionName: sqlite3PagerSetFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetFlags(\n  Pager *pPager,        /* The
      pager to set safety level for */\n  unsigned pgFlags      /* Various flags */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45873,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45874,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pPager
    - pFile
    - vfsFlags
    argTypes:
    - Pager*
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( rc!=SQLITE_OK || isOpen(pFile) )
      pos:
        line_end: 45873
        line_start: 45873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45876
      start: 45860
    functionDepth: 2
    functionLinenumber: 45860
    functionLinenumberEnd: 45876
    functionName: pagerOpentemp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsOpen
    - assert
    linkageType: ''
    returnType: int
    signature: "int pagerOpentemp(\n  Pager *pPager,        /* The pager object */\n
      \ sqlite3_file *pFile,  /* Write the file descriptor here */\n  int vfsFlags
      \         /* Flags passed through to the VFS */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45907,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45909,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45910,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pPager
    - pBusyHandlerArg
    argTypes:
    - Pager*
    - void*
    assertStmts:
    - condition: ( ((int(*)(void *))(ap[0]))==xBusyHandler )
      pos:
        line_end: 45908
        line_start: 45908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ap[1]==pBusyHandlerArg )
      pos:
        line_end: 45909
        line_start: 45909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45913
      start: 45899
    functionDepth: 1
    functionLinenumber: 45899
    functionLinenumberEnd: 45913
    functionName: sqlite3PagerSetBusyhandler
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsFileControlHint
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetBusyhandler(\n  Pager *pPager,                       /*
      Pager object */\n  int (*xBusyHandler)(void *),         /* Pointer to busy-handler
      function */\n  void *pBusyHandlerArg                /* Argument to pass to xBusyHandler
      */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45959,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45961,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45967,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45968,1
    - Dst: sqlite3PageMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45971,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45976,1
    - Dst: sqlite3PcacheSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45977,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45980,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45985,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45992,1
    - Dst: pagerReportSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45994,1
    - Dst: pagerFixMaplimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:45995,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - pPager
    - pPageSize
    - nReserve
    argTypes:
    - Pager*
    - u32*
    - int
    assertStmts:
    - condition: ( pageSize==0 || (pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE)
        )
      pos:
        line_end: 45958
        line_start: 45958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nReserve>=0 && nReserve<1000 )
      pos:
        line_end: 45991
        line_start: 45991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45998
      start: 45945
    functionDepth: 6
    functionLinenumber: 45945
    functionLinenumberEnd: 45998
    functionName: sqlite3PagerSetPagesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - pager_reset
    - sqlite3PageMalloc
    - sqlite3OsFileSize
    - sqlite3PcacheRefCount
    - assert
    - sqlite3PcacheSetPageSize
    - pagerReportSize
    - sqlite3PageFree
    - isOpen
    - pagerFixMaplimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetPagesize(Pager *pPager, u32 *pPageSize,
      int nReserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46010
      start: 46008
    functionDepth: 0
    functionLinenumber: 46008
    functionLinenumberEnd: 46010
    functionName: sqlite3PagerTempSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerTempSpace(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46023,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pPager
    - mxPage
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState!=PAGER_OPEN )
      pos:
        line_end: 46022
        line_start: 46022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->mxPgno>=pPager->dbSize )
      pos:
        line_end: 46023
        line_start: 46023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46026
      start: 46019
    functionDepth: 0
    functionLinenumber: 46019
    functionLinenumberEnd: 46026
    functionName: sqlite3PagerMaxPageCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMaxPageCount(Pager *pPager, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46043
      start: 46040
    functionDepth: 0
    functionLinenumber: 46040
    functionLinenumberEnd: 46043
    functionName: disable_simulated_io_errors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_simulated_io_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46046
      start: 46044
    functionDepth: 0
    functionLinenumber: 46044
    functionLinenumberEnd: 46046
    functionName: enable_simulated_io_errors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_simulated_io_errors(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46068,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46069,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46069,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46075,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46075,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46077,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46078,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pPager
    - N
    - pDest
    argTypes:
    - Pager*
    - int
    - unsigned char*
    assertStmts:
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 46074
        line_start: 46074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 46068
        line_start: 46068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46085
      start: 46066
    functionDepth: 2
    functionLinenumber: 46066
    functionLinenumberEnd: 46085
    functionName: sqlite3PagerReadFileheader
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - memset
    - assert
    - isOpen
    - IOTRACE
    - sqlite3OsRead
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerReadFileheader(Pager *pPager, int N, unsigned
      char *pDest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pPager
    - pnPage
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 46094
        line_start: 46094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_WRITER_FINISHED )
      pos:
        line_end: 46095
        line_start: 46095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46098
      start: 46094
    functionDepth: 0
    functionLinenumber: 46094
    functionLinenumberEnd: 46098
    functionName: sqlite3PagerPagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPagecount(Pager *pPager, int *pnPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46123,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46129,1
    - Dst: Pager*::xBusyHandler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - locktype
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( (pPager->eLock>=locktype)\n       || (pPager->eLock==NO_LOCK &&
        locktype==SHARED_LOCK)\n       || (pPager->eLock==RESERVED_LOCK && locktype==EXCLUSIVE_LOCK)\n
        \ )"
      pos:
        line_end: 46125
        line_start: 46122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46132
      start: 46115
    functionDepth: 3
    functionLinenumber: 46115
    functionLinenumberEnd: 46132
    functionName: pager_wait_on_lock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerLockDb
    - Pager*::xBusyHandler
    - assert
    linkageType: ''
    returnType: int
    signature: int pager_wait_on_lock(Pager *pPager, int locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46158,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46159,1
    - Dst: subjRequiresPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 46157
        line_start: 46157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !subjRequiresPage(pPg) || pPg->pgno<=pPg->pPager->dbSize )
      pos:
        line_end: 46158
        line_start: 46158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46160
      start: 46157
    functionDepth: 3
    functionLinenumber: 46157
    functionLinenumberEnd: 46160
    functionName: assertTruncateConstraintCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - subjRequiresPage
    - assert
    linkageType: ''
    returnType: void
    signature: void assertTruncateConstraintCb(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheIterateDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46163
      start: 46161
    functionDepth: 1
    functionLinenumber: 46161
    functionLinenumberEnd: 46163
    functionName: assertTruncateConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheIterateDirty
    linkageType: ''
    returnType: void
    signature: void assertTruncateConstraint(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pPager
    - nPage
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager->dbSize>=nPage )
      pos:
        line_end: 46179
        line_start: 46179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD )
      pos:
        line_end: 46180
        line_start: 46180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46193
      start: 46179
    functionDepth: 0
    functionLinenumber: 46179
    functionLinenumberEnd: 46193
    functionName: sqlite3PagerTruncateImage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerTruncateImage(Pager *pPager, Pgno nPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46213,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46219
      start: 46210
    functionDepth: 2
    functionLinenumber: 46210
    functionLinenumberEnd: 46219
    functionName: pagerSyncHotJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileSize
    - sqlite3OsSync
    linkageType: ''
    returnType: int
    signature: int pagerSyncHotJournal(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46243,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46245,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46247,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46256,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46257,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46258,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46259,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - pPager
    - pgno
    - pData
    - ppPage
    argTypes:
    - Pager*
    - Pgno
    - void*
    - PgHdr**
    assertStmts:
    - condition: ( p->pExtra==(void *)&p[1] )
      pos:
        line_end: 46255
        line_start: 46255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPage==0 )
      pos:
        line_end: 46256
        line_start: 46256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->flags==PGHDR_MMAP )
      pos:
        line_end: 46257
        line_start: 46257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPager==pPager )
      pos:
        line_end: 46258
        line_start: 46258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nRef==1 )
      pos:
        line_end: 46259
        line_start: 46259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46267
      start: 46231
    functionDepth: 5
    functionLinenumber: 46231
    functionLinenumberEnd: 46267
    functionName: pagerAcquireMapPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - memset
    - sqlite3OsUnfetch
    - assert
    linkageType: ''
    returnType: int
    signature: "int pagerAcquireMapPage(\n  Pager *pPager,                  /* Pager
      object */\n  Pgno pgno,                      /* Page number */\n  void *pData,
      \                   /* xFetch()'d data for this page */\n  PgHdr **ppPage                  /*
      OUT: Acquired page object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46279,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->fd->pMethods->iVersion>=3 )
      pos:
        line_end: 46278
        line_start: 46278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46281
      start: 46273
    functionDepth: 1
    functionLinenumber: 46273
    functionLinenumberEnd: 46281
    functionName: pagerReleaseMapPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsUnfetch
    - assert
    linkageType: ''
    returnType: void
    signature: void pagerReleaseMapPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46293
      start: 46286
    functionDepth: 3
    functionLinenumber: 46286
    functionLinenumberEnd: 46293
    functionName: pagerFreeMapHdrs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pagerFreeMapHdrs(Pager *pPager)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46313,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46313,1
    - Dst: disable_simulated_io_errors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46314,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46315,1
    - Dst: pagerFreeMapHdrs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46316,1
    - Dst: sqlite3WalClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46320,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46323,1
    - Dst: pager_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46325,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46338,1
    - Dst: pager_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46339,1
    - Dst: pagerSyncHotJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46339,1
    - Dst: pagerUnlockAndRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46341,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46343,1
    - Dst: enable_simulated_io_errors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46344,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46345,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46345,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46346,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46347,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46348,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46349,1
    - Dst: sqlite3PcacheClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46350,1
    - Dst: Pager*::xCodecFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46353,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46356,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46357,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46357,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46357,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( !pPager->aSavepoint && !pPager->pInJournal )
      pos:
        line_end: 46355
        line_start: 46355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !isOpen(pPager->jfd) && !isOpen(pPager->sjfd) )
      pos:
        line_end: 46356
        line_start: 46356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 46312
        line_start: 46312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46361
      start: 46310
    functionDepth: 7
    functionLinenumber: 46310
    functionLinenumberEnd: 46361
    functionName: sqlite3PagerClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - sqlite3EndBenignMalloc
    - sqlite3PageFree
    - sqlite3WalClose
    - isOpen
    - enable_simulated_io_errors
    - pager_error
    - PAGERTRACE
    - disable_simulated_io_errors
    - sqlite3_free
    - Pager*::xCodecFree
    - IOTRACE
    - sqlite3PcacheClose
    - pagerSyncHotJournal
    - pager_reset
    - assert
    - sqlite3BeginBenignMalloc
    - pagerFreeMapHdrs
    - pager_unlock
    - sqlite3OsClose
    - pagerUnlockAndRollback
    - PAGERID
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerClose(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46369
      start: 46367
    functionDepth: 0
    functionLinenumber: 46367
    functionLinenumberEnd: 46369
    functionName: sqlite3PagerPagenumber
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPagenumber(DbPage *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46377
      start: 46375
    functionDepth: 1
    functionLinenumber: 46375
    functionLinenumberEnd: 46377
    functionName: sqlite3PagerRef
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheRef
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRef(DbPage *pPg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46417,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46420,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46420,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46421,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46421,1
    - Dst: sqlite3PagerExclusiveLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46423,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46427,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46428,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46430,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46430,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46459,1
    - Dst: put32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46460,1
    - Dst: journalHdrOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46462,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46463,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46464,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46466,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46484,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46484,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46485,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46486,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46489,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46490,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46496,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46496,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46497,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46498,1
    - Dst: writeJournalHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46507,1
    - Dst: sqlite3PcacheClearSyncFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46519,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46521,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46521,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - pPager
    - newHdr
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( !pPager->tempFile )
      pos:
        line_end: 46426
        line_start: 46426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 46419
        line_start: 46419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 46429
        line_start: 46429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 46418
        line_start: 46416
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 46520
        line_start: 46520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 46420
        line_start: 46420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46523
      start: 46414
    functionDepth: 4
    functionLinenumber: 46414
    functionLinenumberEnd: 46523
    functionName: syncJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - memcmp
    - PAGERTRACE
    - writeJournalHdr
    - assert
    - put32bits
    - sqlite3OsSync
    - sqlite3PagerExclusiveLock
    - memcpy
    - isOpen
    - sqlite3OsWrite
    - journalHdrOffset
    - sqlite3OsDeviceCharacteristics
    - sqlite3OsRead
    - IOTRACE
    - sqlite3PcacheClearSyncFlags
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int syncJournal(Pager *pPager, int newHdr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46561,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46561,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46563,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46570,1
    - Dst: pagerOpentemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46571,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46577,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46577,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46602,1
    - Dst: pager_write_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46603,1
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46606,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46609,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46616,1
    - Dst: sqlite3BackupUpdate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46624,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46626,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46627,1
    - Dst: pager_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46627,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46628,1
    - Dst: PAGER_INCR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46629,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46631,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46631,1
    - Dst: pager_set_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46633,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - pPager
    - pList
    argTypes:
    - Pager*
    - PgHdr*
    assertStmts:
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->fd) )
      pos:
        line_end: 46576
        line_start: 46576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 46560
        line_start: 46560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 46562
        line_start: 46562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_WRITER_DBMOD )
      pos:
        line_end: 46561
        line_start: 46561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->tempFile && rc==SQLITE_OK )
      pos:
        line_end: 46569
        line_start: 46569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pList->flags&PGHDR_NEED_SYNC)==0 )
      pos:
        line_end: 46601
        line_start: 46601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46638
      start: 46557
    functionDepth: 3
    functionLinenumber: 46557
    functionLinenumberEnd: 46638
    functionName: pager_write_pagelist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - PAGERTRACE
    - pager_pagehash
    - sqlite3OsFileControlHint
    - assert
    - pagerOpentemp
    - pager_write_changecounter
    - memcpy
    - isOpen
    - sqlite3OsWrite
    - IOTRACE
    - PAGER_INCR
    - pager_set_pagehash
    - CODEC2
    - sqlite3BackupUpdate
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int pager_write_pagelist(Pager *pPager, PgHdr *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46650,1
    - Dst: sqlite3MemJournalOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46652,1
    - Dst: pagerOpentemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46658
      start: 46648
    functionDepth: 3
    functionLinenumber: 46648
    functionLinenumberEnd: 46658
    functionName: openSubJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3MemJournalOpen
    - pagerOpentemp
    linkageType: ''
    returnType: int
    signature: int openSubJournal(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46677,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46678,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46678,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46678,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46679,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46679,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46680,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46680,1
    - Dst: pageInJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46681,1
    - Dst: openSubJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46684,1
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46693,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46694,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46694,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46695,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46703,1
    - Dst: addToSavepointBitvecs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->useJournal )
      pos:
        line_end: 46676
        line_start: 46676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->jfd) || pagerUseWal(pPager) )
      pos:
        line_end: 46677
        line_start: 46677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->sjfd) || pPager->nSubRec==0 )
      pos:
        line_end: 46678
        line_start: 46678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pagerUseWal(pPager) \n         || pageInJournal(pPager, pPg) \n
        \        || pPg->pgno>pPager->dbOrigSize \n    )"
      pos:
        line_end: 46682
        line_start: 46679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->nSavepoint>0 )
      pos:
        line_end: 46702
        line_start: 46702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46707
      start: 46671
    functionDepth: 8
    functionLinenumber: 46671
    functionLinenumberEnd: 46707
    functionName: subjournalPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - PAGERTRACE
    - assert
    - addToSavepointBitvecs
    - isOpen
    - openSubJournal
    - sqlite3OsWrite
    - write32bits
    - CODEC2
    - pageInJournal
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int subjournalPage(PgHdr *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subjRequiresPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46709,1
    - Dst: subjournalPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46714
      start: 46708
    functionDepth: 9
    functionLinenumber: 46708
    functionLinenumberEnd: 46714
    functionName: subjournalPageIfRequired
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - subjournalPage
    - subjRequiresPage
    linkageType: ''
    returnType: int
    signature: int subjournalPageIfRequired(PgHdr *pPg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46740,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46758,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46759,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46760,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46761,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46770,1
    - Dst: subjournalPageIfRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46772,1
    - Dst: pagerWalFrames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46774,1
    - Dst: syncJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46787,1
    - Dst: pager_write_pagelist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46788,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46794,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46794,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46795,1
    - Dst: pager_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - p
    - pPg
    argTypes:
    - void*
    - PgHdr*
    assertStmts:
    - condition: ( pPg->pPager==pPager )
      pos:
        line_end: 46738
        line_start: 46738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 46739
        line_start: 46739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPg->flags&PGHDR_NEED_SYNC)==0 )
      pos:
        line_end: 46786
        line_start: 46786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46799
      start: 46735
    functionDepth: 10
    functionLinenumber: 46735
    functionLinenumberEnd: 46799
    functionName: pagerStress
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - pagerUseWal
    - pagerWalFrames
    - syncJournal
    - PAGERTRACE
    - sqlite3PcacheMakeClean
    - assert
    - pager_write_pagelist
    - subjournalPageIfRequired
    - pager_error
    - testcase
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int pagerStress(void *p, PgHdr *pPg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46851,1
    - Dst: sqlite3JournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46864,1
    - Dst: sqlite3MemJournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46864,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46865,1
    - Dst: sqlite3JournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46865,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46867,1
    - Dst: sqlite3MemJournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46867,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46877,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46879,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46892,1
    - Dst: sqlite3OsFullPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46897,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46898,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46899,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46901,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46902,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46905,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46916,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46933,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46934,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46935,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46936,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46944,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46944,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46944,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46946,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46950,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46951,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46955,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46955,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46959,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46961,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46962,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46963,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46964,1
    - Dst: sqlite3FileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46965,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46968,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46969,1
    - Dst: sqlite3FileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46970,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46972,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46982,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46994,1
    - Dst: setSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46996,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:46997,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47008,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47010,1
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47019,1
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47021,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47049,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47050,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47051,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47056,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47057,1
    - Dst: sqlite3PcacheOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47058,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47065,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47066,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47067,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47071,1
    - Dst: FILEHANDLEID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47071,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47072,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47085,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47087,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47097,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47110,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47110,1
    - Dst: setSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47111,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 164
    argCount: 6
    argNames:
    - pVfs
    - ppPager
    - zFilename
    - nExtra
    - flags
    - vfsFlags
    argTypes:
    - sqlite3_vfs*
    - Pager**
    - char*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nUri>=0 )
      pos:
        line_end: 46904
        line_start: 46904
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !memDb )
      pos:
        line_end: 46981
        line_start: 46981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_DEFAULT_PAGE_SIZE<=SQLITE_MAX_DEFAULT_PAGE_SIZE)
      pos:
        line_end: 46996
        line_start: 46996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_MAX_DEFAULT_PAGE_SIZE<=65536)
      pos:
        line_end: 47009
        line_start: 47009
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->walSyncFlags==0 )
      pos:
        line_end: 47096
        line_start: 47096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC512==(512>>8))
      pos:
        line_end: 47007
        line_start: 47007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) || tempFile )
      pos:
        line_end: 47109
        line_start: 47109
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->memDb==0 )
      pos:
        line_end: 47048
        line_start: 47048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nExtra<1000 )
      pos:
        line_end: 47055
        line_start: 47055
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pPager->jfd) )
      pos:
        line_end: 46954
        line_start: 46954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC64K==(65536>>8))
      pos:
        line_end: 47008
        line_start: 47008
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_EXCLUSIVE==1 )
      pos:
        line_end: 47086
        line_start: 47086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->syncFlags==0 )
      pos:
        line_end: 47095
        line_start: 47095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->ckptSyncFlags==0 )
      pos:
        line_end: 47097
        line_start: 47097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nPathname>0 )
      pos:
        line_end: 46958
        line_start: 46958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->fullSync==0 )
      pos:
        line_end: 47094
        line_start: 47094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(SQLITE_INT_TO_PTR(journalFileSize)) )
      pos:
        line_end: 46943
        line_start: 46943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( useJournal || pPager->tempFile )
      pos:
        line_end: 47091
        line_start: 47091
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( tempFile==PAGER_LOCKINGMODE_NORMAL \n          || tempFile==PAGER_LOCKINGMODE_EXCLUSIVE
        )"
      pos:
        line_end: 47085
        line_start: 47084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47125
      start: 46832
    functionDepth: 7
    functionLinenumber: 46832
    functionLinenumberEnd: 47125
    functionName: sqlite3PagerOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFullPathname
    - sqlite3JournalSize
    - sqlite3PageFree
    - isOpen
    - sqlite3Strlen30
    - sqlite3OsOpen
    - ROUND8
    - sqlite3FileSuffix3
    - sqlite3PcacheSize
    - sqlite3DbFree
    - sqlite3MallocZero
    - PAGERTRACE
    - sqlite3PagerSetPagesize
    - sqlite3_free
    - sqlite3DbStrDup
    - memcpy
    - IOTRACE
    - sqlite3OsDeviceCharacteristics
    - sqlite3MemJournalSize
    - assert
    - setSectorSize
    - sqlite3DbMallocRaw
    - sqlite3OsClose
    - FILEHANDLEID
    - EIGHT_BYTE_ALIGNMENT
    - testcase
    - sqlite3PcacheOpen
    - SQLITE_INT_TO_PTR
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerOpen(\n  sqlite3_vfs *pVfs,       /* The
      virtual file system to use */\n  Pager **ppPager,         /* OUT: Return the
      Pager structure here */\n  const char *zFilename,   /* Name of the database
      file to open */\n  int nExtra,              /* Extra bytes append to each in-memory
      page */\n  int flags,               /* flags controlling this file */\n  int
      vfsFlags,            /* flags passed through to sqlite3_vfs.xOpen() */\n  void
      (*xReinit)(DbPage*) /* Function to reinitialize pages */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47139,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->zFilename && pPager->zFilename[0] )
      pos:
        line_end: 47138
        line_start: 47138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47150
      start: 47133
    functionDepth: 2
    functionLinenumber: 47133
    functionLinenumberEnd: 47150
    functionName: databaseIsUnmoved
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileControl
    - assert
    linkageType: ''
    returnType: int
    signature: int databaseIsUnmoved(Pager *pPager)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47188,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47190,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47191,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47191,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47192,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47194,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47194,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47200,1
    - Dst: sqlite3OsCheckReservedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47213,1
    - Dst: pagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47217,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47228,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47229,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47230,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47231,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47233,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47243,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47247,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47252,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - pPager
    - pExists
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 47190
        line_start: 47190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->useJournal )
      pos:
        line_end: 47189
        line_start: 47189
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 47191
        line_start: 47191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( jrnlOpen==0 || ( sqlite3OsDeviceCharacteristics(pPager->jfd) &\n
        \   SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN\n  ))"
      pos:
        line_end: 47195
        line_start: 47193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47274
      start: 47184
    functionDepth: 3
    functionLinenumber: 47184
    functionLinenumberEnd: 47274
    functionName: hasHotJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDelete
    - sqlite3OsClose
    - assert
    - sqlite3BeginBenignMalloc
    - pagerUnlockDb
    - sqlite3EndBenignMalloc
    - isOpen
    - pagerPagecount
    - sqlite3OsOpen
    - sqlite3OsCheckReservedLock
    - sqlite3OsRead
    - sqlite3OsDeviceCharacteristics
    - pagerLockDb
    - sqlite3OsAccess
    linkageType: ''
    returnType: int
    signature: int hasHotJournal(Pager *pPager, int *pExists)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47311,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47312,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47313,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47314,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47319,1
    - Dst: pager_wait_on_lock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47323,1
    - Dst: hasHotJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47331,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47357,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47375,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47378,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47383,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47384,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47385,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47385,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47388,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47401,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47402,1
    - Dst: pagerSyncHotJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47403,1
    - Dst: pager_playback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47405,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47409,1
    - Dst: pager_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47434,1
    - Dst: pagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47459,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47463,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47464,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47469,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47472,1
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47473,1
    - Dst: USEFETCH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47481,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47482,1
    - Dst: pagerOpenWalIfPresent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47492,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47496,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47497,1
    - Dst: pagerBeginReadTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47498,1
    - Dst: pagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47502,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47507,1
    - Dst: pager_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47508,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47509,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 106
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)==0 )
      pos:
        line_end: 47310
        line_start: 47310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER )
      pos:
        line_end: 47312
        line_start: 47312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 47506
        line_start: 47506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 47508
        line_start: 47508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->pWal==0 || rc==SQLITE_OK )
      pos:
        line_end: 47491
        line_start: 47491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 47311
        line_start: 47311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 47318
        line_start: 47318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock==NO_LOCK || pPager->eLock==UNKNOWN_LOCK )
      pos:
        line_end: 47322
        line_start: 47322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pPager->tempFile )
      pos:
        line_end: 47382
        line_start: 47382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->jfd) )
      pos:
        line_end: 47384
        line_start: 47384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 47401
        line_start: 47401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 47432
        line_start: 47432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pPager->eLock==SHARED_LOCK)\n           || (pPager->exclusiveMode
        && pPager->eLock>SHARED_LOCK)\n      )"
      pos:
        line_end: 47435
        line_start: 47433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 47496
        line_start: 47496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47514
      start: 47303
    functionDepth: 9
    functionLinenumber: 47303
    functionLinenumberEnd: 47514
    functionName: sqlite3PagerSharedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - memset
    - memcmp
    - pagerOpenWalIfPresent
    - isOpen
    - pagerPagecount
    - sqlite3OsOpen
    - hasHotJournal
    - sqlite3OsRead
    - pager_error
    - pager_playback
    - NEVER
    - pagerBeginReadTransaction
    - sqlite3OsUnfetch
    - sqlite3PcacheRefCount
    - IOTRACE
    - USEFETCH
    - pagerSyncHotJournal
    - pager_reset
    - pager_wait_on_lock
    - assert
    - pagerLockDb
    - pager_unlock
    - sqlite3OsClose
    - pagerUnlockDb
    - sqlite3OsAccess
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSharedLock(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47525,1
    - Dst: pagerUnlockAndRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47528
      start: 47524
    functionDepth: 7
    functionLinenumber: 47524
    functionLinenumberEnd: 47528
    functionName: pagerUnlockIfUnused
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUnlockAndRollback
    - sqlite3PcacheRefCount
    linkageType: ''
    returnType: void
    signature: void pagerUnlockIfUnused(Pager *pPager)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: USEFETCH
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47595,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47602,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47603,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47603,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47604,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47616,1
    - Dst: sqlite3WalFindFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47617,1
    - Dst: sqlite3OsFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47624,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47630,1
    - Dst: pagerAcquireMapPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47633,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47635,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47638,1
    - Dst: sqlite3PcacheFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47650,1
    - Dst: sqlite3PcacheFetchStress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47652,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47660,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47661,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47672,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47673,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47674,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47679,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47679,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47691,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47696,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47708,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47710,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47710,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47711,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47713,1
    - Dst: addToSavepointBitvecs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47713,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47714,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47715,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47717,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47718,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47720,1
    - Dst: sqlite3WalFindFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47721,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47724,1
    - Dst: readDbPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47726,1
    - Dst: pager_set_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47731,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47737,1
    - Dst: sqlite3PcacheDrop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47739,1
    - Dst: pagerUnlockIfUnused
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47741,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 120
    argCount: 4
    argNames:
    - pPager
    - pgno
    - ppPage
    - flags
    argTypes:
    - Pager*
    - Pgno
    - DbPage**
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 47601
        line_start: 47601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 47602
        line_start: 47602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->pPager==pPager || pPg->pPager==0 )
      pos:
        line_end: 47673
        line_start: 47673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 47736
        line_start: 47736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->pPager==pPager )
      pos:
        line_end: 47723
        line_start: 47723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->pgno==pgno )
      pos:
        line_end: 47672
        line_start: 47672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg!=0 )
      pos:
        line_end: 47660
        line_start: 47660
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgno<=PAGER_MAX_PGNO && pgno!=PAGER_MJ_PGNO(pPager) )
      pos:
        line_end: 47678
        line_start: 47678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( noContent==0 || bMmapOk==0 )
      pos:
        line_end: 47603
        line_start: 47603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 47637
        line_start: 47637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg==(*ppPage) )
      pos:
        line_end: 47671
        line_start: 47671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47745
      start: 47580
    functionDepth: 9
    functionLinenumber: 47580
    functionLinenumberEnd: 47745
    functionName: sqlite3PagerAcquire
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - memset
    - sqlite3PcacheFetchStress
    - pagerUnlockIfUnused
    - PAGER_MJ_PGNO
    - TESTONLY
    - sqlite3EndBenignMalloc
    - isOpen
    - sqlite3PcacheDrop
    - sqlite3OsUnfetch
    - sqlite3PagerLookup
    - sqlite3OsFetch
    - readDbPage
    - pagerAcquireMapPage
    - IOTRACE
    - sqlite3PcacheFetchFinish
    - USEFETCH
    - assert
    - sqlite3BeginBenignMalloc
    - sqlite3BitvecSet
    - sqlite3PcacheFetch
    - sqlite3WalFindFrame
    - addToSavepointBitvecs
    - pager_set_pagehash
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerAcquire(\n  Pager *pPager,      /* The
      pager open on the database file */\n  Pgno pgno,          /* Page number to
      fetch */\n  DbPage **ppPage,    /* Write a pointer to the page here */\n  int
      flags           /* PAGER_GET_XXX flags */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47760,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47762,1
    - Dst: sqlite3PcacheFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47764,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - pgno
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager!=0 )
      pos:
        line_end: 47759
        line_start: 47759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->pPCache!=0 )
      pos:
        line_end: 47761
        line_start: 47761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage==0 || pPager->hasBeenUsed )
      pos:
        line_end: 47763
        line_start: 47763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgno!=0 )
      pos:
        line_end: 47760
        line_start: 47760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47767
      start: 47758
    functionDepth: 3
    functionLinenumber: 47758
    functionLinenumberEnd: 47767
    functionName: sqlite3PagerLookup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3PcacheFetch
    - assert
    - sqlite3PcacheFetchFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerLookup(Pager *pPager, Pgno pgno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47779,1
    - Dst: pagerReleaseMapPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47782,1
    - Dst: sqlite3PcacheRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47784,1
    - Dst: pagerUnlockIfUnused
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( pPg!=0 )
      pos:
        line_end: 47778
        line_start: 47778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47787
      start: 47777
    functionDepth: 8
    functionLinenumber: 47777
    functionLinenumberEnd: 47787
    functionName: sqlite3PagerUnrefNotNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - pagerUnlockIfUnused
    - pagerReleaseMapPage
    - assert
    - sqlite3PcacheRelease
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerUnrefNotNull(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47790
      start: 47788
    functionDepth: 9
    functionLinenumber: 47788
    functionLinenumberEnd: 47790
    functionName: sqlite3PagerUnref
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnrefNotNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerUnref(DbPage *pPg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47818,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47819,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47819,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47820,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47825,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47827,1
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47828,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47834,1
    - Dst: sqlite3MemJournalOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47836,1
    - Dst: databaseIsUnmoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47847,1
    - Dst: sqlite3JournalOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47850,1
    - Dst: jrnlBufferSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47851,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47858,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47858,1
    - Dst: writeJournalHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47871,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47876,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47879,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 47817
        line_start: 47817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 47818
        line_start: 47818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->pInJournal==0 )
      pos:
        line_end: 47819
        line_start: 47819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->jfd) )
      pos:
        line_end: 47857
        line_start: 47857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 47878
        line_start: 47878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47884
      start: 47814
    functionDepth: 6
    functionLinenumber: 47814
    functionLinenumberEnd: 47884
    functionName: pager_open_journal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - NEVER
    - sqlite3JournalOpen
    - writeJournalHdr
    - assert
    - databaseIsUnmoved
    - sqlite3MemJournalOpen
    - isOpen
    - sqlite3OsOpen
    - sqlite3BitvecDestroy
    - sqlite3BitvecCreate
    - jrnlBufferSize
    linkageType: ''
    returnType: int
    signature: int pager_open_journal(Pager *pPager)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47907,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47910,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47911,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47913,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47917,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47918,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47922,1
    - Dst: sqlite3WalBeginWriteTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47930,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47937,1
    - Dst: pager_wait_on_lock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47960,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47961,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47962,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47962,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47965,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47965,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - pPager
    - exFlag
    - subjInMemory
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER && pPager->eState<PAGER_ERROR )
      pos:
        line_end: 47906
        line_start: 47906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->pInJournal==0 )
      pos:
        line_end: 47910
        line_start: 47910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 47960
        line_start: 47960
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pPager->eState==PAGER_READER )
      pos:
        line_end: 47959
        line_start: 47959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 47961
        line_start: 47961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47967
      start: 47903
    functionDepth: 4
    functionLinenumber: 47903
    functionLinenumberEnd: 47967
    functionName: sqlite3PagerBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUseWal
    - assert_pager_state
    - PAGERTRACE
    - sqlite3WalExclusiveMode
    - pager_wait_on_lock
    - assert
    - sqlite3WalBeginWriteTransaction
    - ALWAYS
    - pagerLockDb
    - PAGERID
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerBegin(Pager *pPager, int exFlag, int subjInMemory)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47982,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47982,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47984,1
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47985,1
    - Dst: pager_cksum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47986,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47997,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:47999,1
    - Dst: write32bits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48001,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48004,1
    - Dst: PAGER_INCR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48006,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48007,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48008,1
    - Dst: pager_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48013,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48014,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48015,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48016,1
    - Dst: addToSavepointBitvecs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48018,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->pInJournal!=0 )
      pos:
        line_end: 48012
        line_start: 48012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 48015
        line_start: 48015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->pgno!=PAGER_MJ_PGNO(pPager) )
      pos:
        line_end: 47981
        line_start: 47981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalHdr<=pPager->journalOff )
      pos:
        line_end: 47983
        line_start: 47983
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 48017
        line_start: 48017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48020
      start: 47972
    functionDepth: 8
    functionLinenumber: 47972
    functionLinenumberEnd: 48020
    functionName: pagerAddPageToRollbackJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_pagehash
    - PAGERTRACE
    - assert
    - sqlite3BitvecSet
    - addToSavepointBitvecs
    - PAGER_MJ_PGNO
    - pager_cksum
    - sqlite3OsWrite
    - IOTRACE
    - write32bits
    - PAGER_INCR
    - CODEC2
    - testcase
    - PAGERID
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerAddPageToRollbackJournal(PgHdr *pPg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48037,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48041,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48041,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48042,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48043,1
    - Dst: CHECK_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48044,1
    - Dst: pager_open_journal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48056,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48059,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48060,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48060,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48063,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48069,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48069,1
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48071,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48073,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48073,1
    - Dst: pagerAddPageToRollbackJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48075,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48083,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48084,1
    - Dst: subjournalPageIfRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD )
      pos:
        line_end: 48058
        line_start: 48058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_CACHEMOD\n
        \      || pPager->eState==PAGER_WRITER_DBMOD\n  )"
      pos:
        line_end: 48039
        line_start: 48036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48040
        line_start: 48040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->errCode==0 )
      pos:
        line_end: 48041
        line_start: 48041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->readOnly==0 )
      pos:
        line_end: 48042
        line_start: 48042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48059
        line_start: 48059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPager->pInJournal!=0) == isOpen(pPager->jfd) )
      pos:
        line_end: 48068
        line_start: 48068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 )
      pos:
        line_end: 48072
        line_start: 48072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48108
      start: 48029
    functionDepth: 10
    functionLinenumber: 48029
    functionLinenumberEnd: 48108
    functionName: pager_write
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - PAGERTRACE
    - sqlite3BitvecTestNotNull
    - CHECK_PAGE
    - assert
    - pager_open_journal
    - isOpen
    - sqlite3PcacheMakeDirty
    - pagerAddPageToRollbackJournal
    - subjournalPageIfRequired
    - PAGERID
    linkageType: ''
    returnType: int
    signature: int pager_write(PgHdr *pPg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48136,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48153,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48154,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48155,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48160,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48161,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48162,1
    - Dst: pager_write
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48164,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48168,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48171,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48175,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48186,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48188,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48191,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48196,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 48134
        line_start: 48134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (nPage>0)
      pos:
        line_end: 48152
        line_start: 48152
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_NOSYNC)==0 )
      pos:
        line_end: 48135
        line_start: 48135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pg1<=pPg->pgno)
      pos:
        line_end: 48153
        line_start: 48153
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ((pg1+nPage)>pPg->pgno)
      pos:
        line_end: 48154
        line_start: 48154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 48185
        line_start: 48185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_NOSYNC)!=0 )
      pos:
        line_end: 48195
        line_start: 48195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48199
      start: 48121
    functionDepth: 11
    functionLinenumber: 48121
    functionLinenumberEnd: 48199
    functionName: pagerWriteLargeSector
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerLookup
    - PAGER_MJ_PGNO
    - sqlite3PagerUnrefNotNull
    - sqlite3PagerGet
    - sqlite3BitvecTest
    - pager_write
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerWriteLargeSector(PgHdr *pPg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48219,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48220,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48220,1
    - Dst: subjournalPageIfRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48222,1
    - Dst: pagerWriteLargeSector
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48225,1
    - Dst: pager_write
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( (pPg->flags & PGHDR_MMAP)==0 )
      pos:
        line_end: 48216
        line_start: 48216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 48217
        line_start: 48217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 48218
        line_start: 48218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48219
        line_start: 48219
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48229
      start: 48215
    functionDepth: 12
    functionLinenumber: 48215
    functionLinenumberEnd: 48229
    functionName: sqlite3PagerWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - assert
    - subjournalPageIfRequired
    - pagerWriteLargeSector
    - pager_write
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWrite(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48239
      start: 48237
    functionDepth: 0
    functionLinenumber: 48237
    functionLinenumberEnd: 48239
    functionName: sqlite3PagerIswriteable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIswriteable(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48259,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48259,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48260,1
    - Dst: pager_set_pagehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48265
      start: 48256
    functionDepth: 3
    functionLinenumber: 48256
    functionLinenumberEnd: 48265
    functionName: sqlite3PagerDontWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - PAGERTRACE
    - pager_set_pagehash
    - IOTRACE
    - PAGERID
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerDontWrite(PgHdr *pPg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48292,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48295,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48309,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48310,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48318,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48318,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48322,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48329,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48330,1
    - Dst: pager_write_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48340,1
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48341,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48343,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48351,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - pPager
    - isDirectMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 48293
        line_start: 48291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48294
        line_start: 48294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isDirectMode==0 )
      pos:
        line_end: 48308
        line_start: 48308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pPager->tempFile && isOpen(pPager->fd) )
      pos:
        line_end: 48317
        line_start: 48317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPgHdr==0 || rc==SQLITE_OK )
      pos:
        line_end: 48321
        line_start: 48321
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->dbFileSize>0 )
      pos:
        line_end: 48339
        line_start: 48339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48363
      start: 48289
    functionDepth: 13
    functionLinenumber: 48289
    functionLinenumberEnd: 48363
    functionName: pager_incr_changecounter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - assert
    - ALWAYS
    - UNUSED_PARAMETER
    - sqlite3PagerWrite
    - pager_write_changecounter
    - isOpen
    - memcpy
    - sqlite3OsWrite
    - sqlite3PagerGet
    - CODEC2
    - sqlite3PagerUnref
    linkageType: ''
    returnType: int
    signature: int pager_incr_changecounter(Pager *pPager, int isDirectMode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48375,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48377,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48381,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 48380
        line_start: 48380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48385
      start: 48372
    functionDepth: 2
    functionLinenumber: 48372
    functionLinenumberEnd: 48385
    functionName: sqlite3PagerSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - isOpen
    - sqlite3OsFileControl
    - sqlite3OsSync
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSync(Pager *pPager, const char *zMaster)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48404,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48404,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48405,1
    - Dst: pager_wait_on_lock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD \n       || pPager->eState==PAGER_WRITER_DBMOD
        \n       || pPager->eState==PAGER_WRITER_LOCKED \n  )"
      pos:
        line_end: 48402
        line_start: 48399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48403
        line_start: 48403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48409
      start: 48398
    functionDepth: 4
    functionLinenumber: 48398
    functionLinenumberEnd: 48409
    functionName: sqlite3PagerExclusiveLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - pager_wait_on_lock
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerExclusiveLock(Pager *pPager)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48444,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48449,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48449,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48452,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48454,1
    - Dst: sqlite3BackupRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48465,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48467,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48468,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48473,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48477,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48478,1
    - Dst: pagerWalFrames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48479,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48481,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48483,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48511,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48511,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48515,1
    - Dst: jrnlBufferSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48516,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48518,1
    - Dst: pager_incr_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48526,1
    - Dst: sqlite3JournalCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48528,1
    - Dst: pager_incr_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48530,1
    - Dst: pager_incr_changecounter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48534,1
    - Dst: writeMasterJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48542,1
    - Dst: syncJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48556,1
    - Dst: pager_write_pagelist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48559,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48561,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48564,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48574,1
    - Dst: pager_truncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48575,1
    - Dst: sqlite3PagerSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48581,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48583,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48588,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 73
    argCount: 3
    argNames:
    - pPager
    - zMaster
    - noSync
    argTypes:
    - Pager*
    - char*
    - int
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48448
        line_start: 48448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_IOERR_BLOCKED )
      pos:
        line_end: 48560
        line_start: 48560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 48476
        line_start: 48476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_CACHEMOD\n
        \      || pPager->eState==PAGER_WRITER_DBMOD\n       || pPager->eState==PAGER_ERROR\n
        \ )"
      pos:
        line_end: 48447
        line_start: 48443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( isOpen(pPager->jfd) \n           || pPager->journalMode==PAGER_JOURNALMODE_OFF
        \n           || pPager->journalMode==PAGER_JOURNALMODE_WAL \n      )"
      pos:
        line_end: 48513
        line_start: 48510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_WRITER_DBMOD )
      pos:
        line_end: 48573
        line_start: 48573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48592
      start: 48437
    functionDepth: 14
    functionLinenumber: 48437
    functionLinenumberEnd: 48592
    functionName: sqlite3PagerCommitPhaseOne
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - sqlite3BackupRestart
    - PAGER_MJ_PGNO
    - isOpen
    - sqlite3JournalCreate
    - NEVER
    - PAGERTRACE
    - sqlite3PcacheCleanAll
    - pager_write_pagelist
    - writeMasterJournal
    - sqlite3PagerSync
    - IOTRACE
    - sqlite3PagerUnref
    - jrnlBufferSize
    - pagerWalFrames
    - pager_truncate
    - assert
    - ALWAYS
    - pager_incr_changecounter
    - syncJournal
    - sqlite3PcacheDirtyList
    - sqlite3PagerGet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerCommitPhaseOne(\n  Pager *pPager,                  /*
      Pager object */\n  const char *zMaster,            /* If not NULL, the master
      journal name */\n  int noSync                      /* True to omit the xSync
      on the db file */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48616,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48618,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48620,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48622,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48622,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48639,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48639,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48644,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48644,1
    - Dst: pager_end_transaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48646,1
    - Dst: pager_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48647,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48621
        line_start: 48621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_FINISHED\n
        \      || (pagerUseWal(pPager) && pPager->eState==PAGER_WRITER_CACHEMOD)\n
        \ )"
      pos:
        line_end: 48620
        line_start: 48617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->journalOff==JOURNAL_HDR_SZ(pPager) || !pPager->journalOff
        )
      pos:
        line_end: 48638
        line_start: 48638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48648
      start: 48610
    functionDepth: 6
    functionLinenumber: 48610
    functionLinenumberEnd: 48648
    functionName: sqlite3PagerCommitPhaseTwo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - pagerUseWal
    - assert_pager_state
    - PAGERTRACE
    - assert
    - pager_error
    - JOURNAL_HDR_SZ
    - pager_end_transaction
    - PAGERID
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCommitPhaseTwo(Pager *pPager)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48678,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48678,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48684,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48684,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48688,1
    - Dst: sqlite3PagerSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48690,1
    - Dst: pager_end_transaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48691,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48693,1
    - Dst: pager_end_transaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48695,1
    - Dst: pager_playback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48710,1
    - Dst: pager_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48718,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48683
        line_start: 48683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER || rc!=SQLITE_OK )
      pos:
        line_end: 48708
        line_start: 48708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( rc==SQLITE_OK || rc==SQLITE_FULL || rc==SQLITE_CORRUPT\n          ||
        rc==SQLITE_NOMEM || (rc&0xFF)==SQLITE_IOERR \n          || rc==SQLITE_CANTOPEN\n
        \ )"
      pos:
        line_end: 48712
        line_start: 48709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48719
      start: 48676
    functionDepth: 9
    functionLinenumber: 48676
    functionLinenumberEnd: 48719
    functionName: sqlite3PagerRollback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert_pager_state
    - PAGERTRACE
    - pagerUseWal
    - assert
    - sqlite3PagerSavepoint
    - isOpen
    - pager_error
    - pager_end_transaction
    - PAGERID
    - pager_playback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRollback(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48727
      start: 48725
    functionDepth: 0
    functionLinenumber: 48725
    functionLinenumberEnd: 48727
    functionName: sqlite3PagerIsreadonly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIsreadonly(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48735
      start: 48733
    functionDepth: 1
    functionLinenumber: 48733
    functionLinenumberEnd: 48735
    functionName: sqlite3PagerRefcount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheRefCount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRefcount(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48745,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48748
      start: 48742
    functionDepth: 2
    functionLinenumber: 48742
    functionLinenumberEnd: 48748
    functionName: sqlite3PagerMemUsed
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3PcachePagecount
    - sqlite3MallocSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMemUsed(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48755
      start: 48753
    functionDepth: 1
    functionLinenumber: 48753
    functionLinenumberEnd: 48755
    functionName: sqlite3PagerPageRefcount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcachePageRefcount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPageRefcount(DbPage *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48763,1
    - Dst: sqlite3PcachePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48764,1
    - Dst: sqlite3PcacheGetCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48775
      start: 48761
    functionDepth: 2
    functionLinenumber: 48761
    functionLinenumberEnd: 48775
    functionName: sqlite3PagerStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcachePagecount
    - sqlite3PcacheRefCount
    - sqlite3PcacheGetCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerStats(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48787,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48792,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48793,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48794,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - pPager
    - eStat
    - reset
    - pnVal
    argTypes:
    - Pager*
    - int
    - int
    - int*
    assertStmts:
    - condition: "( eStat==SQLITE_DBSTATUS_CACHE_HIT\n       || eStat==SQLITE_DBSTATUS_CACHE_MISS\n
        \      || eStat==SQLITE_DBSTATUS_CACHE_WRITE\n  )"
      pos:
        line_end: 48789
        line_start: 48786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_HIT+2==SQLITE_DBSTATUS_CACHE_WRITE )
      pos:
        line_end: 48792
        line_start: 48792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_HIT+1==SQLITE_DBSTATUS_CACHE_MISS )
      pos:
        line_end: 48791
        line_start: 48791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_STAT_HIT==0 && PAGER_STAT_MISS==1 && PAGER_STAT_WRITE==2
        )
      pos:
        line_end: 48793
        line_start: 48793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48800
      start: 48785
    functionDepth: 0
    functionLinenumber: 48785
    functionLinenumberEnd: 48800
    functionName: sqlite3PagerCacheStat
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCacheStat(Pager *pPager, int eStat, int
      reset, int *pnVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48807
      start: 48805
    functionDepth: 0
    functionLinenumber: 48805
    functionLinenumberEnd: 48807
    functionName: sqlite3PagerIsMemdb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIsMemdb(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48826,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48826,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48827,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48833,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48839,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48845,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48848,1
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48851,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48855,1
    - Dst: sqlite3WalSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48860,1
    - Dst: assertTruncateConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - pPager
    - nSavepoint
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 48824
        line_start: 48824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nSavepoint>nCurrent && pPager->useJournal )
      pos:
        line_end: 48826
        line_start: 48826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48825
        line_start: 48825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->nSavepoint==nSavepoint )
      pos:
        line_end: 48859
        line_start: 48859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48863
      start: 48819
    functionDepth: 6
    functionLinenumber: 48819
    functionLinenumberEnd: 48863
    functionName: pagerOpenSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerUseWal
    - memset
    - assert
    - sqlite3Realloc
    - isOpen
    - sqlite3WalSavepoint
    - sqlite3BitvecCreate
    - assertTruncateConstraint
    - JOURNAL_HDR_SZ
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerOpenSavepoint(Pager *pPager, int nSavepoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48865,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48866,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48866,1
    - Dst: pagerOpenSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pPager
    - nSavepoint
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 48864
        line_start: 48864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 48865
        line_start: 48865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48873
      start: 48864
    functionDepth: 7
    functionLinenumber: 48864
    functionLinenumberEnd: 48873
    functionName: sqlite3PagerOpenSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - pagerOpenSavepoint
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48909,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48910,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48922,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48929,1
    - Dst: sqlite3IsMemJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48931,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48932,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48933,1
    - Dst: pagerUseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48943,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48943,1
    - Dst: pagerPlaybackSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48945,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:48946,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - pPager
    - op
    - iSavepoint
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 48908
        line_start: 48908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSavepoint>=0 || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 48909
        line_start: 48909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 48932
        line_start: 48932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (rc!=SQLITE_DONE)
      pos:
        line_end: 48945
        line_start: 48945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48951
      start: 48906
    functionDepth: 9
    functionLinenumber: 48906
    functionLinenumberEnd: 48951
    functionName: sqlite3PagerSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - pagerUseWal
    - sqlite3OsTruncate
    - assert
    - isOpen
    - sqlite3BitvecDestroy
    - pagerPlaybackSavepoint
    - sqlite3IsMemJournal
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - nullIfMemDb
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48965
      start: 48963
    functionDepth: 0
    functionLinenumber: 48963
    functionLinenumberEnd: 48965
    functionName: sqlite3PagerFilename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerFilename(Pager *pPager, int nullIfMemDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48972
      start: 48970
    functionDepth: 0
    functionLinenumber: 48970
    functionLinenumberEnd: 48972
    functionName: sqlite3_vfs *sqlite3PagerVfs(Pager *pPager)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_vfs *sqlite3PagerVfs(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48981
      start: 48979
    functionDepth: 0
    functionLinenumber: 48979
    functionLinenumberEnd: 48981
    functionName: sqlite3_file *sqlite3PagerFile(Pager *pPager)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48988
      start: 48986
    functionDepth: 0
    functionLinenumber: 48986
    functionLinenumberEnd: 48988
    functionName: sqlite3PagerJournalname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerJournalname(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48996
      start: 48994
    functionDepth: 0
    functionLinenumber: 48994
    functionLinenumberEnd: 48996
    functionName: sqlite3PagerNosync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerNosync(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pager*::xCodecFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49009,1
    - Dst: pagerReportSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pPager
    - (*xCodec)(void*,void*,Pgno,int)
    - pCodec
    argTypes:
    - Pager*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49015
      start: 49002
    functionDepth: 1
    functionLinenumber: 49002
    functionLinenumberEnd: 49015
    functionName: sqlite3PagerSetCodec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - Pager*::xCodecFree
    - pagerReportSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetCodec(\n  Pager *pPager,\n  void *(*xCodec)(void*,void*,Pgno,int),\n
      \ void (*xCodecSizeChng)(void*,int,int),\n  void (*xCodecFree)(void*),\n  void
      *pCodec\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49018
      start: 49016
    functionDepth: 0
    functionLinenumber: 49016
    functionLinenumberEnd: 49018
    functionName: sqlite3PagerGetCodec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetCodec(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CODEC2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49031
      start: 49027
    functionDepth: 1
    functionLinenumber: 49027
    functionLinenumberEnd: 49031
    functionName: sqlite3PagerCodec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - CODEC2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerCodec(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49038
      start: 49036
    functionDepth: 0
    functionLinenumber: 49036
    functionLinenumberEnd: 49038
    functionName: sqlite3PagerState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerState(Pager *pPager)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49074,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49077,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49077,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49083,1
    - Dst: subjournalPageIfRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49106,1
    - Dst: PAGERTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49111,1
    - Dst: PAGERID
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49112,1
    - Dst: IOTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49113,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49124,1
    - Dst: pageInJournal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49125,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49126,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49136,1
    - Dst: sqlite3PcacheMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49142,1
    - Dst: sqlite3PcacheDrop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49144,1
    - Dst: sqlite3PcacheMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49149,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49150,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49157,1
    - Dst: sqlite3PcacheMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49158,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49159,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49181,1
    - Dst: sqlite3BitvecClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49182,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49187,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49188,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 4
    argNames:
    - pPager
    - pPg
    - pgno
    - isCommit
    argTypes:
    - Pager*
    - DbPage*
    - Pgno
    - int
    assertStmts:
    - condition: ( pPg->nRef>0 )
      pos:
        line_end: 49072
        line_start: 49072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 49075
        line_start: 49073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 49125
        line_start: 49125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->pTmpSpace!=0 )
      pos:
        line_end: 49180
        line_start: 49180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pPgOld || pPgOld->nRef==1 )
      pos:
        line_end: 49135
        line_start: 49135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 49076
        line_start: 49076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPgOld )
      pos:
        line_end: 49156
        line_start: 49156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPager->journalMode==PAGER_JOURNALMODE_OFF ||\n            pageInJournal(pPager,
        pPg) || pPg->pgno>pPager->dbOrigSize )"
      pos:
        line_end: 49124
        line_start: 49123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49192
      start: 49067
    functionDepth: 13
    functionLinenumber: 49067
    functionLinenumberEnd: 49192
    functionName: sqlite3PagerMovepage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - PAGERTRACE
    - sqlite3PcacheDrop
    - assert
    - sqlite3PcacheMove
    - sqlite3PagerLookup
    - sqlite3PagerWrite
    - sqlite3PagerUnrefNotNull
    - sqlite3PcacheMakeDirty
    - IOTRACE
    - subjournalPageIfRequired
    - sqlite3PagerGet
    - sqlite3BitvecClear
    - pageInJournal
    - PAGERID
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno
      pgno, int isCommit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49202,1
    - Dst: sqlite3PcacheMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pPg
    - iNew
    - flags
    argTypes:
    - DbPage*
    - Pgno
    - u16
    assertStmts:
    - condition: ( pPg->pgno!=iNew )
      pos:
        line_end: 49201
        line_start: 49201
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49205
      start: 49201
    functionDepth: 2
    functionLinenumber: 49201
    functionLinenumberEnd: 49205
    functionName: sqlite3PagerRekey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PcacheMove
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRekey(DbPage *pPg, Pgno iNew, u16 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( pPg->nRef>0 || pPg->pPager->memDb )
      pos:
        line_end: 49210
        line_start: 49210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49213
      start: 49210
    functionDepth: 0
    functionLinenumber: 49210
    functionLinenumberEnd: 49213
    functionName: sqlite3PagerGetData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetData(DbPage *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49221
      start: 49219
    functionDepth: 0
    functionLinenumber: 49219
    functionLinenumberEnd: 49221
    functionName: sqlite3PagerGetExtra
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetExtra(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49238,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49239,1
    - Dst: sqlite3WalHeapMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49239,1
    - Dst: sqlite3WalHeapMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - eMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( eMode==PAGER_LOCKINGMODE_QUERY\n            || eMode==PAGER_LOCKINGMODE_NORMAL\n
        \           || eMode==PAGER_LOCKINGMODE_EXCLUSIVE )"
      pos:
        line_end: 49235
        line_start: 49233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_QUERY<0 )
      pos:
        line_end: 49236
        line_start: 49236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->exclusiveMode || 0==sqlite3WalHeapMemory(pPager->pWal)
        )
      pos:
        line_end: 49238
        line_start: 49238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_NORMAL>=0 && PAGER_LOCKINGMODE_EXCLUSIVE>=0 )
      pos:
        line_end: 49237
        line_start: 49237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49244
      start: 49233
    functionDepth: 1
    functionLinenumber: 49233
    functionLinenumberEnd: 49244
    functionName: sqlite3PagerLockingMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalHeapMemory
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerLockingMode(Pager *pPager, int eMode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: print_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49272,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49277,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49303,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49314,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49317,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49317,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49328,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49330,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49334,1
    - Dst: sqlite3PagerSharedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49339,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49340,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49343,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49346,1
    - Dst: pager_unlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49348,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49350,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49353,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 2
    argNames:
    - pPager
    - eMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( state==PAGER_OPEN || state==PAGER_READER )
      pos:
        line_end: 49333
        line_start: 49333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eOld==PAGER_JOURNALMODE_MEMORY || eOld==PAGER_JOURNALMODE_OFF )
      pos:
        line_end: 49293
        line_start: 49293
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "(      eMode==PAGER_JOURNALMODE_DELETE\n            || eMode==PAGER_JOURNALMODE_TRUNCATE\n
        \           || eMode==PAGER_JOURNALMODE_PERSIST\n            || eMode==PAGER_JOURNALMODE_OFF
        \n            || eMode==PAGER_JOURNALMODE_WAL \n            || eMode==PAGER_JOURNALMODE_MEMORY
        )"
      pos:
        line_end: 49281
        line_start: 49276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 49302
        line_start: 49302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_PERSIST & 5)==1 )
      pos:
        line_end: 49310
        line_start: 49310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_DELETE & 5)==0 )
      pos:
        line_end: 49311
        line_start: 49311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_WAL & 5)==5 )
      pos:
        line_end: 49314
        line_start: 49314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( state==pPager->eState )
      pos:
        line_end: 49349
        line_start: 49349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 49338
        line_start: 49338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->tempFile==0 || eMode!=PAGER_JOURNALMODE_WAL )
      pos:
        line_end: 49287
        line_start: 49287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_TRUNCATE & 5)==1 )
      pos:
        line_end: 49309
        line_start: 49309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_MEMORY & 5)==4 )
      pos:
        line_end: 49312
        line_start: 49312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_OFF & 5)==0 )
      pos:
        line_end: 49313
        line_start: 49313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->exclusiveMode )
      pos:
        line_end: 49316
        line_start: 49316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49359
      start: 49266
    functionDepth: 10
    functionLinenumber: 49266
    functionLinenumberEnd: 49359
    functionName: sqlite3PagerSetJournalMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDelete
    - sqlite3OsClose
    - sqlite3PagerSharedLock
    - assert
    - pagerUnlockDb
    - isOpen
    - print_pager_state
    - pagerLockDb
    - pager_unlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetJournalMode(Pager *pPager, int eMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49366
      start: 49364
    functionDepth: 0
    functionLinenumber: 49364
    functionLinenumberEnd: 49366
    functionName: sqlite3PagerGetJournalMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerGetJournalMode(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49374,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49374,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49376,1
    - Dst: isOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 49373
        line_start: 49373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49378
      start: 49373
    functionDepth: 2
    functionLinenumber: 49373
    functionLinenumberEnd: 49378
    functionName: sqlite3PagerOkToChangeJournalMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - NEVER
    - isOpen
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerOkToChangeJournalMode(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalLimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - iLimit
    argTypes:
    - Pager*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49392
      start: 49386
    functionDepth: 1
    functionLinenumber: 49386
    functionLinenumberEnd: 49392
    functionName: sqlite3PagerJournalSizeLimit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalLimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerJournalSizeLimit(Pager *pPager, i64 iLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49402
      start: 49400
    functionDepth: 0
    functionLinenumber: 49400
    functionLinenumberEnd: 49402
    functionName: sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pager_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49410
      start: 49408
    functionDepth: 5
    functionLinenumber: 49408
    functionLinenumberEnd: 49410
    functionName: sqlite3PagerClearCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_reset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerClearCache(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pPager
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - Pager*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49432
      start: 49421
    functionDepth: 1
    functionLinenumber: 49421
    functionLinenumberEnd: 49432
    functionName: sqlite3PagerCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalCheckpoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCheckpoint(Pager *pPager, int eMode, int
      *pnLog, int *pnCkpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49436
      start: 49434
    functionDepth: 1
    functionLinenumber: 49434
    functionLinenumberEnd: 49436
    functionName: sqlite3PagerWalCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalCallback(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49445
      start: 49442
    functionDepth: 0
    functionLinenumber: 49442
    functionLinenumberEnd: 49445
    functionName: sqlite3PagerWalSupported
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalSupported(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49454,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49455,1
    - Dst: pagerUnlockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 49453
        line_start: 49453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49463
      start: 49451
    functionDepth: 3
    functionLinenumber: 49451
    functionLinenumberEnd: 49463
    functionName: pagerExclusiveLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerUnlockDb
    - pagerLockDb
    - assert
    linkageType: ''
    returnType: int
    signature: int pagerExclusiveLock(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49474,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49475,1
    - Dst: pagerExclusiveLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49483,1
    - Dst: sqlite3WalOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49490,1
    - Dst: pagerFixMaplimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->pWal==0 && pPager->tempFile==0 )
      pos:
        line_end: 49473
        line_start: 49473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 49474
        line_start: 49474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49498
      start: 49471
    functionDepth: 4
    functionLinenumber: 49471
    functionLinenumberEnd: 49498
    functionName: pagerOpenWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalOpen
    - pagerFixMaplimit
    - pagerExclusiveLock
    - assert
    linkageType: ''
    returnType: int
    signature: int pagerOpenWal(Pager *pPager)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49522,1
    - Dst: assert_pager_state
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49522,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49523,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49524,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49525,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49526,1
    - Dst: sqlite3PagerWalSupported
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49529,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49532,1
    - Dst: pagerOpenWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49534,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pPager
    - pbOpen
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 49521
        line_start: 49521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER || !pbOpen )
      pos:
        line_end: 49523
        line_start: 49523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN   || pbOpen )
      pos:
        line_end: 49522
        line_start: 49522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pbOpen==0 || *pbOpen==0 )
      pos:
        line_end: 49524
        line_start: 49524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pbOpen!=0 || (!pPager->tempFile && !pPager->pWal) )
      pos:
        line_end: 49525
        line_start: 49525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49544
      start: 49516
    functionDepth: 5
    functionLinenumber: 49516
    functionLinenumberEnd: 49544
    functionName: sqlite3PagerOpenWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert_pager_state
    - sqlite3PagerWalSupported
    - sqlite3OsClose
    - assert
    - pagerOpenWal
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerOpenWal(\n  Pager *pPager,                  /*
      Pager object */\n  int *pbOpen                     /* OUT: Set to true if call
      is a no-op */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49558,1
    - Dst: pagerLockDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49566,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49568,1
    - Dst: pagerOpenWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49573,1
    - Dst: pagerExclusiveLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49581,1
    - Dst: sqlite3WalClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49583,1
    - Dst: pagerFixMaplimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->journalMode==PAGER_JOURNALMODE_WAL )
      pos:
        line_end: 49557
        line_start: 49557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49590
      start: 49555
    functionDepth: 5
    functionLinenumber: 49555
    functionLinenumberEnd: 49590
    functionName: sqlite3PagerCloseWal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerOpenWal
    - sqlite3WalClose
    - pagerFixMaplimit
    - pagerExclusiveLock
    - pagerLockDb
    - sqlite3OsAccess
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCloseWal(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49603,1
    - Dst: sqlite3WalFramesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:49604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 49602
        line_start: 49602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49605
      start: 49602
    functionDepth: 1
    functionLinenumber: 49602
    functionLinenumberEnd: 49605
    functionName: sqlite3PagerWalFramesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalFramesize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalFramesize(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49865
      start: 49864
    functionDepth: 0
    functionLinenumber: 49864
    functionLinenumberEnd: 49865
    functionName: WALTRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WALTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49894
      start: 49893
    functionDepth: 0
    functionLinenumber: 49893
    functionLinenumberEnd: 49894
    functionName: WAL_READ_LOCK
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAL_READ_LOCK(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - iFrame
    - ','
    - szPage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50018
      start: 50015
    functionDepth: 0
    functionLinenumber: 50015
    functionLinenumberEnd: 50018
    functionName: walFrameOffset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: walFrameOffset(iFrame, szPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50137,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50142,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50151,1
    - Dst: sqlite3OsShmMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50154,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - pWal
    - iPage
    - ppPage
    argTypes:
    - Wal*
    - int
    - u32**
    assertStmts:
    - condition: ( iPage==0 || *ppPage || rc!=SQLITE_OK )
      pos:
        line_end: 50164
        line_start: 50164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50167
      start: 50130
    functionDepth: 5
    functionLinenumber: 50130
    functionLinenumberEnd: 50167
    functionName: walIndexPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - memset
    - assert
    - sqlite3_realloc64
    - sqlite3OsShmMap
    linkageType: ''
    returnType: int
    signature: int walIndexPage(Wal *pWal, int iPage, volatile u32 **ppPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 50172
        line_start: 50172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50175
      start: 50172
    functionDepth: 0
    functionLinenumber: 50172
    functionLinenumberEnd: 50175
    functionName: walCkptInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WalCkptInfo
    signature: WalCkptInfo *walCkptInfo(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 50180
        line_start: 50180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50183
      start: 50180
    functionDepth: 0
    functionLinenumber: 50180
    functionLinenumberEnd: 50183
    functionName: walIndexHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WalIndexHdr
    signature: WalIndexHdr *walIndexHdr(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50196
      start: 50192
    functionDepth: 0
    functionLinenumber: 50192
    functionLinenumberEnd: 50196
    functionName: BYTESWAP32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP32(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50224,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50225,1
    - Dst: BYTESWAP32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50234,1
    - Dst: BYTESWAP32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - nativeCksum
    - a
    - nByte
    - aIn
    - aOut
    argTypes:
    - int
    - u8*
    - int
    - u32*
    - u32*
    assertStmts:
    - condition: ( nByte>=8 )
      pos:
        line_end: 50223
        line_start: 50223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nByte&0x00000007)==0 )
      pos:
        line_end: 50224
        line_start: 50224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50242
      start: 50206
    functionDepth: 1
    functionLinenumber: 50206
    functionLinenumberEnd: 50242
    functionName: walChecksumBytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - BYTESWAP32
    - assert
    linkageType: ''
    returnType: void
    signature: "void walChecksumBytes(\n  int nativeCksum, /* True for native byte-order,
      false for non-native */\n  u8 *a,           /* Content to be checksummed */\n
      \ int nByte,       /* Bytes of content in a[].  Must be a multiple of 8. */\n
      \ const u32 *aIn,  /* Initial checksum value input */\n  u32 *aOut        /*
      OUT: Final checksum value output */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50248
      start: 50244
    functionDepth: 1
    functionLinenumber: 50244
    functionLinenumberEnd: 50248
    functionName: walShmBarrier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsShmBarrier
    linkageType: ''
    returnType: void
    signature: void walShmBarrier(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50256,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50259,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50262,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50263,1
    - Dst: walShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50264,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 50258
        line_start: 50258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50266
      start: 50255
    functionDepth: 2
    functionLinenumber: 50255
    functionLinenumberEnd: 50266
    functionName: walIndexWriteHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - walIndexHdr
    - memcpy
    - walShmBarrier
    - walChecksumBytes
    linkageType: ''
    returnType: void
    signature: void walIndexWriteHdr(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50290,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50291,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50292,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50293,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50296,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50297,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50299,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - pWal
    - iPage
    - nTruncate
    - aData
    - aFrame
    argTypes:
    - Wal*
    - u32
    - u32
    - u8*
    - u8*
    assertStmts:
    - condition: ( WAL_FRAME_HDRSIZE==24 )
      pos:
        line_end: 50289
        line_start: 50289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50301
      start: 50281
    functionDepth: 2
    functionLinenumber: 50281
    functionLinenumberEnd: 50301
    functionName: walEncodeFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Put4byte
    - assert
    - walChecksumBytes
    linkageType: ''
    returnType: void
    signature: "void walEncodeFrame(\n  Wal *pWal,                      /* The write-ahead
      log */\n  u32 iPage,                      /* Database page number for frame
      */\n  u32 nTruncate,                  /* New db size (or 0 for non-commit frames)
      */\n  u8 *aData,                      /* Pointer to page data */\n  u8 *aFrame
      \                     /* OUT: Write encoded frame here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50318,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50323,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50329,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50340,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50341,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50342,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50343,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - pWal
    - piPage
    - pnTruncate
    - aData
    - aFrame
    argTypes:
    - Wal*
    - u32*
    - u32*
    - u8*
    - u8*
    assertStmts:
    - condition: ( WAL_FRAME_HDRSIZE==24 )
      pos:
        line_end: 50317
        line_start: 50317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50355
      start: 50308
    functionDepth: 2
    functionLinenumber: 50308
    functionLinenumberEnd: 50355
    functionName: walDecodeFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sqlite3Get4byte
    - assert
    - walChecksumBytes
    linkageType: ''
    returnType: int
    signature: "int walDecodeFrame(\n  Wal *pWal,                      /* The write-ahead
      log */\n  u32 *piPage,                    /* OUT: Database page number for frame
      */\n  u32 *pnTruncate,                /* OUT: New db size (or 0 if not commit)
      */\n  u8 *aData,                      /* Pointer to page data (for checksum)
      */\n  u8 *aFrame                      /* Frame data */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50372,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lockIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50376
      start: 50363
    functionDepth: 1
    functionLinenumber: 50363
    functionLinenumberEnd: 50376
    functionName: walLockName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - WAL_READ_LOCK
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *walLockName(int lockIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50390,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50392,1
    - Dst: walLockName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50393,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pWal
    - lockIdx
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50396
      start: 50387
    functionDepth: 2
    functionLinenumber: 50387
    functionLinenumberEnd: 50396
    functionName: walLockShared
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - sqlite3OsShmLock
    - walLockName
    - VVA_ONLY
    linkageType: ''
    returnType: int
    signature: int walLockShared(Wal *pWal, int lockIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50399,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50401,1
    - Dst: walLockName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pWal
    - lockIdx
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50402
      start: 50397
    functionDepth: 2
    functionLinenumber: 50397
    functionLinenumberEnd: 50402
    functionName: walUnlockShared
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - sqlite3OsShmLock
    - walLockName
    linkageType: ''
    returnType: void
    signature: void walUnlockShared(Wal *pWal, int lockIdx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50406,1
    - Dst: sqlite3OsShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50407,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50409,1
    - Dst: walLockName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50410,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - pWal
    - lockIdx
    - n
    - fBlock
    argTypes:
    - Wal*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50413
      start: 50403
    functionDepth: 2
    functionLinenumber: 50403
    functionLinenumberEnd: 50413
    functionName: walLockExclusive
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsShmLock
    - VVA_ONLY
    - WALTRACE
    - walLockName
    - sqlite3OsFileControl
    linkageType: ''
    returnType: int
    signature: int walLockExclusive(Wal *pWal, int lockIdx, int n, int fBlock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50416,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50418,1
    - Dst: walLockName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pWal
    - lockIdx
    - n
    argTypes:
    - Wal*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50420
      start: 50414
    functionDepth: 2
    functionLinenumber: 50414
    functionLinenumberEnd: 50420
    functionName: walUnlockExclusive
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - sqlite3OsShmLock
    - walLockName
    linkageType: ''
    returnType: void
    signature: void walUnlockExclusive(Wal *pWal, int lockIdx, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50428,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iPage
    argTypes:
    - u32
    assertStmts:
    - condition: ( iPage>0 )
      pos:
        line_end: 50427
        line_start: 50427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (HASHTABLE_NSLOT & (HASHTABLE_NSLOT-1))==0 )
      pos:
        line_end: 50428
        line_start: 50428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50431
      start: 50427
    functionDepth: 0
    functionLinenumber: 50427
    functionLinenumberEnd: 50431
    functionName: walHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int walHash(u32 iPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iPriorHash
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50434
      start: 50432
    functionDepth: 0
    functionLinenumber: 50432
    functionLinenumberEnd: 50434
    functionName: walNextHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int walNextHash(int iPriorHash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walIndexPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50460,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - pWal
    - iHash
    - paHash
    - paPgno
    - piZero
    argTypes:
    - Wal*
    - int
    - ht_slot**
    - u32**
    - u32*
    assertStmts:
    - condition: ( rc==SQLITE_OK || iHash>0 )
      pos:
        line_end: 50460
        line_start: 50460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50480
      start: 50450
    functionDepth: 6
    functionLinenumber: 50450
    functionLinenumberEnd: 50480
    functionName: walHashGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - walIndexPage
    linkageType: ''
    returnType: int
    signature: "int walHashGet(\n  Wal *pWal,                      /* WAL handle */\n
      \ int iHash,                      /* Find the iHash'th table */\n  volatile
      ht_slot **paHash,      /* OUT: Pointer to hash index */\n  volatile u32 **paPgno,
      \         /* OUT: Pointer to page number array */\n  u32 *piZero                     /*
      OUT: Frame associated with *paPgno[0] */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50490,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 3
    argCount: 1
    argNames:
    - iFrame
    argTypes:
    - u32
    assertStmts:
    - condition: "( (iHash==0 || iFrame>HASHTABLE_NPAGE_ONE)\n       && (iHash>=1
        || iFrame<=HASHTABLE_NPAGE_ONE)\n       && (iHash<=1 || iFrame>(HASHTABLE_NPAGE_ONE+HASHTABLE_NPAGE))\n
        \      && (iHash>=2 || iFrame<=HASHTABLE_NPAGE_ONE+HASHTABLE_NPAGE)\n       &&
        (iHash<=2 || iFrame>(HASHTABLE_NPAGE_ONE+2*HASHTABLE_NPAGE))\n  )"
      pos:
        line_end: 50494
        line_start: 50489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50497
      start: 50488
    functionDepth: 0
    functionLinenumber: 50488
    functionLinenumberEnd: 50497
    functionName: walFramePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int walFramePage(u32 iFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pWal
    - iFrame
    argTypes:
    - Wal*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50508
      start: 50502
    functionDepth: 1
    functionLinenumber: 50502
    functionLinenumberEnd: 50508
    functionName: walFramePgno
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walFramePage
    linkageType: ''
    returnType: u32
    signature: u32 walFramePgno(Wal *pWal, u32 iFrame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50530,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50531,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50532,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50533,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50541,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50541,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50542,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50542,1
    - Dst: walHashGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50543,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50543,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50549,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50560,1
    - Dst: walHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50570,1
    - Dst: walNextHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 50529
        line_start: 50529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) )
      pos:
        line_end: 50540
        line_start: 50540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] )
      pos:
        line_end: 50541
        line_start: 50541
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLimit>0 )
      pos:
        line_end: 50548
        line_start: 50548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHash[iKey]==j )
      pos:
        line_end: 50572
        line_start: 50572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50577
      start: 50522
    functionDepth: 7
    functionLinenumber: 50522
    functionLinenumberEnd: 50577
    functionName: walCleanupHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - walFramePage
    - assert
    - walHashGet
    - walHash
    - walNextHash
    - testcase
    linkageType: ''
    returnType: void
    signature: void walCleanupHash(Wal *pWal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: walHashGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50590,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50590,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50601,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50608,1
    - Dst: walCleanupHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50618,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50619,1
    - Dst: walHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50624,1
    - Dst: walNextHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50624,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50638,1
    - Dst: walHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50649,1
    - Dst: walNextHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50649,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50652,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - pWal
    - iFrame
    - iPage
    argTypes:
    - Wal*
    - u32
    - u32
    assertStmts:
    - condition: ( idx <= HASHTABLE_NSLOT/2 + 1 )
      pos:
        line_end: 50600
        line_start: 50600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !aPgno[idx] )
      pos:
        line_end: 50618
        line_start: 50618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nEntry==idx )
      pos:
        line_end: 50637
        line_start: 50637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHash[iKey]==i )
      pos:
        line_end: 50651
        line_start: 50651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50660
      start: 50584
    functionDepth: 8
    functionLinenumber: 50584
    functionLinenumberEnd: 50660
    functionName: walIndexAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - walFramePage
    - walHashGet
    - walHash
    - walNextHash
    - walCleanupHash
    linkageType: ''
    returnType: int
    signature: int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50686,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50687,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50688,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50689,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50692,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50696,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50698,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50700,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50718,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50728,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50729,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50739,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50740,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50743,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50746,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50747,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50754,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50762,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50777,1
    - Dst: walDecodeFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50779,1
    - Dst: walIndexAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50781,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50789,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50790,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50796,1
    - Dst: walIndexWriteHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50805,1
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50811,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50823,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50831,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50832,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 99
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->ckptLock==1 || pWal->ckptLock==0 )
      pos:
        line_end: 50685
        line_start: 50685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WAL_ALL_BUT_WRITE==WAL_WRITE_LOCK+1 )
      pos:
        line_end: 50686
        line_start: 50686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 50688
        line_start: 50688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WAL_CKPT_LOCK==WAL_ALL_BUT_WRITE )
      pos:
        line_end: 50687
        line_start: 50687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50834
      start: 50673
    functionDepth: 9
    functionLinenumber: 50673
    functionLinenumberEnd: 50834
    functionName: walIndexRecover
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3OsFileSize
    - walCkptInfo
    - assert
    - sqlite3_free
    - WALTRACE
    - sqlite3Get4byte
    - sqlite3_malloc64
    - walDecodeFrame
    - walIndexAppend
    - walIndexWriteHdr
    - memcpy
    - sqlite3_log
    - sqlite3OsRead
    - walChecksumBytes
    - walLockExclusive
    - walUnlockExclusive
    - testcase
    linkageType: ''
    returnType: int
    signature: int walIndexRecover(Wal *pWal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50843,1
    - Dst: sqlite3OsShmUnmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pWal
    - isDelete
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50849
      start: 50839
    functionDepth: 3
    functionLinenumber: 50839
    functionLinenumberEnd: 50849
    functionName: walIndexClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsShmUnmap
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void walIndexClose(Wal *pWal, int isDelete)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50886,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50889,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50895,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50912,1
    - Dst: walIndexClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50918,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50919,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50920,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50922,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50928,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 6
    argNames:
    - pVfs
    - pDbFd
    - zWalName
    - bNoShm
    - mxWalSize
    - ppWal
    argTypes:
    - sqlite3_vfs*
    - sqlite3_file*
    - char*
    - int
    - i64
    - Wal**
    assertStmts:
    - condition: ( zWalName && zWalName[0] )
      pos:
        line_end: 50877
        line_start: 50877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDbFd )
      pos:
        line_end: 50878
        line_start: 50878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WIN_SHM_BASE==WALINDEX_LOCK_OFFSET )
      pos:
        line_end: 50885
        line_start: 50885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( UNIX_SHM_BASE==WALINDEX_LOCK_OFFSET )
      pos:
        line_end: 50888
        line_start: 50888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50931
      start: 50866
    functionDepth: 5
    functionLinenumber: 50866
    functionLinenumberEnd: 50931
    functionName: sqlite3WalOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MallocZero
    - sqlite3OsClose
    - assert
    - sqlite3_free
    - WALTRACE
    - walIndexClose
    - sqlite3OsOpen
    - sqlite3OsDeviceCharacteristics
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalOpen(\n  sqlite3_vfs *pVfs,              /*
      vfs module to open wal and wal-index */\n  sqlite3_file *pDbFd,            /*
      The open database file */\n  const char *zWalName,           /* Name of the
      WAL file */\n  int bNoShm,                     /* True to run in heap-memory
      mode */\n  i64 mxWalSize,                  /* Truncate WAL to this size on reset
      */\n  Wal **ppWal                     /* OUT: Allocated Wal handle */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pWal
    - iLimit
    argTypes:
    - Wal*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50938
      start: 50936
    functionDepth: 0
    functionLinenumber: 50936
    functionLinenumberEnd: 50938
    functionName: sqlite3WalLimit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalLimit(Wal *pWal, i64 iLimit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:50960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - piPage
    - piFrame
    argTypes:
    - WalIterator*
    - u32*
    - u32*
    assertStmts:
    - condition: ( iMin<0xffffffff )
      pos:
        line_end: 50959
        line_start: 50959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50978
      start: 50950
    functionDepth: 0
    functionLinenumber: 50950
    functionLinenumberEnd: 50978
    functionName: walIteratorNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int walIteratorNext(\n  WalIterator *p,               /* Iterator
      */\n  u32 *piPage,                  /* OUT: The page number of the next page
      */\n  u32 *piFrame                  /* OUT: Wal frame index of next page */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51034,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51035,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51040,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - aContent
    - aLeft
    - nLeft
    - paRight
    - pnRight
    - aTmp
    argTypes:
    - u32*
    - ht_slot*
    - int
    - ht_slot**
    - int*
    - ht_slot*
    assertStmts:
    - condition: ( nLeft>0 && nRight>0 )
      pos:
        line_end: 51016
        line_start: 51016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLeft>=nLeft || aContent[aLeft[iLeft]]>dbpage )
      pos:
        line_end: 51033
        line_start: 51033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iRight>=nRight || aContent[aRight[iRight]]>dbpage )
      pos:
        line_end: 51034
        line_start: 51034
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51041
      start: 51003
    functionDepth: 0
    functionLinenumber: 51003
    functionLinenumberEnd: 51041
    functionName: walMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: "void walMerge(\n  const u32 *aContent,            /* Pages in wal
      - keys for the sort */\n  ht_slot *aLeft,                 /* IN: Left hand input
      list */\n  int nLeft,                      /* IN: Elements in array *paLeft
      */\n  ht_slot **paRight,              /* IN/OUT: Right hand input list */\n
      \ int *pnRight,                   /* IN/OUT: Elements in *paRight */\n  ht_slot
      *aTmp                   /* Temporary buffer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51078,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51079,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51080,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51087,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51087,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51089,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51090,1
    - Dst: walMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51091,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51097,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51100,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51103,1
    - Dst: walMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51104,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51107,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - aContent
    - aBuffer
    - aList
    - pnList
    argTypes:
    - u32*
    - ht_slot*
    - ht_slot*
    - int*
    assertStmts:
    - condition: ( iSub<ArraySize(aSub) )
      pos:
        line_end: 51086
        line_start: 51086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nList<=HASHTABLE_NPAGE && nList>0 )
      pos:
        line_end: 51078
        line_start: 51078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( HASHTABLE_NPAGE==(1<<(ArraySize(aSub)-1)) )
      pos:
        line_end: 51079
        line_start: 51079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aList && p->nList<=(1<<iSub) )
      pos:
        line_end: 51088
        line_start: 51088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aList==&aList[iList&~((2<<iSub)-1)] )
      pos:
        line_end: 51089
        line_start: 51089
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nList<=(1<<iSub) )
      pos:
        line_end: 51101
        line_start: 51101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aContent[aList[i]] > aContent[aList[i-1]] )
      pos:
        line_end: 51113
        line_start: 51113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aList==&aList[nList&~((2<<iSub)-1)] )
      pos:
        line_end: 51102
        line_start: 51102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSub<ArraySize(aSub) )
      pos:
        line_end: 51099
        line_start: 51099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aMerge==aList )
      pos:
        line_end: 51106
        line_start: 51106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51118
      start: 51060
    functionDepth: 1
    functionLinenumber: 51060
    functionLinenumberEnd: 51118
    functionName: walMergesort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walMerge
    - memset
    - assert
    - ArraySize
    linkageType: ''
    returnType: void
    signature: "void walMergesort(\n  const u32 *aContent,            /* Pages in
      wal */\n  ht_slot *aBuffer,               /* Buffer of at least *pnList items
      to use */\n  ht_slot *aList,                 /* IN/OUT: List to sort */\n  int
      *pnList                     /* IN/OUT: Number of elements in aList[] */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - WalIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51125
      start: 51123
    functionDepth: 3
    functionLinenumber: 51123
    functionLinenumberEnd: 51125
    functionName: walIteratorFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void walIteratorFree(WalIterator *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51151,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51155,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51159,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51163,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51169,1
    - Dst: walHashGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51181,1
    - Dst: walMergesort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51199,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51206,1
    - Dst: walIteratorFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51209,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - pWal
    - pp
    argTypes:
    - Wal*
    - WalIterator**
    assertStmts:
    - condition: ( pWal->ckptLock && pWal->hdr.mxFrame>0 )
      pos:
        line_end: 51150
        line_start: 51150
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51213
      start: 51139
    functionDepth: 7
    functionLinenumber: 51139
    functionLinenumberEnd: 51213
    functionName: walIteratorInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - walFramePage
    - assert
    - sqlite3_free
    - sqlite3_malloc64
    - walHashGet
    - walMergesort
    - walIteratorFree
    linkageType: ''
    returnType: int
    signature: int walIteratorInit(Wal *pWal, WalIterator **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51230,1
    - Dst: xBusy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - pWal
    - pBusyArg
    - lockIdx
    - n
    argTypes:
    - Wal*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51233
      start: 51221
    functionDepth: 3
    functionLinenumber: 51221
    functionLinenumberEnd: 51233
    functionName: walBusyLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walLockExclusive
    - xBusy
    linkageType: ''
    returnType: int
    signature: "int walBusyLock(\n  Wal *pWal,                      /* WAL connection
      */\n  int (*xBusy)(void*),            /* Function to call when busy */\n  void
      *pBusyArg,                 /* Context argument for xBusyHandler */\n  int lockIdx,
      \                   /* Offset of first byte to lock */\n  int n                           /*
      Number of bytes to lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51241
      start: 51239
    functionDepth: 0
    functionLinenumber: 51239
    functionLinenumberEnd: 51241
    functionName: walPagesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int walPagesize(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51261,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51266,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51266,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51267,1
    - Dst: walIndexWriteHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pWal
    - salt1
    argTypes:
    - Wal*
    - u32
    assertStmts:
    - condition: ( pInfo->aReadMark[0]==0 )
      pos:
        line_end: 51271
        line_start: 51271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51273
      start: 51260
    functionDepth: 3
    functionLinenumber: 51260
    functionLinenumberEnd: 51273
    functionName: walRestartHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walCkptInfo
    - sqlite3Put4byte
    - assert
    - sqlite3Get4byte
    - walIndexWriteHdr
    - memcpy
    linkageType: ''
    returnType: void
    signature: void walRestartHdr(Wal *pWal, u32 salt1)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: walPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51324,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51325,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51326,1
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51327,1
    - Dst: walIteratorInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51339,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51359,1
    - Dst: walBusyLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51360,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51360,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51363,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51363,1
    - Dst: walBusyLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51374,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51374,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51381,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51389,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51391,1
    - Dst: walIteratorNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51397,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51399,1
    - Dst: walFramePgno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51399,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51403,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51405,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51408,1
    - Dst: IS_BIG_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51408,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51409,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51415,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51417,1
    - Dst: IS_BIG_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51417,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51418,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51420,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51429,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51445,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51450,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51451,1
    - Dst: walBusyLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51452,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51452,1
    - Dst: walRestartHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51468,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51469,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51471,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51471,1
    - Dst: walIteratorFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51477,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 96
    argCount: 5
    argNames:
    - pWal
    - eMode
    - pBusyArg
    - sync_flags
    - zBuf
    argTypes:
    - Wal*
    - int
    - void*
    - int
    - u8*
    assertStmts:
    - condition: ( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 )
      pos:
        line_end: 51338
        line_start: 51338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 51444
        line_start: 51444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIter )
      pos:
        line_end: 51334
        line_start: 51334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( y<=pWal->hdr.mxFrame )
      pos:
        line_end: 51358
        line_start: 51358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( walFramePgno(pWal, iFrame)==iDbpage )
      pos:
        line_end: 51398
        line_start: 51398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInfo->nBackfill==pWal->hdr.mxFrame )
      pos:
        line_end: 51450
        line_start: 51450
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51479
      start: 51306
    functionDepth: 8
    functionLinenumber: 51306
    functionLinenumberEnd: 51479
    functionName: walCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IS_BIG_INT
    - walIndexHdr
    - walBusyLock
    - sqlite3OsSync
    - sqlite3OsRead
    - walIteratorFree
    - walFrameOffset
    - sqlite3OsFileSize
    - walPagesize
    - sqlite3_randomness
    - sqlite3OsTruncate
    - walCkptInfo
    - assert
    - walIteratorNext
    - walUnlockExclusive
    - sqlite3OsFileControlHint
    - walFramePgno
    - walRestartHdr
    - WAL_READ_LOCK
    - sqlite3OsWrite
    - walIteratorInit
    - testcase
    linkageType: ''
    returnType: int
    signature: "int walCheckpoint(\n  Wal *pWal,                      /* Wal connection
      */\n  int eMode,                      /* One of PASSIVE, FULL or RESTART */\n
      \ int (*xBusy)(void*),            /* Function to call when busy */\n  void *pBusyArg,
      \                /* Context argument for xBusyHandler */\n  int sync_flags,
      \                /* Flags for OsSync() (or 0) */\n  u8 *zBuf                        /*
      Temporary buffer to use */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51488,1
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51489,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51491,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51493,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pWal
    - nMax
    argTypes:
    - Wal*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51497
      start: 51485
    functionDepth: 8
    functionLinenumber: 51485
    functionLinenumberEnd: 51497
    functionName: walLimitSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    - sqlite3BeginBenignMalloc
    - sqlite3_log
    - sqlite3EndBenignMalloc
    linkageType: ''
    returnType: void
    signature: void walLimitSize(Wal *pWal, i64 nMax)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51520,1
    - Dst: sqlite3WalCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51525,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51530,1
    - Dst: walLimitSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51545,1
    - Dst: walIndexClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51550,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51551,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51553,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51554,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51555,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51557,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51558,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - pWal
    - sync_flags
    - nBuf
    - zBuf
    argTypes:
    - Wal*
    - int
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51562
      start: 51502
    functionDepth: 9
    functionLinenumber: 51502
    functionLinenumberEnd: 51562
    functionName: sqlite3WalClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3OsDelete
    - sqlite3OsFileControlHint
    - sqlite3OsClose
    - sqlite3_free
    - sqlite3BeginBenignMalloc
    - WALTRACE
    - walLimitSize
    - sqlite3EndBenignMalloc
    - walIndexClose
    - sqlite3OsLock
    - sqlite3WalCheckpoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalClose(\n  Wal *pWal,                      /*
      Wal to close */\n  int sync_flags,                 /* Flags to pass to OsSync()
      (or 0) */\n  int nBuf,\n  u8 *zBuf                        /* Buffer of at least
      nBuf bytes */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51587,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51599,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51600,1
    - Dst: walShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51601,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51602,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51604,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51610,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51615,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51617,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51619,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 51586
        line_start: 51586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51625
      start: 51581
    functionDepth: 2
    functionLinenumber: 51581
    functionLinenumberEnd: 51625
    functionName: walIndexTryHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - walIndexHdr
    - memcpy
    - walShmBarrier
    - walChecksumBytes
    - testcase
    linkageType: ''
    returnType: int
    signature: int walIndexTryHdr(Wal *pWal, int *pChanged)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51647,1
    - Dst: walIndexPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51652,1
    - Dst: walIndexTryHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51659,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51664,1
    - Dst: walLockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51667,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51668,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51671,1
    - Dst: walIndexPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51673,1
    - Dst: walIndexTryHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51674,1
    - Dst: walIndexRecover
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51680,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51685,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( pChanged )
      pos:
        line_end: 51646
        line_start: 51646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( page0 || pWal->writeLock==0 )
      pos:
        line_end: 51651
        line_start: 51651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( badHdr==0 || pWal->writeLock==0 )
      pos:
        line_end: 51663
        line_start: 51663
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51698
      start: 51639
    functionDepth: 10
    functionLinenumber: 51639
    functionLinenumberEnd: 51698
    functionName: walIndexReadHdr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walLockShared
    - walIndexTryHdr
    - assert
    - walIndexPage
    - walLockExclusive
    - walUnlockExclusive
    - walUnlockShared
    - walIndexRecover
    linkageType: ''
    returnType: int
    signature: int walIndexReadHdr(Wal *pWal, int *pChanged)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51763,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51785,1
    - Dst: sqlite3OsSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51789,1
    - Dst: walIndexReadHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51793,1
    - Dst: walLockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51812,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51813,1
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51824,1
    - Dst: walLockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51829,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51829,1
    - Dst: walShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51830,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51832,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51832,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51846,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51846,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51866,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51877,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51877,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51881,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51881,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51889,1
    - Dst: walLockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51893,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51893,1
    - Dst: walShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51917,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51919,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51919,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51921,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51921,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51924,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 4
    argNames:
    - pWal
    - pChanged
    - useWal
    - cnt
    argTypes:
    - Wal*
    - int*
    - int
    - int
    assertStmts:
    - condition: ( rc==SQLITE_BUSY || (pWal->readOnly & WAL_SHM_RDONLY)!=0 )
      pos:
        line_end: 51888
        line_start: 51888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( thisMark!=READMARK_NOT_USED )
      pos:
        line_end: 51865
        line_start: 51865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mxReadMark<=pWal->hdr.mxFrame )
      pos:
        line_end: 51923
        line_start: 51923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->readLock<0 )
      pos:
        line_end: 51762
        line_start: 51762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51929
      start: 51756
    functionDepth: 11
    functionLinenumber: 51756
    functionLinenumberEnd: 51929
    functionName: walTryBeginRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - walLockShared
    - walCkptInfo
    - sqlite3OsSleep
    - assert
    - VVA_ONLY
    - walIndexReadHdr
    - walIndexHdr
    - walShmBarrier
    - WAL_READ_LOCK
    - walLockExclusive
    - walUnlockExclusive
    - walUnlockShared
    linkageType: ''
    returnType: int
    signature: int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walTryBeginRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51950,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51952,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51953,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51954,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51957
      start: 51945
    functionDepth: 12
    functionLinenumber: 51945
    functionLinenumberEnd: 51957
    functionName: sqlite3WalBeginReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - testcase
    - walTryBeginRead
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51964,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51966,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51969
      start: 51963
    functionDepth: 3
    functionLinenumber: 51963
    functionLinenumberEnd: 51969
    functionName: sqlite3WalEndReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - WAL_READ_LOCK
    - sqlite3WalEndWriteTransaction
    - walUnlockShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalEndReadTransaction(Wal *pWal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:51989,1
    - Dst: walFramePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52027,1
    - Dst: walHashGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52035,1
    - Dst: walHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52040,1
    - Dst: walNextHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52040,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52043,1
    - Dst: walFramePgno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52060,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52065,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - pWal
    - pgno
    - piRead
    argTypes:
    - Wal*
    - Pgno
    - u32*
    assertStmts:
    - condition: ( pWal->readLock>=0 || pWal->lockError )
      pos:
        line_end: 51988
        line_start: 51988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iFrame>iRead || CORRUPT_DB )
      pos:
        line_end: 52042
        line_start: 52042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iRead==iRead2 )
      pos:
        line_end: 52064
        line_start: 52064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52071
      start: 51979
    functionDepth: 7
    functionLinenumber: 51979
    functionLinenumberEnd: 52071
    functionName: sqlite3WalFindFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - walFramePage
    - assert
    - walFramePgno
    - walHashGet
    - walHash
    - walNextHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalFindFrame(\n  Wal *pWal,                      /*
      WAL handle */\n  Pgno pgno,                      /* Database page number to
      read data for */\n  u32 *piRead                     /* OUT: Frame number (or
      zero) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52088,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52089,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52090,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pWal
    - iRead
    - nOut
    - pOut
    argTypes:
    - Wal*
    - u32
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52093
      start: 52078
    functionDepth: 2
    functionLinenumber: 52078
    functionLinenumberEnd: 52093
    functionName: sqlite3WalReadFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - walFrameOffset
    - testcase
    - sqlite3OsRead
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalReadFrame(\n  Wal *pWal,                      /*
      WAL handle */\n  u32 iRead,                      /* Frame to read */\n  int
      nOut,                       /* Size of buffer pOut in bytes */\n  u8 *pOut                        /*
      Buffer to write page data to */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52103
      start: 52098
    functionDepth: 1
    functionLinenumber: 52098
    functionLinenumberEnd: 52103
    functionName: sqlite3WalDbsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalDbsize(Wal *pWal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52124,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52133,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52143,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52143,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->readLock>=0 )
      pos:
        line_end: 52123
        line_start: 52123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52150
      start: 52119
    functionDepth: 3
    functionLinenumber: 52119
    functionLinenumberEnd: 52150
    functionName: sqlite3WalBeginWriteTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcmp
    - assert
    - walIndexHdr
    - walLockExclusive
    - walUnlockExclusive
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalBeginWriteTransaction(Wal *pWal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52163
      start: 52156
    functionDepth: 3
    functionLinenumber: 52156
    functionLinenumberEnd: 52163
    functionName: sqlite3WalEndWriteTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - walUnlockExclusive
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalEndWriteTransaction(Wal *pWal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52179,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52186,1
    - Dst: walIndexHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52186,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52189,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52203,1
    - Dst: walFramePgno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52203,1
    - Dst: xUndo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52204,1
    - Dst: walFramePgno
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52204,1
    - Dst: walCleanupHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pWal
    - pUndoCtx
    argTypes:
    - Wal*
    - void*
    assertStmts:
    - condition: ( walFramePgno(pWal, iFrame)!=1 )
      pos:
        line_end: 52202
        line_start: 52202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52209
      start: 52177
    functionDepth: 8
    functionLinenumber: 52177
    functionLinenumberEnd: 52209
    functionName: sqlite3WalUndo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - walIndexHdr
    - walFramePgno
    - ALWAYS
    - memcpy
    - xUndo
    - walCleanupHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalUndo(Wal *pWal, int (*xUndo)(void *, Pgno),
      void *pUndoCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pWal
    - aWalData
    argTypes:
    - Wal*
    - u32*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 52217
        line_start: 52217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52223
      start: 52217
    functionDepth: 0
    functionLinenumber: 52217
    functionLinenumberEnd: 52223
    functionName: sqlite3WalSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSavepoint(Wal *pWal, u32 *aWalData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52235,1
    - Dst: walCleanupHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pWal
    - aWalData
    argTypes:
    - Wal*
    - u32*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 52233
        line_start: 52233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aWalData[3]!=pWal->nCkpt || aWalData[0]<=pWal->hdr.mxFrame )
      pos:
        line_end: 52234
        line_start: 52234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52254
      start: 52231
    functionDepth: 8
    functionLinenumber: 52231
    functionLinenumberEnd: 52254
    functionName: sqlite3WalSavepointUndo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - walCleanupHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSavepointUndo(Wal *pWal, u32 *aWalData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52273,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52274,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52277,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52278,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52278,1
    - Dst: walRestartHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52289,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52290,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52290,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52295,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52295,1
    - Dst: walTryBeginRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52300,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52302,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52303,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52304,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pInfo->nBackfill==pWal->hdr.mxFrame )
      pos:
        line_end: 52273
        line_start: 52273
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (rc&0xff)!=SQLITE_BUSY )
      pos:
        line_end: 52301
        line_start: 52301
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52308
      start: 52268
    functionDepth: 12
    functionLinenumber: 52268
    functionLinenumberEnd: 52308
    functionName: walRestartLog
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walCkptInfo
    - assert
    - walTryBeginRead
    - sqlite3_randomness
    - walRestartHdr
    - WAL_READ_LOCK
    - walLockExclusive
    - walUnlockExclusive
    - testcase
    - walUnlockShared
    linkageType: ''
    returnType: int
    signature: int walRestartLog(Wal *pWal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52340,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52345,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52346,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - p
    - pContent
    - iAmt
    - iOffset
    argTypes:
    - WalWriter*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( p->syncFlags & (SQLITE_SYNC_NORMAL|SQLITE_SYNC_FULL) )
      pos:
        line_end: 52344
        line_start: 52344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52351
      start: 52331
    functionDepth: 2
    functionLinenumber: 52331
    functionLinenumberEnd: 52351
    functionName: walWriteToLog
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - sqlite3OsSync
    - assert
    linkageType: ''
    returnType: int
    signature: "int walWriteToLog(\n  WalWriter *p,              /* WAL to write to
      */\n  void *pContent,            /* Content to be written */\n  int iAmt,                  /*
      Number of bytes to write */\n  sqlite3_int64 iOffset      /* Start writing at
      this offset */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerCodec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52366,1
    - Dst: walEncodeFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52370,1
    - Dst: walWriteToLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52371,1
    - Dst: walWriteToLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - pPage
    - nTruncate
    - iOffset
    argTypes:
    - WalWriter*
    - PgHdr*
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52376
      start: 52356
    functionDepth: 3
    functionLinenumber: 52356
    functionLinenumberEnd: 52376
    functionName: walWriteOneFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - walWriteToLog
    - sqlite3PagerCodec
    - walEncodeFrame
    linkageType: ''
    returnType: int
    signature: "int walWriteOneFrame(\n  WalWriter *p,               /* Where to write
      the frame */\n  PgHdr *pPage,               /* The page of the frame to be written
      */\n  int nTruncate,              /* The commit flag.  Usually 0.  >0 for commit
      */\n  sqlite3_int64 iOffset       /* Byte offset at which to write */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52399,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52404,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52408,1
    - Dst: walRestartLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52416,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52429,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52430,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52431,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52432,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52433,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52434,1
    - Dst: walChecksumBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52435,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52436,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52437,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52445,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52446,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52459,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52463,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52478,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52478,1
    - Dst: walWriteOneFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52480,1
    - Dst: sqlite3SectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52502,1
    - Dst: walWriteOneFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52505,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52511,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52521,1
    - Dst: walFrameOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52522,1
    - Dst: walLimitSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52524,1
    - Dst: walIndexAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52536,1
    - Dst: walIndexAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52541,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52547,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52548,1
    - Dst: walIndexWriteHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52556,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52561,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 104
    argCount: 6
    argNames:
    - pWal
    - szPage
    - pList
    - nTruncate
    - isCommit
    - sync_flags
    argTypes:
    - Wal*
    - int
    - PgHdr*
    - Pgno
    - int
    - int
    assertStmts:
    - condition: ( pList )
      pos:
        line_end: 52398
        line_start: 52398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iOffset==walFrameOffset(iFrame, szPage) )
      pos:
        line_end: 52477
        line_start: 52477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 52399
        line_start: 52399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (isCommit!=0)==(nTruncate!=0) )
      pos:
        line_end: 52403
        line_start: 52403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (int)pWal->szPage==szPage )
      pos:
        line_end: 52462
        line_start: 52462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52563
      start: 52382
    functionDepth: 13
    functionLinenumber: 52382
    functionLinenumberEnd: 52563
    functionName: sqlite3WalFrames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - walFrameOffset
    - sqlite3SectorSize
    - sqlite3Put4byte
    - assert
    - WALTRACE
    - walIndexAppend
    - sqlite3OsSync
    - sqlite3_randomness
    - memcpy
    - walLimitSize
    - walIndexWriteHdr
    - walRestartLog
    - sqlite3OsWrite
    - walWriteOneFrame
    - walChecksumBytes
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalFrames(\n  Wal *pWal,                      /*
      Wal handle to write to */\n  int szPage,                     /* Database page-size
      in bytes */\n  PgHdr *pList,                   /* List of dirty pages to write
      */\n  Pgno nTruncate,                 /* Database size after this commit */\n
      \ int isCommit,                   /* True if this is a commit */\n  int sync_flags
      \                 /* Flags to pass to OsSync() (or 0) */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52592,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52596,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52599,1
    - Dst: walLockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52603,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52611,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52612,1
    - Dst: walBusyLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52627,1
    - Dst: walIndexReadHdr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52639,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52641,1
    - Dst: walPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52647,1
    - Dst: walCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52650,1
    - Dst: walCkptInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52656,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52667,1
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52671,1
    - Dst: walUnlockExclusive
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52672,1
    - Dst: WALTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52674,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 8
    argNames:
    - pWal
    - eMode
    - pBusyArg
    - sync_flags
    - nBuf
    - zBuf
    - pnLog
    - pnCkpt
    argTypes:
    - Wal*
    - int
    - void*
    - int
    - int
    - u8*
    - int*
    - int*
    assertStmts:
    - condition: ( pWal->ckptLock==0 )
      pos:
        line_end: 52590
        line_start: 52590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 )
      pos:
        line_end: 52595
        line_start: 52595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->writeLock==0 )
      pos:
        line_end: 52591
        line_start: 52591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52676
      start: 52575
    functionDepth: 11
    functionLinenumber: 52575
    functionLinenumberEnd: 52676
    functionName: sqlite3WalCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3OsUnfetch
    - walCkptInfo
    - memset
    - walCheckpoint
    - assert
    - WALTRACE
    - walBusyLock
    - walIndexReadHdr
    - walPagesize
    - walLockExclusive
    - walUnlockExclusive
    - testcase
    - sqlite3WalEndWriteTransaction
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalCheckpoint(\n  Wal *pWal,                      /*
      Wal connection */\n  int eMode,                      /* PASSIVE, FULL, RESTART,
      or TRUNCATE */\n  int (*xBusy)(void*),            /* Function to call when busy
      */\n  void *pBusyArg,                 /* Context argument for xBusyHandler */\n
      \ int sync_flags,                 /* Flags to sync db file with (or 0) */\n
      \ int nBuf,                       /* Size of temporary buffer */\n  u8 *zBuf,
      \                      /* Temporary buffer to use */\n  int *pnLog,                     /*
      OUT: Number of frames in WAL */\n  int *pnCkpt                     /* OUT: Number
      of backfilled frames in WAL */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52690
      start: 52683
    functionDepth: 0
    functionLinenumber: 52683
    functionLinenumberEnd: 52690
    functionName: sqlite3WalCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalCallback(Wal *pWal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52718,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52719,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52728,1
    - Dst: walLockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52733,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52733,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52742,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52743,1
    - Dst: walUnlockShared
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52744,1
    - Dst: WAL_READ_LOCK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - pWal
    - op
    argTypes:
    - Wal*
    - int
    assertStmts:
    - condition: ( pWal->writeLock==0 )
      pos:
        line_end: 52717
        line_start: 52717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->readLock>=0 || pWal->lockError )
      pos:
        line_end: 52726
        line_start: 52726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE || op==-1 )
      pos:
        line_end: 52718
        line_start: 52718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->readLock>=0 || (op<=0 && pWal->exclusiveMode==0) )
      pos:
        line_end: 52727
        line_start: 52727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->exclusiveMode==0 )
      pos:
        line_end: 52741
        line_start: 52741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWal->readLock>=0 )
      pos:
        line_end: 52742
        line_start: 52742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52751
      start: 52716
    functionDepth: 3
    functionLinenumber: 52716
    functionLinenumberEnd: 52751
    functionName: sqlite3WalExclusiveMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - walLockShared
    - WAL_READ_LOCK
    - walUnlockShared
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalExclusiveMode(Wal *pWal, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52760
      start: 52758
    functionDepth: 0
    functionLinenumber: 52758
    functionLinenumberEnd: 52760
    functionName: sqlite3WalHeapMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalHeapMemory(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:52769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal==0 || pWal->readLock>=0 )
      pos:
        line_end: 52768
        line_start: 52768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52771
      start: 52768
    functionDepth: 0
    functionLinenumber: 52768
    functionLinenumberEnd: 52771
    functionName: sqlite3WalFramesize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalFramesize(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53019
      start: 53018
    functionDepth: 0
    functionLinenumber: 53018
    functionLinenumberEnd: 53019
    functionName: MX_CELL_SIZE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MX_CELL_SIZE(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53026
      start: 53025
    functionDepth: 0
    functionLinenumber: 53025
    functionLinenumberEnd: 53026
    functionName: MX_CELL
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MX_CELL(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53380
      start: 53379
    functionDepth: 0
    functionLinenumber: 53379
    functionLinenumberEnd: 53380
    functionName: PENDING_BYTE_PAGE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PENDING_BYTE_PAGE(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pBt
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53397
      start: 53396
    functionDepth: 0
    functionLinenumber: 53396
    functionLinenumberEnd: 53397
    functionName: PTRMAP_PAGENO
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_PAGENO(pBt, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pgptrmap
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53398
      start: 53397
    functionDepth: 0
    functionLinenumber: 53397
    functionLinenumberEnd: 53398
    functionName: PTRMAP_PTROFFSET
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_PTROFFSET(pgptrmap, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pBt
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53399
      start: 53398
    functionDepth: 0
    functionLinenumber: 53398
    functionLinenumberEnd: 53399
    functionName: PTRMAP_ISPAGE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_ISPAGE(pBt, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53443
      start: 53440
    functionDepth: 0
    functionLinenumber: 53440
    functionLinenumberEnd: 53443
    functionName: btreeIntegrity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: btreeIntegrity(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53488
      start: 53487
    functionDepth: 0
    functionLinenumber: 53487
    functionLinenumberEnd: 53488
    functionName: get2byte
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53489
      start: 53488
    functionDepth: 0
    functionLinenumber: 53488
    functionLinenumberEnd: 53489
    functionName: put2byte
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put2byte(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53499
      start: 53498
    functionDepth: 0
    functionLinenumber: 53498
    functionLinenumberEnd: 53499
    functionName: get2byteAligned
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53501
      start: 53500
    functionDepth: 0
    functionLinenumber: 53500
    functionLinenumberEnd: 53501
    functionName: get2byteAligned
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53503
      start: 53502
    functionDepth: 0
    functionLinenumber: 53502
    functionLinenumberEnd: 53503
    functionName: get2byteAligned
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53505
      start: 53504
    functionDepth: 0
    functionLinenumber: 53504
    functionLinenumberEnd: 53505
    functionName: get2byteAligned
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53518,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53519,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53519,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53520,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53520,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->locked==0 )
      pos:
        line_end: 53517
        line_start: 53517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_notheld(p->pBt->mutex) )
      pos:
        line_end: 53518
        line_start: 53518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 53519
        line_start: 53519
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53525
      start: 53517
    functionDepth: 1
    functionLinenumber: 53517
    functionLinenumberEnd: 53525
    functionName: lockBtreeMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_mutex_notheld
    - assert
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void lockBtreeMutex(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53533,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53534,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53534,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53535,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53535,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53536,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->locked==1 )
      pos:
        line_end: 53532
        line_start: 53532
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 53533
        line_start: 53533
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 53534
        line_start: 53534
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db==pBt->db )
      pos:
        line_end: 53535
        line_start: 53535
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53540
      start: 53531
    functionDepth: 1
    functionLinenumber: 53531
    functionLinenumberEnd: 53540
    functionName: SQLITE_NOINLINE::unlockBtreeMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_mutex_leave
    - assert
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE unlockBtreeMutex(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53566,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53567,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53568,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53574,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53577,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53577,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53581,1
    - Dst: btreeLockCarefully
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53586,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pNext==0 || p->pNext->pBt>p->pBt )
      pos:
        line_end: 53565
        line_start: 53565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPrev==0 || p->pPrev->pBt<p->pBt )
      pos:
        line_end: 53566
        line_start: 53566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable || (p->pNext==0 && p->pPrev==0) )
      pos:
        line_end: 53569
        line_start: 53569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pNext==0 || p->pNext->db==p->db )
      pos:
        line_end: 53567
        line_start: 53567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPrev==0 || p->pPrev->db==p->db )
      pos:
        line_end: 53568
        line_start: 53568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !p->locked || p->wantToLock>0 )
      pos:
        line_end: 53572
        line_start: 53572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable || p->wantToLock==0 )
      pos:
        line_end: 53573
        line_start: 53573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 53576
        line_start: 53576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->locked==0 && p->sharable) || p->pBt->db==p->db )
      pos:
        line_end: 53580
        line_start: 53580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53587
      start: 53561
    functionDepth: 1
    functionLinenumber: 53561
    functionLinenumberEnd: 53587
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeLockCarefully
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnter(Btree *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_try
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53602,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53614,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53616,1
    - Dst: SQLITE_NOINLINE::unlockBtreeMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53618,1
    - Dst: lockBtreeMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53621,1
    - Dst: lockBtreeMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53624,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pLater->pNext==0 || pLater->pNext->pBt>pLater->pBt )
      pos:
        line_end: 53614
        line_start: 53614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pLater->locked || pLater->wantToLock>0 )
      pos:
        line_end: 53615
        line_start: 53615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLater->sharable )
      pos:
        line_end: 53613
        line_start: 53613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53627
      start: 53595
    functionDepth: 2
    functionLinenumber: 53595
    functionLinenumberEnd: 53627
    functionName: SQLITE_NOINLINE::btreeLockCarefully
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_try
    - lockBtreeMutex
    - SQLITE_NOINLINE::unlockBtreeMutex
    - assert
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE btreeLockCarefully(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53634,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53634,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53636,1
    - Dst: unlockBtreeMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 53633
        line_start: 53633
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->wantToLock>0 )
      pos:
        line_end: 53635
        line_start: 53635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53642
      start: 53633
    functionDepth: 1
    functionLinenumber: 53633
    functionLinenumberEnd: 53642
    functionName: sqlite3BtreeLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - unlockBtreeMutex
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeave(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53652,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53654,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53654,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53655,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53655,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->sharable==0 || p->locked==0 || p->wantToLock>0 )
      pos:
        line_end: 53651
        line_start: 53651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->pBt->mutex)
        )
      pos:
        line_end: 53653
        line_start: 53653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || p->db==p->pBt->db )
      pos:
        line_end: 53652
        line_start: 53652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->db->mutex)
        )
      pos:
        line_end: 53654
        line_start: 53654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53658
      start: 53651
    functionDepth: 1
    functionLinenumber: 53651
    functionLinenumberEnd: 53658
    functionName: sqlite3BtreeHoldsMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeHoldsMutex(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53670
      start: 53668
    functionDepth: 1
    functionLinenumber: 53668
    functionLinenumberEnd: 53670
    functionName: sqlite3BtreeEnterCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterCursor(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53673
      start: 53671
    functionDepth: 2
    functionLinenumber: 53671
    functionLinenumberEnd: 53673
    functionName: sqlite3BtreeLeaveCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeaveCursor(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53694,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53694,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 53693
        line_start: 53693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53699
      start: 53691
    functionDepth: 1
    functionLinenumber: 53691
    functionLinenumberEnd: 53699
    functionName: sqlite3BtreeEnterAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterAll(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53703,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53703,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 53702
        line_start: 53702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53708
      start: 53700
    functionDepth: 2
    functionLinenumber: 53700
    functionLinenumberEnd: 53708
    functionName: sqlite3BtreeLeaveAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeaveAll(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53716
      start: 53714
    functionDepth: 0
    functionLinenumber: 53714
    functionLinenumberEnd: 53716
    functionName: sqlite3BtreeSharable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSharable(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53727,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53734,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53739
      start: 53725
    functionDepth: 1
    functionLinenumber: 53725
    functionLinenumberEnd: 53739
    functionName: sqlite3BtreeHoldsAllMutexes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeHoldsAllMutexes(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53756,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53758,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53759,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - db
    - iDb
    - pSchema
    argTypes:
    - sqlite3*
    - int
    - Schema*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 53755
        line_start: 53755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 53761
        line_start: 53761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 53757
        line_start: 53757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53764
      start: 53754
    functionDepth: 1
    functionLinenumber: 53754
    functionLinenumberEnd: 53764
    functionName: sqlite3SchemaMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3SchemaToIndex
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaMutexHeld(sqlite3 *db, int iDb, Schema
      *pSchema)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53780
      start: 53778
    functionDepth: 0
    functionLinenumber: 53778
    functionLinenumberEnd: 53780
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnter(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53789
      start: 53781
    functionDepth: 0
    functionLinenumber: 53781
    functionLinenumberEnd: 53789
    functionName: sqlite3BtreeEnterAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterAll(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53825
      start: 53824
    functionDepth: 0
    functionLinenumber: 53824
    functionLinenumberEnd: 53825
    functionName: TRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53839
      start: 53838
    functionDepth: 0
    functionLinenumber: 53838
    functionLinenumberEnd: 53839
    functionName: get2byteNotZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteNotZero(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53855
      start: 53854
    functionDepth: 0
    functionLinenumber: 53854
    functionLinenumberEnd: 53855
    functionName: IfNotOmitAV
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IfNotOmitAV(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53857
      start: 53856
    functionDepth: 0
    functionLinenumber: 53856
    functionLinenumberEnd: 53857
    functionName: IfNotOmitAV
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IfNotOmitAV(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53886
      start: 53883
    functionDepth: 0
    functionLinenumber: 53883
    functionLinenumberEnd: 53886
    functionName: sqlite3_enable_shared_cache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_enable_shared_cache(int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53902
      start: 53901
    functionDepth: 0
    functionLinenumber: 53901
    functionLinenumberEnd: 53902
    functionName: querySharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: querySharedCacheTableLock(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53903
      start: 53902
    functionDepth: 0
    functionLinenumber: 53902
    functionLinenumberEnd: 53903
    functionName: setSharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setSharedCacheTableLock(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53906
      start: 53905
    functionDepth: 0
    functionLinenumber: 53905
    functionLinenumberEnd: 53906
    functionName: hasSharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hasSharedCacheTableLock(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53907
      start: 53906
    functionDepth: 0
    functionLinenumber: 53906
    functionLinenumberEnd: 53907
    functionName: hasReadConflicts
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hasReadConflicts(a, b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53969,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53969,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:53970,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 4
    argNames:
    - pBtree
    - iRoot
    - isIndex
    - eLockType
    argTypes:
    - Btree*
    - Pgno
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53999
      start: 53934
    functionDepth: 1
    functionLinenumber: 53934
    functionLinenumberEnd: 53999
    functionName: hasSharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteHashNext
    - sqliteHashFirst
    - sqliteHashData
    linkageType: ''
    returnType: int
    signature: "int hasSharedCacheTableLock(\n  Btree *pBtree,         /* Handle that
      must hold lock */\n  Pgno iRoot,            /* Root page of b-tree */\n  int
      isIndex,           /* True if iRoot is the root of an index b-tree */\n  int
      eLockType          /* Required lock type (READ_LOCK or WRITE_LOCK) */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pBtree
    - iRoot
    argTypes:
    - Btree*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54032
      start: 54021
    functionDepth: 0
    functionLinenumber: 54021
    functionLinenumberEnd: 54032
    functionName: hasReadConflicts
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasReadConflicts(Btree *pBtree, Pgno iRoot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54045,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54045,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54046,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54047,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54048,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54054,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54055,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54066,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54081,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54083,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54085,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 3
    argNames:
    - p
    - iTab
    - eLock
    argTypes:
    - Btree*
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 54044
        line_start: 54044
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !(p->db->flags&SQLITE_ReadUncommitted)||eLock==WRITE_LOCK||iTab==1
        )
      pos:
        line_end: 54047
        line_start: 54047
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==READ_LOCK || eLock==WRITE_LOCK )
      pos:
        line_end: 54045
        line_start: 54045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db!=0 )
      pos:
        line_end: 54046
        line_start: 54046
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==READ_LOCK || (p==pBt->pWriter && p->inTrans==TRANS_WRITE)
        )
      pos:
        line_end: 54053
        line_start: 54053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==READ_LOCK || pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 54054
        line_start: 54054
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIter->eLock==READ_LOCK || pIter->eLock==WRITE_LOCK )
      pos:
        line_end: 54079
        line_start: 54079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==READ_LOCK || pIter->pBtree==p || pIter->eLock==READ_LOCK)
      pos:
        line_end: 54080
        line_start: 54080
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==pBt->pWriter )
      pos:
        line_end: 54084
        line_start: 54084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54092
      start: 54041
    functionDepth: 1
    functionLinenumber: 54041
    functionLinenumberEnd: 54092
    functionName: querySharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - assert
    - sqlite3ConnectionBlocked
    linkageType: ''
    returnType: int
    signature: int querySharedCacheTableLock(Btree *p, Pgno iTab, u8 eLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54118,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54118,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54126,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54130,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54131,1
    - Dst: querySharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54131,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54145,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - p
    - iTable
    - eLock
    argTypes:
    - Btree*
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 54117
        line_start: 54117
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db!=0 )
      pos:
        line_end: 54119
        line_start: 54119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eLock==READ_LOCK || eLock==WRITE_LOCK )
      pos:
        line_end: 54118
        line_start: 54118
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==(p->db->flags&SQLITE_ReadUncommitted) || eLock==WRITE_LOCK )
      pos:
        line_end: 54125
        line_start: 54125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable )
      pos:
        line_end: 54129
        line_start: 54129
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_OK==querySharedCacheTableLock(p, iTable, eLock) )
      pos:
        line_end: 54130
        line_start: 54130
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WRITE_LOCK>READ_LOCK )
      pos:
        line_end: 54158
        line_start: 54158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54165
      start: 54113
    functionDepth: 5
    functionLinenumber: 54113
    functionLinenumberEnd: 54165
    functionName: setSharedCacheTableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - sqlite3MallocZero
    - assert
    - querySharedCacheTableLock
    linkageType: ''
    returnType: int
    signature: int setSharedCacheTableLock(Btree *p, Pgno iTable, u8 eLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54181,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54182,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54183,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54188,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54191,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 54180
        line_start: 54180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans>0 )
      pos:
        line_end: 54182
        line_start: 54182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->sharable || 0==*ppIter )
      pos:
        line_end: 54181
        line_start: 54181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_EXCLUSIVE)==0 || pBt->pWriter==pLock->pBtree
        )
      pos:
        line_end: 54186
        line_start: 54186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLock->pBtree->inTrans>=pLock->eLock )
      pos:
        line_end: 54187
        line_start: 54187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLock->iTable!=1 || pLock==&p->lock )
      pos:
        line_end: 54190
        line_start: 54190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_PENDING)==0 || pBt->pWriter )
      pos:
        line_end: 54199
        line_start: 54199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54216
      start: 54177
    functionDepth: 3
    functionLinenumber: 54177
    functionLinenumberEnd: 54216
    functionName: clearAllSharedCacheTableLocks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void clearAllSharedCacheTableLocks(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pLock->eLock==READ_LOCK || pLock->pBtree==p )
      pos:
        line_end: 54227
        line_start: 54227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54232
      start: 54221
    functionDepth: 0
    functionLinenumber: 54221
    functionLinenumberEnd: 54232
    functionName: downgradeAllSharedCacheTableLocks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void downgradeAllSharedCacheTableLocks(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54246
      start: 54244
    functionDepth: 1
    functionLinenumber: 54244
    functionLinenumberEnd: 54246
    functionName: cursorHoldsMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int cursorHoldsMutex(BtCursor *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pCur
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54254
      start: 54253
    functionDepth: 0
    functionLinenumber: 54253
    functionLinenumberEnd: 54254
    functionName: invalidateOverflowCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invalidateOverflowCache(pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54261,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54261,1
    - Dst: invalidateOverflowCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 54260
        line_start: 54260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54265
      start: 54259
    functionDepth: 1
    functionLinenumber: 54259
    functionLinenumberEnd: 54265
    functionName: invalidateAllOverflowCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - invalidateOverflowCache
    - assert
    linkageType: ''
    returnType: void
    signature: void invalidateAllOverflowCache(BtShared *pBt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54288,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - pBtree
    - iRow
    - isClearTable
    argTypes:
    - Btree*
    - i64
    - int
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(pBtree) )
      pos:
        line_end: 54287
        line_start: 54287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54298
      start: 54281
    functionDepth: 1
    functionLinenumber: 54281
    functionLinenumberEnd: 54298
    functionName: invalidateIncrblobCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - assert
    linkageType: ''
    returnType: void
    signature: "void invalidateIncrblobCursors(\n  Btree *pBtree,          /* The
      database file to check */\n  i64 iRow,               /* The rowid that might
      be changing */\n  int isClearTable        /* True if all rows are being deleted
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54343,1
    - Dst: sqlite3BitvecCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54344,1
    - Dst: sqlite3BitvecSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54349,1
    - Dst: sqlite3BitvecSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( pgno<=pBt->nPage )
      pos:
        line_end: 54342
        line_start: 54342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54353
      start: 54340
    functionDepth: 7
    functionLinenumber: 54340
    functionLinenumberEnd: 54353
    functionName: btreeSetHasContent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecSize
    - sqlite3BitvecSet
    - assert
    - sqlite3BitvecCreate
    linkageType: ''
    returnType: int
    signature: int btreeSetHasContent(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54364,1
    - Dst: sqlite3BitvecTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54365
      start: 54362
    functionDepth: 3
    functionLinenumber: 54362
    functionLinenumberEnd: 54365
    functionName: btreeGetHasContent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecSize
    - sqlite3BitvecTest
    linkageType: ''
    returnType: int
    signature: int btreeGetHasContent(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54374
      start: 54371
    functionDepth: 4
    functionLinenumber: 54371
    functionLinenumberEnd: 54374
    functionName: btreeClearHasContent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecDestroy
    linkageType: ''
    returnType: void
    signature: void btreeClearHasContent(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54386
      start: 54379
    functionDepth: 1
    functionLinenumber: 54379
    functionLinenumberEnd: 54386
    functionName: btreeReleaseAllCursorPages
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - releasePage
    linkageType: ''
    returnType: void
    signature: void btreeReleaseAllCursorPages(BtCursor *pCur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54399,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54401,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54401,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54408,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54409,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54418,1
    - Dst: sqlite3BtreeKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54420,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54430,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54433,1
    - Dst: invalidateOverflowCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( CURSOR_VALID==pCur->eState || CURSOR_SKIPNEXT==pCur->eState )
      pos:
        line_end: 54398
        line_start: 54398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==pCur->pKey )
      pos:
        line_end: 54399
        line_start: 54399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 54400
        line_start: 54400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 54408
        line_start: 54408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pCur->curIntKey || !pCur->pKey )
      pos:
        line_end: 54429
        line_start: 54429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54439
      start: 54396
    functionDepth: 4
    functionLinenumber: 54396
    functionLinenumberEnd: 54439
    functionName: saveCursorPosition
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeReleaseAllCursorPages
    - assert
    - sqlite3_free
    - cursorHoldsMutex
    - sqlite3Malloc
    - invalidateOverflowCache
    - sqlite3BtreeKeySize
    - sqlite3BtreeKey
    linkageType: ''
    returnType: int
    signature: int saveCursorPosition(BtCursor *pCur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54467,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54467,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54468,1
    - Dst: saveCursorsOnList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54472,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - pBt
    - iRoot
    - pExcept
    argTypes:
    - BtShared*
    - Pgno
    - BtCursor*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 54466
        line_start: 54466
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExcept==0 || pExcept->pBt==pBt )
      pos:
        line_end: 54467
        line_start: 54467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54475
      start: 54465
    functionDepth: 1
    functionLinenumber: 54465
    functionLinenumberEnd: 54475
    functionName: saveAllCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - saveCursorsOnList
    - assert
    linkageType: ''
    returnType: int
    signature: int saveAllCursors(BtShared *pBt, Pgno iRoot, BtCursor *pExcept)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: saveCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54490,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54495,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iRoot
    - pExcept
    argTypes:
    - BtCursor*
    - Pgno
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54502
      start: 54482
    functionDepth: 5
    functionLinenumber: 54482
    functionLinenumberEnd: 54502
    functionName: SQLITE_NOINLINE::saveCursorsOnList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeReleaseAllCursorPages
    - testcase
    - saveCursorPosition
    linkageType: ''
    returnType: int
    signature: "int SQLITE_NOINLINE saveCursorsOnList(\n  BtCursor *p,         /*
      The first cursor that needs saving */\n  Pgno iRoot,          /* Only save cursor
      with this iRoot. Save all if zero */\n  BtCursor *pExcept    /* Do not save
      this cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54508,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54508,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 54507
        line_start: 54507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54512
      start: 54507
    functionDepth: 3
    functionLinenumber: 54507
    functionLinenumberEnd: 54512
    functionName: sqlite3BtreeClearCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cursorHoldsMutex
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearCursor(BtCursor *pCur)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54532,1
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54533,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54537,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54539,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54545,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - pCur
    - pKey
    - nKey
    - bias
    - pRes
    argTypes:
    - BtCursor*
    - void*
    - i64
    - int
    - int*
    assertStmts:
    - condition: ( nKey==(i64)(int)nKey )
      pos:
        line_end: 54531
        line_start: 54531
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54550
      start: 54519
    functionDepth: 5
    functionLinenumber: 54519
    functionLinenumberEnd: 54550
    functionName: btreeMoveto
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeMovetoUnpacked
    - sqlite3VdbeRecordUnpack
    - assert
    - sqlite3VdbeAllocUnpackedRecord
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: "int btreeMoveto(\n  BtCursor *pCur,     /* Cursor open on the btree
      to be searched */\n  const void *pKey,   /* Packed key if the btree is an index
      */\n  i64 nKey,           /* Integer key for tables.  Size of pKey for indices
      */\n  int bias,           /* Bias search to the high end */\n  int *pRes           /*
      Write search results here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54562,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54563,1
    - Dst: btreeMoveto
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54568,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 54561
        line_start: 54561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState>=CURSOR_REQUIRESEEK )
      pos:
        line_end: 54562
        line_start: 54562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || pCur->eState==CURSOR_INVALID )
      pos:
        line_end: 54571
        line_start: 54571
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54579
      start: 54559
    functionDepth: 6
    functionLinenumber: 54559
    functionLinenumberEnd: 54579
    functionName: btreeRestoreCursorPosition
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeMoveto
    - cursorHoldsMutex
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: int
    signature: int btreeRestoreCursorPosition(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54585
      start: 54581
    functionDepth: 0
    functionLinenumber: 54581
    functionLinenumberEnd: 54585
    functionName: restoreCursorPosition
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: restoreCursorPosition(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54600
      start: 54598
    functionDepth: 0
    functionLinenumber: 54598
    functionLinenumberEnd: 54600
    functionName: sqlite3BtreeCursorHasMoved
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHasMoved(BtCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54618,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54619,1
    - Dst: restoreCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54620,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - pCur
    - pDifferentRow
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( pCur!=0 )
      pos:
        line_end: 54617
        line_start: 54617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 54618
        line_start: 54618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext==0 )
      pos:
        line_end: 54627
        line_start: 54627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54632
      start: 54615
    functionDepth: 1
    functionLinenumber: 54615
    functionLinenumberEnd: 54632
    functionName: sqlite3BtreeCursorRestore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - restoreCursorPosition
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorRestore(BtCursor *pCur, int *pDifferentRow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54647,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54647,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 54646
        line_start: 54646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54656
      start: 54644
    functionDepth: 1
    functionLinenumber: 54644
    functionLinenumberEnd: 54656
    functionName: ptrmapPageno
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - PENDING_BYTE_PAGE
    - assert
    linkageType: ''
    returnType: Pgno
    signature: Pgno ptrmapPageno(BtShared *pBt, Pgno pgno)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54677,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54677,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54679,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54679,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54679,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54681,1
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54686,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54687,1
    - Dst: PTRMAP_PTROFFSET
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54692,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54697,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54698,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54700,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54701,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54702,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54705,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54710,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - pBt
    - key
    - eType
    - parent
    - pRC
    argTypes:
    - BtShared*
    - Pgno
    - u8
    - Pgno
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 54676
        line_start: 54676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==PTRMAP_ISPAGE(pBt, PENDING_BYTE_PAGE(pBt)) )
      pos:
        line_end: 54678
        line_start: 54678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->autoVacuum )
      pos:
        line_end: 54680
        line_start: 54680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset <= (int)pBt->usableSize-5 )
      pos:
        line_end: 54696
        line_start: 54696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54711
      start: 54668
    functionDepth: 13
    functionLinenumber: 54668
    functionLinenumberEnd: 54711
    functionName: ptrmapPut
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - PENDING_BYTE_PAGE
    - sqlite3PagerGetData
    - PTRMAP_PTROFFSET
    - sqlite3PagerWrite
    - put4byte
    - PTRMAP_ISPAGE
    - PTRMAP_PAGENO
    - sqlite3PagerGet
    - get4byte
    - sqlite3PagerUnref
    - TRACE
    linkageType: ''
    returnType: void
    signature: void ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent, int
      *pRC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54727,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54727,1
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54729,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54730,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54734,1
    - Dst: PTRMAP_PTROFFSET
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54736,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54738,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54741,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54742,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54744,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pBt
    - key
    - pEType
    - pPgno
    argTypes:
    - BtShared*
    - Pgno
    - u8*
    - Pgno*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 54726
        line_start: 54726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset <= (int)pBt->usableSize-5 )
      pos:
        line_end: 54740
        line_start: 54740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEType!=0 )
      pos:
        line_end: 54741
        line_start: 54741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54749
      start: 54720
    functionDepth: 10
    functionLinenumber: 54720
    functionLinenumberEnd: 54749
    functionName: ptrmapGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3PagerGetData
    - PTRMAP_PTROFFSET
    - PTRMAP_PAGENO
    - sqlite3PagerGet
    - get4byte
    - sqlite3PagerUnref
    linkageType: ''
    returnType: int
    signature: int ptrmapGet(BtShared *pBt, Pgno key, u8 *pEType, Pgno *pPgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54754
      start: 54753
    functionDepth: 0
    functionLinenumber: 54753
    functionLinenumberEnd: 54754
    functionName: ptrmapGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptrmapGet(w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54769
      start: 54767
    functionDepth: 0
    functionLinenumber: 54767
    functionLinenumberEnd: 54769
    functionName: findCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findCell(P,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54771
      start: 54769
    functionDepth: 0
    functionLinenumber: 54769
    functionLinenumberEnd: 54771
    functionName: findCellPastPtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findCellPastPtr(P,I)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54800,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54809
      start: 54779
    functionDepth: 1
    functionLinenumber: 54779
    functionLinenumberEnd: 54809
    functionName: btreeParseCellAdjustSizeForOverflow
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE btreeParseCellAdjustSizeForOverflow(\n  MemPage *pPage,
      \        /* Page containing the cell */\n  u8 *pCell,              /* Pointer
      to the cell text. */\n  CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54830,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54830,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54833,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54835,1
    - Dst: getVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 54829
        line_start: 54829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->noPayload )
      pos:
        line_end: 54831
        line_start: 54831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->childPtrSize==4 )
      pos:
        line_end: 54832
        line_start: 54832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf==0 )
      pos:
        line_end: 54830
        line_start: 54830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54843
      start: 54825
    functionDepth: 1
    functionLinenumber: 54825
    functionLinenumberEnd: 54843
    functionName: btreeParseCellPtrNoPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - UNUSED_PARAMETER
    - assert
    - getVarint
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtrNoPayload(\n  MemPage *pPage,         /* Page
      containing the cell */\n  u8 *pCell,              /* Pointer to the cell text.
      */\n  CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54853,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54853,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54858,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54901,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54902,1
    - Dst: btreeParseCellAdjustSizeForOverflow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54912,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 54852
        line_start: 54852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->noPayload==0 )
      pos:
        line_end: 54855
        line_start: 54855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKeyLeaf || pPage->noPayload )
      pos:
        line_end: 54854
        line_start: 54854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf==0 || pPage->leaf==1 )
      pos:
        line_end: 54853
        line_start: 54853
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKeyLeaf )
      pos:
        line_end: 54856
        line_start: 54856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->childPtrSize==0 )
      pos:
        line_end: 54857
        line_start: 54857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54914
      start: 54844
    functionDepth: 2
    functionLinenumber: 54844
    functionLinenumberEnd: 54914
    functionName: btreeParseCellPtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeParseCellAdjustSizeForOverflow
    - testcase
    - assert
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtr(\n  MemPage *pPage,         /* Page containing
      the cell */\n  u8 *pCell,              /* Pointer to the cell text. */\n  CellInfo
      *pInfo         /* Fill in this structure */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54923,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54923,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54924,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54925,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54926,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54940,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54941,1
    - Dst: btreeParseCellAdjustSizeForOverflow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54951,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 54922
        line_start: 54922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->noPayload==0 )
      pos:
        line_end: 54925
        line_start: 54925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKeyLeaf==0 )
      pos:
        line_end: 54924
        line_start: 54924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf==0 || pPage->leaf==1 )
      pos:
        line_end: 54923
        line_start: 54923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54953
      start: 54915
    functionDepth: 2
    functionLinenumber: 54915
    functionLinenumberEnd: 54953
    functionName: btreeParseCellPtrIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeParseCellAdjustSizeForOverflow
    - testcase
    - assert
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtrIndex(\n  MemPage *pPage,         /* Page containing
      the cell */\n  u8 *pCell,              /* Pointer to the cell text. */\n  CellInfo
      *pInfo         /* Fill in this structure */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54959,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pPage
    - iCell
    - pInfo
    argTypes:
    - MemPage*
    - int
    - CellInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54960
      start: 54954
    functionDepth: 1
    functionLinenumber: 54954
    functionLinenumberEnd: 54960
    functionName: btreeParseCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xParseCell
    - findCell
    linkageType: ''
    returnType: void
    signature: "void btreeParseCell(\n  MemPage *pPage,         /* Page containing
      the cell */\n  int iCell,              /* The cell index.  First cell is 0 */\n
      \ CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54985,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:54988,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55005,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55006,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55013,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55014,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55020,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - pPage
    - pCell
    argTypes:
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( pPage->noPayload==0 )
      pos:
        line_end: 54987
        line_start: 54987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nSize==debuginfo.nSize || CORRUPT_DB )
      pos:
        line_end: 55019
        line_start: 55019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55022
      start: 54974
    functionDepth: 1
    functionLinenumber: 54974
    functionLinenumberEnd: 55022
    functionName: cellSizePtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xParseCell
    - testcase
    - assert
    linkageType: ''
    returnType: u16
    signature: u16 cellSizePtr(MemPage *pPage, u8 *pCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55033,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55035,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55038,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pPage
    - pCell
    argTypes:
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( debuginfo.nSize==(u16)(pIter - pCell) || CORRUPT_DB )
      pos:
        line_end: 55040
        line_start: 55040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->childPtrSize==4 )
      pos:
        line_end: 55037
        line_start: 55037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55043
      start: 55023
    functionDepth: 1
    functionLinenumber: 55023
    functionLinenumberEnd: 55043
    functionName: cellSizePtrNoPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xParseCell
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: u16
    signature: u16 cellSizePtrNoPayload(MemPage *pPage, u8 *pCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55050,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPage
    - iCell
    argTypes:
    - MemPage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55051
      start: 55049
    functionDepth: 1
    functionLinenumber: 55049
    functionLinenumberEnd: 55051
    functionName: cellSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xCellSize
    - findCell
    linkageType: ''
    returnType: u16
    signature: u16 cellSize(MemPage *pPage, int iCell)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55063,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55064,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55066,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pRC
    argTypes:
    - MemPage*
    - u8*
    - int*
    assertStmts:
    - condition: ( pCell!=0 )
      pos:
        line_end: 55062
        line_start: 55062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55069
      start: 55060
    functionDepth: 14
    functionLinenumber: 55060
    functionLinenumberEnd: 55069
    functionName: ptrmapPutOvflPtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xParseCell
    - get4byte
    - ptrmapPut
    - assert
    linkageType: ''
    returnType: void
    signature: void ptrmapPutOvflPtr(MemPage *pPage, u8 *pCell, int *pRC)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55100,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55101,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55103,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55104,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55104,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55110,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55110,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55118,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55119,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55127,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55128,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55133,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55134,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55135,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55136,1
    - Dst: sqlite3PagerTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55140,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55141,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55142,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55145,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55147,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55148,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55152,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55153,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage->pBt->usableSize <= SQLITE_MAX_PAGE_SIZE )
      pos:
        line_end: 55101
        line_start: 55101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55103
        line_start: 55103
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 55100
        line_start: 55100
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nCell==get2byte(&data[hdr+3]) )
      pos:
        line_end: 55109
        line_start: 55109
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pc>=iCellFirst && pc<=iCellLast )
      pos:
        line_end: 55126
        line_start: 55126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cbrk+size<=usableSize && cbrk>=iCellFirst )
      pos:
        line_end: 55132
        line_start: 55132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 55099
        line_start: 55099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nOverflow==0 )
      pos:
        line_end: 55102
        line_start: 55102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cbrk>=iCellFirst )
      pos:
        line_end: 55146
        line_start: 55146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 55152
        line_start: 55152
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55158
      start: 55084
    functionDepth: 1
    functionLinenumber: 55084
    functionLinenumberEnd: 55158
    functionName: defragmentPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MemPage*::xCellSize
    - memset
    - get2byte
    - assert
    - sqlite3PagerTempSpace
    - memcpy
    - sqlite3PagerIswriteable
    - put2byte
    - testcase
    linkageType: ''
    returnType: int
    signature: int defragmentPage(MemPage *pPage)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55182,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55194,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55196,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55197,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55208,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55213,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - pPg
    - nByte
    - pRc
    argTypes:
    - MemPage*
    - int
    - int*
    assertStmts:
    - condition: ( pc>0 )
      pos:
        line_end: 55181
        line_start: 55181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55222
      start: 55174
    functionDepth: 1
    functionLinenumber: 55174
    functionLinenumberEnd: 55222
    functionName: pageFindSlot
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - get2byte
    - assert
    - memcpy
    - put2byte
    linkageType: ''
    returnType: u8
    signature: u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55244,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55246,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55246,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55247,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55248,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55249,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55250,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55254,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55260,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55261,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55274,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55275,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55276,1
    - Dst: pageFindSlot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55278,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55280,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55293,1
    - Dst: defragmentPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55294,1
    - Dst: get2byteNotZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55297,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55308,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55309,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 3
    argNames:
    - pPage
    - nByte
    - pIdx
    argTypes:
    - MemPage*
    - int
    - int*
    assertStmts:
    - condition: ( pPage->pBt )
      pos:
        line_end: 55244
        line_start: 55244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nOverflow==0 )
      pos:
        line_end: 55248
        line_start: 55248
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( gap<=65536 )
      pos:
        line_end: 55253
        line_start: 55253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( top<=(int)pPage->pBt->usableSize )
      pos:
        line_end: 55260
        line_start: 55260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( top+nByte <= (int)pPage->pBt->usableSize )
      pos:
        line_end: 55308
        line_start: 55308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nByte>=0 )
      pos:
        line_end: 55246
        line_start: 55246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nByte < (int)(pPage->pBt->usableSize-8) )
      pos:
        line_end: 55249
        line_start: 55249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( gap+nByte<=top )
      pos:
        line_end: 55296
        line_start: 55296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55245
        line_start: 55245
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->cellOffset == hdr + 12 - 4*pPage->leaf )
      pos:
        line_end: 55251
        line_start: 55251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 55243
        line_start: 55243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nFree>=nByte )
      pos:
        line_end: 55247
        line_start: 55247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSpace>=data && (pSpace - data)<65536 )
      pos:
        line_end: 55279
        line_start: 55279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nCell>0 || CORRUPT_DB )
      pos:
        line_end: 55292
        line_start: 55292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55312
      start: 55237
    functionDepth: 2
    functionLinenumber: 55237
    functionLinenumberEnd: 55312
    functionName: allocateSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - get2byte
    - assert
    - get2byteNotZero
    - sqlite3PagerIswriteable
    - pageFindSlot
    - put2byte
    - defragmentPage
    - testcase
    linkageType: ''
    returnType: int
    signature: int allocateSpace(MemPage *pPage, int nByte, int *pIdx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55337,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55338,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55338,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55339,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55340,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55341,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55341,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55342,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55343,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55348,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55359,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55364,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55375,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55378,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55386,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55397,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55402,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55403,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55406,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55407,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55408,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - pPage
    - iStart
    - iSize
    argTypes:
    - MemPage*
    - u16
    - u16
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55340
        line_start: 55340
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iStart<=iLast )
      pos:
        line_end: 55342
        line_start: 55342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iFreeBlk>iPtr || iFreeBlk==0 )
      pos:
        line_end: 55363
        line_start: 55363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CORRUPT_DB || iStart>=pPage->hdrOffset+6+pPage->childPtrSize )
      pos:
        line_end: 55338
        line_start: 55338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 55336
        line_start: 55336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 55337
        line_start: 55337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CORRUPT_DB || iEnd <= pPage->pBt->usableSize )
      pos:
        line_end: 55339
        line_start: 55339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSize>=4 )
      pos:
        line_end: 55341
        line_start: 55341
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55412
      start: 55327
    functionDepth: 1
    functionLinenumber: 55327
    functionLinenumberEnd: 55412
    functionName: freeSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - get2byte
    - assert
    - sqlite3PagerIswriteable
    - put2byte
    linkageType: ''
    returnType: int
    signature: int freeSpace(MemPage *pPage, u16 iStart, u16 iSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55430,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55430,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55439,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55442,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55459,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - pPage
    - flagByte
    argTypes:
    - MemPage*
    - int
    assertStmts:
    - condition: '( pPage->hdrOffset==(pPage->pgno==1 ? 100 : 0) )'
      pos:
        line_end: 55428
        line_start: 55428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PTF_LEAF == 1<<3 )
      pos:
        line_end: 55430
        line_start: 55430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55429
        line_start: 55429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PTF_LEAFDATA|PTF_INTKEY)==5 )
      pos:
        line_end: 55438
        line_start: 55438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PTF_LEAFDATA|PTF_INTKEY|PTF_LEAF)==13 )
      pos:
        line_end: 55441
        line_start: 55441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PTF_ZERODATA)==2 )
      pos:
        line_end: 55458
        line_start: 55458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (PTF_ZERODATA|PTF_LEAF)==10 )
      pos:
        line_end: 55461
        line_start: 55461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55476
      start: 55426
    functionDepth: 1
    functionLinenumber: 55426
    functionLinenumberEnd: 55476
    functionName: decodeFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: int
    signature: int decodeFlags(MemPage *pPage, int flagByte)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55489,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55491,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55491,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55492,1
    - Dst: sqlite3PagerPagenumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55492,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55493,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55493,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55494,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55494,1
    - Dst: decodeFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55514,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55515,1
    - Dst: get2byteNotZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55526,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55529,1
    - Dst: MX_CELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55530,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55534,1
    - Dst: MX_CELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55534,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55539,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55556,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55557,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55558,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55562,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55563,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55575,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55587,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55588,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage->aData == sqlite3PagerGetData(pPage->pDbPage) )
      pos:
        line_end: 55493
        line_start: 55493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->pageSize>=512 && pBt->pageSize<=65536 )
      pos:
        line_end: 55514
        line_start: 55514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 55488
        line_start: 55488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pgno==sqlite3PagerPagenumber(pPage->pDbPage) )
      pos:
        line_end: 55491
        line_start: 55491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55490
        line_start: 55490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage == sqlite3PagerGetExtra(pPage->pDbPage) )
      pos:
        line_end: 55492
        line_start: 55492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pBt->db!=0 )
      pos:
        line_end: 55489
        line_start: 55489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nCell>0 || top==usableSize || CORRUPT_DB )
      pos:
        line_end: 55538
        line_start: 55538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55612
      start: 55487
    functionDepth: 2
    functionLinenumber: 55487
    functionLinenumberEnd: 55612
    functionName: btreeInitPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3PagerPagenumber
    - MX_CELL
    - MemPage*::xCellSize
    - get2byte
    - assert
    - get2byteAligned
    - sqlite3PagerGetData
    - sqlite3PagerGetExtra
    - get2byteNotZero
    - decodeFlags
    - testcase
    linkageType: ''
    returnType: int
    signature: int btreeInitPage(MemPage *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55624,1
    - Dst: sqlite3PagerPagenumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55624,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55625,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55625,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55626,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55626,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55627,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55627,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55628,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55628,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55630,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55634,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55636,1
    - Dst: decodeFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55638,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - pPage
    - flags
    argTypes:
    - MemPage*
    - int
    assertStmts:
    - condition: ( sqlite3PagerPagenumber(pPage->pDbPage)==pPage->pgno )
      pos:
        line_end: 55623
        line_start: 55623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerGetData(pPage->pDbPage) == data )
      pos:
        line_end: 55625
        line_start: 55625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerGetExtra(pPage->pDbPage) == (void*)pPage )
      pos:
        line_end: 55624
        line_start: 55624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 55626
        line_start: 55626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 55627
        line_start: 55627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->pageSize>=512 && pBt->pageSize<=65536 )
      pos:
        line_end: 55643
        line_start: 55643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55648
      start: 55618
    functionDepth: 2
    functionLinenumber: 55618
    functionLinenumberEnd: 55648
    functionName: zeroPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3PagerPagenumber
    - memset
    - assert
    - sqlite3PagerGetData
    - sqlite3PagerGetExtra
    - decodeFlags
    - sqlite3PagerIswriteable
    - put2byte
    linkageType: ''
    returnType: void
    signature: void zeroPage(MemPage *pPage, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55656,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pDbPage
    - pgno
    - pBt
    argTypes:
    - DbPage*
    - Pgno
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55663
      start: 55655
    functionDepth: 1
    functionLinenumber: 55655
    functionLinenumberEnd: 55663
    functionName: btreePageFromDbPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerGetData
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: MemPage
    signature: MemPage *btreePageFromDbPage(DbPage *pDbPage, Pgno pgno, BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55685,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55686,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55686,1
    - Dst: sqlite3PagerAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55687,1
    - Dst: btreePageFromDbPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pBt
    - pgno
    - ppPage
    - flags
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - int
    assertStmts:
    - condition: ( flags==0 || flags==PAGER_GET_NOCONTENT || flags==PAGER_GET_READONLY
        )
      pos:
        line_end: 55684
        line_start: 55684
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 55685
        line_start: 55685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55691
      start: 55676
    functionDepth: 10
    functionLinenumber: 55676
    functionLinenumberEnd: 55691
    functionName: btreeGetPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreePageFromDbPage
    - sqlite3PagerAcquire
    - assert
    linkageType: ''
    returnType: int
    signature: "int btreeGetPage(\n  BtShared *pBt,       /* The btree */\n  Pgno
      pgno,           /* Number of the page to fetch */\n  MemPage **ppPage,    /*
      Return the page in this parameter */\n  int flags            /* PAGER_GET_NOCONTENT
      or PAGER_GET_READONLY */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55700,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55700,1
    - Dst: sqlite3PagerLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55701,1
    - Dst: btreePageFromDbPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 55699
        line_start: 55699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55706
      start: 55698
    functionDepth: 4
    functionLinenumber: 55698
    functionLinenumberEnd: 55706
    functionName: btreePageLookup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3PagerLookup
    - btreePageFromDbPage
    - assert
    linkageType: ''
    returnType: MemPage
    signature: MemPage *btreePageLookup(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55714
      start: 55712
    functionDepth: 0
    functionLinenumber: 55712
    functionLinenumberEnd: 55714
    functionName: btreePagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Pgno
    signature: Pgno btreePagecount(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55716,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55716,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55717,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 55715
        line_start: 55715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((p->pBt->nPage)&0x8000000)==0 )
      pos:
        line_end: 55716
        line_start: 55716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55719
      start: 55715
    functionDepth: 1
    functionLinenumber: 55715
    functionLinenumberEnd: 55719
    functionName: sqlite3BtreeLastPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - btreePagecount
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLastPage(Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55743,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55743,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55744,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55745,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55746,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55748,1
    - Dst: sqlite3PagerAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55752,1
    - Dst: btreePageFromDbPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55756,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55758,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55760,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55771,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55779,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 5
    argNames:
    - pBt
    - pgno
    - ppPage
    - pCur
    - bReadOnly
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - BtCursor*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 55742
        line_start: 55742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur==0 || ppPage==&pCur->apPage[pCur->iPage] )
      pos:
        line_end: 55743
        line_start: 55743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur==0 || pCur->iPage>0 )
      pos:
        line_end: 55745
        line_start: 55745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur==0 || bReadOnly==pCur->curPagerFlags )
      pos:
        line_end: 55744
        line_start: 55744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgno!=0 || rc==SQLITE_CORRUPT )
      pos:
        line_end: 55778
        line_start: 55778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55781
      start: 55734
    functionDepth: 10
    functionLinenumber: 55734
    functionLinenumberEnd: 55781
    functionName: getAndInitPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeInitPage
    - btreePageFromDbPage
    - sqlite3PagerAcquire
    - assert
    - btreePagecount
    - releasePage
    - testcase
    linkageType: ''
    returnType: int
    signature: "int getAndInitPage(\n  BtShared *pBt,                  /* The database
      file */\n  Pgno pgno,                      /* Number of the page to get */\n
      \ MemPage **ppPage,               /* Write the page pointer here */\n  BtCursor
      *pCur,                 /* Cursor to receive the page, or NULL */\n  int bReadOnly
      \                  /* True for a read-only page */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55788,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55789,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55790,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55791,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55791,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55792,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55792,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55793,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55793,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage->aData )
      pos:
        line_end: 55787
        line_start: 55787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pDbPage!=0 )
      pos:
        line_end: 55789
        line_start: 55789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerGetExtra(pPage->pDbPage) == (void*)pPage )
      pos:
        line_end: 55790
        line_start: 55790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->pBt )
      pos:
        line_end: 55788
        line_start: 55788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerGetData(pPage->pDbPage)==pPage->aData )
      pos:
        line_end: 55791
        line_start: 55791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55792
        line_start: 55792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55795
      start: 55787
    functionDepth: 9
    functionLinenumber: 55787
    functionLinenumberEnd: 55795
    functionName: releasePageNotNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3PagerGetData
    - sqlite3PagerGetExtra
    - sqlite3PagerUnrefNotNull
    linkageType: ''
    returnType: void
    signature: void releasePageNotNull(MemPage *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releasePageNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55798
      start: 55796
    functionDepth: 10
    functionLinenumber: 55796
    functionLinenumberEnd: 55798
    functionName: releasePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - releasePageNotNull
    linkageType: ''
    returnType: void
    signature: void releasePage(MemPage *pPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55815,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55817,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pBt
    - pgno
    - ppPage
    - flags
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55827
      start: 55809
    functionDepth: 11
    functionLinenumber: 55809
    functionLinenumberEnd: 55827
    functionName: btreeGetUnusedPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeGetPage
    - releasePage
    - sqlite3PagerPageRefcount
    linkageType: ''
    returnType: int
    signature: "int btreeGetUnusedPage(\n  BtShared *pBt,       /* The btree */\n
      \ Pgno pgno,           /* Number of the page to fetch */\n  MemPage **ppPage,
      \   /* Return the page in this parameter */\n  int flags            /* PAGER_GET_NOCONTENT
      or PAGER_GET_READONLY */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55840,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55841,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55841,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55843,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55843,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55845,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pData
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 55842
        line_start: 55842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerPageRefcount(pData)>0 )
      pos:
        line_end: 55840
        line_start: 55840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55855
      start: 55838
    functionDepth: 3
    functionLinenumber: 55838
    functionLinenumberEnd: 55855
    functionName: pageReinit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeInitPage
    - sqlite3PagerPageRefcount
    - assert
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: void
    signature: void pageReinit(DbPage *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55862,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55863,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55863,1
    - Dst: sqlite3InvokeBusyHandler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts:
    - condition: ( pBt->db )
      pos:
        line_end: 55861
        line_start: 55861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->db->mutex) )
      pos:
        line_end: 55862
        line_start: 55862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55865
      start: 55860
    functionDepth: 1
    functionLinenumber: 55860
    functionLinenumberEnd: 55865
    functionName: btreeInvokeBusyHandler
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3InvokeBusyHandler
    - assert
    linkageType: ''
    returnType: int
    signature: int btreeInvokeBusyHandler(void *pArg)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55912,1
    - Dst: sqlite3TempInMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55913,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55918,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55919,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55919,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55920,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55923,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55926,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55934,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55952,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55954,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55954,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55955,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55959,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55963,1
    - Dst: sqlite3OsFullPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55965,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55968,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55969,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55974,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55975,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55976,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55977,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55979,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55980,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55981,1
    - Dst: sqlite3PagerFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55981,1
    - Dst: sqlite3PagerVfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55982,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55987,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55988,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55989,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55990,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:55999,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56000,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56020,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56021,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56022,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56023,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56024,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56026,1
    - Dst: sqlite3PagerOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56031,1
    - Dst: sqlite3PagerSetMmapLimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56034,1
    - Dst: sqlite3PagerReadFileheader
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56035,1
    - Dst: sqlite3PagerSetBusyhandler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56042,1
    - Dst: sqlite3PagerIsreadonly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56047,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56078,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56079,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56082,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56085,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56091,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56093,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56093,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56095,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56102,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56103,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56105,1
    - Dst: sqlite3PagerClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56146,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56148,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56149,1
    - Dst: sqlite3BtreeSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56156,1
    - Dst: sqlite3PagerSetCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56157,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56161,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56161,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56162,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 177
    argCount: 6
    argNames:
    - pVfs
    - zFilename
    - db
    - ppBtree
    - flags
    - vfsFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3*
    - Btree**
    - int
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 55916
        line_start: 55916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVfs!=0 )
      pos:
        line_end: 55917
        line_start: 55917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 55918
        line_start: 55918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (flags&0xff)==flags )
      pos:
        line_end: 55919
        line_start: 55919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (flags & BTREE_SINGLE)==0 || isTempDb )
      pos:
        line_end: 55925
        line_start: 55925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->nRef>0 )
      pos:
        line_end: 55979
        line_start: 55979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(i64)==8 )
      pos:
        line_end: 56019
        line_start: 56019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(u16)==2 )
      pos:
        line_end: 56022
        line_start: 56022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(u32)==4 )
      pos:
        line_end: 56021
        line_start: 56021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (flags & BTREE_UNORDERED)==0 || (flags & BTREE_SINGLE)!=0 )
      pos:
        line_end: 55922
        line_start: 55922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(Pgno)==4 )
      pos:
        line_end: 56023
        line_start: 56023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->pageSize & 7)==0 )
      pos:
        line_end: 56084
        line_start: 56084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(u64)==8 )
      pos:
        line_end: 56020
        line_start: 56020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(mutexOpen) )
      pos:
        line_end: 56160
        line_start: 56160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56165
      start: 55888
    functionDepth: 8
    functionLinenumber: 55888
    functionLinenumberEnd: 56165
    functionName: sqlite3BtreeOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerClose
    - sqlite3OsFullPathname
    - MAX
    - sqlite3Malloc
    - sqlite3Strlen30
    - sqlite3_mutex_held
    - sqlite3MallocZero
    - sqlite3PagerSetPagesize
    - sqlite3PagerSetBusyhandler
    - sqlite3_free
    - memcpy
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    - sqlite3PagerIsreadonly
    - sqlite3PagerReadFileheader
    - assert
    - sqlite3BtreeSchema
    - strcmp
    - MUTEX_LOGIC
    - sqlite3TempInMemory
    - sqlite3PagerFilename
    - sqlite3PagerOpen
    - sqlite3MutexAlloc
    - sqlite3PagerSetMmapLimit
    - GLOBAL
    - sqlite3PagerSetCachesize
    - get4byte
    - sqlite3PagerVfs
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeOpen(\n  sqlite3_vfs *pVfs,      /* VFS
      to use for this b-tree */\n  const char *zFilename,  /* Name of the file containing
      the BTree database */\n  sqlite3 *db,            /* Associated database handle
      */\n  Btree **ppBtree,        /* Pointer to new Btree object written here */\n
      \ int flags,              /* Options */\n  int vfsFlags            /* Flags
      passed through to sqlite3_vfs.xOpen() */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56175,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56179,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56179,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56180,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56180,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56181,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56184,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56187,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56188,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56191,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56196,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pBt->mutex) )
      pos:
        line_end: 56178
        line_start: 56178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56205
      start: 56173
    functionDepth: 1
    functionLinenumber: 56173
    functionLinenumberEnd: 56205
    functionName: removeFromSharingList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_notheld
    - assert
    - sqlite3_mutex_free
    - ALWAYS
    - sqlite3MutexAlloc
    - GLOBAL
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: int removeFromSharingList(BtShared *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PageMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56214,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56236
      start: 56212
    functionDepth: 6
    functionLinenumber: 56212
    functionLinenumberEnd: 56236
    functionName: allocateTempSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PageMalloc
    - memset
    linkageType: ''
    returnType: void
    signature: void allocateTempSpace(BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56247
      start: 56241
    functionDepth: 5
    functionLinenumber: 56241
    functionLinenumberEnd: 56247
    functionName: freeTempSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PageFree
    linkageType: ''
    returnType: void
    signature: void freeTempSpace(BtShared *pBt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56257,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56257,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56258,1
    - Dst: sqlite3BtreeCloseCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56264,1
    - Dst: sqlite3BtreeRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56272,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56273,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56279,1
    - Dst: removeFromSharingList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56280,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56286,1
    - Dst: sqlite3PagerClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56287,1
    - Dst: BtShared*::xFreeSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56289,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56291,1
    - Dst: freeTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56292,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56293,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56297,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56298,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 56256
        line_start: 56256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->wantToLock==0 && p->locked==0 )
      pos:
        line_end: 56278
        line_start: 56278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pBt->pCursor )
      pos:
        line_end: 56285
        line_start: 56285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->wantToLock==0 )
      pos:
        line_end: 56296
        line_start: 56296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->locked==0 )
      pos:
        line_end: 56297
        line_start: 56297
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56305
      start: 56252
    functionDepth: 8
    functionLinenumber: 56252
    functionLinenumberEnd: 56305
    functionName: sqlite3BtreeClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - BtShared*::xFreeSchema
    - freeTempSpace
    - removeFromSharingList
    - sqlite3PagerClose
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3_free
    - sqlite3BtreeCloseCursor
    - sqlite3BtreeRollback
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClose(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56324,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56324,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56325,1
    - Dst: sqlite3PagerSetCachesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56326,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 56323
        line_start: 56323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56329
      start: 56322
    functionDepth: 3
    functionLinenumber: 56322
    functionLinenumberEnd: 56329
    functionName: sqlite3BtreeSetCacheSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerSetCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetCacheSize(Btree *p, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56338,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56338,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56339,1
    - Dst: sqlite3PagerSetMmapLimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56340,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - szMmap
    argTypes:
    - Btree*
    - sqlite3_int64
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 56337
        line_start: 56337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56343
      start: 56336
    functionDepth: 3
    functionLinenumber: 56336
    functionLinenumberEnd: 56343
    functionName: sqlite3BtreeSetMmapLimit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerSetMmapLimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetMmapLimit(Btree *p, sqlite3_int64 szMmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56360,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56360,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56361,1
    - Dst: sqlite3PagerSetFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56362,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pgFlags
    argTypes:
    - Btree*
    - unsigned
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 56359
        line_start: 56359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56365
      start: 56355
    functionDepth: 2
    functionLinenumber: 56355
    functionLinenumberEnd: 56365
    functionName: sqlite3BtreeSetPagerFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerSetFlags
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeSetPagerFlags(\n  Btree *p,              /*
      The btree to set the safety level on */\n  unsigned pgFlags       /* Various
      PAGER_* flags */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56375,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56375,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56376,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56377,1
    - Dst: sqlite3PagerNosync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56378,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 56374
        line_start: 56374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt && pBt->pPager )
      pos:
        line_end: 56376
        line_start: 56376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56381
      start: 56372
    functionDepth: 2
    functionLinenumber: 56372
    functionLinenumberEnd: 56381
    functionName: sqlite3BtreeSyncDisabled
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3PagerNosync
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSyncDisabled(Btree *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56406,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56407,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56418,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56421,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56422,1
    - Dst: freeTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56424,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56426,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56429,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - p
    - pageSize
    - nReserve
    - iFix
    argTypes:
    - Btree*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nReserve>=-1 && nReserve<=255 )
      pos:
        line_end: 56405
        line_start: 56405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nReserve>=0 && nReserve<=255 )
      pos:
        line_end: 56417
        line_start: 56417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pageSize & 7)==0 )
      pos:
        line_end: 56420
        line_start: 56420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pBt->pCursor )
      pos:
        line_end: 56421
        line_start: 56421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56431
      start: 56403
    functionDepth: 7
    functionLinenumber: 56403
    functionLinenumberEnd: 56431
    functionName: sqlite3BtreeSetPageSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - freeTempSpace
    - sqlite3PagerSetPagesize
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetPageSize(Btree *p, int pageSize, int
      nReserve, int iFix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56438
      start: 56436
    functionDepth: 0
    functionLinenumber: 56436
    functionLinenumberEnd: 56438
    functionName: sqlite3BtreeGetPageSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetPageSize(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56453,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pBt->mutex) )
      pos:
        line_end: 56452
        line_start: 56452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56456
      start: 56451
    functionDepth: 1
    functionLinenumber: 56451
    functionLinenumberEnd: 56456
    functionName: sqlite3BtreeGetReserveNoMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetReserveNoMutex(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56469,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56470,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56476
      start: 56467
    functionDepth: 2
    functionLinenumber: 56467
    functionLinenumberEnd: 56476
    functionName: sqlite3BtreeGetOptimalReserve
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3BtreeGetReserveNoMutex
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetOptimalReserve(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56486,1
    - Dst: sqlite3PagerMaxPageCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56487,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56490
      start: 56484
    functionDepth: 2
    functionLinenumber: 56484
    functionLinenumberEnd: 56490
    functionName: sqlite3BtreeMaxPageCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3PagerMaxPageCount
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeMaxPageCount(Btree *p, int mxPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56500,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - newFlag
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56508
      start: 56497
    functionDepth: 2
    functionLinenumber: 56497
    functionLinenumberEnd: 56508
    functionName: sqlite3BtreeSecureDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSecureDelete(Btree *p, int newFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56524,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - autoVacuum
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56534
      start: 56516
    functionDepth: 2
    functionLinenumber: 56516
    functionLinenumberEnd: 56534
    functionName: sqlite3BtreeSetAutoVacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56545,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56554
      start: 56540
    functionDepth: 2
    functionLinenumber: 56540
    functionLinenumberEnd: 56554
    functionName: sqlite3BtreeGetAutoVacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetAutoVacuum(Btree *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56573,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56574,1
    - Dst: sqlite3PagerSharedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56575,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56577,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56583,1
    - Dst: sqlite3PagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56584,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56585,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56596,1
    - Dst: sqlite3PagerOpenWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56625,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56629,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56642,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56657,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56673,1
    - Dst: freeTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56676,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56677,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56694,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56695,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56721,1
    - Dst: MX_CELL_SIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56721,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56727,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( (pageSize & 7)==0 )
      pos:
        line_end: 56656
        line_start: 56656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 56572
        line_start: 56572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->pPage1==0 )
      pos:
        line_end: 56573
        line_start: 56573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->maxLeaf + 23 <= MX_CELL_SIZE(pBt) )
      pos:
        line_end: 56720
        line_start: 56720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56730
      start: 56566
    functionDepth: 11
    functionLinenumber: 56566
    functionLinenumberEnd: 56730
    functionName: lockBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memcmp
    - freeTempSpace
    - sqlite3PagerSharedLock
    - sqlite3PagerSetPagesize
    - assert
    - sqlite3PagerPagecount
    - sqlite3PagerOpenWal
    - releasePage
    - MX_CELL_SIZE
    - btreeGetPage
    - get4byte
    linkageType: ''
    returnType: int
    signature: int lockBtree(BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pBt
    - wrOnly
    argTypes:
    - BtShared*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56753
      start: 56745
    functionDepth: 0
    functionLinenumber: 56745
    functionLinenumberEnd: 56753
    functionName: countValidCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countValidCursors(BtShared *pBt, int wrOnly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56765,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56765,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56766,1
    - Dst: countValidCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56770,1
    - Dst: sqlite3PagerRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56770,1
    - Dst: releasePageNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 56764
        line_start: 56764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( countValidCursors(pBt,0)==0 || pBt->inTransaction>TRANS_NONE )
      pos:
        line_end: 56765
        line_start: 56765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage1->aData )
      pos:
        line_end: 56768
        line_start: 56768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerRefcount(pBt->pPager)==1 )
      pos:
        line_end: 56769
        line_start: 56769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56774
      start: 56764
    functionDepth: 10
    functionLinenumber: 56764
    functionLinenumberEnd: 56774
    functionName: unlockBtreeIfUnused
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - releasePageNotNull
    - sqlite3PagerRefcount
    - countValidCursors
    linkageType: ''
    returnType: void
    signature: void unlockBtreeIfUnused(BtShared *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56786,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56786,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56791,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56793,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56795,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56796,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56801,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56806,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56807,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56811,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56812,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 56785
        line_start: 56785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pP1!=0 )
      pos:
        line_end: 56790
        line_start: 56790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(zMagicHeader)==16 )
      pos:
        line_end: 56795
        line_start: 56795
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->usableSize<=pBt->pageSize && pBt->usableSize+255>=pBt->pageSize)
      pos:
        line_end: 56800
        line_start: 56800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->incrVacuum==1 || pBt->incrVacuum==0 )
      pos:
        line_end: 56810
        line_start: 56810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->autoVacuum==1 || pBt->autoVacuum==0 )
      pos:
        line_end: 56809
        line_start: 56809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56818
      start: 56781
    functionDepth: 13
    functionLinenumber: 56781
    functionLinenumberEnd: 56818
    functionName: newDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - zeroPage
    - memset
    - assert
    - sqlite3PagerWrite
    - memcpy
    - put4byte
    linkageType: ''
    returnType: int
    signature: int newDatabase(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56827,1
    - Dst: newDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56829,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56832
      start: 56825
    functionDepth: 14
    functionLinenumber: 56825
    functionLinenumberEnd: 56832
    functionName: sqlite3BtreeNewDb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - newDatabase
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeNewDb(Btree *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56874,1
    - Dst: btreeIntegrity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56875,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56884,1
    - Dst: IfNotOmitAV
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56884,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56911,1
    - Dst: querySharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56920,1
    - Dst: lockBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56933,1
    - Dst: sqlite3PagerBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56939,1
    - Dst: sqlite3TempInMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56939,1
    - Dst: newDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56941,1
    - Dst: unlockBtreeIfUnused
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56947,1
    - Dst: btreeInvokeBusyHandler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56957,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56971,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56983,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56984,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56986,1
    - Dst: sqlite3PagerOpenSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:56999,1
    - Dst: btreeIntegrity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57002,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57003,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 90
    argCount: 2
    argNames:
    - p
    - wrflag
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( p->lock.pBtree==p && p->lock.iTable==1 )
      pos:
        line_end: 56956
        line_start: 56956
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0
        )
      pos:
        line_end: 56883
        line_start: 56883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pBt->pWriter )
      pos:
        line_end: 56970
        line_start: 56970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57005
      start: 56869
    functionDepth: 14
    functionLinenumber: 56869
    functionLinenumberEnd: 57005
    functionName: sqlite3BtreeBeginTrans
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unlockBtreeIfUnused
    - newDatabase
    - sqlite3TempInMemory
    - assert
    - sqlite3BtreeEnter
    - IfNotOmitAV
    - querySharedCacheTableLock
    - btreeInvokeBusyHandler
    - btreeIntegrity
    - sqlite3BtreeLeave
    - sqlite3PagerWrite
    - put4byte
    - sqlite3PagerOpenSavepoint
    - sqlite3PagerBegin
    - lockBtree
    - get4byte
    - sqlite3ConnectionBlocked
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeBeginTrans(Btree *p, int wrflag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57022,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57022,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57023,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57030,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57032,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57035,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57036,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57041,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 57021
        line_start: 57021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57048
      start: 57014
    functionDepth: 15
    functionLinenumber: 57014
    functionLinenumberEnd: 57048
    functionName: setChildPtrmaps
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeInitPage
    - ptrmapPutOvflPtr
    - assert
    - findCell
    - ptrmapPut
    - get4byte
    linkageType: ''
    returnType: int
    signature: int setChildPtrmaps(MemPage *pPage)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57065,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57065,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57066,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57066,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57069,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57072,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57079,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57084,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57087,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57090,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57092,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57096,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57097,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57105,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57108,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - pPage
    - iFrom
    - iTo
    - eType
    argTypes:
    - MemPage*
    - Pgno
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 57064
        line_start: 57064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 57065
        line_start: 57065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57114
      start: 57064
    functionDepth: 3
    functionLinenumber: 57064
    functionLinenumberEnd: 57114
    functionName: modifyPagePointer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreeInitPage
    - assert
    - findCell
    - MemPage*::xParseCell
    - put4byte
    - sqlite3PagerIswriteable
    - get4byte
    linkageType: ''
    returnType: int
    signature: int modifyPagePointer(MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57139,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57141,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57141,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57142,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57145,1
    - Dst: sqlite3PagerMovepage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57147,1
    - Dst: setChildPtrmaps
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57162,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57167,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57169,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57181,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57185,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57187,1
    - Dst: modifyPagePointer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57190,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57191,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57193,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - pBt
    - pDbPage
    - eType
    - iPtrPage
    - iFreePage
    - isCommit
    argTypes:
    - BtShared*
    - MemPage*
    - u8
    - Pgno
    - Pgno
    - int
    assertStmts:
    - condition: "( eType==PTRMAP_OVERFLOW2 || eType==PTRMAP_OVERFLOW1 || \n      eType==PTRMAP_BTREE
        || eType==PTRMAP_ROOTPAGE )"
      pos:
        line_end: 57139
        line_start: 57138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDbPage->pBt==pBt )
      pos:
        line_end: 57141
        line_start: 57141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 57140
        line_start: 57140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57197
      start: 57126
    functionDepth: 16
    functionLinenumber: 57126
    functionLinenumberEnd: 57197
    functionName: relocatePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setChildPtrmaps
    - assert
    - sqlite3PagerWrite
    - releasePage
    - sqlite3PagerMovepage
    - ptrmapPut
    - modifyPagePointer
    - btreeGetPage
    - get4byte
    - TRACE
    linkageType: ''
    returnType: int
    signature: "int relocatePage(\n  BtShared *pBt,           /* Btree */\n  MemPage
      *pDbPage,        /* Open page to move */\n  u8 eType,                /* Pointer
      map 'type' entry for pDbPage */\n  Pgno iPtrPage,           /* Pointer map 'page-no'
      entry for pDbPage */\n  Pgno iFreePage,          /* The location to move pDbPage
      to */\n  int isCommit             /* isCommit flag passed to sqlite3PagerMovepage
      */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57223,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57223,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57224,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57226,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57226,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57230,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57235,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57256,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57257,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57265,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57283,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57285,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57290,1
    - Dst: relocatePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57292,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57293,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57303,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57303,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 4
    argNames:
    - pBt
    - nFin
    - iLastPg
    - bCommit
    argTypes:
    - BtShared*
    - Pgno
    - Pgno
    - int
    assertStmts:
    - condition: ( iFreePg<iLastPg )
      pos:
        line_end: 57289
        line_start: 57289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLastPg>nFin )
      pos:
        line_end: 57223
        line_start: 57223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iFreePg==iLastPg )
      pos:
        line_end: 57255
        line_start: 57255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 57222
        line_start: 57222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57308
      start: 57219
    functionDepth: 17
    functionLinenumber: 57219
    functionLinenumberEnd: 57308
    functionName: incrVacuumStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - PENDING_BYTE_PAGE
    - releasePage
    - relocatePage
    - PTRMAP_ISPAGE
    - allocateBtreePage
    - btreeGetPage
    - ptrmapGet
    - get4byte
    linkageType: ''
    returnType: int
    signature: int incrVacuumStep(BtShared *pBt, Pgno nFin, Pgno iLastPg, int bCommit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57321,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57323,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57323,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57326,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pBt
    - nOrig
    - nFree
    argTypes:
    - BtShared*
    - Pgno
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57331
      start: 57315
    functionDepth: 1
    functionLinenumber: 57315
    functionLinenumberEnd: 57331
    functionName: finalDbSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - PENDING_BYTE_PAGE
    - PTRMAP_ISPAGE
    - PTRMAP_PAGENO
    linkageType: ''
    returnType: Pgno
    signature: Pgno finalDbSize(BtShared *pBt, Pgno nOrig, Pgno nFree)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57345,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57346,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57350,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57351,1
    - Dst: finalDbSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57352,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57357,1
    - Dst: invalidateAllOverflowCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57359,1
    - Dst: incrVacuumStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57360,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57363,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57364,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pBt->inTransaction==TRANS_WRITE && p->inTrans==TRANS_WRITE )
      pos:
        line_end: 57345
        line_start: 57345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57372
      start: 57341
    functionDepth: 18
    functionLinenumber: 57341
    functionLinenumberEnd: 57372
    functionName: sqlite3BtreeIncrVacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - incrVacuumStep
    - saveAllCursors
    - assert
    - sqlite3BtreeEnter
    - btreePagecount
    - finalDbSize
    - invalidateAllOverflowCache
    - sqlite3BtreeLeave
    - sqlite3PagerWrite
    - put4byte
    - get4byte
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIncrVacuum(Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57386,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57388,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57388,1
    - Dst: invalidateAllOverflowCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57389,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57390,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57397,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57398,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57398,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57406,1
    - Dst: finalDbSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57407,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57410,1
    - Dst: incrVacuumStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57413,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57416,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57417,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57418,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57419,1
    - Dst: sqlite3PagerRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57428,1
    - Dst: sqlite3PagerRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57428,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: (pBt->autoVacuum)
      pos:
        line_end: 57389
        line_start: 57389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nRef>=sqlite3PagerRefcount(pPager) )
      pos:
        line_end: 57427
        line_start: 57427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 57387
        line_start: 57387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57430
      start: 57383
    functionDepth: 18
    functionLinenumber: 57383
    functionLinenumberEnd: 57430
    functionName: autoVacuumCommit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - incrVacuumStep
    - saveAllCursors
    - assert
    - btreePagecount
    - PENDING_BYTE_PAGE
    - finalDbSize
    - sqlite3PagerWrite
    - put4byte
    - sqlite3PagerRollback
    - get4byte
    - PTRMAP_ISPAGE
    - sqlite3PagerRefcount
    - invalidateAllOverflowCache
    linkageType: ''
    returnType: int
    signature: int autoVacuumCommit(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57434
      start: 57433
    functionDepth: 0
    functionLinenumber: 57433
    functionLinenumberEnd: 57434
    functionName: setChildPtrmaps
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setChildPtrmaps(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57466,1
    - Dst: autoVacuumCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57469,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57471,1
    - Dst: sqlite3PagerTruncateImage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57476,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57479,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p
    - zMaster
    argTypes:
    - Btree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57483
      start: 57462
    functionDepth: 19
    functionLinenumber: 57462
    functionLinenumberEnd: 57483
    functionName: sqlite3BtreeCommitPhaseOne
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerTruncateImage
    - sqlite3PagerCommitPhaseOne
    - sqlite3BtreeLeave
    - autoVacuumCommit
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommitPhaseOne(Btree *p, const char *zMaster)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57492,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57492,1
    - Dst: downgradeAllSharedCacheTableLocks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57501,1
    - Dst: clearAllSharedCacheTableLocks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57509,1
    - Dst: unlockBtreeIfUnused
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57519,1
    - Dst: btreeIntegrity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 57491
        line_start: 57491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57523
      start: 57489
    functionDepth: 11
    functionLinenumber: 57489
    functionLinenumberEnd: 57523
    functionName: btreeEndTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - unlockBtreeIfUnused
    - assert
    - downgradeAllSharedCacheTableLocks
    - btreeIntegrity
    - sqlite3BtreeHoldsMutex
    - clearAllSharedCacheTableLocks
    linkageType: ''
    returnType: void
    signature: void btreeEndTransaction(Btree *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57554,1
    - Dst: btreeIntegrity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57555,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57564,1
    - Dst: sqlite3PagerCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57565,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57567,1
    - Dst: btreeClearHasContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57572,1
    - Dst: btreeEndTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57575,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - bCleanup
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 57562
        line_start: 57562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->nTransaction>0 )
      pos:
        line_end: 57563
        line_start: 57563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57578
      start: 57551
    functionDepth: 12
    functionLinenumber: 57551
    functionLinenumberEnd: 57578
    functionName: sqlite3BtreeCommitPhaseTwo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - btreeIntegrity
    - btreeClearHasContent
    - btreeEndTransaction
    - sqlite3PagerCommitPhaseTwo
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommitPhaseTwo(Btree *p, int bCleanup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57585,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57586,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57588,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57592
      start: 57583
    functionDepth: 20
    functionLinenumber: 57583
    functionLinenumberEnd: 57592
    functionName: sqlite3BtreeCommit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3BtreeCommitPhaseOne
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommit(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57612
      start: 57605
    functionDepth: 0
    functionLinenumber: 57605
    functionLinenumberEnd: 57612
    functionName: countWriteCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countWriteCursors(BtShared *pBt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57645,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57647,1
    - Dst: saveCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57652,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57654,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57659,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57664,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57668,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - pBtree
    - errCode
    - writeOnly
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( (writeOnly==0 || writeOnly==1) && BTCF_WriteFlag==1 )
      pos:
        line_end: 57644
        line_start: 57644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57671
      start: 57641
    functionDepth: 11
    functionLinenumber: 57641
    functionLinenumberEnd: 57671
    functionName: sqlite3BtreeTripAllCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeClearCursor
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeTripAllCursors
    - sqlite3BtreeLeave
    - releasePage
    - saveCursorPosition
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeTripAllCursors(Btree *pBtree, int errCode,
      int writeOnly)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57689,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57690,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57691,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57693,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57699,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57700,1
    - Dst: btreeIntegrity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57703,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57708,1
    - Dst: sqlite3PagerRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57709,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57717,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57718,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57719,1
    - Dst: sqlite3PagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57720,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57721,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57723,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57725,1
    - Dst: countValidCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57725,1
    - Dst: btreeClearHasContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57727,1
    - Dst: btreeEndTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57730,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57731,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - p
    - tripCode
    - writeOnly
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( writeOnly==1 || writeOnly==0 )
      pos:
        line_end: 57688
        line_start: 57688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || (writeOnly==0 && rc2==SQLITE_OK) )
      pos:
        line_end: 57699
        line_start: 57699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TRANS_WRITE==pBt->inTransaction )
      pos:
        line_end: 57707
        line_start: 57707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( tripCode==SQLITE_ABORT_ROLLBACK || tripCode==SQLITE_OK )
      pos:
        line_end: 57689
        line_start: 57689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( countValidCursors(pBt, 1)==0 )
      pos:
        line_end: 57724
        line_start: 57724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57733
      start: 57684
    functionDepth: 12
    functionLinenumber: 57684
    functionLinenumberEnd: 57733
    functionName: sqlite3BtreeRollback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - saveAllCursors
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeTripAllCursors
    - sqlite3BtreeLeave
    - btreeIntegrity
    - sqlite3PagerPagecount
    - btreeClearHasContent
    - sqlite3PagerRollback
    - btreeEndTransaction
    - releasePage
    - btreeGetPage
    - get4byte
    - testcase
    - countValidCursors
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeRollback(Btree *p, int tripCode, int writeOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57758,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57759,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57760,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57761,1
    - Dst: sqlite3PagerOpenSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57767,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iStatement
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 57756
        line_start: 57756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iStatement>p->db->nSavepoint )
      pos:
        line_end: 57759
        line_start: 57759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iStatement>0 )
      pos:
        line_end: 57758
        line_start: 57758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 57757
        line_start: 57757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 57760
        line_start: 57760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57770
      start: 57753
    functionDepth: 8
    functionLinenumber: 57753
    functionLinenumberEnd: 57770
    functionName: sqlite3BtreeBeginStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3PagerOpenSavepoint
    - assert
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeBeginStmt(Btree *p, int iStatement)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57788,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57789,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57790,1
    - Dst: sqlite3PagerSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57791,1
    - Dst: newDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57796,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57797,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57802,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - p
    - op
    - iSavepoint
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 57787
        line_start: 57787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSavepoint>=0 || (iSavepoint==-1 && op==SAVEPOINT_ROLLBACK) )
      pos:
        line_end: 57788
        line_start: 57788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->nPage>0 )
      pos:
        line_end: 57801
        line_start: 57801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57807
      start: 57784
    functionDepth: 14
    functionLinenumber: 57784
    functionLinenumberEnd: 57807
    functionName: sqlite3BtreeSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - newDatabase
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerSavepoint
    - get4byte
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSavepoint(Btree *p, int op, int iSavepoint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57851,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57851,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57858,1
    - Dst: hasSharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57858,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57859,1
    - Dst: hasReadConflicts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57859,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57862,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57865,1
    - Dst: allocateTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57868,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57871,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57883,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - p
    - iTable
    - wrFlag
    - pKeyInfo
    - pCur
    argTypes:
    - Btree*
    - int
    - int
    - struct KeyInfo*
    - BtCursor*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 57850
        line_start: 57850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hasSharedCacheTableLock(p, iTable, pKeyInfo!=0, wrFlag+1) )
      pos:
        line_end: 57857
        line_start: 57857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 || wrFlag==1 )
      pos:
        line_end: 57851
        line_start: 57851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 || !hasReadConflicts(p, iTable) )
      pos:
        line_end: 57858
        line_start: 57858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans>TRANS_NONE )
      pos:
        line_end: 57861
        line_start: 57861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 || p->inTrans==TRANS_WRITE )
      pos:
        line_end: 57862
        line_start: 57862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->pPage1 && pBt->pPage1->aData )
      pos:
        line_end: 57863
        line_start: 57863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 )
      pos:
        line_end: 57871
        line_start: 57871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 || wrFlag==BTCF_WriteFlag )
      pos:
        line_end: 57882
        line_start: 57882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wrFlag==0 || (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 57864
        line_start: 57864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57898
      start: 57841
    functionDepth: 7
    functionLinenumber: 57841
    functionLinenumberEnd: 57898
    functionName: btreeCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - allocateTempSpace
    - hasReadConflicts
    - btreePagecount
    - hasSharedCacheTableLock
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: int
    signature: "int btreeCursor(\n  Btree *p,                              /* The
      btree */\n  int iTable,                            /* Root page of table to
      open */\n  int wrFlag,                            /* 1 to write. 0 read-only
      */\n  struct KeyInfo *pKeyInfo,              /* First arg to comparison function
      */\n  BtCursor *pCur                         /* Space for new cursor */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57910,1
    - Dst: btreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57911,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - p
    - iTable
    - wrFlag
    - pKeyInfo
    - pCur
    argTypes:
    - Btree*
    - int
    - int
    - struct KeyInfo*
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57915
      start: 57899
    functionDepth: 8
    functionLinenumber: 57899
    functionLinenumberEnd: 57915
    functionName: sqlite3BtreeCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - btreeCursor
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeCursor(\n  Btree *p,                                   /*
      The btree */\n  int iTable,                                 /* Root page of
      table to open */\n  int wrFlag,                                 /* 1 to write.
      0 read-only */\n  struct KeyInfo *pKeyInfo,                   /* First arg to
      xCompare() */\n  BtCursor *pCur                              /* Write new cursor
      here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57927
      start: 57925
    functionDepth: 1
    functionLinenumber: 57925
    functionLinenumberEnd: 57927
    functionName: sqlite3BtreeCursorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57939
      start: 57937
    functionDepth: 0
    functionLinenumber: 57937
    functionLinenumberEnd: 57939
    functionName: sqlite3BtreeCursorZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorZero(BtCursor *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57950,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57952,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57963,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57966,1
    - Dst: unlockBtreeIfUnused
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57968,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57969,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57971,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( pBt->pCursor!=0 )
      pos:
        line_end: 57951
        line_start: 57951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57974
      start: 57945
    functionDepth: 11
    functionLinenumber: 57945
    functionLinenumberEnd: 57974
    functionName: sqlite3BtreeCloseCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - unlockBtreeIfUnused
    - sqlite3BtreeClearCursor
    - assert
    - sqlite3BtreeEnter
    - sqlite3_free
    - sqlite3BtreeLeave
    - ALWAYS
    - releasePage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCloseCursor(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57988,1
    - Dst: btreeParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57989,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57990,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( CORRUPT_DB || memcmp(&info, &pCur->info, sizeof(info))==0 )
      pos:
        line_end: 57989
        line_start: 57989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57991
      start: 57985
    functionDepth: 2
    functionLinenumber: 57985
    functionLinenumberEnd: 57991
    functionName: assertCellInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memset
    - assert
    - btreeParseCell
    linkageType: ''
    returnType: void
    signature: void assertCellInfo(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: btreeParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:57999,1
    - Dst: assertCellInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58003
      start: 57995
    functionDepth: 3
    functionLinenumber: 57995
    functionLinenumberEnd: 58003
    functionName: getCellInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertCellInfo
    - btreeParseCell
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE getCellInfo(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58013
      start: 58011
    functionDepth: 0
    functionLinenumber: 58011
    functionLinenumberEnd: 58013
    functionName: sqlite3BtreeCursorIsValid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorIsValid(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58029,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58030,1
    - Dst: getCellInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pCur
    - pSize
    argTypes:
    - BtCursor*
    - i64*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58028
        line_start: 58028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58029
        line_start: 58029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58034
      start: 58028
    functionDepth: 4
    functionLinenumber: 58028
    functionLinenumberEnd: 58034
    functionName: sqlite3BtreeKeySize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - cursorHoldsMutex
    - getCellInfo
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeKeySize(BtCursor *pCur, i64 *pSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58049,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58049,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58050,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58051,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58052,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58053,1
    - Dst: getCellInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - pCur
    - pSize
    argTypes:
    - BtCursor*
    - u32*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58048
        line_start: 58048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>=0 )
      pos:
        line_end: 58050
        line_start: 58050
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage<BTCURSOR_MAX_DEPTH )
      pos:
        line_end: 58051
        line_start: 58051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58049
        line_start: 58049
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage]->intKeyLeaf==1 )
      pos:
        line_end: 58052
        line_start: 58052
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58057
      start: 58048
    functionDepth: 4
    functionLinenumber: 58048
    functionLinenumberEnd: 58057
    functionName: sqlite3BtreeDataSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cursorHoldsMutex
    - getCellInfo
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeDataSize(BtCursor *pCur, u32 *pSize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58088,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58088,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58089,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58103,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58103,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58107,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58117,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58120,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58122,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - pBt
    - ovfl
    - ppPage
    - pPgnoNext
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - Pgno*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 58087
        line_start: 58087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pPgnoNext)
      pos:
        line_end: 58088
        line_start: 58088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( next==0 || rc==SQLITE_DONE )
      pos:
        line_end: 58116
        line_start: 58116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pPage==0 )
      pos:
        line_end: 58119
        line_start: 58119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58133
      start: 58078
    functionDepth: 11
    functionLinenumber: 58078
    functionLinenumberEnd: 58133
    functionName: getOverflowPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - btreePagecount
    - PENDING_BYTE_PAGE
    - releasePage
    - PTRMAP_ISPAGE
    - btreeGetPage
    - ptrmapGet
    - get4byte
    linkageType: ''
    returnType: int
    signature: "int getOverflowPage(\n  BtShared *pBt,               /* The database
      file */\n  Pgno ovfl,                   /* Current overflow page number */\n
      \ MemPage **ppPage,            /* OUT: MemPage handle (may be NULL) */\n  Pgno
      *pPgnoNext              /* OUT: Next overflow page number */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58155,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58159,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - pPayload
    - pBuf
    - nByte
    - eOp
    - pDbPage
    argTypes:
    - void*
    - void*
    - int
    - int
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58165
      start: 58146
    functionDepth: 13
    functionLinenumber: 58146
    functionLinenumberEnd: 58165
    functionName: copyPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3PagerWrite
    linkageType: ''
    returnType: int
    signature: "int copyPayload(\n  void *pPayload,           /* Pointer to page data
      */\n  void *pBuf,               /* Pointer to buffer */\n  int nByte,                /*
      Number of bytes to copy */\n  int eOp,                  /* 0 -> copy from page,
      1 -> copy to page */\n  DbPage *pDbPage           /* Page containing pPayload
      */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58214,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58215,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58216,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58217,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58218,1
    - Dst: getCellInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58225,1
    - Dst: copyPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58238,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58251,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58264,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58275,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58312,1
    - Dst: getOverflowPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58316,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58350,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58356,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58357,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58358,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58359,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58360,1
    - Dst: sqlite3PagerAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58366,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58370,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58371,1
    - Dst: copyPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58372,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58373,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 5
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    - eOp
    argTypes:
    - BtCursor*
    - u32
    - u32
    - unsigned char*
    - int
    assertStmts:
    - condition: ( eOp!=2 || offset==0 )
      pos:
        line_end: 58217
        line_start: 58217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pBtree->db==pBt->db )
      pos:
        line_end: 58311
        line_start: 58311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aWrite>=pBufStart )
      pos:
        line_end: 58355
        line_start: 58355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage )
      pos:
        line_end: 58213
        line_start: 58213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eOp!=2 )
      pos:
        line_end: 58309
        line_start: 58309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58216
        line_start: 58216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->curFlags & BTCF_ValidOvfl )
      pos:
        line_end: 58310
        line_start: 58310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pPage->nCell )
      pos:
        line_end: 58215
        line_start: 58215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58214
        line_start: 58214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( offset+amt <= pCur->info.nPayload )
      pos:
        line_end: 58224
        line_start: 58224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (!pCur->aOverflow[iIdx] || pCur->aOverflow[iIdx]==nextPage)
      pos:
        line_end: 58295
        line_start: 58295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58387
      start: 58197
    functionDepth: 14
    functionLinenumber: 58197
    functionLinenumberEnd: 58387
    functionName: accessPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3PagerAcquire
    - assert
    - sqlite3PagerGetData
    - cursorHoldsMutex
    - getOverflowPage
    - sqlite3PagerFile
    - sqlite3Realloc
    - memcpy
    - get4byte
    - sqlite3OsRead
    - copyPayload
    - getCellInfo
    - sqlite3PagerUnref
    linkageType: ''
    returnType: int
    signature: "int accessPayload(\n  BtCursor *pCur,      /* Cursor pointing to entry
      to read from */\n  u32 offset,          /* Begin reading this far into payload
      */\n  u32 amt,             /* Read this many bytes */\n  unsigned char *pBuf,
      /* Write the bytes into this buffer */ \n  int eOp              /* zero to read.
      non-zero to write. */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58402,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58402,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58403,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58404,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58405,1
    - Dst: accessPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58401
        line_start: 58401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>=0 && pCur->apPage[pCur->iPage] )
      pos:
        line_end: 58403
        line_start: 58403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell )
      pos:
        line_end: 58404
        line_start: 58404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58402
        line_start: 58402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58407
      start: 58401
    functionDepth: 15
    functionLinenumber: 58401
    functionLinenumberEnd: 58407
    functionName: sqlite3BtreeKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - cursorHoldsMutex
    - accessPayload
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeKey(BtCursor *pCur, u32 offset, u32 amt,
      void *pBuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58427,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58427,1
    - Dst: restoreCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58428,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58430,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58432,1
    - Dst: accessPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58426
        line_start: 58426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58429
        line_start: 58429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>=0 && pCur->apPage[pCur->iPage] )
      pos:
        line_end: 58430
        line_start: 58430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell )
      pos:
        line_end: 58431
        line_start: 58431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58436
      start: 58418
    functionDepth: 15
    functionLinenumber: 58418
    functionLinenumberEnd: 58436
    functionName: sqlite3BtreeData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cursorHoldsMutex
    - restoreCursorPosition
    - accessPayload
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeData(BtCursor *pCur, u32 offset, u32 amt,
      void *pBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58462,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58463,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58464,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58464,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58465,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58465,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58466,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58467,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58468,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pCur
    - pAmt
    argTypes:
    - BtCursor*
    - u32*
    assertStmts:
    - condition: ( pCur!=0 && pCur->iPage>=0 && pCur->apPage[pCur->iPage])
      pos:
        line_end: 58461
        line_start: 58461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 58463
        line_start: 58463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58462
        line_start: 58462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58464
        line_start: 58464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell )
      pos:
        line_end: 58465
        line_start: 58465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.nSize>0 )
      pos:
        line_end: 58466
        line_start: 58466
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.pPayload>pCur->apPage[pCur->iPage]->aData || CORRUPT_DB
        )
      pos:
        line_end: 58467
        line_start: 58467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.pPayload<pCur->apPage[pCur->iPage]->aDataEnd ||CORRUPT_DB)
      pos:
        line_end: 58468
        line_start: 58468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58474
      start: 58457
    functionDepth: 2
    functionLinenumber: 58457
    functionLinenumberEnd: 58474
    functionName: fetchPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - cursorHoldsMutex
    - assert
    linkageType: ''
    returnType: void
    signature: "void *fetchPayload(\n  BtCursor *pCur,      /* Cursor pointing to
      entry to read from */\n  u32 *pAmt            /* Write the number of available
      bytes here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fetchPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCur
    - pAmt
    argTypes:
    - BtCursor*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58493
      start: 58491
    functionDepth: 3
    functionLinenumber: 58491
    functionLinenumberEnd: 58493
    functionName: sqlite3BtreeKeyFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fetchPayload
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeKeyFetch(BtCursor *pCur, u32 *pAmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fetchPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCur
    - pAmt
    argTypes:
    - BtCursor*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58496
      start: 58494
    functionDepth: 3
    functionLinenumber: 58494
    functionLinenumberEnd: 58496
    functionName: sqlite3BtreeDataFetch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fetchPayload
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeDataFetch(BtCursor *pCur, u32 *pAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58511,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58512,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58513,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58514,1
    - Dst: getAndInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - pCur
    - newPgno
    argTypes:
    - BtCursor*
    - u32
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58510
        line_start: 58510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage<BTCURSOR_MAX_DEPTH )
      pos:
        line_end: 58512
        line_start: 58512
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>=0 )
      pos:
        line_end: 58513
        line_start: 58513
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58511
        line_start: 58511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58524
      start: 58508
    functionDepth: 11
    functionLinenumber: 58508
    functionLinenumberEnd: 58524
    functionName: moveToChild
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cursorHoldsMutex
    - getAndInitPage
    - assert
    linkageType: ''
    returnType: int
    signature: int moveToChild(BtCursor *pCur, u32 newPgno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58537,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58539,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58541,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58541,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pParent
    - iIdx
    - iChild
    argTypes:
    - MemPage*
    - int
    - Pgno
    assertStmts:
    - condition: ( iIdx<=pParent->nCell )
      pos:
        line_end: 58536
        line_start: 58536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( get4byte(&pParent->aData[pParent->hdrOffset+8])==iChild )
      pos:
        line_end: 58538
        line_start: 58538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( get4byte(findCell(pParent, iIdx))==iChild )
      pos:
        line_end: 58540
        line_start: 58540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58543
      start: 58534
    functionDepth: 1
    functionLinenumber: 58534
    functionLinenumberEnd: 58543
    functionName: assertParentIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - get4byte
    - assert
    linkageType: ''
    returnType: void
    signature: void assertParentIndex(MemPage *pParent, int iIdx, Pgno iChild)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58547
      start: 58545
    functionDepth: 0
    functionLinenumber: 58545
    functionLinenumberEnd: 58547
    functionName: assertParentIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assertParentIndex(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58557,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58557,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58558,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58560,1
    - Dst: assertParentIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58561,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58566,1
    - Dst: releasePageNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58556
        line_start: 58556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage] )
      pos:
        line_end: 58559
        line_start: 58559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58557
        line_start: 58557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>0 )
      pos:
        line_end: 58558
        line_start: 58558
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58570
      start: 58556
    functionDepth: 10
    functionLinenumber: 58556
    functionLinenumberEnd: 58570
    functionName: moveToParent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    - assertParentIndex
    - releasePageNotNull
    - testcase
    linkageType: ''
    returnType: void
    signature: void moveToParent(BtCursor *pCur)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58597,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58597,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58598,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58599,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58600,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58603,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58606,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58611,1
    - Dst: releasePageNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58618,1
    - Dst: getAndInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58619,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58629,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58641,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58655,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58657,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58596
        line_start: 58596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CURSOR_INVALID < CURSOR_REQUIRESEEK )
      pos:
        line_end: 58597
        line_start: 58597
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CURSOR_VALID   < CURSOR_REQUIRESEEK )
      pos:
        line_end: 58598
        line_start: 58598
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CURSOR_FAULT   > CURSOR_REQUIRESEEK )
      pos:
        line_end: 58599
        line_start: 58599
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext!=SQLITE_OK )
      pos:
        line_end: 58602
        line_start: 58602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage]!=0 )
      pos:
        line_end: 58610
        line_start: 58610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage==(-1) )
      pos:
        line_end: 58617
        line_start: 58617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRoot->pgno==pCur->pgnoRoot )
      pos:
        line_end: 58628
        line_start: 58628
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRoot->intKey==1 || pRoot->intKey==0 )
      pos:
        line_end: 58640
        line_start: 58640
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58662
      start: 58593
    functionDepth: 12
    functionLinenumber: 58593
    functionLinenumberEnd: 58662
    functionName: moveToRoot
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeClearCursor
    - assert
    - cursorHoldsMutex
    - releasePageNotNull
    - getAndInitPage
    - get4byte
    - moveToChild
    linkageType: ''
    returnType: int
    signature: int moveToRoot(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58676,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58676,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58677,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58679,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58680,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58680,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58675
        line_start: 58675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58676
        line_start: 58676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pPage->nCell )
      pos:
        line_end: 58678
        line_start: 58678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58684
      start: 58671
    functionDepth: 12
    functionLinenumber: 58671
    functionLinenumberEnd: 58684
    functionName: moveToLeftmost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    - findCell
    - get4byte
    - moveToChild
    linkageType: ''
    returnType: int
    signature: int moveToLeftmost(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58701,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58701,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58702,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58704,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58710,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58700
        line_start: 58700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58701
        line_start: 58701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 58709
        line_start: 58709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pCur->curFlags & BTCF_ValidNKey)==0 )
      pos:
        line_end: 58710
        line_start: 58710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58713
      start: 58696
    functionDepth: 12
    functionLinenumber: 58696
    functionLinenumberEnd: 58713
    functionName: moveToRightmost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cursorHoldsMutex
    - get4byte
    - assert
    - moveToChild
    linkageType: ''
    returnType: int
    signature: int moveToRightmost(BtCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58722,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58722,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58723,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58723,1
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58724,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58730,1
    - Dst: moveToLeftmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58721
        line_start: 58721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 58722
        line_start: 58722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage]->nCell==0 )
      pos:
        line_end: 58726
        line_start: 58726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage]->nCell>0 )
      pos:
        line_end: 58729
        line_start: 58729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58736
      start: 58719
    functionDepth: 13
    functionLinenumber: 58719
    functionLinenumberEnd: 58736
    functionName: sqlite3BtreeFirst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - cursorHoldsMutex
    - moveToRoot
    - moveToLeftmost
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeFirst(BtCursor *pCur, int *pRes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58745,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58745,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58746,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58746,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58755,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58758,1
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58769,1
    - Dst: moveToRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58744
        line_start: 58744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[ii]==pCur->apPage[ii]->nCell )
      pos:
        line_end: 58754
        line_start: 58754
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 58745
        line_start: 58745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]==pCur->apPage[pCur->iPage]->nCell-1 )
      pos:
        line_end: 58756
        line_start: 58756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage]->leaf )
      pos:
        line_end: 58757
        line_start: 58757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage]->nCell==0 )
      pos:
        line_end: 58765
        line_start: 58765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 58768
        line_start: 58768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58781
      start: 58742
    functionDepth: 13
    functionLinenumber: 58742
    functionLinenumberEnd: 58781
    functionName: sqlite3BtreeLast
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - cursorHoldsMutex
    - moveToRoot
    - moveToRightmost
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLast(BtCursor *pCur, int *pRes)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58821,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58822,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58823,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58824,1
    - Dst: sqlite3VdbeFindCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58844,1
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58858,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58861,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58865,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58882,1
    - Dst: findCellPastPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58888,1
    - Dst: getVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58894,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58902,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58915,1
    - Dst: findCellPastPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58921,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58936,1
    - Dst: xRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58937,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58943,1
    - Dst: xRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58944,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58957,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58959,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58960,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58961,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58962,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58967,1
    - Dst: accessPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58973,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58975,1
    - Dst: xRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58978,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58979,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58990,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:58998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59003,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59005,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59013,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59015,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59015,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59018,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 174
    argCount: 5
    argNames:
    - pCur
    - pIdxKey
    - intKey
    - biasRight
    - pRes
    argTypes:
    - BtCursor*
    - UnpackedRecord*
    - i64
    - int
    - int*
    assertStmts:
    - condition: ( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage] )
      pos:
        line_end: 58855
        line_start: 58855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_INVALID || pCur->apPage[pCur->iPage]->nCell>0
        )
      pos:
        line_end: 58857
        line_start: 58857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( \n            (pIdxKey->errCode!=SQLITE_CORRUPT || c==0)\n         &&
        (pIdxKey->errCode!=SQLITE_NOMEM || pCur->pBtree->db->mallocFailed)\n        )"
      pos:
        line_end: 58983
        line_start: 58980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( lwr==upr+1 || (pPage->intKey && !pPage->leaf) )
      pos:
        line_end: 59001
        line_start: 59001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRes )
      pos:
        line_end: 58822
        line_start: 58822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage]->isInit )
      pos:
        line_end: 58856
        line_start: 58856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->curIntKey || pIdxKey )
      pos:
        line_end: 58864
        line_start: 58864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( biasRight==0 || biasRight==1 )
      pos:
        line_end: 58881
        line_start: 58881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( lwr+upr>=0 )
      pos:
        line_end: 58914
        line_start: 58914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( c==0 )
      pos:
        line_end: 58989
        line_start: 58989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( lwr+upr>=0 )
      pos:
        line_end: 58997
        line_start: 58997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 59002
        line_start: 59002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pIdxKey->default_rc==1 \n         || pIdxKey->default_rc==0 \n
        \        || pIdxKey->default_rc==-1\n    )"
      pos:
        line_end: 58846
        line_start: 58843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell )
      pos:
        line_end: 59004
        line_start: 59004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 58820
        line_start: 58820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 58821
        line_start: 58821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pIdxKey==0)==(pCur->pKeyInfo==0) )
      pos:
        line_end: 58823
        line_start: 58823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage]->nCell==0 )
      pos:
        line_end: 58860
        line_start: 58860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nCell>0 )
      pos:
        line_end: 58877
        line_start: 58877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKey==(pIdxKey==0) )
      pos:
        line_end: 58878
        line_start: 58878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[0]->intKey==pCur->curIntKey )
      pos:
        line_end: 58863
        line_start: 58863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nCellKey==intKey )
      pos:
        line_end: 58901
        line_start: 58901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59025
      start: 58811
    functionDepth: 15
    functionLinenumber: 58811
    functionLinenumberEnd: 59025
    functionName: sqlite3BtreeMovetoUnpacked
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - accessPayload
    - testcase
    - assert
    - sqlite3_free
    - cursorHoldsMutex
    - xRecordCompare
    - MemPage*::xParseCell
    - moveToRoot
    - sqlite3Malloc
    - findCell
    - findCellPastPtr
    - get4byte
    - sqlite3VdbeFindCompare
    - moveToChild
    - getVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeMovetoUnpacked(\n  BtCursor *pCur,          /*
      The cursor to be moved */\n  UnpackedRecord *pIdxKey, /* Unpacked index key
      */\n  i64 intKey,              /* The table key */\n  int biasRight,           /*
      If true, bias the search to the high end */\n  int *pRes                /* Write
      search results here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59041
      start: 59035
    functionDepth: 0
    functionLinenumber: 59035
    functionLinenumberEnd: 59041
    functionName: sqlite3BtreeEof
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEof(BtCursor *pCur)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59069,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59069,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59071,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59073,1
    - Dst: restoreCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59074,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59083,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59095,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59102,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59106,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59106,1
    - Dst: moveToLeftmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59108,1
    - Dst: moveToParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59116,1
    - Dst: sqlite3BtreeNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59120,1
    - Dst: moveToLeftmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 59068
        line_start: 59068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pCur->curFlags & BTCF_ValidOvfl)==0 )
      pos:
        line_end: 59072
        line_start: 59072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRes==0 )
      pos:
        line_end: 59070
        line_start: 59070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 59069
        line_start: 59069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || pCur->eState==CURSOR_SKIPNEXT )
      pos:
        line_end: 59082
        line_start: 59082
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 59094
        line_start: 59094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59130
      start: 59064
    functionDepth: 13
    functionLinenumber: 59064
    functionLinenumberEnd: 59130
    functionName: btreeNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    - sqlite3BtreeNext
    - restoreCursorPosition
    - moveToParent
    - moveToLeftmost
    - get4byte
    - testcase
    - moveToChild
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE btreeNext(BtCursor *pCur, int *pRes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59133,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59133,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59134,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59136,1
    - Dst: btreeNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59140,1
    - Dst: btreeNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59144,1
    - Dst: moveToLeftmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 59132
        line_start: 59132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRes!=0 )
      pos:
        line_end: 59133
        line_start: 59133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 59135
        line_start: 59135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRes==0 || *pRes==1 )
      pos:
        line_end: 59134
        line_start: 59134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59151
      start: 59131
    functionDepth: 14
    functionLinenumber: 59131
    functionLinenumberEnd: 59151
    functionName: sqlite3BtreeNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - cursorHoldsMutex
    - moveToLeftmost
    - assert
    - btreeNext
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeNext(BtCursor *pCur, int *pRes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59178,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59179,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59182,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59183,1
    - Dst: restoreCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59185,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59194,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59205,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59208,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59208,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59208,1
    - Dst: moveToRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59210,1
    - Dst: moveToParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59221,1
    - Dst: sqlite3BtreePrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 59177
        line_start: 59177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRes==0 )
      pos:
        line_end: 59179
        line_start: 59179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRes!=0 )
      pos:
        line_end: 59178
        line_start: 59178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 59180
        line_start: 59180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pCur->curFlags & (BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey))==0
        )
      pos:
        line_end: 59181
        line_start: 59181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 59182
        line_start: 59182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || pCur->eState==CURSOR_SKIPNEXT )
      pos:
        line_end: 59193
        line_start: 59193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 59204
        line_start: 59204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pCur->curFlags & (BTCF_ValidNKey|BTCF_ValidOvfl))==0 )
      pos:
        line_end: 59220
        line_start: 59220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 59219
        line_start: 59219
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59232
      start: 59174
    functionDepth: 13
    functionLinenumber: 59174
    functionLinenumberEnd: 59232
    functionName: btreePrevious
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    - findCell
    - restoreCursorPosition
    - moveToRightmost
    - moveToParent
    - sqlite3BtreePrevious
    - get4byte
    - moveToChild
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE btreePrevious(BtCursor *pCur, int *pRes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59234,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59235,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59237,1
    - Dst: btreePrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 59233
        line_start: 59233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRes==0 || *pRes==1 )
      pos:
        line_end: 59235
        line_start: 59235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRes!=0 )
      pos:
        line_end: 59234
        line_start: 59234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 59236
        line_start: 59236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59249
      start: 59233
    functionDepth: 14
    functionLinenumber: 59233
    functionLinenumberEnd: 59249
    functionName: sqlite3BtreePrevious
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - cursorHoldsMutex
    - btreePrevious
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePrevious(BtCursor *pCur, int *pRes)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59288,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59289,1
    - Dst: IfNotOmitAV
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59289,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59291,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59294,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59314,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59315,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59329,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59331,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59344,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59349,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59351,1
    - Dst: btreeGetUnusedPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59355,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59361,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59362,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59365,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59370,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59371,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59376,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59379,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59394,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59400,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59402,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59406,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59414,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59419,1
    - Dst: btreeGetUnusedPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59420,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59424,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59426,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59429,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59430,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59431,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59432,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59434,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59434,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59435,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59437,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59441,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59445,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59457,1
    - Dst: sqlite3AbsInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59465,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59465,1
    - Dst: sqlite3AbsInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59467,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59467,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59478,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59479,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59484,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59490,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59493,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59496,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59498,1
    - Dst: btreeGetHasContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59499,1
    - Dst: btreeGetUnusedPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59500,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59502,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59504,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59511,1
    - Dst: IfNotOmitAV
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59533,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59535,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59538,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59541,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59547,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59548,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59548,1
    - Dst: btreeGetUnusedPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59549,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59551,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59552,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59556,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59562,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59562,1
    - Dst: btreeGetUnusedPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59563,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59565,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59567,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59573,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59573,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59576,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59577,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59578,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59578,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59579,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 226
    argCount: 5
    argNames:
    - pBt
    - ppPage
    - pPgno
    - nearby
    - eMode
    argTypes:
    - BtShared*
    - MemPage**
    - Pgno*
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 59287
        line_start: 59287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 59572
        line_start: 59572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage1->pDbPage) )
      pos:
        line_end: 59433
        line_start: 59433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTrunk->aData!=0 )
      pos:
        line_end: 59361
        line_start: 59361
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTrunk!=0 )
      pos:
        line_end: 59360
        line_start: 59360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->nPage!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 59547
        line_start: 59547
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || sqlite3PagerPageRefcount((*ppPage)->pDbPage)<=1
        )
      pos:
        line_end: 59577
        line_start: 59577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eMode==BTALLOC_ANY || (nearby>0 && IfNotOmitAV(pBt->autoVacuum))
        )
      pos:
        line_end: 59288
        line_start: 59288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->autoVacuum )
      pos:
        line_end: 59313
        line_start: 59313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 59561
        line_start: 59561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nearby>0 )
      pos:
        line_end: 59312
        line_start: 59312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (*ppPage)->isInit==0 )
      pos:
        line_end: 59578
        line_start: 59578
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPrevTrunk==0 )
      pos:
        line_end: 59369
        line_start: 59369
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59581
      start: 59273
    functionDepth: 13
    functionLinenumber: 59273
    functionLinenumberEnd: 59581
    functionName: allocateBtreePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - btreeGetHasContent
    - releasePage
    - ptrmapGet
    - sqlite3_mutex_held
    - btreeGetUnusedPage
    - btreePagecount
    - memcpy
    - sqlite3AbsInt32
    - TRACE
    - assert
    - sqlite3PagerWrite
    - PTRMAP_ISPAGE
    - sqlite3PagerPageRefcount
    - IfNotOmitAV
    - PENDING_BYTE_PAGE
    - sqlite3PagerIswriteable
    - get4byte
    - put4byte
    - testcase
    linkageType: ''
    returnType: int
    signature: "int allocateBtreePage(\n  BtShared *pBt,         /* The btree */\n
      \ MemPage **ppPage,      /* Store pointer to the allocated page here */\n  Pgno
      *pPgno,           /* Store the page number here */\n  Pgno nearby,           /*
      Search for a page near this one */\n  u8 eMode               /* BTALLOC_EXACT,
      BTALLOC_LT, or BTALLOC_ANY */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59603,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59603,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59604,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59605,1
    - Dst: sqlite3PagerRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59610,1
    - Dst: btreePageLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59612,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59616,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59618,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59619,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59625,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59626,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59630,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59637,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59651,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59652,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59657,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59658,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59683,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59685,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59686,1
    - Dst: sqlite3PagerDontWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59688,1
    - Dst: btreeSetHasContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59690,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59692,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59703,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59706,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59710,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59711,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59712,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59713,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59719,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59720,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 3
    argNames:
    - pBt
    - pMemPage
    - iPage
    argTypes:
    - BtShared*
    - MemPage*
    - Pgno
    assertStmts:
    - condition: ( !pMemPage || pMemPage->pgno==iPage )
      pos:
        line_end: 59604
        line_start: 59604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->usableSize>32 )
      pos:
        line_end: 59657
        line_start: 59657
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 59602
        line_start: 59602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CORRUPT_DB || iPage>1 )
      pos:
        line_end: 59603
        line_start: 59603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59722
      start: 59595
    functionDepth: 14
    functionLinenumber: 59595
    functionLinenumberEnd: 59722
    functionName: freePage2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3PagerRef
    - memset
    - btreePageLookup
    - assert
    - sqlite3PagerDontWrite
    - sqlite3PagerWrite
    - put4byte
    - releasePage
    - ptrmapPut
    - btreeSetHasContent
    - btreeGetPage
    - get4byte
    - TRACE
    linkageType: ''
    returnType: int
    signature: int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freePage2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pPage
    - pRC
    argTypes:
    - MemPage*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59727
      start: 59723
    functionDepth: 15
    functionLinenumber: 59723
    functionLinenumberEnd: 59727
    functionName: freePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - freePage2
    linkageType: ''
    returnType: void
    signature: void freePage(MemPage *pPage, int *pRC)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59746,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59746,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59747,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59755,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59759,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59765,1
    - Dst: getOverflowPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59772,1
    - Dst: btreePageLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59776,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59777,1
    - Dst: freePage2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59791,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59795,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pnSize
    argTypes:
    - MemPage*
    - unsigned char*
    - u16*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 59745
        line_start: 59745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->usableSize > 4 )
      pos:
        line_end: 59755
        line_start: 59755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( nOvfl>0 || \n    (CORRUPT_DB && (info.nPayload + ovflPageSize)<ovflPageSize)\n
        \ )"
      pos:
        line_end: 59760
        line_start: 59758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59801
      start: 59734
    functionDepth: 15
    functionLinenumber: 59734
    functionLinenumberEnd: 59801
    functionName: clearCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - btreePageLookup
    - assert
    - sqlite3PagerPageRefcount
    - btreePagecount
    - MemPage*::xParseCell
    - getOverflowPage
    - get4byte
    - sqlite3PagerUnref
    - freePage2
    linkageType: ''
    returnType: int
    signature: "int clearCell(\n  MemPage *pPage,          /* The page that contains
      the Cell */\n  unsigned char *pCell,    /* First byte of the Cell */\n  u16
      *pnSize              /* Write the size of the Cell here */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59835,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59839,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59840,1
    - Dst: putVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59846,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59848,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59849,1
    - Dst: putVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59851,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59859,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59866,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59867,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59875,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59876,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59899,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59900,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59901,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59902,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59903,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59904,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59917,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59917,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59921,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59935,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59937,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59942,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59948,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59948,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59952,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59953,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59955,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59956,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59959,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59968,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59968,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59972,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59977,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59978,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59980,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:59992,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 102
    argCount: 8
    argNames:
    - pPage
    - pCell
    - pKey
    - nKey
    - pData
    - nData
    - nZero
    - pnSize
    argTypes:
    - MemPage*
    - unsigned char*
    - void*
    - i64
    - void*
    - int
    - int
    - int*
    assertStmts:
    - condition: "( pPrior<pPage->aData || pPrior>=&pPage->aData[pBt->pageSize]\n
        \           || sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 59952
        line_start: 59951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToRelease==0 || sqlite3PagerIswriteable(pToRelease->pDbPage) )
      pos:
        line_end: 59967
        line_start: 59967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc )
      pos:
        line_end: 59976
        line_start: 59976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pCell<pPage->aData || pCell>=&pPage->aData[pBt->pageSize]\n            ||
        sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 59839
        line_start: 59838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nData==0 )
      pos:
        line_end: 59847
        line_start: 59847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nZero==0 )
      pos:
        line_end: 59848
        line_start: 59848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( info.nKey==nKey )
      pos:
        line_end: 59900
        line_start: 59900
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pnSize == info.nSize )
      pos:
        line_end: 59901
        line_start: 59901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToRelease==0 || sqlite3PagerIswriteable(pToRelease->pDbPage) )
      pos:
        line_end: 59947
        line_start: 59947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPayload<pPage->aData || pPayload>=&pPage->aData[pBt->pageSize]\n
        \           || sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 59972
        line_start: 59971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPrior == &pCell[info.iOverflow] )
      pos:
        line_end: 59903
        line_start: 59903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 59834
        line_start: 59834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nKey<=0x7fffffff && pKey!=0 )
      pos:
        line_end: 59858
        line_start: 59858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nHeader=(int)(info.pPayload - pCell) )
      pos:
        line_end: 59899
        line_start: 59899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( spaceLeft == info.nLocal )
      pos:
        line_end: 59902
        line_start: 59902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59994
      start: 59815
    functionDepth: 14
    functionLinenumber: 59815
    functionLinenumberEnd: 59994
    functionName: fillInCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - assert
    - PENDING_BYTE_PAGE
    - MemPage*::xParseCell
    - putVarint32
    - memcpy
    - releasePage
    - sqlite3PagerIswriteable
    - ptrmapPut
    - PTRMAP_ISPAGE
    - allocateBtreePage
    - putVarint
    - put4byte
    - testcase
    linkageType: ''
    returnType: int
    signature: "int fillInCell(\n  MemPage *pPage,                /* The page that
      contains the cell */\n  unsigned char *pCell,          /* Complete text of the
      cell */\n  const void *pKey, i64 nKey,    /* The key */\n  const void *pData,int
      nData,   /* The data */\n  int nZero,                     /* Extra zero bytes
      to append to pData */\n  int *pnSize                    /* Write cell size here
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60013,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60014,1
    - Dst: cellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60014,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60015,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60015,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60016,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60016,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60019,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60021,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60021,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60022,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60023,1
    - Dst: freeSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60027,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60034,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60036,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60040,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60041,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - pPage
    - idx
    - sz
    - pRC
    argTypes:
    - MemPage*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( idx>=0 && idx<pPage->nCell )
      pos:
        line_end: 60012
        line_start: 60012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CORRUPT_DB || sz==cellSize(pPage, idx) )
      pos:
        line_end: 60013
        line_start: 60013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 60014
        line_start: 60014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 60015
        line_start: 60015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60044
      start: 60004
    functionDepth: 2
    functionLinenumber: 60004
    functionLinenumberEnd: 60044
    functionName: dropCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - cellSize
    - memset
    - get2byte
    - assert
    - sqlite3PagerIswriteable
    - freeSpace
    - put2byte
    - memmove
    - testcase
    linkageType: ''
    returnType: void
    signature: void dropCell(MemPage *pPage, int idx, int sz, int *pRC)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60074,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60075,1
    - Dst: MX_CELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60075,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60076,1
    - Dst: MX_CELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60076,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60077,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60077,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60078,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60078,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60078,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60079,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60079,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60085,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60085,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60088,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60104,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60105,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60107,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60112,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60112,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60114,1
    - Dst: allocateSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60115,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60121,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60123,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60125,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60128,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60129,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60133,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60133,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60139,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 7
    argNames:
    - pPage
    - i
    - pCell
    - sz
    - pTemp
    - iChild
    - pRC
    argTypes:
    - MemPage*
    - int
    - u8*
    - int
    - u8*
    - Pgno
    - int*
    assertStmts:
    - condition: ( j==0 || i==pPage->aiOvfl[j-1]+1 )
      pos:
        line_end: 60104
        line_start: 60104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 60078
        line_start: 60078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<(int)(sizeof(pPage->apOvfl)/sizeof(pPage->apOvfl[0])) )
      pos:
        line_end: 60094
        line_start: 60094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j==0 || pPage->aiOvfl[j-1]<(u16)i )
      pos:
        line_end: 60103
        line_start: 60103
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 60111
        line_start: 60111
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( &data[pPage->cellOffset]==pPage->aCellIdx )
      pos:
        line_end: 60113
        line_start: 60113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nOverflow<=ArraySize(pPage->apOvfl) )
      pos:
        line_end: 60076
        line_start: 60076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx >= pPage->cellOffset+2*pPage->nCell+2 || CORRUPT_DB )
      pos:
        line_end: 60119
        line_start: 60119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx+sz <= (int)pPage->pBt->usableSize )
      pos:
        line_end: 60120
        line_start: 60120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=0 && i<=pPage->nCell+pPage->nOverflow )
      pos:
        line_end: 60073
        line_start: 60073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ArraySize(pPage->apOvfl)==ArraySize(pPage->aiOvfl) )
      pos:
        line_end: 60077
        line_start: 60077
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sz==pPage->xCellSize(pPage, pCell) || (sz==8 && iChild>0) )
      pos:
        line_end: 60084
        line_start: 60084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nCell<=MX_CELL(pPage->pBt) || CORRUPT_DB )
      pos:
        line_end: 60075
        line_start: 60075
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( MX_CELL(pPage->pBt)<=10921 )
      pos:
        line_end: 60074
        line_start: 60074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx >= 0 )
      pos:
        line_end: 60118
        line_start: 60118
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell )
      pos:
        line_end: 60132
        line_start: 60132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60143
      start: 60058
    functionDepth: 15
    functionLinenumber: 60058
    functionLinenumberEnd: 60143
    functionName: insertCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MX_CELL
    - MemPage*::xCellSize
    - get2byte
    - assert
    - ptrmapPutOvflPtr
    - memcpy
    - ArraySize
    - sqlite3PagerWrite
    - sqlite3PagerIswriteable
    - memmove
    - allocateSpace
    - put4byte
    - put2byte
    linkageType: ''
    returnType: void
    signature: "void insertCell(\n  MemPage *pPage,   /* Page into which we are copying
      */\n  int i,            /* New cell becomes the i-th cell of the page */\n  u8
      *pCell,        /* Content of the new cell */\n  int sz,           /* Bytes of
      content in pCell */\n  u8 *pTemp,        /* Temp storage space for pCell, if
      needed */\n  Pgno iChild,      /* If non-zero, replace first 4 bytes with this
      value */\n  int *pRC          /* Read and write return code from here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60164,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60166,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60168,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - idx
    - N
    argTypes:
    - CellArray*
    - int
    - int
    assertStmts:
    - condition: ( idx>=0 && idx+N<=p->nCell )
      pos:
        line_end: 60161
        line_start: 60161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->apCell[idx]!=0 )
      pos:
        line_end: 60163
        line_start: 60163
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( CORRUPT_DB ||\n              p->szCell[idx]==p->pRef->xCellSize(p->pRef,
        p->apCell[idx]) )"
      pos:
        line_end: 60168
        line_start: 60167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60174
      start: 60161
    functionDepth: 0
    functionLinenumber: 60161
    functionLinenumberEnd: 60174
    functionName: populateCellCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - CellArray*::pRef::xCellSize
    - assert
    linkageType: ''
    returnType: void
    signature: void populateCellCache(CellArray *p, int idx, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60181,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - CellArray*
    - int
    assertStmts:
    - condition: ( N>=0 && N<p->nCell )
      pos:
        line_end: 60179
        line_start: 60179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->szCell[N]==0 )
      pos:
        line_end: 60180
        line_start: 60180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60184
      start: 60179
    functionDepth: 0
    functionLinenumber: 60179
    functionLinenumberEnd: 60184
    functionName: computeCellSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - CellArray*::pRef::xCellSize
    - assert
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE computeCellSize(CellArray *p, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60186,1
    - Dst: computeCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - CellArray*
    - int
    assertStmts:
    - condition: ( N>=0 && N<p->nCell )
      pos:
        line_end: 60185
        line_start: 60185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60189
      start: 60185
    functionDepth: 1
    functionLinenumber: 60185
    functionLinenumberEnd: 60189
    functionName: cachedCellSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeCellSize
    - assert
    linkageType: ''
    returnType: u16
    signature: u16 cachedCellSize(CellArray *p, int N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60216,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60219,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60220,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60229,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60232,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60233,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60233,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60234,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60234,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60241,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60242,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - pPg
    - nCell
    - apCell
    - szCell
    argTypes:
    - MemPage*
    - int
    - u8**
    - u16*
    assertStmts:
    - condition: ( szCell[i]==pPg->xCellSize(pPg, pCell) || CORRUPT_DB )
      pos:
        line_end: 60232
        line_start: 60232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60246
      start: 60204
    functionDepth: 1
    functionLinenumber: 60204
    functionLinenumberEnd: 60246
    functionName: rebuildPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xCellSize
    - testcase
    - get2byte
    - assert
    - sqlite3PagerTempSpace
    - memcpy
    - put2byte
    linkageType: ''
    returnType: int
    signature: "int rebuildPage(\n  MemPage *pPg,                   /* Edit this page
      */\n  int nCell,                      /* Final number of cells on page */\n
      \ u8 **apCell,                    /* Array of cells */\n  u16 *szCell                     /*
      Array of cell sizes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60286,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60290,1
    - Dst: pageFindSlot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60291,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60296,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - pPg
    - pBegin
    - ppData
    - pCellptr
    - iFirst
    - nCell
    - pCArray
    argTypes:
    - MemPage*
    - u8*
    - u8**
    - u8*
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( CORRUPT_DB || pPg->hdrOffset==0 )
      pos:
        line_end: 60285
        line_start: 60285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60302
      start: 60273
    functionDepth: 2
    functionLinenumber: 60273
    functionLinenumberEnd: 60302
    functionName: pageInsertArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cachedCellSize
    - assert
    - memcpy
    - pageFindSlot
    - put2byte
    linkageType: ''
    returnType: int
    signature: "int pageInsertArray(\n  MemPage *pPg,                   /* Page to
      add cells to */\n  u8 *pBegin,                     /* End of cell-pointer array
      */\n  u8 **ppData,                    /* IN/OUT: Page content -area pointer
      */\n  u8 *pCellptr,                   /* Pointer to cell-pointer area */\n  int
      iFirst,                     /* Index of first cell to add */\n  int nCell,                      /*
      Number of cells to add to pPg */\n  CellArray *pCArray              /* Array
      of cells */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60338,1
    - Dst: freeSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60339,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60352,1
    - Dst: freeSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60353,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - pPg
    - iFirst
    - nCell
    - pCArray
    argTypes:
    - MemPage*
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( sz>0 )
      pos:
        line_end: 60334
        line_start: 60334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFree>aData && (pFree - aData)<65536 )
      pos:
        line_end: 60337
        line_start: 60337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFree>aData && (pFree - aData)<65536 )
      pos:
        line_end: 60351
        line_start: 60351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60356
      start: 60313
    functionDepth: 2
    functionLinenumber: 60313
    functionLinenumberEnd: 60356
    functionName: pageFreeArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - freeSpace
    - assert
    linkageType: ''
    returnType: int
    signature: "int pageFreeArray(\n  MemPage *pPg,                   /* Page to edit
      */\n  int iFirst,                     /* First cell to delete */\n  int nCell,
      \                     /* Cells to delete */\n  CellArray *pCArray              /*
      Array of cells */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerTempSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60388,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60389,1
    - Dst: pageFreeArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60394,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60395,1
    - Dst: pageFreeArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60399,1
    - Dst: get2byteNotZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60402,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60407,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60408,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60410,1
    - Dst: pageInsertArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60411,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60423,1
    - Dst: pageInsertArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60425,1
    - Dst: pageInsertArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60434,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60442,1
    - Dst: put2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60443,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60448,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60452,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60452,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60453,1
    - Dst: populateCellCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60460,1
    - Dst: rebuildPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60461,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 5
    argNames:
    - pPg
    - iOld
    - iNew
    - nNew
    - pCArray
    argTypes:
    - MemPage*
    - int
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( (iOld-iNew)<nNew || nCell==0 || CORRUPT_DB )
      pos:
        line_end: 60407
        line_start: 60407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( 0==memcmp(pCell, &aData[iOff],\n            pCArray->pRef->xCellSize(pCArray->pRef,
        pCArray->apCell[i+iNew])) )"
      pos:
        line_end: 60452
        line_start: 60451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60462
      start: 60370
    functionDepth: 3
    functionLinenumber: 60370
    functionLinenumberEnd: 60462
    functionName: editPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - CellArray*::pRef::xCellSize
    - sqlite3PagerTempSpace
    - assert
    - pageInsertArray
    - get2byteAligned
    - get2byteNotZero
    - memcpy
    - memmove
    - rebuildPage
    - populateCellCache
    - put2byte
    - pageFreeArray
    - MIN
    linkageType: ''
    returnType: int
    signature: "int editPage(\n  MemPage *pPg,                   /* Edit this page
      */\n  int iOld,                       /* Index of first cell currently on page
      */\n  int iNew,                       /* Index of new first cell on page */\n
      \ int nNew,                       /* Final number of cells on page */\n  CellArray
      *pCArray              /* Array of cells and sizes */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60510,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60511,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60512,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60515,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60521,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60527,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60530,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60531,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60532,1
    - Dst: rebuildPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60533,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60534,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60547,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60549,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60566,1
    - Dst: insertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60573,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60577,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60580,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - pParent
    - pPage
    - pSpace
    argTypes:
    - MemPage*
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 60509
        line_start: 60509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pNew->pDbPage) )
      pos:
        line_end: 60529
        line_start: 60529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->aData[0]==(PTF_INTKEY|PTF_LEAFDATA|PTF_LEAF) )
      pos:
        line_end: 60530
        line_start: 60530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 60510
        line_start: 60510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nOverflow==1 )
      pos:
        line_end: 60511
        line_start: 60511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60584
      start: 60504
    functionDepth: 16
    functionLinenumber: 60504
    functionLinenumberEnd: 60584
    functionName: balance_quick
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - NEVER
    - MemPage*::xCellSize
    - zeroPage
    - assert
    - ptrmapPutOvflPtr
    - findCell
    - insertCell
    - releasePage
    - sqlite3PagerIswriteable
    - ptrmapPut
    - rebuildPage
    - allocateBtreePage
    - put4byte
    linkageType: ''
    returnType: int
    signature: int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60600,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60606,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60607,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60609,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60610,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60611,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60614,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60616,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60620,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60621,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - apPage
    - nPage
    argTypes:
    - MemPage**
    - int
    assertStmts:
    - condition: ( pPage->isInit )
      pos:
        line_end: 60599
        line_start: 60599
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_OVERFLOW1 )
      pos:
        line_end: 60610
        line_start: 60610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_BTREE )
      pos:
        line_end: 60615
        line_start: 60615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_BTREE )
      pos:
        line_end: 60621
        line_start: 60621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60626
      start: 60593
    functionDepth: 11
    functionLinenumber: 60593
    functionLinenumberEnd: 60626
    functionName: ptrmapCheckPages
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - findCell
    - MemPage*::xParseCell
    - ptrmapGet
    - get4byte
    linkageType: ''
    returnType: int
    signature: int ptrmapCheckPages(MemPage **apPage, int nPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60657,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60658,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60659,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60659,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60662,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60663,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60664,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60672,1
    - Dst: setChildPtrmaps
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - pFrom
    - pTo
    - pRC
    argTypes:
    - MemPage*
    - MemPage*
    - int*
    assertStmts:
    - condition: ( pFrom->isInit )
      pos:
        line_end: 60656
        line_start: 60656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->nFree>=iToHdr )
      pos:
        line_end: 60657
        line_start: 60657
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( get2byte(&aFrom[iFromHdr+5]) <= (int)pBt->usableSize )
      pos:
        line_end: 60658
        line_start: 60658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60685
      start: 60646
    functionDepth: 16
    functionLinenumber: 60646
    functionLinenumberEnd: 60685
    functionName: copyNodeContent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeInitPage
    - setChildPtrmaps
    - get2byte
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60770,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60771,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60771,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60774,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60783,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60804,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60818,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60820,1
    - Dst: getAndInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60822,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60824,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60832,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60833,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60836,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60837,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60838,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60855,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60855,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60858,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60861,1
    - Dst: dropCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60865,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60883,1
    - Dst: sqlite3ScratchMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60891,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60891,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60945,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60947,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60955,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60962,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60963,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60972,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60977,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60978,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60980,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60983,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60984,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60987,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60989,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:60994,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61025,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61039,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61043,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61052,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61058,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61094,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61095,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61122,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61123,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61138,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61142,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61143,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61145,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61152,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61183,1
    - Dst: sqlite3PagerRekey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61198,1
    - Dst: sqlite3PagerRekey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61200,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61218,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61218,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61219,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61226,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61277,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61277,1
    - Dst: cachedCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61279,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61280,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61296,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61301,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61310,1
    - Dst: putVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61328,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61329,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61333,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61334,1
    - Dst: insertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61337,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61337,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61364,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61375,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61379,1
    - Dst: editPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61395,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61400,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61402,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61403,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61421,1
    - Dst: defragmentPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61422,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61423,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61424,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61425,1
    - Dst: copyNodeContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61428,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61429,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61435,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61436,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61440,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61441,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61447,1
    - Dst: ptrmapCheckPages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61456,1
    - Dst: ptrmapCheckPages
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61457,1
    - Dst: sqlite3ScratchFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61465,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61467,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61470,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 407
    argCount: 5
    argNames:
    - pParent
    - iParentIdx
    - aOvflSpace
    - isRoot
    - bBulk
    argTypes:
    - MemPage*
    - int
    - u8*
    - int
    - int
    assertStmts:
    - condition: ( bBulk==0 || bBulk==1 )
      pos:
        line_end: 60803
        line_start: 60803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( k==0 || pOld->aiOvfl[k-1]+1==pOld->aiOvfl[k] )
      pos:
        line_end: 60954
        line_start: 60954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 60770
        line_start: 60770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->nOverflow==0 || pParent->aiOvfl[0]==iParentIdx )
      pos:
        line_end: 60782
        line_start: 60782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.nCell<nMaxCells )
      pos:
        line_end: 60971
        line_start: 60971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (leafCorrection==4)
      pos:
        line_end: 61327
        line_start: 61327
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iOvflSpace <= (int)pBt->pageSize )
      pos:
        line_end: 61333
        line_start: 61333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) || CORRUPT_DB)
      pos:
        line_end: 61121
        line_start: 61121
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( d<nMaxCells )
      pos:
        line_end: 61093
        line_start: 61093
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOld->hdrOffset==0 )
      pos:
        line_end: 60983
        line_start: 60983
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( leafCorrection==4 )
      pos:
        line_end: 60988
        line_start: 60988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<nMaxCells )
      pos:
        line_end: 61294
        line_start: 61294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szScratch<=6*(int)pBt->pageSize )
      pos:
        line_end: 60882
        line_start: 60882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 61336
        line_start: 61336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memcmp(abDone, "\01\01\01\01\01", nNew)==0 )
      pos:
        line_end: 61399
        line_start: 61399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( apNew[iPg]->nOverflow==0 )
      pos:
        line_end: 61393
        line_start: 61393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew>0 )
      pos:
        line_end: 61402
        line_start: 61402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 61217
        line_start: 61217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>0 )
      pos:
        line_end: 61141
        line_start: 61141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSpace1 <= (int)pBt->pageSize )
      pos:
        line_end: 60976
        line_start: 60976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iPg>=0 && iPg<nNew )
      pos:
        line_end: 61363
        line_start: 61363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(aSpace1) )
      pos:
        line_end: 60890
        line_start: 60890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sz<=pBt->maxLocal+23 )
      pos:
        line_end: 61332
        line_start: 61332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.apCell[j]!=0 )
      pos:
        line_end: 61295
        line_start: 61295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( r<nMaxCells )
      pos:
        line_end: 61094
        line_start: 61094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.szCell[b.nCell]==3 || CORRUPT_DB )
      pos:
        line_end: 60992
        line_start: 60992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.nCell<nMaxCells )
      pos:
        line_end: 60961
        line_start: 60961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( leafCorrection==0 )
      pos:
        line_end: 60982
        line_start: 60982
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->nOverflow==0 || pParent->nOverflow==1 )
      pos:
        line_end: 60781
        line_start: 60781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cntNew[iPg]>=cntOld[iPg] || abDone[iPg+1] )
      pos:
        line_end: 61378
        line_start: 61378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.apCell[b.nCell]==&aSpace1[iSpace1-3] || CORRUPT_DB )
      pos:
        line_end: 60993
        line_start: 60993
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nOld>0 )
      pos:
        line_end: 61401
        line_start: 61401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( apNew[0]->nFree == \n        (get2byte(&apNew[0]->aData[5])-apNew[0]->cellOffset-apNew[0]->nCell*2)\n
        \     || rc!=SQLITE_OK\n    )"
      pos:
        line_end: 61426
        line_start: 61423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 60769
        line_start: 60769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sz<=pBt->maxLocal+23 )
      pos:
        line_end: 60975
        line_start: 60975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew==1 )
      pos:
        line_end: 61420
        line_start: 61420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( CORRUPT_DB )
      pos:
        line_end: 61182
        line_start: 61182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( leafCorrection==0 || leafCorrection==4 )
      pos:
        line_end: 60979
        line_start: 60979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iPg==0 || cntOld[iPg-1]>=cntNew[iPg-1] || abDone[iPg-1] )
      pos:
        line_end: 61374
        line_start: 61374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( apNew[iPg]->nCell==nNewCell )
      pos:
        line_end: 61394
        line_start: 61394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->isInit )
      pos:
        line_end: 61439
        line_start: 61439
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61474
      start: 60730
    functionDepth: 17
    functionLinenumber: 60730
    functionLinenumberEnd: 61474
    functionName: balance_nonroot
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memset
    - MemPage*::xCellSize
    - findCell
    - insertCell
    - releasePage
    - allocateBtreePage
    - defragmentPage
    - sqlite3_mutex_held
    - zeroPage
    - copyNodeContent
    - sqlite3PagerRekey
    - get2byteAligned
    - ptrmapCheckPages
    - sqlite3ScratchMalloc
    - memcpy
    - put4byte
    - ptrmapPut
    - TRACE
    - cachedCellSize
    - get2byte
    - assert
    - ptrmapPutOvflPtr
    - freePage
    - sqlite3ScratchFree
    - MemPage*::xParseCell
    - sqlite3PagerWrite
    - putVarint
    - dropCell
    - getAndInitPage
    - SQLITE_PTR_TO_INT
    - sqlite3PagerIswriteable
    - EIGHT_BYTE_ALIGNMENT
    - editPage
    - get4byte
    - testcase
    linkageType: ''
    returnType: int
    signature: "int balance_nonroot(\n  MemPage *pParent,               /* Parent
      page of siblings being balanced */\n  int iParentIdx,                 /* Index
      of \"the page\" in pParent */\n  u8 *aOvflSpace,                 /* page-size
      bytes of space for parent ovfl */\n  int isRoot,                     /* True
      if pParent is a root-page */\n  int bBulk                       /* True if this
      call is part of a bulk load */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61505,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61506,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61506,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61512,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61514,1
    - Dst: copyNodeContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61515,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61517,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61522,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61525,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61525,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61526,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61526,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61527,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61529,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61532,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61534,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61539,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - pRoot
    - ppChild
    argTypes:
    - MemPage*
    - MemPage**
    assertStmts:
    - condition: ( pRoot->nOverflow>0 )
      pos:
        line_end: 61504
        line_start: 61504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 61505
        line_start: 61505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pChild->pDbPage) )
      pos:
        line_end: 61524
        line_start: 61524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pRoot->pDbPage) )
      pos:
        line_end: 61525
        line_start: 61525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pChild->nCell==pRoot->nCell )
      pos:
        line_end: 61526
        line_start: 61526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61544
      start: 61499
    functionDepth: 17
    functionLinenumber: 61499
    functionLinenumberEnd: 61544
    functionName: balance_deeper
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - zeroPage
    - copyNodeContent
    - assert
    - sqlite3PagerWrite
    - memcpy
    - releasePage
    - sqlite3PagerIswriteable
    - ptrmapPut
    - allocateBtreePage
    - put4byte
    - TRACE
    linkageType: ''
    returnType: int
    signature: int balance_deeper(MemPage *pRoot, MemPage **ppChild)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61576,1
    - Dst: balance_deeper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61577,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61582,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61593,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61615,1
    - Dst: balance_quick
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61616,1
    - Dst: sqlite3PageMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61637,1
    - Dst: balance_nonroot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61638,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61645,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61658,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61660,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61665,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( (balance_deeper_called++)==0 )
      pos:
        line_end: 61575
        line_start: 61575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[1]->nOverflow )
      pos:
        line_end: 61581
        line_start: 61581
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (balance_quick_called++)==0 )
      pos:
        line_end: 61614
        line_start: 61614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iPage>=0 )
      pos:
        line_end: 61659
        line_start: 61659
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61668
      start: 61556
    functionDepth: 18
    functionLinenumber: 61556
    functionLinenumberEnd: 61668
    functionName: balance
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PageMalloc
    - balance_quick
    - balance_nonroot
    - assert
    - sqlite3PagerWrite
    - sqlite3PageFree
    - releasePage
    - balance_deeper
    linkageType: ''
    returnType: int
    signature: int balance(BtCursor *pCur)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61712,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61716,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61716,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61720,1
    - Dst: hasSharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61720,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61727,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61741,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61746,1
    - Dst: invalidateIncrblobCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61749,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61758,1
    - Dst: btreeMoveto
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61762,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61765,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61769,1
    - Dst: TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61771,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61774,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61776,1
    - Dst: fillInCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61777,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61779,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61779,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61780,1
    - Dst: MX_CELL_SIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61780,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61784,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61785,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61789,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61791,1
    - Dst: clearCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61793,1
    - Dst: dropCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61794,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61797,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61800,1
    - Dst: insertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61802,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61803,1
    - Dst: balance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61828,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61837,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 8
    argNames:
    - pCur
    - pKey
    - nKey
    - pData
    - nData
    - nZero
    - appendBias
    - seekResult
    argTypes:
    - BtCursor*
    - void*
    - i64
    - void*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2)
        )
      pos:
        line_end: 61719
        line_start: 61719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 61715
        line_start: 61715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pKey==0)==(pCur->pKeyInfo==0) )
      pos:
        line_end: 61726
        line_start: 61726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf || !pPage->intKey )
      pos:
        line_end: 61768
        line_start: 61768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 61773
        line_start: 61773
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->skipNext!=SQLITE_OK )
      pos:
        line_end: 61711
        line_start: 61711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->apPage[pCur->iPage]->nOverflow==0 )
      pos:
        line_end: 61836
        line_start: 61836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKey==0 )
      pos:
        line_end: 61745
        line_start: 61745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szNew==pPage->xCellSize(pPage, newCell) )
      pos:
        line_end: 61778
        line_start: 61778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szNew <= MX_CELL_SIZE(pBt) )
      pos:
        line_end: 61779
        line_start: 61779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx<pPage->nCell )
      pos:
        line_end: 61783
        line_start: 61783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf )
      pos:
        line_end: 61796
        line_start: 61796
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->leaf )
      pos:
        line_end: 61799
        line_start: 61799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pCur->curFlags & BTCF_WriteFlag)!=0\n              && pBt->inTransaction==TRANS_WRITE\n
        \             && (pBt->btsFlags & BTS_READ_ONLY)==0 )"
      pos:
        line_end: 61718
        line_start: 61716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || (pCur->eState==CURSOR_INVALID &&
        loc) )
      pos:
        line_end: 61764
        line_start: 61764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKey || nKey>=0 )
      pos:
        line_end: 61767
        line_start: 61767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( newCell!=0 )
      pos:
        line_end: 61775
        line_start: 61775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPage->nCell>0 || pPage->nOverflow>0 )
      pos:
        line_end: 61802
        line_start: 61802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61841
      start: 61693
    functionDepth: 19
    functionLinenumber: 61693
    functionLinenumberEnd: 61841
    functionName: sqlite3BtreeInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeMovetoUnpacked
    - MemPage*::xCellSize
    - saveAllCursors
    - fillInCell
    - balance
    - assert
    - cursorHoldsMutex
    - findCell
    - insertCell
    - sqlite3PagerWrite
    - memcpy
    - hasSharedCacheTableLock
    - clearCell
    - invalidateIncrblobCursors
    - btreeMoveto
    - dropCell
    - MX_CELL_SIZE
    - TRACE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeInsert(\n  BtCursor *pCur,                /*
      Insert data into the table of this cursor */\n  const void *pKey, i64 nKey,
      \   /* The key of the new record */\n  const void *pData, int nData,  /* The
      data of the new record */\n  int nZero,                     /* Number of extra
      0 bytes to append to data */\n  int appendBias,                /* True if this
      is likely an append */\n  int seekResult                 /* Result of prior
      MovetoUnpacked() call */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61857,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61858,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61859,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61861,1
    - Dst: hasSharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61861,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61862,1
    - Dst: hasReadConflicts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61862,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61864,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61869,1
    - Dst: sqlite3BtreePrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61880,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61890,1
    - Dst: invalidateIncrblobCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61897,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61900,1
    - Dst: clearCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61902,1
    - Dst: dropCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61903,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61917,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61919,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61920,1
    - Dst: MX_CELL_SIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61920,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61922,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61923,1
    - Dst: insertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61924,1
    - Dst: dropCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61925,1
    - Dst: balance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61944,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61947,1
    - Dst: balance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61949,1
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61953,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 61857
        line_start: 61857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 61856
        line_start: 61856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->curFlags & BTCF_WriteFlag )
      pos:
        line_end: 61859
        line_start: 61859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2)
        )
      pos:
        line_end: 61860
        line_start: 61860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !hasReadConflicts(p, pCur->pgnoRoot) )
      pos:
        line_end: 61861
        line_start: 61861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell )
      pos:
        line_end: 61862
        line_start: 61862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 61863
        line_start: 61863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( MX_CELL_SIZE(pBt) >= nCell )
      pos:
        line_end: 61919
        line_start: 61919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 61858
        line_start: 61858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTmp!=0 )
      pos:
        line_end: 61921
        line_start: 61921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61956
      start: 61847
    functionDepth: 19
    functionLinenumber: 61847
    functionLinenumberEnd: 61956
    functionName: sqlite3BtreeDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xCellSize
    - saveAllCursors
    - balance
    - assert
    - hasReadConflicts
    - cursorHoldsMutex
    - findCell
    - insertCell
    - moveToRoot
    - sqlite3PagerWrite
    - releasePage
    - hasSharedCacheTableLock
    - clearCell
    - invalidateIncrblobCursors
    - sqlite3BtreePrevious
    - dropCell
    - MX_CELL_SIZE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeDelete(BtCursor *pCur)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61976,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61977,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61978,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61981,1
    - Dst: invalidateAllOverflowCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:61995,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62001,1
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62007,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62008,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62011,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62012,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62018,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62036,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62037,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62043,1
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62047,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62052,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62055,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62056,1
    - Dst: relocatePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62057,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62058,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62064,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62068,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62070,1
    - Dst: ptrmapPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62078,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62088,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62088,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62089,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62090,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62091,1
    - Dst: allocateBtreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62100,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62100,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62106,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62107,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62108,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 3
    argNames:
    - p
    - piTable
    - createTabFlags
    argTypes:
    - Btree*
    - int*
    - int
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 61975
        line_start: 61975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType!=PTRMAP_ROOTPAGE )
      pos:
        line_end: 62054
        line_start: 62054
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pBt->pPage1->pDbPage) )
      pos:
        line_end: 62087
        line_start: 62087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 61977
        line_start: 61977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 61976
        line_start: 61976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgnoRoot>=3 || CORRUPT_DB )
      pos:
        line_end: 62010
        line_start: 62010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType!=PTRMAP_FREEPAGE )
      pos:
        line_end: 62055
        line_start: 62055
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pRoot->pDbPage) )
      pos:
        line_end: 62099
        line_start: 62099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pBt->openFlags & BTREE_SINGLE)==0 || pgnoRoot==2 )
      pos:
        line_end: 62107
        line_start: 62107
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62111
      start: 61969
    functionDepth: 17
    functionLinenumber: 61969
    functionLinenumberEnd: 62111
    functionName: btreeCreateTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - releasePage
    - allocateBtreePage
    - btreeGetPage
    - ptrmapGet
    - invalidateAllOverflowCache
    - NEVER
    - zeroPage
    - saveAllCursors
    - ptrmapPut
    - sqlite3PagerUnref
    - assert
    - sqlite3PagerWrite
    - sqlite3BtreeGetMeta
    - PTRMAP_PAGENO
    - relocatePage
    - sqlite3BtreeHoldsMutex
    - sqlite3BtreeUpdateMeta
    - PENDING_BYTE_PAGE
    - sqlite3PagerIswriteable
    - testcase
    linkageType: ''
    returnType: int
    signature: int btreeCreateTable(Btree *p, int *piTable, int createTabFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62114,1
    - Dst: btreeCreateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62115,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - piTable
    - flags
    argTypes:
    - Btree*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62118
      start: 62112
    functionDepth: 18
    functionLinenumber: 62112
    functionLinenumberEnd: 62118
    functionName: sqlite3BtreeCreateTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - btreeCreateTable
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCreateTable(Btree *p, int *piTable, int
      flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62137,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62137,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62138,1
    - Dst: getAndInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62141,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62150,1
    - Dst: clearDatabasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62152,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62152,1
    - Dst: clearCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62155,1
    - Dst: clearDatabasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62159,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62159,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62162,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62163,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62167,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62168,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62169,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62174,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - pBt
    - pgno
    - freePageFlag
    - pnChange
    argTypes:
    - BtShared*
    - Pgno
    - int
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 62136
        line_start: 62136
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->intKey || CORRUPT_DB )
      pos:
        line_end: 62161
        line_start: 62161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62176
      start: 62124
    functionDepth: 16
    functionLinenumber: 62124
    functionLinenumberEnd: 62176
    functionName: clearDatabasePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - zeroPage
    - testcase
    - assert
    - freePage
    - btreePagecount
    - findCell
    - sqlite3PagerWrite
    - releasePage
    - clearCell
    - getAndInitPage
    - get4byte
    - clearDatabasePage
    linkageType: ''
    returnType: int
    signature: "int clearDatabasePage(\n  BtShared *pBt,           /* The BTree that
      contains the table */\n  Pgno pgno,               /* Page number to clear */\n
      \ int freePageFlag,        /* Deallocate page if true */\n  int *pnChange            /*
      Add number of Cells freed to this counter */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62194,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62195,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62197,1
    - Dst: invalidateIncrblobCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62203,1
    - Dst: clearDatabasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62204,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iTable
    - pnChange
    argTypes:
    - Btree*
    - int
    - int*
    assertStmts:
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 62194
        line_start: 62194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62208
      start: 62191
    functionDepth: 17
    functionLinenumber: 62191
    functionLinenumberEnd: 62208
    functionName: sqlite3BtreeClearTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - saveAllCursors
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - invalidateIncrblobCursors
    - clearDatabasePage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearTable(Btree *p, int iTable, int *pnChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeClearTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62217
      start: 62215
    functionDepth: 18
    functionLinenumber: 62215
    functionLinenumberEnd: 62217
    functionName: sqlite3BtreeClearTableOfCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeClearTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearTableOfCursor(BtCursor *pCur)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62244,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62245,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62255,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62256,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62260,1
    - Dst: sqlite3BtreeClearTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62262,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62264,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62272,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62273,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62277,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62283,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62284,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62294,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62295,1
    - Dst: relocatePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62299,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62300,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62305,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62306,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62307,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62320,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62324,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62324,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62326,1
    - Dst: freePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62328,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62329,1
    - Dst: zeroPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62337,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62338,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 3
    argNames:
    - p
    - iTable
    - piMoved
    argTypes:
    - Btree*
    - Pgno
    - int*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 62243
        line_start: 62243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 62244
        line_start: 62244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( maxRootPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 62323
        line_start: 62323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62341
      start: 62239
    functionDepth: 18
    functionLinenumber: 62239
    functionLinenumberEnd: 62341
    functionName: btreeDropTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - zeroPage
    - sqlite3BtreeUpdateMeta
    - assert
    - sqlite3BtreeClearTable
    - freePage
    - PENDING_BYTE_PAGE
    - btreeGetPage
    - releasePage
    - relocatePage
    - sqlite3BtreeGetMeta
    - PTRMAP_ISPAGE
    - sqlite3BtreeHoldsMutex
    - sqlite3ConnectionBlocked
    linkageType: ''
    returnType: int
    signature: int btreeDropTable(Btree *p, Pgno iTable, int *piMoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62344,1
    - Dst: btreeDropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62345,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - iTable
    - piMoved
    argTypes:
    - Btree*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62348
      start: 62342
    functionDepth: 19
    functionLinenumber: 62342
    functionLinenumberEnd: 62348
    functionName: sqlite3BtreeDropTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - btreeDropTable
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeDropTable(Btree *p, int iTable, int *piMoved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62374,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62375,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62376,1
    - Dst: querySharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62376,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62377,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62378,1
    - Dst: sqlite3PagerDataVersion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62381,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62383,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - idx
    - pMeta
    argTypes:
    - Btree*
    - int
    - u32*
    assertStmts:
    - condition: ( pBt->pPage1 )
      pos:
        line_end: 62376
        line_start: 62376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans>TRANS_NONE )
      pos:
        line_end: 62374
        line_start: 62374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_OK==querySharedCacheTableLock(p, MASTER_ROOT, READ_LOCK)
        )
      pos:
        line_end: 62375
        line_start: 62375
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx>=0 && idx<=15 )
      pos:
        line_end: 62377
        line_start: 62377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62395
      start: 62371
    functionDepth: 2
    functionLinenumber: 62371
    functionLinenumberEnd: 62395
    functionName: sqlite3BtreeGetMeta
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3PagerDataVersion
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - get4byte
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetMeta(Btree *p, int idx, u32 *pMeta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62405,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62406,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62407,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62408,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62410,1
    - Dst: put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62415,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62416,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - idx
    - iMeta
    argTypes:
    - Btree*
    - int
    - u32
    assertStmts:
    - condition: ( idx>=1 && idx<=15 )
      pos:
        line_end: 62404
        line_start: 62404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->pPage1!=0 )
      pos:
        line_end: 62407
        line_start: 62407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 62406
        line_start: 62406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt->autoVacuum || iMeta==0 )
      pos:
        line_end: 62414
        line_start: 62414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iMeta==0 || iMeta==1 )
      pos:
        line_end: 62415
        line_start: 62415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62423
      start: 62401
    functionDepth: 13
    functionLinenumber: 62401
    functionLinenumberEnd: 62423
    functionName: sqlite3BtreeUpdateMeta
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerWrite
    - put4byte
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeUpdateMeta(Btree *p, int idx, u32 iMeta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62442,1
    - Dst: moveToRoot
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62475,1
    - Dst: moveToParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62477,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62489,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62489,1
    - Dst: moveToChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62491,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62491,1
    - Dst: findCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - pCur
    - pnEntry
    argTypes:
    - BtCursor*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62497
      start: 62434
    functionDepth: 13
    functionLinenumber: 62434
    functionLinenumberEnd: 62497
    functionName: sqlite3BtreeCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - moveToRoot
    - moveToParent
    - get4byte
    - moveToChild
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCount(BtCursor *pCur, i64 *pnEntry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62506
      start: 62504
    functionDepth: 0
    functionLinenumber: 62504
    functionLinenumberEnd: 62506
    functionName: sqlite3BtreePager
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreePager(Btree *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62522,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62524,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62527,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62528,1
    - Dst: sqlite3VXPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62530,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pCheck
    - zFormat
    argTypes:
    - IntegrityCk*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62535
      start: 62512
    functionDepth: 5
    functionLinenumber: 62512
    functionLinenumberEnd: 62535
    functionName: checkAppendMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumAppend
    - sqlite3StrAccumAppendAll
    - va_start
    - va_end
    - sqlite3_snprintf
    - sqlite3VXPrintf
    linkageType: ''
    returnType: void
    signature: "void checkAppendMsg(\n  IntegrityCk *pCheck,\n  const char *zFormat,\n
      \ ...\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pCheck
    - iPg
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts:
    - condition: ( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 )
      pos:
        line_end: 62544
        line_start: 62544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62547
      start: 62544
    functionDepth: 0
    functionLinenumber: 62544
    functionLinenumberEnd: 62547
    functionName: getPageReferenced
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int getPageReferenced(IntegrityCk *pCheck, Pgno iPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pCheck
    - iPg
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts:
    - condition: ( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 )
      pos:
        line_end: 62552
        line_start: 62552
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62555
      start: 62552
    functionDepth: 0
    functionLinenumber: 62552
    functionLinenumberEnd: 62555
    functionName: setPageReferenced
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void setPageReferenced(IntegrityCk *pCheck, Pgno iPg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62569,1
    - Dst: getPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62572,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62573,1
    - Dst: setPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pCheck
    - iPage
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62578
      start: 62566
    functionDepth: 6
    functionLinenumber: 62566
    functionLinenumberEnd: 62578
    functionName: checkRef
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - setPageReferenced
    - checkAppendMsg
    - getPageReferenced
    linkageType: ''
    returnType: int
    signature: int checkRef(IntegrityCk *pCheck, Pgno iPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptrmapGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62596,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62599,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - pCheck
    - iChild
    - eType
    - iParent
    argTypes:
    - IntegrityCk*
    - Pgno
    - u8
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62608
      start: 62586
    functionDepth: 11
    functionLinenumber: 62586
    functionLinenumberEnd: 62608
    functionName: checkPtrmap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ptrmapGet
    - checkAppendMsg
    linkageType: ''
    returnType: void
    signature: "void checkPtrmap(\n  IntegrityCk *pCheck,   /* Integrity check context
      */\n  Pgno iChild,           /* Child page number */\n  u8 eType,              /*
      Expected pointer map type */\n  Pgno iParent           /* Expected pointer map
      parent page number */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62628,1
    - Dst: checkRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62633,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62634,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62635,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62638,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62640,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62643,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62647,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62652,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62655,1
    - Dst: checkRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62658,1
    - Dst: if
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62669,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62670,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62671,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62675,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62676,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - pCheck
    - isFreeList
    - iPage
    - N
    argTypes:
    - IntegrityCk*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62678
      start: 62615
    functionDepth: 12
    functionLinenumber: 62615
    functionLinenumberEnd: 62678
    functionName: checkList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - checkRef
    - checkAppendMsg
    - checkPtrmap
    - sqlite3PagerGetData
    - if
    - sqlite3PagerGet
    - get4byte
    - sqlite3PagerUnref
    linkageType: ''
    returnType: void
    signature: "void checkList(\n  IntegrityCk *pCheck,  /* Integrity checking context
      */\n  int isFreeList,       /* True for a freelist.  False for overflow page
      list */\n  int iPage,            /* Page number for first page in the list */\n
      \ int N                 /* Expected number of pages in the list */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - aHeap
    - x
    argTypes:
    - u32*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62712
      start: 62703
    functionDepth: 0
    functionLinenumber: 62703
    functionLinenumberEnd: 62712
    functionName: btreeHeapInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void btreeHeapInsert(u32 *aHeap, u32 x)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - aHeap
    - pOut
    argTypes:
    - u32*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62730
      start: 62713
    functionDepth: 0
    functionLinenumber: 62713
    functionLinenumberEnd: 62730
    functionName: btreeHeapPull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int btreeHeapPull(u32 *aHeap, u32 *pOut)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: checkRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62784,1
    - Dst: btreeGetPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62787,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62788,1
    - Dst: btreeInitPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62797,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62798,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62799,1
    - Dst: get2byteNotZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62809,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62813,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62819,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62824,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62828,1
    - Dst: checkTreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62847,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62848,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62851,1
    - Dst: MemPage*::xParseCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62857,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62859,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62867,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62876,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62878,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62881,1
    - Dst: checkList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62884,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62889,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62892,1
    - Dst: checkTreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62895,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62898,1
    - Dst: btreeHeapInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62903,1
    - Dst: get2byteAligned
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62920,1
    - Dst: MemPage*::xCellSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62921,1
    - Dst: btreeHeapInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62922,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62931,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62934,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62935,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62936,1
    - Dst: btreeHeapInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62937,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62942,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62945,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62946,1
    - Dst: btreeHeapPull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62964,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62966,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62981,1
    - Dst: releasePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:62989,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 139
    argCount: 4
    argNames:
    - pCheck
    - iPage
    - piMinKey
    - maxKey
    argTypes:
    - IntegrityCk*
    - int
    - i64*
    - i64
    assertStmts:
    - condition: ( pCellIdx==&data[cellStart + i*2] )
      pos:
        line_end: 62846
        line_start: 62846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (u32)i<=usableSize-4 )
      pos:
        line_end: 62933
        line_start: 62933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j==0 || j>i+size )
      pos:
        line_end: 62944
        line_start: 62944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( contentOffset<=usableSize )
      pos:
        line_end: 62808
        line_start: 62808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->aCellIdx==&data[cellStart] )
      pos:
        line_end: 62818
        line_start: 62818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (u32)(i+size)<=usableSize )
      pos:
        line_end: 62935
        line_start: 62935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pc + info.iOverflow <= usableSize )
      pos:
        line_end: 62875
        line_start: 62875
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_CORRUPT )
      pos:
        line_end: 62797
        line_start: 62797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPage->nCell==nCell )
      pos:
        line_end: 62813
        line_start: 62813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (u32)j<=usableSize-4 )
      pos:
        line_end: 62945
        line_start: 62945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62994
      start: 62747
    functionDepth: 13
    functionLinenumber: 62747
    functionLinenumberEnd: 62994
    functionName: checkTreePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - checkRef
    - btreeInitPage
    - MemPage*::xCellSize
    - checkAppendMsg
    - assert
    - get2byte
    - checkPtrmap
    - get2byteAligned
    - MemPage*::xParseCell
    - btreeHeapInsert
    - get2byteNotZero
    - releasePage
    - btreeHeapPull
    - btreeGetPage
    - get4byte
    - checkList
    - checkTreePage
    linkageType: ''
    returnType: int
    signature: "int checkTreePage(\n  IntegrityCk *pCheck,  /* Context for the sanity
      check */\n  int iPage,            /* Page number of the page to check */\n  i64
      *piMinKey,        /* Write minimum integer primary key here */\n  i64 maxKey
      \           /* Error if integer primary key greater than this */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63025,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63026,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63027,1
    - Dst: sqlite3PagerRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63027,1
    - Dst: btreePagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63030,1
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63039,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63044,1
    - Dst: sqlite3PageMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63049,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63055,1
    - Dst: setPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63056,1
    - Dst: checkList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63061,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63061,1
    - Dst: get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63062,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63067,1
    - Dst: checkPtrmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63074,1
    - Dst: checkTreePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63077,1
    - Dst: getPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63085,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63086,1
    - Dst: getPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63092,1
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63093,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63094,1
    - Dst: getPageReferenced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63096,1
    - Dst: PTRMAP_PAGENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63097,1
    - Dst: checkAppendMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63098,1
    - Dst: sqlite3PageFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63106,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63107,1
    - Dst: sqlite3StrAccumReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63109,1
    - Dst: sqlite3StrAccumReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63113,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63115,1
    - Dst: sqlite3PagerRefcount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63115,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63116,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63117,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - p
    - aRoot
    - nRoot
    - mxErr
    - pnErr
    argTypes:
    - Btree*
    - int*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( (nRef = sqlite3PagerRefcount(pBt->pPager))>=0 )
      pos:
        line_end: 63026
        line_start: 63026
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nRef==sqlite3PagerRefcount(pBt->pPager) )
      pos:
        line_end: 63114
        line_start: 63114
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTrans>TRANS_NONE && pBt->inTransaction>TRANS_NONE )
      pos:
        line_end: 63025
        line_start: 63025
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63118
      start: 63011
    functionDepth: 14
    functionLinenumber: 63011
    functionLinenumberEnd: 63118
    functionName: sqlite3BtreeIntegrityCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - sqlite3PageFree
    - sqlite3PagerRefcount
    - checkList
    - sqlite3MallocZero
    - sqlite3StrAccumReset
    - sqlite3_free
    - getPageReferenced
    - btreePagecount
    - sqlite3PageMalloc
    - checkPtrmap
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - PTRMAP_PAGENO
    - sqlite3StrAccumFinish
    - setPageReferenced
    - checkAppendMsg
    - PENDING_BYTE_PAGE
    - get4byte
    - testcase
    - checkTreePage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3BtreeIntegrityCheck(\n  Btree *p,     /* The
      btree to be checked */\n  int *aRoot,   /* An array of root pages numbers for
      individual trees */\n  int nRoot,    /* Number of entries in aRoot[] */\n  int
      mxErr,    /* Stop reporting errors after this many */\n  int *pnErr    /* Write
      number of errors seen to this variable */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63129,1
    - Dst: sqlite3PagerFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pBt->pPager!=0 )
      pos:
        line_end: 63128
        line_start: 63128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63131
      start: 63128
    functionDepth: 1
    functionLinenumber: 63128
    functionLinenumberEnd: 63131
    functionName: sqlite3BtreeGetFilename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFilename
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeGetFilename(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63142,1
    - Dst: sqlite3PagerJournalname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pBt->pPager!=0 )
      pos:
        line_end: 63141
        line_start: 63141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63144
      start: 63141
    functionDepth: 1
    functionLinenumber: 63141
    functionLinenumberEnd: 63144
    functionName: sqlite3BtreeGetJournalname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerJournalname
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeGetJournalname(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63150,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p==0 || sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63149
        line_start: 63149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63152
      start: 63149
    functionDepth: 1
    functionLinenumber: 63149
    functionLinenumberEnd: 63152
    functionName: sqlite3BtreeIsInTrans
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInTrans(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63167,1
    - Dst: sqlite3PagerCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63171,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - p
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - Btree*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63176
      start: 63163
    functionDepth: 2
    functionLinenumber: 63163
    functionLinenumberEnd: 63176
    functionName: sqlite3BtreeCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3PagerCheckpoint
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCheckpoint(Btree *p, int eMode, int *pnLog,
      int *pnCkpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63183,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63184,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 63182
        line_start: 63182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63183
        line_start: 63183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63186
      start: 63182
    functionDepth: 1
    functionLinenumber: 63182
    functionLinenumberEnd: 63186
    functionName: sqlite3BtreeIsInReadTrans
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInReadTrans(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63189,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63190,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 63188
        line_start: 63188
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63189
        line_start: 63189
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63192
      start: 63188
    functionDepth: 1
    functionLinenumber: 63188
    functionLinenumberEnd: 63192
    functionName: sqlite3BtreeIsInBackup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInBackup(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63216,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63218,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - nBytes
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63223
      start: 63214
    functionDepth: 2
    functionLinenumber: 63214
    functionLinenumberEnd: 63223
    functionName: sqlite3BtreeSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeLeave
    - sqlite3DbMallocZero
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeSchema(Btree *p, int nBytes, void(*xFree)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63232,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63232,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63233,1
    - Dst: querySharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63235,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63231
        line_start: 63231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_LOCKED_SHAREDCACHE )
      pos:
        line_end: 63234
        line_start: 63234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63238
      start: 63230
    functionDepth: 2
    functionLinenumber: 63230
    functionLinenumberEnd: 63238
    functionName: sqlite3BtreeSchemaLocked
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSchemaLocked(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63249,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63253,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63255,1
    - Dst: querySharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63256,1
    - Dst: setSharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63258,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p
    - iTab
    - isWriteLock
    argTypes:
    - Btree*
    - int
    - u8
    assertStmts:
    - condition: ( p->inTrans!=TRANS_NONE )
      pos:
        line_end: 63248
        line_start: 63248
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isWriteLock==0 || isWriteLock==1 )
      pos:
        line_end: 63252
        line_start: 63252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( READ_LOCK+1==WRITE_LOCK )
      pos:
        line_end: 63251
        line_start: 63251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63263
      start: 63247
    functionDepth: 2
    functionLinenumber: 63247
    functionLinenumberEnd: 63263
    functionName: sqlite3BtreeLockTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    - setSharedCacheTableLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLockTable(Btree *p, int iTab, u8 isWriteLock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63279,1
    - Dst: cursorHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63279,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63280,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63280,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63281,1
    - Dst: restoreCursorPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63287,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63300,1
    - Dst: saveAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63300,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63301,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63315,1
    - Dst: hasSharedCacheTableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63316,1
    - Dst: hasReadConflicts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63317,1
    - Dst: accessPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - pCsr
    - offset
    - amt
    - z
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCsr) )
      pos:
        line_end: 63278
        line_start: 63278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCsr->pBtree->db->mutex) )
      pos:
        line_end: 63279
        line_start: 63279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->curFlags & BTCF_Incrblob )
      pos:
        line_end: 63280
        line_start: 63280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->eState!=CURSOR_REQUIRESEEK )
      pos:
        line_end: 63286
        line_start: 63286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 63300
        line_start: 63300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pCsr->pBt->btsFlags & BTS_READ_ONLY)==0\n              && pCsr->pBt->inTransaction==TRANS_WRITE
        )"
      pos:
        line_end: 63313
        line_start: 63312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( hasSharedCacheTableLock(pCsr->pBtree, pCsr->pgnoRoot, 0, 2) )
      pos:
        line_end: 63314
        line_start: 63314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !hasReadConflicts(pCsr->pBtree, pCsr->pgnoRoot) )
      pos:
        line_end: 63315
        line_start: 63315
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->apPage[pCsr->iPage]->intKey )
      pos:
        line_end: 63316
        line_start: 63316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63320
      start: 63277
    functionDepth: 15
    functionLinenumber: 63277
    functionLinenumberEnd: 63320
    functionName: sqlite3BtreePutData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - accessPayload
    - saveAllCursors
    - assert
    - VVA_ONLY
    - hasReadConflicts
    - cursorHoldsMutex
    - restoreCursorPosition
    - hasSharedCacheTableLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePutData(BtCursor *pCsr, u32 offset, u32
      amt, void *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63328
      start: 63325
    functionDepth: 0
    functionLinenumber: 63325
    functionLinenumberEnd: 63328
    functionName: sqlite3BtreeIncrblobCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIncrblobCursor(BtCursor *pCur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63340,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63348,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63352,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - pBtree
    - iVersion
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( iVersion==1 || iVersion==2 )
      pos:
        line_end: 63339
        line_start: 63339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63365
      start: 63336
    functionDepth: 15
    functionLinenumber: 63336
    functionLinenumberEnd: 63365
    functionName: sqlite3BtreeSetVersion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeBeginTrans
    - sqlite3PagerWrite
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetVersion(Btree *pBtree, int iVersion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - pCsr
    - mask
    argTypes:
    - BtCursor*
    - unsigned int
    assertStmts:
    - condition: ( mask==BTREE_BULKLOAD || mask==BTREE_SEEK_EQ || mask==0 )
      pos:
        line_end: 63370
        line_start: 63370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63373
      start: 63370
    functionDepth: 0
    functionLinenumber: 63370
    functionLinenumberEnd: 63373
    functionName: sqlite3BtreeCursorHints
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHints(BtCursor *pCsr, unsigned int
      mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCsr
    - mask
    argTypes:
    - BtCursor*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63382
      start: 63380
    functionDepth: 0
    functionLinenumber: 63380
    functionLinenumberEnd: 63382
    functionName: sqlite3BtreeCursorHasHint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHasHint(BtCursor *pCsr, unsigned int
      mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63390
      start: 63388
    functionDepth: 0
    functionLinenumber: 63388
    functionLinenumberEnd: 63390
    functionName: sqlite3BtreeIsReadonly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsReadonly(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63395
      start: 63395
    functionDepth: 1
    functionLinenumber: 63395
    functionLinenumberEnd: 63395
    functionName: sqlite3HeaderSizeBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizeBtree(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindDbName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63481,1
    - Dst: sqlite3StackAllocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63486,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63488,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63492,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63493,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63496,1
    - Dst: sqlite3ParserReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63497,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63498,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - pErrorDb
    - pDb
    - zDb
    argTypes:
    - sqlite3*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63511
      start: 63480
    functionDepth: 8
    functionLinenumber: 63480
    functionLinenumberEnd: 63511
    functionName: findBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorWithMsg
    - sqlite3FindDbName
    - sqlite3OpenTempDatabase
    - sqlite3StackAllocZero
    - sqlite3StackFree
    - sqlite3DbFree
    - sqlite3ParserReset
    linkageType: ''
    returnType: Btree
    signature: Btree *findBtree(sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63519,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63521
      start: 63517
    functionDepth: 8
    functionLinenumber: 63517
    functionLinenumberEnd: 63521
    functionName: setDestPgsz
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeSetPageSize
    - sqlite3BtreeGetPageSize
    linkageType: ''
    returnType: int
    signature: int setDestPgsz(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63530,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63535
      start: 63529
    functionDepth: 8
    functionLinenumber: 63529
    functionLinenumberEnd: 63535
    functionName: checkReadTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeIsInReadTrans
    - sqlite3ErrorWithMsg
    linkageType: ''
    returnType: int
    signature: int checkReadTransaction(sqlite3 *db, Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63554,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63554,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63568,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63569,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63572,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63581,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63583,1
    - Dst: findBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63589,1
    - Dst: findBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63590,1
    - Dst: setDestPgsz
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63597,1
    - Dst: checkReadTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63598,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63605,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63613,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63614,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - pDestDb
    - zDestDb
    - pSrcDb
    - zSrcDb
    argTypes:
    - sqlite3*
    - char*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63616
      start: 63545
    functionDepth: 10
    functionLinenumber: 63545
    functionLinenumberEnd: 63616
    functionName: sqlite3_backup_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3_mutex_enter
    - checkReadTransaction
    - sqlite3_free
    - sqlite3SafetyCheckOk
    - findBtree
    - setDestPgsz
    - sqlite3Error
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: "void sqlite3_backup_init(\n  sqlite3* pDestDb,                     /*
      Database to write to */\n  const char *zDestDb,                  /* Name of
      database within pDestDb */\n  sqlite3* pSrcDb,                      /* Database
      connection to read from */\n  const char *zSrcDb                    /* Name
      of database within pSrcDb */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63625
      start: 63623
    functionDepth: 1
    functionLinenumber: 63623
    functionLinenumberEnd: 63625
    functionName: isFatalError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: int
    signature: int isFatalError(int rc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63638,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63639,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63640,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63641,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63647,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63653,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63654,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63655,1
    - Dst: isFatalError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63655,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63656,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63656,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63657,1
    - Dst: sqlite3PagerIsMemdb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63662,1
    - Dst: sqlite3PagerGetCodec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63670,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63681,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63693,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63694,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63695,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63698,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63708,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63709,1
    - Dst: sqlite3Put4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63711,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63711,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63714,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 4
    argNames:
    - p
    - iSrcPg
    - zSrcData
    - bUpdate
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    - int
    assertStmts:
    - condition: ( p->bDestLocked )
      pos:
        line_end: 63653
        line_start: 63653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !isFatalError(p->rc) )
      pos:
        line_end: 63654
        line_start: 63654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) )
      pos:
        line_end: 63655
        line_start: 63655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeGetReserveNoMutex(p->pSrc)>=0 )
      pos:
        line_end: 63652
        line_start: 63652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zSrcData )
      pos:
        line_end: 63656
        line_start: 63656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63718
      start: 63632
    functionDepth: 13
    functionLinenumber: 63632
    functionLinenumberEnd: 63718
    functionName: backupOnePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePager
    - sqlite3Put4byte
    - sqlite3BtreeLastPage
    - sqlite3PagerGetData
    - sqlite3PagerGetCodec
    - sqlite3PagerIsMemdb
    - sqlite3BtreeGetReserveNoMutex
    - sqlite3PagerSetPagesize
    - sqlite3PagerGetExtra
    - memcpy
    - sqlite3BtreeGetOptimalReserve
    - sqlite3PagerUnref
    - MIN
    - isFatalError
    - assert
    - sqlite3PagerWrite
    - sqlite3BtreeGetPageSize
    - PENDING_BYTE_PAGE
    - sqlite3PagerGet
    linkageType: ''
    returnType: int
    signature: "int backupOnePage(\n  sqlite3_backup *p,              /* Backup handle
      */\n  Pgno iSrcPg,                    /* Source database page to backup */\n
      \ const u8 *zSrcData,             /* Source database page data */\n  int bUpdate
      \                    /* True for an update, false otherwise */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63730,1
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pFile
    - iSize
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63735
      start: 63728
    functionDepth: 2
    functionLinenumber: 63728
    functionLinenumberEnd: 63735
    functionName: backupTruncateFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int backupTruncateFile(sqlite3_file *pFile, i64 iSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63743,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63743,1
    - Dst: sqlite3PagerBackupPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63744,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p->pSrc) )
      pos:
        line_end: 63742
        line_start: 63742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63748
      start: 63741
    functionDepth: 1
    functionLinenumber: 63741
    functionLinenumberEnd: 63748
    functionName: attachBackupObject
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - sqlite3BtreePager
    - sqlite3PagerBackupPtr
    - assert
    linkageType: ''
    returnType: void
    signature: void attachBackupObject(sqlite3_backup *p)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63762,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63763,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63765,1
    - Dst: isFatalError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63769,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63770,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63771,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63787,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63790,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63797,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63798,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63804,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63805,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63806,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63806,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63815,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63818,1
    - Dst: sqlite3PagerAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63820,1
    - Dst: backupOnePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63823,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63823,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63824,1
    - Dst: attachBackupObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63835,1
    - Dst: sqlite3BtreeNewDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63846,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63850,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63854,1
    - Dst: sqlite3BtreeSetVersion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63874,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63874,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63875,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63875,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63885,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63898,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63904,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63905,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63907,1
    - Dst: sqlite3PagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63917,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63919,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63921,1
    - Dst: sqlite3PagerWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63923,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63924,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63929,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63933,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63941,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63943,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63944,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63946,1
    - Dst: backupTruncateFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63949,1
    - Dst: sqlite3PagerSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63954,1
    - Dst: sqlite3PagerTruncateImage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63957,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63958,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63963,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63977,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63977,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63978,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63978,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63979,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63988,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63990,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:63991,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 135
    argCount: 2
    argNames:
    - p
    - nPage
    argTypes:
    - sqlite3_backup*
    - int
    assertStmts:
    - condition: ( pgszSrc==sqlite3BtreeGetPageSize(p->pSrc) )
      pos:
        line_end: 63873
        line_start: 63873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgszDest==sqlite3BtreeGetPageSize(p->pDest) )
      pos:
        line_end: 63874
        line_start: 63874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nSrcPage>=0 )
      pos:
        line_end: 63814
        line_start: 63814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc2==SQLITE_OK )
      pos:
        line_end: 63978
        line_start: 63978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 63903
        line_start: 63903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( nDestTruncate==0 \n              || (i64)nDestTruncate*(i64)pgszDest
        >= iSize || (\n                nDestTruncate==(int)(PENDING_BYTE_PAGE(p->pDest->pBt)-1)\n
        \            && iSize>=PENDING_BYTE && iSize<=PENDING_BYTE+pgszDest\n          ))"
      pos:
        line_end: 63908
        line_start: 63904
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nDestTruncate>0 )
      pos:
        line_end: 63884
        line_start: 63884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63993
      start: 63753
    functionDepth: 20
    functionLinenumber: 63753
    functionLinenumberEnd: 63993
    functionName: sqlite3_backup_step
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePager
    - sqlite3BtreeLastPage
    - sqlite3PagerGetData
    - sqlite3PagerPagecount
    - TESTONLY
    - attachBackupObject
    - sqlite3PagerTruncateImage
    - sqlite3PagerAcquire
    - sqlite3BtreeNewDb
    - sqlite3PagerSync
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3_mutex_leave
    - sqlite3PagerUnref
    - MIN
    - sqlite3_mutex_enter
    - sqlite3BtreeCommitPhaseOne
    - isFatalError
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerCommitPhaseOne
    - sqlite3BtreeLeave
    - sqlite3PagerWrite
    - sqlite3BtreeGetPageSize
    - sqlite3BtreeGetMeta
    - sqlite3ResetAllSchemasOfConnection
    - backupOnePage
    - sqlite3BtreeUpdateMeta
    - sqlite3PagerGetJournalMode
    - sqlite3BtreeIsInReadTrans
    - sqlite3BtreeSetVersion
    - PENDING_BYTE_PAGE
    - sqlite3PagerFile
    - sqlite3BtreeBeginTrans
    - backupTruncateFile
    - sqlite3OsWrite
    - sqlite3PagerGet
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_step(sqlite3_backup *p, int nPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64006,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64007,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64009,1
    - Dst: sqlite3PagerBackupPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64017,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64017,1
    - Dst: sqlite3BtreeRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64025,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64030,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64033,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64035,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64040,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64042,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64044
      start: 63998
    functionDepth: 13
    functionLinenumber: 63998
    functionLinenumberEnd: 64044
    functionName: sqlite3_backup_finish
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreePager
    - sqlite3_free
    - sqlite3BtreeEnter
    - sqlite3LeaveMutexAndCloseZombie
    - sqlite3BtreeLeave
    - sqlite3Error
    - sqlite3BtreeRollback
    - sqlite3PagerBackupPtr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_finish(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64058
      start: 64050
    functionDepth: 0
    functionLinenumber: 64050
    functionLinenumberEnd: 64058
    functionName: sqlite3_backup_remaining
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_remaining(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64072
      start: 64064
    functionDepth: 0
    functionLinenumber: 64064
    functionLinenumberEnd: 64072
    functionName: sqlite3_backup_pagecount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_pagecount(sqlite3_backup *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64091,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64093,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64093,1
    - Dst: isFatalError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64094,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64100,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64101,1
    - Dst: backupOnePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64102,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64103,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iPage
    - aData
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 64090
        line_start: 64090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pDestDb )
      pos:
        line_end: 64099
        line_start: 64099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pSrc->pBt->mutex) )
      pos:
        line_end: 64092
        line_start: 64092
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_BUSY && rc!=SQLITE_LOCKED )
      pos:
        line_end: 64103
        line_start: 64103
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64110
      start: 64086
    functionDepth: 14
    functionLinenumber: 64086
    functionLinenumberEnd: 64110
    functionName: backupUpdate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_mutex_enter
    - isFatalError
    - assert
    - backupOnePage
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE backupUpdate(\n  sqlite3_backup *p,\n  Pgno iPage,\n
      \ const u8 *aData\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: backupUpdate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - pBackup
    - iPage
    - aData
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64113
      start: 64111
    functionDepth: 15
    functionLinenumber: 64111
    functionLinenumberEnd: 64113
    functionName: sqlite3BackupUpdate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - backupUpdate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BackupUpdate(sqlite3_backup *pBackup, Pgno iPage,
      const u8 *aData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64129,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pBackup
    argTypes:
    - sqlite3_backup*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pSrc->pBt->mutex) )
      pos:
        line_end: 64128
        line_start: 64128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64132
      start: 64126
    functionDepth: 1
    functionLinenumber: 64126
    functionLinenumberEnd: 64132
    functionName: sqlite3BackupRestart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BackupRestart(sqlite3_backup *pBackup)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64147,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64148,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64150,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64150,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64151,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64151,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64153,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64153,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64154,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64164,1
    - Dst: sqlite3_backup_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64177,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64178,1
    - Dst: sqlite3_backup_finish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64179,1
    - Dst: sqlite3PagerClearCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64183,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64183,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64186,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64186,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64188,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Btree*
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeIsInTrans(pTo)==0 )
      pos:
        line_end: 64185
        line_start: 64185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pTo) )
      pos:
        line_end: 64149
        line_start: 64149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( b.rc!=SQLITE_OK )
      pos:
        line_end: 64177
        line_start: 64177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64191
      start: 64143
    functionDepth: 21
    functionLinenumber: 64143
    functionLinenumberEnd: 64191
    functionName: sqlite3BtreeCopyFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerClearCache
    - sqlite3BtreeIsInTrans
    - sqlite3BtreePager
    - memset
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLastPage
    - sqlite3PagerFile
    - sqlite3BtreeLeave
    - sqlite3_backup_finish
    - sqlite3BtreeGetPageSize
    - sqlite3OsFileControl
    - sqlite3_backup_step
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64233,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64239,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64240,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (p->flags & MEM_Dyn)==0 || p->xDel!=0 )
      pos:
        line_end: 64226
        line_start: 64226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags & (MEM_Int|MEM_Real))!=(MEM_Int|MEM_Real) )
      pos:
        line_end: 64235
        line_start: 64235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags & MEM_Dyn)==0 || p->szMalloc==0 )
      pos:
        line_end: 64232
        line_start: 64232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->szMalloc==0\n       || p->szMalloc==sqlite3DbMallocSize(p->db,p->zMalloc)
        )"
      pos:
        line_end: 64239
        line_start: 64238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( \n      ((p->szMalloc>0 && p->z==p->zMalloc)? 1 : 0) +\n      ((p->flags&MEM_Dyn)!=0
        ? 1 : 0) +\n      ((p->flags&MEM_Ephem)!=0 ? 1 : 0) +\n      ((p->flags&MEM_Static)!=0
        ? 1 : 0) == 1\n    )"
      pos:
        line_end: 64255
        line_start: 64250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64259
      start: 64223
    functionDepth: 3
    functionLinenumber: 64223
    functionLinenumberEnd: 64259
    functionName: sqlite3VdbeCheckMemInvariants
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocSize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCheckMemInvariants(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64280,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64281,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64286,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64286,1
    - Dst: sqlite3VdbeMemTranslate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - pMem
    - desiredEnc
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( (pMem->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64279
        line_start: 64279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64285
        line_start: 64285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( desiredEnc==SQLITE_UTF8 || desiredEnc==SQLITE_UTF16LE\n           ||
        desiredEnc==SQLITE_UTF16BE )"
      pos:
        line_end: 64281
        line_start: 64280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (rc==SQLITE_OK    || rc==SQLITE_NOMEM)
      pos:
        line_end: 64294
        line_start: 64294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (rc==SQLITE_OK    || pMem->enc!=desiredEnc)
      pos:
        line_end: 64295
        line_start: 64295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (rc==SQLITE_NOMEM || pMem->enc==desiredEnc)
      pos:
        line_end: 64296
        line_start: 64296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64300
      start: 64276
    functionDepth: 6
    functionLinenumber: 64276
    functionLinenumberEnd: 64300
    functionName: sqlite3VdbeChangeEncoding
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemTranslate
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64312,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64317,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64318,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64320,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64321,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64325,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64328,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64329,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64332,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64337,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64342,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64345,1
    - Dst: Mem*::xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - pMem
    - n
    - bPreserve
    argTypes:
    - Mem*
    - int
    - int
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(pMem) )
      pos:
        line_end: 64311
        line_start: 64311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64312
        line_start: 64312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bPreserve==0 || pMem->flags&(MEM_Blob|MEM_Str) )
      pos:
        line_end: 64316
        line_start: 64316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pMem->szMalloc==0\n       || pMem->szMalloc==sqlite3DbMallocSize(pMem->db,
        pMem->zMalloc) )"
      pos:
        line_end: 64320
        line_start: 64319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->xDel!=0 && pMem->xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 64344
        line_start: 64344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64352
      start: 64311
    functionDepth: 7
    functionLinenumber: 64311
    functionLinenumberEnd: 64352
    functionName: sqlite3VdbeMemGrow
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - Mem*::xDel
    - sqlite3DbMallocSize
    - memcpy
    - sqlite3DbReallocOrFree
    - sqlite3VdbeMemSetNull
    - sqlite3VdbeCheckMemInvariants
    - testcase
    - sqlite3DbFree
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemGrow(Mem *pMem, int n, int bPreserve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64368,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64369,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64371,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pMem
    - szNew
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( szNew>0 )
      pos:
        line_end: 64367
        line_start: 64367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 )
      pos:
        line_end: 64372
        line_start: 64372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 || pMem->szMalloc==0 )
      pos:
        line_end: 64368
        line_start: 64368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64377
      start: 64367
    functionDepth: 8
    functionLinenumber: 64367
    functionLinenumberEnd: 64377
    functionName: sqlite3VdbeMemClearAndResize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemClearAndResize(Mem *pMem, int szNew)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64387,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64387,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64388,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64389,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64386
        line_start: 64386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64387
        line_start: 64387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64405
      start: 64385
    functionDepth: 8
    functionLinenumber: 64385
    functionLinenumberEnd: 64405
    functionName: sqlite3VdbeMemMakeWriteable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - ExpandBlob
    - assert
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemMakeWriteable(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64415,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64416,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64417,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64417,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64424,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->flags&MEM_Blob )
      pos:
        line_end: 64414
        line_start: 64414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64416
        line_start: 64416
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64415
        line_start: 64415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64433
      start: 64412
    functionDepth: 8
    functionLinenumber: 64412
    functionLinenumberEnd: 64433
    functionName: sqlite3VdbeMemExpandBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - assert
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemExpandBlob(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64448
      start: 64440
    functionDepth: 8
    functionLinenumber: 64440
    functionLinenumberEnd: 64448
    functionName: vdbeMemAddTerminator
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemAddTerminator(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64454,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64454,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64455,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64456,1
    - Dst: vdbeMemAddTerminator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64453
        line_start: 64453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64462
      start: 64453
    functionDepth: 9
    functionLinenumber: 64453
    functionLinenumberEnd: 64462
    functionName: sqlite3VdbeMemNulTerminate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - testcase
    - assert
    - vdbeMemAddTerminator
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemNulTerminate(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64482,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64482,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64483,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64484,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64485,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64487,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64487,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64490,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64503,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64504,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64506,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - pMem
    - enc
    - bForce
    argTypes:
    - Mem*
    - u8
    - u8
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64481
        line_start: 64481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !(fg&MEM_Zero) )
      pos:
        line_end: 64482
        line_start: 64482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fg&(MEM_Int|MEM_Real) )
      pos:
        line_end: 64484
        line_start: 64484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !(fg&(MEM_Str|MEM_Blob)) )
      pos:
        line_end: 64483
        line_start: 64483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64485
        line_start: 64485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64486
        line_start: 64486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fg & MEM_Real )
      pos:
        line_end: 64502
        line_start: 64502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64512
      start: 64478
    functionDepth: 9
    functionLinenumber: 64478
    functionLinenumberEnd: 64512
    functionName: sqlite3VdbeMemStringify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemClearAndResize
    - assert
    - sqlite3VdbeChangeEncoding
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3Strlen30
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemStringify(Mem *pMem, u8 enc, u8 bForce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64524,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64527,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64528,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64528,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64529,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64530,1
    - Dst: FuncDef*::xFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64536,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64537,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64538,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pMem
    - pFunc
    argTypes:
    - Mem*
    - FuncDef*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64527
        line_start: 64527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_Null)!=0 || pFunc==pMem->u.pDef )
      pos:
        line_end: 64526
        line_start: 64526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 )
      pos:
        line_end: 64536
        line_start: 64536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64543
      start: 64522
    functionDepth: 5
    functionLinenumber: 64522
    functionLinenumberEnd: 64543
    functionName: sqlite3VdbeMemFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - memset
    - assert
    - ALWAYS
    - FuncDef*::xFinalize
    - memcpy
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemFinalize(Mem *pMem, FuncDef *pFunc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64555,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64555,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64556,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64556,1
    - Dst: sqlite3VdbeMemFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64558,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64559,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64564,1
    - Dst: Mem*::xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64565,1
    - Dst: sqlite3RowSetClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( p->db==0 || sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 64554
        line_start: 64554
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( VdbeMemDynamic(p) )
      pos:
        line_end: 64555
        line_start: 64555
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags & MEM_Agg)==0 )
      pos:
        line_end: 64558
        line_start: 64558
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags&MEM_RowSet)==0 )
      pos:
        line_end: 64562
        line_start: 64562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->xDel!=SQLITE_DYNAMIC && p->xDel!=0 )
      pos:
        line_end: 64563
        line_start: 64563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64574
      start: 64554
    functionDepth: 6
    functionLinenumber: 64554
    functionLinenumberEnd: 64574
    functionName: vdbeMemClearExternAndSetNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - Mem*::xDel
    - sqlite3VdbeMemFinalize
    - sqlite3RowSetClear
    - VdbeMemDynamic
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemClearExternAndSetNull(Mem *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64585,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64586,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64593
      start: 64584
    functionDepth: 7
    functionLinenumber: 64584
    functionLinenumberEnd: 64593
    functionName: vdbeMemClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - VdbeMemDynamic
    - sqlite3DbFree
    - vdbeMemClearExternAndSetNull
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemClear(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64606,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64606,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64607,1
    - Dst: vdbeMemClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(p) )
      pos:
        line_end: 64605
        line_start: 64605
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64610
      start: 64605
    functionDepth: 8
    functionLinenumber: 64605
    functionLinenumberEnd: 64610
    functionName: sqlite3VdbeMemRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeCheckMemInvariants
    - VdbeMemDynamic
    - vdbeMemClear
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemRelease(Mem *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64640
      start: 64617
    functionDepth: 0
    functionLinenumber: 64617
    functionLinenumberEnd: 64640
    functionName: doubleToInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: i64 doubleToInt64(double r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64655,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64655,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64656,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64656,1
    - Dst: doubleToInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64661,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64664,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64654
        line_start: 64654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64655
        line_start: 64655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->z || pMem->n==0 )
      pos:
        line_end: 64663
        line_start: 64663
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64670
      start: 64653
    functionDepth: 3
    functionLinenumber: 64653
    functionLinenumberEnd: 64670
    functionName: sqlite3VdbeIntValue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3Atoi64
    - EIGHT_BYTE_ALIGNMENT
    - doubleToInt64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIntValue(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64679,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64679,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64680,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64680,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64678
        line_start: 64678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64679
        line_start: 64679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64694
      start: 64678
    functionDepth: 2
    functionLinenumber: 64678
    functionLinenumberEnd: 64694
    functionName: sqlite3VdbeRealValue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3AtoF
    - EIGHT_BYTE_ALIGNMENT
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRealValue(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64702,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64703,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64704,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64704,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64705,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64705,1
    - Dst: doubleToInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64707,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->flags & MEM_Real )
      pos:
        line_end: 64701
        line_start: 64701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64704
        line_start: 64704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_RowSet)==0 )
      pos:
        line_end: 64702
        line_start: 64702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64703
        line_start: 64703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64723
      start: 64700
    functionDepth: 1
    functionLinenumber: 64700
    functionLinenumberEnd: 64723
    functionName: sqlite3VdbeIntegerAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MemSetTypeFlag
    - assert
    - EIGHT_BYTE_ALIGNMENT
    - doubleToInt64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIntegerAffinity(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64729,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64729,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64730,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64731,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64731,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64733,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64728
        line_start: 64728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_RowSet)==0 )
      pos:
        line_end: 64729
        line_start: 64729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64730
        line_start: 64730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64736
      start: 64728
    functionDepth: 4
    functionLinenumber: 64728
    functionLinenumberEnd: 64736
    functionName: sqlite3VdbeMemIntegerify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MemSetTypeFlag
    - sqlite3VdbeIntValue
    - assert
    - EIGHT_BYTE_ALIGNMENT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemIntegerify(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64743,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64743,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64744,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64744,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64746,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64742
        line_start: 64742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 64743
        line_start: 64743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64749
      start: 64742
    functionDepth: 3
    functionLinenumber: 64742
    functionLinenumberEnd: 64749
    functionName: sqlite3VdbeMemRealify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MemSetTypeFlag
    - assert
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3VdbeRealValue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemRealify(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64762,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64762,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64763,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64764,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64766,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64767,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (pMem->flags & (MEM_Blob|MEM_Str))!=0 )
      pos:
        line_end: 64760
        line_start: 64760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 64761
        line_start: 64761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & (MEM_Int|MEM_Real|MEM_Null))!=0 )
      pos:
        line_end: 64770
        line_start: 64770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64774
      start: 64759
    functionDepth: 3
    functionLinenumber: 64759
    functionLinenumberEnd: 64774
    functionName: sqlite3VdbeMemNumerify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - MemSetTypeFlag
    - assert
    - sqlite3VdbeIntegerAffinity
    - sqlite3Atoi64
    - sqlite3VdbeRealValue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemNumerify(Mem *pMem)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64788,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64789,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64790,1
    - Dst: sqlite3VdbeMemNumerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64797,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64801,1
    - Dst: sqlite3VdbeMemRealify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64805,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64809,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64810,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64812,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64813,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - pMem
    - aff
    - encoding
    argTypes:
    - Mem*
    - u8
    - u8
    assertStmts:
    - condition: ( pMem->flags & MEM_Str || pMem->db->mallocFailed )
      pos:
        line_end: 64788
        line_start: 64788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aff==SQLITE_AFF_TEXT )
      pos:
        line_end: 64808
        line_start: 64808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( MEM_Str==(MEM_Blob>>3) )
      pos:
        line_end: 64809
        line_start: 64809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->flags & MEM_Str || pMem->db->mallocFailed )
      pos:
        line_end: 64812
        line_start: 64812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64818
      start: 64783
    functionDepth: 5
    functionLinenumber: 64783
    functionLinenumberEnd: 64818
    functionName: sqlite3VdbeMemCast
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemSetTypeFlag
    - assert
    - sqlite3VdbeMemRealify
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemNumerify
    - sqlite3VdbeMemIntegerify
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemCast(Mem *pMem, u8 aff, u8 encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pMem
    - db
    - flags
    argTypes:
    - Mem*
    - sqlite3*
    - u16
    assertStmts:
    - condition: ( (flags & ~MEM_TypeMask)==0 )
      pos:
        line_end: 64825
        line_start: 64825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64830
      start: 64825
    functionDepth: 0
    functionLinenumber: 64825
    functionLinenumberEnd: 64830
    functionName: sqlite3VdbeMemInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemInit(Mem *pMem, sqlite3 *db, u16 flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64846,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64851
      start: 64845
    functionDepth: 7
    functionLinenumber: 64845
    functionLinenumberEnd: 64851
    functionName: sqlite3VdbeMemSetNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - VdbeMemDynamic
    - vdbeMemClearExternAndSetNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetNull(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64854
      start: 64852
    functionDepth: 8
    functionLinenumber: 64852
    functionLinenumberEnd: 64854
    functionName: sqlite3ValueSetNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueSetNull(sqlite3_value *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pMem
    - n
    argTypes:
    - Mem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64868
      start: 64860
    functionDepth: 9
    functionLinenumber: 64860
    functionLinenumberEnd: 64868
    functionName: sqlite3VdbeMemSetZeroBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetZeroBlob(Mem *pMem, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64879
      start: 64875
    functionDepth: 8
    functionLinenumber: 64875
    functionLinenumberEnd: 64879
    functionName: vdbeReleaseAndSetInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeReleaseAndSetInt64(Mem *pMem, i64 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64886,1
    - Dst: vdbeReleaseAndSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64892
      start: 64885
    functionDepth: 9
    functionLinenumber: 64885
    functionLinenumberEnd: 64892
    functionName: sqlite3VdbeMemSetInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - VdbeMemDynamic
    - vdbeReleaseAndSetInt64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetInt64(Mem *pMem, i64 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64900,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64905
      start: 64899
    functionDepth: 8
    functionLinenumber: 64899
    functionLinenumberEnd: 64905
    functionName: sqlite3VdbeMemSetDouble
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNaN
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetDouble(Mem *pMem, double val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64914,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64915,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64916,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64922,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64923,1
    - Dst: sqlite3RowSetInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64924,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 64913
        line_start: 64913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_RowSet)==0 )
      pos:
        line_end: 64914
        line_start: 64914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->zMalloc )
      pos:
        line_end: 64921
        line_start: 64921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->u.pRowSet!=0 )
      pos:
        line_end: 64924
        line_start: 64924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64928
      start: 64912
    functionDepth: 9
    functionLinenumber: 64912
    functionLinenumberEnd: 64928
    functionName: sqlite3VdbeMemSetRowSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocSize
    - sqlite3VdbeMemRelease
    - sqlite3RowSetInit
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetRowSet(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( p->db!=0 )
      pos:
        line_end: 64934
        line_start: 64934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64944
      start: 64934
    functionDepth: 0
    functionLinenumber: 64934
    functionLinenumberEnd: 64944
    functionName: sqlite3VdbeMemTooBig
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemTooBig(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pVdbe
    - pMem
    argTypes:
    - Vdbe*
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64965
      start: 64955
    functionDepth: 0
    functionLinenumber: 64955
    functionLinenumberEnd: 64965
    functionName: sqlite3VdbeMemAboutToChange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemAboutToChange(Vdbe *pVdbe, Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64977,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64977,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pTo
    - pFrom
    - eType
    argTypes:
    - Mem*
    - Mem*
    - int
    assertStmts:
    - condition: ( !VdbeMemDynamic(pTo) )
      pos:
        line_end: 64976
        line_start: 64976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64979
      start: 64975
    functionDepth: 7
    functionLinenumber: 64975
    functionLinenumberEnd: 64979
    functionName: vdbeClrCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - VdbeMemDynamic
    - sqlite3VdbeMemShallowCopy
    - vdbeMemClearExternAndSetNull
    - assert
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeClrCopy(Mem *pTo, const Mem *pFrom, int eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64982,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64983,1
    - Dst: vdbeClrCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64983,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64984,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:64987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pTo
    - pFrom
    - srcType
    argTypes:
    - Mem*
    - Mem*
    - int
    assertStmts:
    - condition: ( (pFrom->flags & MEM_RowSet)==0 )
      pos:
        line_end: 64980
        line_start: 64980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTo->db==pFrom->db )
      pos:
        line_end: 64981
        line_start: 64981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( srcType==MEM_Ephem || srcType==MEM_Static )
      pos:
        line_end: 64986
        line_start: 64986
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64990
      start: 64980
    functionDepth: 8
    functionLinenumber: 64980
    functionLinenumberEnd: 64990
    functionName: sqlite3VdbeMemShallowCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - VdbeMemDynamic
    - vdbeClrCopy
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemShallowCopy(Mem *pTo, const Mem *pFrom,
      int srcType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65003,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65004,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65004,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65005,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Mem*
    - Mem*
    assertStmts:
    - condition: ( pTo->db==pFrom->db || pFrom->db==0 )
      pos:
        line_end: 65001
        line_start: 65001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pFrom->flags & MEM_RowSet)==0 )
      pos:
        line_end: 65002
        line_start: 65002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65015
      start: 64996
    functionDepth: 9
    functionLinenumber: 64996
    functionLinenumberEnd: 65015
    functionName: sqlite3VdbeMemCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - vdbeMemClearExternAndSetNull
    - VdbeMemDynamic
    - sqlite3VdbeMemMakeWriteable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemCopy(Mem *pTo, const Mem *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65024,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65024,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65025,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65025,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65026,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65028,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Mem*
    - Mem*
    assertStmts:
    - condition: ( pFrom->db==0 || sqlite3_mutex_held(pFrom->db->mutex) )
      pos:
        line_end: 65023
        line_start: 65023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTo->db==0 || sqlite3_mutex_held(pTo->db->mutex) )
      pos:
        line_end: 65024
        line_start: 65024
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->db==0 || pTo->db==0 || pFrom->db==pTo->db )
      pos:
        line_end: 65025
        line_start: 65025
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65032
      start: 65023
    functionDepth: 9
    functionLinenumber: 65023
    functionLinenumberEnd: 65032
    functionName: sqlite3VdbeMemMove
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemRelease
    - memcpy
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemMove(Mem *pTo, Mem *pFrom)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65060,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65060,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65061,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65065,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65076,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65078,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65098,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65099,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65100,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65101,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65101,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65104,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65106,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65108,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65110,1
    - Dst: sqlite3VdbeMemHandleBom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65121,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 4
    argNames:
    - pMem
    - z
    - n
    - enc
    argTypes:
    - Mem*
    - char*
    - int
    - u8
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 65059
        line_start: 65059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( enc!=0 )
      pos:
        line_end: 65075
        line_start: 65075
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_RowSet)==0 )
      pos:
        line_end: 65060
        line_start: 65060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65131
      start: 65049
    functionDepth: 9
    functionLinenumber: 65049
    functionLinenumberEnd: 65131
    functionName: sqlite3VdbeMemSetStr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemClearAndResize
    - assert
    - MAX
    - sqlite3DbMallocSize
    - memcpy
    - sqlite3VdbeMemHandleBom
    - sqlite3Strlen30
    - sqlite3VdbeMemRelease
    - sqlite3VdbeMemSetNull
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMemSetStr(\n  Mem *pMem,          /* Memory
      cell to set to string value */\n  const char *z,      /* String pointer */\n
      \ int n,              /* Bytes in string, or negative */\n  u8 enc,             /*
      Encoding of z.  0 for BLOBs */\n  void (*xDel)(void*) /* Destructor function
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65158,1
    - Dst: sqlite3BtreeKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65160,1
    - Dst: sqlite3BtreeData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65162,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - pCur
    - offset
    - amt
    - key
    - pMem
    argTypes:
    - BtCursor*
    - u32
    - u32
    - int
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65174
      start: 65149
    functionDepth: 16
    functionLinenumber: 65149
    functionLinenumberEnd: 65174
    functionName: vdbeMemFromBtreeResize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - sqlite3VdbeMemRelease
    - sqlite3BtreeData
    - sqlite3BtreeKey
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE vdbeMemFromBtreeResize(\n  BtCursor *pCur,   /* Cursor
      pointing at record to retrieve. */\n  u32 offset,       /* Offset from the start
      of data to return bytes from. */\n  u32 amt,          /* Number of bytes to
      return. */\n  int key,          /* If true, retrieve from the btree key, not
      data. */\n  Mem *pMem         /* OUT: Return data in this Mem structure. */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65186,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65187,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65191,1
    - Dst: sqlite3BtreeKeyFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65193,1
    - Dst: sqlite3BtreeDataFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65197,1
    - Dst: vdbeMemFromBtreeResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - pCur
    - offset
    - amt
    - key
    - pMem
    argTypes:
    - BtCursor*
    - u32
    - u32
    - int
    - Mem*
    assertStmts:
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 65185
        line_start: 65185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_RowSet)==0 )
      pos:
        line_end: 65190
        line_start: 65190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !VdbeMemDynamic(pMem) )
      pos:
        line_end: 65186
        line_start: 65186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zData!=0 )
      pos:
        line_end: 65196
        line_start: 65196
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65208
      start: 65175
    functionDepth: 17
    functionLinenumber: 65175
    functionLinenumberEnd: 65208
    functionName: sqlite3VdbeMemFromBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeCursorIsValid
    - sqlite3BtreeKeyFetch
    - sqlite3BtreeDataFetch
    - VdbeMemDynamic
    - vdbeMemFromBtreeResize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMemFromBtree(\n  BtCursor *pCur,   /* Cursor
      pointing at record to retrieve. */\n  u32 offset,       /* Offset from the start
      of data to return bytes from. */\n  u32 amt,          /* Number of bytes to
      return. */\n  int key,          /* If true, retrieve from the btree key, not
      data. */\n  Mem *pMem         /* OUT: Return data in this Mem structure. */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65216,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65217,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65219,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65220,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65224,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65227,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65229,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65230,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65231,1
    - Dst: sqlite3VdbeMemNulTerminate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65235,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65238,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65238,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( pVal!=0 )
      pos:
        line_end: 65215
        line_start: 65215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pVal->flags & MEM_RowSet)==0 )
      pos:
        line_end: 65218
        line_start: 65218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) )
      pos:
        line_end: 65217
        line_start: 65217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) )
      pos:
        line_end: 65216
        line_start: 65216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pVal->flags & (MEM_Null))==0 )
      pos:
        line_end: 65219
        line_start: 65219
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pVal->flags & (MEM_Ephem|MEM_Static))!=0 )
      pos:
        line_end: 65229
        line_start: 65229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "(pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) || pVal->db==0\n              ||
        pVal->db->mallocFailed )"
      pos:
        line_end: 65240
        line_start: 65239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==(1&SQLITE_PTR_TO_INT(pVal->z)) )
      pos:
        line_end: 65237
        line_start: 65237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65247
      start: 65215
    functionDepth: 10
    functionLinenumber: 65215
    functionLinenumberEnd: 65247
    functionName: valueToText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - SQLITE_PTR_TO_INT
    - assert
    - sqlite3VdbeMemExpandBlob
    - sqlite3VdbeChangeEncoding
    - sqlite3VdbeMemNulTerminate
    - sqlite3VdbeMemStringify
    - sqlite3VdbeMemMakeWriteable
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *valueToText(sqlite3_value* pVal, u8 enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65261,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65261,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65262,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65263,1
    - Dst: valueToText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) )
      pos:
        line_end: 65260
        line_start: 65260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) )
      pos:
        line_end: 65261
        line_start: 65261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pVal->flags & MEM_RowSet)==0 )
      pos:
        line_end: 65262
        line_start: 65262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65271
      start: 65259
    functionDepth: 11
    functionLinenumber: 65259
    functionLinenumberEnd: 65271
    functionName: sqlite3ValueText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - valueToText
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ValueText(sqlite3_value* pVal, u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65283
      start: 65276
    functionDepth: 2
    functionLinenumber: 65276
    functionLinenumberEnd: 65283
    functionName: sqlite3_value *sqlite3ValueNew(sqlite3 *db)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_value *sqlite3ValueNew(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65318,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65319,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65323,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65324,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65324,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65325,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65331,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65343,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( pRec->pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 65323
        line_start: 65323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRec->pKeyInfo->nField+pRec->pKeyInfo->nXField==nCol )
      pos:
        line_end: 65322
        line_start: 65322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65346
      start: 65307
    functionDepth: 5
    functionLinenumber: 65307
    functionLinenumberEnd: 65346
    functionName: valueNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocZero
    - UNUSED_PARAMETER
    - ENC
    - sqlite3ValueNew
    - ROUND8
    - sqlite3KeyInfoOfIndex
    - sqlite3DbFree
    linkageType: ''
    returnType: sqlite3_value
    signature: sqlite3_value *valueNew(sqlite3 *db, struct ValueNewStat4Ctx *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65387,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65388,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65391,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65392,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65393,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65401,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65407,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65418,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65419,1
    - Dst: FuncDef*::xFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65422,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65425,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65425,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65427,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65428,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65429,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65430,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65443,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65445,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 6
    argNames:
    - db
    - p
    - enc
    - aff
    - ppVal
    - pCtx
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( pFunc )
      pos:
        line_end: 65392
        line_start: 65392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 65427
        line_start: 65427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCtx!=0 )
      pos:
        line_end: 65386
        line_start: 65386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->flags & EP_TokenOnly)==0 )
      pos:
        line_end: 65387
        line_start: 65387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCtx->pParse->rc==SQLITE_OK )
      pos:
        line_end: 65417
        line_start: 65417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65450
      start: 65369
    functionDepth: 8
    functionLinenumber: 65369
    functionLinenumberEnd: 65450
    functionName: valueFromFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindFunction
    - memset
    - sqlite3ValueFree
    - assert
    - sqlite3DbFree
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeChangeEncoding
    - sqlite3DbMallocZero
    - sqlite3_value_text
    - sqlite3VdbeMemTooBig
    - sqlite3Strlen30
    - valueNew
    - sqlite3ValueFromExpr
    - sqlite3ErrorMsg
    - FuncDef*::xFunc
    linkageType: ''
    returnType: int
    signature: "int valueFromFunction(\n  sqlite3 *db,                    /* The database
      connection */\n  Expr *p,                        /* The expression to evaluate
      */\n  u8 enc,                         /* Encoding to use */\n  u8 aff,                         /*
      Affinity to use */\n  sqlite3_value **ppVal,          /* Write the new value
      here */\n  struct ValueNewStat4Ctx *pCtx   /* Second argument for valueNew()
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65453
      start: 65452
    functionDepth: 0
    functionLinenumber: 65452
    functionLinenumberEnd: 65453
    functionName: valueFromFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: valueFromFunction(a,b,c,d,e,f)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65485,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65491,1
    - Dst: sqlite3AffinityType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65494,1
    - Dst: valueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65495,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65496,1
    - Dst: sqlite3VdbeMemCast
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65498,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65499,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65516,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65518,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65519,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65521,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65523,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65526,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65528,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65532,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65536,1
    - Dst: sqlite3VdbeMemNumerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65539,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65544,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65548,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65551,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65557,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65558,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65559,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65563,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65564,1
    - Dst: sqlite3HexToBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65564,1
    - Dst: valueFromFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65571,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65580,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65581,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65585,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65585,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 6
    argNames:
    - db
    - pExpr
    - enc
    - affinity
    - ppVal
    - pCtx
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( (pExpr->flags & EP_TokenOnly)==0 || pCtx==0 )
      pos:
        line_end: 65490
        line_start: 65490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->u.zToken[1]=='\'' )
      pos:
        line_end: 65557
        line_start: 65557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zVal[nVal]=='\'' )
      pos:
        line_end: 65562
        line_start: 65562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCtx==0 )
      pos:
        line_end: 65584
        line_start: 65584
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *ppVal==0 )
      pos:
        line_end: 65580
        line_start: 65580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->u.zToken[0]=='x' || pExpr->u.zToken[0]=='X' )
      pos:
        line_end: 65556
        line_start: 65556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65588
      start: 65465
    functionDepth: 10
    functionLinenumber: 65465
    functionLinenumberEnd: 65588
    functionName: valueFromExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - MemSetTypeFlag
    - ExprHasProperty
    - valueFromFunction
    - sqlite3VdbeMemSetInt64
    - sqlite3VdbeMemSetStr
    - sqlite3HexToBlob
    - valueNew
    - sqlite3VdbeMemNumerify
    - sqlite3Strlen30
    - sqlite3DbFree
    - NEVER
    - sqlite3VdbeMemCast
    - sqlite3ValueFree
    - assert
    - valueFromExpr
    - sqlite3ValueFromExpr
    - sqlite3ValueApplyAffinity
    - sqlite3MPrintf
    - sqlite3VdbeChangeEncoding
    - sqlite3AffinityType
    - sqlite3ValueSetStr
    - testcase
    linkageType: ''
    returnType: int
    signature: "int valueFromExpr(\n  sqlite3 *db,                    /* The database
      connection */\n  Expr *pExpr,                    /* The expression to evaluate
      */\n  u8 enc,                         /* Encoding to use */\n  u8 affinity,
      \                   /* Affinity to use */\n  sqlite3_value **ppVal,          /*
      Write the new value here */\n  struct ValueNewStat4Ctx *pCtx   /* Second argument
      for valueNew() */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - pExpr
    - enc
    - affinity
    - ppVal
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65608
      start: 65600
    functionDepth: 11
    functionLinenumber: 65600
    functionLinenumberEnd: 65608
    functionName: sqlite3ValueFromExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - valueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueFromExpr(\n  sqlite3 *db,              /*
      The database connection */\n  Expr *pExpr,              /* The expression to
      evaluate */\n  u8 enc,                   /* Encoding to use */\n  u8 affinity,
      \             /* Affinity to use */\n  sqlite3_value **ppVal     /* Write the
      new value here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65632,1
    - Dst: sqlite3VdbeSerialType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65633,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65634,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65635,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65636,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65639,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65641,1
    - Dst: putVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65644,1
    - Dst: sqlite3VdbeSerialPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65645,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65646,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65649
      start: 65619
    functionDepth: 5
    functionLinenumber: 65619
    functionLinenumberEnd: 65649
    functionName: recordFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSerialTypeLen
    - sqlite3_result_error_nomem
    - sqlite3VdbeSerialPut
    - UNUSED_PARAMETER
    - putVarint32
    - sqlite3VdbeSerialType
    - sqlite3_result_blob
    - sqlite3_context_db_handle
    - sqlite3VarintLen
    - sqlite3DbFree
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: void
    signature: "void recordFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65656,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65659,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65660,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65661,1
    - Dst: sqlite3FuncDefInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65664
      start: 65654
    functionDepth: 1
    functionLinenumber: 65654
    functionLinenumberEnd: 65664
    functionName: sqlite3AnalyzeFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GLOBAL
    - sqlite3FuncDefInsert
    - FUNCTION
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AnalyzeFunctions(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65696,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65699,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65701,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65704,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65708,1
    - Dst: valueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65710,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65712,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65714,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65714,1
    - Dst: valueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65720,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65720,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - affinity
    - pAlloc
    - ppVal
    argTypes:
    - Parse*
    - Expr*
    - u8
    - struct ValueNewStat4Ctx*
    - sqlite3_value**
    assertStmts:
    - condition: ( pVal==0 || pVal->db==db )
      pos:
        line_end: 65722
        line_start: 65722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65726
      start: 65684
    functionDepth: 11
    functionLinenumber: 65684
    functionLinenumberEnd: 65726
    functionName: stat4ValueFromExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3VdbeSetVarmask
    - assert
    - sqlite3ValueApplyAffinity
    - valueFromExpr
    - sqlite3VdbeMemCopy
    - ENC
    - valueNew
    - sqlite3VdbeMemSetNull
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int stat4ValueFromExpr(\n  Parse *pParse,                  /* Parse
      context */\n  Expr *pExpr,                    /* The expression to extract a
      value from */\n  u8 affinity,                    /* Affinity to use */\n  struct
      ValueNewStat4Ctx *pAlloc,/* How to allocate space.  Or NULL */\n  sqlite3_value
      **ppVal           /* OUT: New value object (or NULL) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat4ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65776,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 7
    argNames:
    - pParse
    - pIdx
    - ppRec
    - pExpr
    - affinity
    - iVal
    - pbOk
    argTypes:
    - Parse*
    - Index*
    - UnpackedRecord**
    - Expr*
    - u8
    - int
    - int*
    assertStmts:
    - condition: ( pVal==0 || pVal->db==pParse->db )
      pos:
        line_end: 65776
        line_start: 65776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65780
      start: 65758
    functionDepth: 12
    functionLinenumber: 65758
    functionLinenumberEnd: 65780
    functionName: sqlite3Stat4ProbeSetValue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - stat4ValueFromExpr
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4ProbeSetValue(\n  Parse *pParse,                  /*
      Parse context */\n  Index *pIdx,                    /* Index being probed */\n
      \ UnpackedRecord **ppRec,         /* IN/OUT: Probe record */\n  Expr *pExpr,
      \                   /* The expression to extract a value from */\n  u8 affinity,
      \                   /* Affinity to use */\n  int iVal,                       /*
      Array element to populate */\n  int *pbOk                       /* OUT: True
      if value was extracted */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat4ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - affinity
    - ppVal
    argTypes:
    - Parse*
    - Expr*
    - u8
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65799
      start: 65792
    functionDepth: 12
    functionLinenumber: 65792
    functionLinenumberEnd: 65799
    functionName: sqlite3Stat4ValueFromExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - stat4ValueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4ValueFromExpr(\n  Parse *pParse,                  /*
      Parse context */\n  Expr *pExpr,                    /* The expression to extract
      a value from */\n  u8 affinity,                    /* Affinity to use */\n  sqlite3_value
      **ppVal           /* OUT: New value object (or NULL) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65825,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65826,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65830,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65831,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65832,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65834,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65837,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65838,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65841,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65844,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - db
    - pRec
    - nRec
    - iCol
    - ppVal
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( iCol>0 )
      pos:
        line_end: 65824
        line_start: 65824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65847
      start: 65809
    functionDepth: 1
    functionLinenumber: 65809
    functionLinenumberEnd: 65847
    functionName: sqlite3Stat4Column
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSerialTypeLen
    - assert
    - ENC
    - sqlite3ValueNew
    - getVarint32
    - testcase
    - sqlite3VdbeSerialGet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4Column(\n  sqlite3 *db,                    /*
      Database handle */\n  const void *pRec,               /* Pointer to buffer containing
      record */\n  int nRec,                       /* Size of buffer pRec in bytes
      */\n  int iCol,                       /* Column to extract */\n  sqlite3_value
      **ppVal           /* OUT: Extracted value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65861,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65863,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pRec
    argTypes:
    - UnpackedRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65866
      start: 65854
    functionDepth: 9
    functionLinenumber: 65854
    functionLinenumberEnd: 65866
    functionName: sqlite3Stat4ProbeFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3KeyInfoUnref
    - sqlite3VdbeMemRelease
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Stat4ProbeFree(UnpackedRecord *pRec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - v
    - n
    - z
    - enc
    argTypes:
    - sqlite3_value*
    - int
    - void*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65880
      start: 65872
    functionDepth: 10
    functionLinenumber: 65872
    functionLinenumberEnd: 65880
    functionName: sqlite3ValueSetStr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueSetStr(\n  sqlite3_value *v,     /* Value
      to be set */\n  int n,                /* Length of string z */\n  const void
      *z,        /* Text of the new string */\n  u8 enc,               /* Encoding
      to use */\n  void (*xDel)(void*)   /* Destructor for the string */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65887,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65889
      start: 65885
    functionDepth: 9
    functionLinenumber: 65885
    functionLinenumberEnd: 65889
    functionName: sqlite3ValueFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueFree(sqlite3_value *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valueToText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65898
      start: 65896
    functionDepth: 11
    functionLinenumber: 65896
    functionLinenumberEnd: 65898
    functionName: valueBytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - valueToText
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE valueBytes(sqlite3_value *pVal, u8 enc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65901,1
    - Dst: valueBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( (p->flags & MEM_Null)==0 || (p->flags & (MEM_Str|MEM_Blob))==0
        )
      pos:
        line_end: 65900
        line_start: 65900
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65914
      start: 65899
    functionDepth: 12
    functionLinenumber: 65899
    functionLinenumberEnd: 65914
    functionName: sqlite3ValueBytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - valueBytes
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueBytes(sqlite3_value *pVal, u8 enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65953,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->nLabel==0 )
      pos:
        line_end: 65952
        line_start: 65952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->nOpAlloc==0 )
      pos:
        line_end: 65953
        line_start: 65953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->aLabel==0 )
      pos:
        line_end: 65951
        line_start: 65951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65956
      start: 65938
    functionDepth: 2
    functionLinenumber: 65938
    functionLinenumberEnd: 65956
    functionName: sqlite3VdbeCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocZero
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeCreate(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65963,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65964,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65965,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65967
      start: 65961
    functionDepth: 7
    functionLinenumber: 65961
    functionLinenumberEnd: 65967
    functionName: sqlite3VdbeError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3DbFree
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeError(Vdbe *p, const char *zFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65978,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:65979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - p
    - z
    - n
    - isPrepareV2
    argTypes:
    - Vdbe*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( isPrepareV2==1 || isPrepareV2==0 )
      pos:
        line_end: 65972
        line_start: 65972
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zSql==0 )
      pos:
        line_end: 65977
        line_start: 65977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65981
      start: 65972
    functionDepth: 6
    functionLinenumber: 65972
    functionLinenumberEnd: 65981
    functionName: sqlite3VdbeSetSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetSql(Vdbe *p, const char *z, int n, int
      isPrepareV2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65989
      start: 65986
    functionDepth: 0
    functionLinenumber: 65986
    functionLinenumberEnd: 65989
    functionName: SQLITE_STDCALL::sqlite3_sql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_sql(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - Vdbe*
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66010
      start: 65994
    functionDepth: 0
    functionLinenumber: 65994
    functionLinenumberEnd: 66010
    functionName: sqlite3VdbeSwap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSwap(Vdbe *pA, Vdbe *pB)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66037,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66040,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66041,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66042,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - v
    - nOp
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( nOp<=(1024/sizeof(Op)) )
      pos:
        line_end: 66039
        line_start: 66039
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew>=(p->nOpAlloc+nOp) )
      pos:
        line_end: 66040
        line_start: 66040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66048
      start: 66022
    functionDepth: 6
    functionLinenumber: 66022
    functionLinenumberEnd: 66048
    functionName: growOpArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbRealloc
    - sqlite3DbMallocSize
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int growOpArray(Vdbe *v, int nOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66058
      start: 66055
    functionDepth: 0
    functionLinenumber: 66055
    functionLinenumberEnd: 66058
    functionName: test_addop_breakpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_addop_breakpoint(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66082,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66083,1
    - Dst: growOpArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66085,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66108,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66111,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66112,1
    - Dst: test_addop_breakpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66081
        line_start: 66081
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>0 && op<0xff )
      pos:
        line_end: 66082
        line_start: 66082
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66124
      start: 66077
    functionDepth: 7
    functionLinenumber: 66077
    functionLinenumberEnd: 66124
    functionName: sqlite3VdbeAddOp3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbePrintOp
    - printf
    - growOpArray
    - test_addop_breakpoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int
      p3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - op
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66127
      start: 66125
    functionDepth: 8
    functionLinenumber: 66125
    functionLinenumberEnd: 66127
    functionName: sqlite3VdbeAddOp0
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp0(Vdbe *p, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - op
    - p1
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66130
      start: 66128
    functionDepth: 8
    functionLinenumber: 66128
    functionLinenumberEnd: 66130
    functionName: sqlite3VdbeAddOp1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp1(Vdbe *p, int op, int p1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - op
    - p1
    - p2
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66133
      start: 66131
    functionDepth: 8
    functionLinenumber: 66131
    functionLinenumberEnd: 66133
    functionName: sqlite3VdbeAddOp2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp2(Vdbe *p, int op, int p1, int p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66148,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - zP4
    - p4type
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66151
      start: 66139
    functionDepth: 8
    functionLinenumber: 66139
    functionLinenumberEnd: 66151
    functionName: sqlite3VdbeAddOp4
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    - sqlite3VdbeChangeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4(\n  Vdbe *p,            /* Add the
      opcode to this VM */\n  int op,             /* The new opcode */\n  int p1,
      \            /* The P1 operand */\n  int p2,             /* The P2 operand */\n
      \ int p3,             /* The P3 operand */\n  const char *zP4,    /* The P4
      operand */\n  int p4type          /* P4 operand type */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66165,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66165,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66166,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - zP4
    - p4type
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66168
      start: 66156
    functionDepth: 9
    functionLinenumber: 66156
    functionLinenumberEnd: 66168
    functionName: sqlite3VdbeAddOp4Dup8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeDb
    - sqlite3VdbeAddOp4
    - memcpy
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4Dup8(\n  Vdbe *p,            /* Add
      the opcode to this VM */\n  int op,             /* The new opcode */\n  int
      p1,             /* The P1 operand */\n  int p2,             /* The P2 operand
      */\n  int p3,             /* The P3 operand */\n  const u8 *zP4,      /* The
      P4 operand */\n  int p4type          /* P4 operand type */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66180,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66181,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - iDb
    - zWhere
    argTypes:
    - Vdbe*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66183
      start: 66178
    functionDepth: 8
    functionLinenumber: 66178
    functionLinenumberEnd: 66183
    functionName: sqlite3VdbeAddParseSchemaOp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddParseSchemaOp(Vdbe *p, int iDb, char *zWhere)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66196,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66197,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - p4
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66199
      start: 66188
    functionDepth: 8
    functionLinenumber: 66188
    functionLinenumberEnd: 66199
    functionName: sqlite3VdbeAddOp4Int
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_INT_TO_PTR
    - sqlite3VdbeAddOp3
    - sqlite3VdbeChangeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4Int(\n  Vdbe *p,            /* Add
      the opcode to this VM */\n  int op,             /* The new opcode */\n  int
      p1,             /* The P1 operand */\n  int p2,             /* The P2 operand
      */\n  int p3,             /* The P3 operand */\n  int p4              /* The
      P4 operand as an integer */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66218,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( v->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66217
        line_start: 66217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66227
      start: 66215
    functionDepth: 7
    functionLinenumber: 66215
    functionLinenumberEnd: 66227
    functionName: sqlite3VdbeMakeLabel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbReallocOrFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMakeLabel(Vdbe *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66238,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - x
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( v->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66236
        line_start: 66236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<p->nLabel )
      pos:
        line_end: 66237
        line_start: 66237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66243
      start: 66234
    functionDepth: 1
    functionLinenumber: 66234
    functionLinenumberEnd: 66243
    functionName: sqlite3VdbeResolveLabel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeResolveLabel(Vdbe *v, int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66250
      start: 66248
    functionDepth: 0
    functionLinenumber: 66248
    functionLinenumberEnd: 66250
    functionName: sqlite3VdbeRunOnlyOnce
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRunOnlyOnce(Vdbe *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66293,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeOpIter*
    assertStmts:
    - condition: ( p->iAddr<nOp )
      pos:
        line_end: 66292
        line_start: 66292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66320
      start: 66278
    functionDepth: 7
    functionLinenumber: 66278
    functionLinenumberEnd: 66320
    functionName: opIterNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbReallocOrFree
    - assert
    linkageType: ''
    returnType: Op
    signature: Op *opIterNext(VdbeOpIter *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66350,1
    - Dst: opIterNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66353,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66370,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 18
    argCount: 2
    argNames:
    - v
    - mayAbort
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66379
      start: 66343
    functionDepth: 8
    functionLinenumber: 66343
    functionLinenumberEnd: 66379
    functionName: sqlite3VdbeAssertMayAbort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - opIterNext
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAssertMayAbort(Vdbe *v, int mayAbort)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66434,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66435,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66458,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66462,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66466,1
    - Dst: DbMaskAllZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66466,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 2
    argNames:
    - p
    - pMaxFuncArgs
    argTypes:
    - Vdbe*
    - int*
    assertStmts:
    - condition: ( p->nOp - i >= 3 )
      pos:
        line_end: 66433
        line_start: 66433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( -1-pOp->p2<pParse->nLabel )
      pos:
        line_end: 66457
        line_start: 66457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_Integer )
      pos:
        line_end: 66434
        line_start: 66434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader!=0 || DbMaskAllZero(p->btreeMask) )
      pos:
        line_end: 66465
        line_start: 66465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66467
      start: 66395
    functionDepth: 5
    functionLinenumber: 66395
    functionLinenumberEnd: 66467
    functionName: resolveP2Values
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DbMaskAllZero
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void resolveP2Values(Vdbe *p, int *pMaxFuncArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66472
        line_start: 66472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66475
      start: 66472
    functionDepth: 0
    functionLinenumber: 66472
    functionLinenumberEnd: 66475
    functionName: sqlite3VdbeCurrentAddr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCurrentAddr(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66493,1
    - Dst: DbMaskAllZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66493,1
    - Dst: resolveP2Values
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - pnOp
    - pnMaxArg
    argTypes:
    - Vdbe*
    - int*
    - int*
    assertStmts:
    - condition: ( aOp && !p->db->mallocFailed )
      pos:
        line_end: 66489
        line_start: 66489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskAllZero(p->btreeMask) )
      pos:
        line_end: 66492
        line_start: 66492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66499
      start: 66488
    functionDepth: 6
    functionLinenumber: 66488
    functionLinenumberEnd: 66499
    functionName: sqlite3VdbeTakeOpArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - resolveP2Values
    - DbMaskAllZero
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeTakeOpArray(Vdbe *p, int *pnOp, int *pnMaxArg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66507,1
    - Dst: growOpArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66508,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66512,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66521,1
    - Dst: ADDR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66522,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - p
    - nOp
    - aOp
    - iLineno
    argTypes:
    - Vdbe*
    - int
    - VdbeOpList*
    - int
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66506
        line_start: 66506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3OpcodeProperty[pOut->opcode] & OPFLG_JUMP )
      pos:
        line_end: 66520
        line_start: 66520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66547
      start: 66505
    functionDepth: 7
    functionLinenumber: 66505
    functionLinenumberEnd: 66547
    functionName: sqlite3VdbeAddOpList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ALWAYS
    - sqlite3VdbePrintOp
    - growOpArray
    - ADDR
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOpList(Vdbe *p, int nOp, VdbeOpList const
      *aOp, int iLineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66563,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - p
    - addrExplain
    - addrLoop
    - addrVisit
    - nEst
    - zName
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - LogEst
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66573
      start: 66553
    functionDepth: 6
    functionLinenumber: 66553
    functionLinenumberEnd: 66573
    functionName: sqlite3VdbeScanStatus
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbRealloc
    - sqlite3DbStrDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeScanStatus(\n  Vdbe *p,                        /*
      VM to add scanstatus() to */\n  int addrExplain,                /* Address of
      OP_Explain (or 0) */\n  int addrLoop,                   /* Address of loop counter
      */ \n  int addrVisit,                  /* Address of rows visited counter */\n
      \ LogEst nEst,                    /* Estimated number of output rows */\n  const
      char *zName               /* Name of table or index being scanned */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 66583
        line_start: 66583
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66588
      start: 66583
    functionDepth: 0
    functionLinenumber: 66583
    functionLinenumberEnd: 66588
    functionName: sqlite3VdbeChangeP1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP1(Vdbe *p, u32 addr, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 66594
        line_start: 66594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66599
      start: 66594
    functionDepth: 0
    functionLinenumber: 66594
    functionLinenumberEnd: 66599
    functionName: sqlite3VdbeChangeP2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP2(Vdbe *p, u32 addr, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 66604
        line_start: 66604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66609
      start: 66604
    functionDepth: 0
    functionLinenumber: 66604
    functionLinenumberEnd: 66609
    functionName: sqlite3VdbeChangeP3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP3(Vdbe *p, u32 addr, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66616,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - Vdbe*
    - u8
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 66615
        line_start: 66615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 66617
        line_start: 66617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66621
      start: 66615
    functionDepth: 0
    functionLinenumber: 66615
    functionLinenumberEnd: 66621
    functionName: sqlite3VdbeChangeP5
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP5(Vdbe *p, u8 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66630
      start: 66627
    functionDepth: 1
    functionLinenumber: 66627
    functionLinenumberEnd: 66630
    functionName: sqlite3VdbeJumpHere
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeJumpHere(Vdbe *p, int addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66638,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - db
    - pDef
    argTypes:
    - sqlite3*
    - FuncDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66641
      start: 66637
    functionDepth: 5
    functionLinenumber: 66637
    functionLinenumberEnd: 66641
    functionName: freeEphemeralFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66650,1
    - Dst: freeEphemeralFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66653,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66660,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66664,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66668,1
    - Dst: freeEphemeralFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66672,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66677,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66680,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66681,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66686,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - db
    - p4type
    - p4
    argTypes:
    - sqlite3*
    - int
    - void*
    assertStmts:
    - condition: ( db )
      pos:
        line_end: 66649
        line_start: 66649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66691
      start: 66648
    functionDepth: 10
    functionLinenumber: 66648
    functionLinenumberEnd: 66691
    functionName: freeP4
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    - sqlite3_free
    - assert
    - sqlite3KeyInfoUnref
    - freeEphemeralFunction
    - sqlite3VtabUnlock
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void freeP4(sqlite3 *db, int p4type, void *p4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66702,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66704,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - db
    - aOp
    - nOp
    argTypes:
    - sqlite3*
    - Op*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66709
      start: 66698
    functionDepth: 11
    functionLinenumber: 66698
    functionLinenumberEnd: 66709
    functionName: vdbeFreeOpArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - freeP4
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pVdbe
    - p
    argTypes:
    - Vdbe*
    - SubProgram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66719
      start: 66716
    functionDepth: 0
    functionLinenumber: 66716
    functionLinenumberEnd: 66719
    functionName: sqlite3VdbeLinkSubProgram
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeLinkSubProgram(Vdbe *pVdbe, SubProgram *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: freeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66728,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66733
      start: 66724
    functionDepth: 11
    functionLinenumber: 66724
    functionLinenumberEnd: 66733
    functionName: sqlite3VdbeChangeToNoop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - freeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeToNoop(Vdbe *p, int addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - op
    argTypes:
    - Vdbe*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66746
      start: 66739
    functionDepth: 12
    functionLinenumber: 66739
    functionLinenumberEnd: 66746
    functionName: sqlite3VdbeDeletePriorOpcode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeToNoop
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDeletePriorOpcode(Vdbe *p, u8 op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66770,1
    - Dst: freeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66773,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66777,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66783,1
    - Dst: freeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66786,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66791,1
    - Dst: sqlite3VtabLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66802,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66803,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66808,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66809,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - p
    - addr
    - zP4
    - n
    argTypes:
    - Vdbe*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 66767
        line_start: 66767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( addr<p->nOp )
      pos:
        line_end: 66777
        line_start: 66777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66769
        line_start: 66769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 66776
        line_start: 66776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->p4type==P4_NOTUSED\n       || pOp->p4type==P4_INT32\n       ||
        pOp->p4type==P4_KEYINFO )"
      pos:
        line_end: 66784
        line_start: 66782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((VTable *)zP4)->db==p->db )
      pos:
        line_end: 66802
        line_start: 66802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66812
      start: 66765
    functionDepth: 11
    functionLinenumber: 66765
    functionLinenumberEnd: 66812
    functionName: sqlite3VdbeChangeP4
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - freeP4
    - sqlite3VtabLock
    - assert
    - SQLITE_PTR_TO_INT
    - sqlite3Strlen30
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP4(Vdbe *p, int addr, const char *zP4,
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66820,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66821,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66822,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - pIdx
    argTypes:
    - Parse*
    - Index*
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 66819
        line_start: 66819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 66820
        line_start: 66820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66824
      start: 66818
    functionDepth: 12
    functionLinenumber: 66818
    functionLinenumberEnd: 66824
    functionName: sqlite3VdbeSetP4KeyInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP4
    - sqlite3KeyInfoOfIndex
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetP4KeyInfo(Parse *pParse, Index *pIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66834,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66837,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66838,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - p
    - zFormat
    - ap
    argTypes:
    - Vdbe*
    - char*
    - va_list
    assertStmts:
    - condition: ( p->nOp>0 || p->aOp==0 )
      pos:
        line_end: 66833
        line_start: 66833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aOp )
      pos:
        line_end: 66836
        line_start: 66836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed
        )
      pos:
        line_end: 66834
        line_start: 66834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66841
      start: 66833
    functionDepth: 7
    functionLinenumber: 66833
    functionLinenumberEnd: 66841
    functionName: vdbeVComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - assert
    - sqlite3VMPrintf
    linkageType: ''
    returnType: void
    signature: void vdbeVComment(Vdbe *p, const char *zFormat, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66845,1
    - Dst: vdbeVComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66846,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66849
      start: 66842
    functionDepth: 8
    functionLinenumber: 66842
    functionLinenumberEnd: 66849
    functionName: sqlite3VdbeComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - vdbeVComment
    - va_start
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66853,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66854,1
    - Dst: vdbeVComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66855,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66858
      start: 66850
    functionDepth: 9
    functionLinenumber: 66850
    functionLinenumberEnd: 66858
    functionName: sqlite3VdbeNoopComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - vdbeVComment
    - va_start
    - sqlite3VdbeAddOp0
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeNoopComment(Vdbe *p, const char *zFormat,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - iLine
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66867
      start: 66865
    functionDepth: 1
    functionLinenumber: 66865
    functionLinenumberEnd: 66867
    functionName: sqlite3VdbeSetLineNumber
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetLineNumber(Vdbe *v, int iLine)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66887,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66891,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 66886
        line_start: 66886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (addr>=0 && addr<p->nOp) || p->db->mallocFailed )
      pos:
        line_end: 66890
        line_start: 66890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66897
      start: 66883
    functionDepth: 0
    functionLinenumber: 66883
    functionLinenumberEnd: 66897
    functionName: sqlite3VdbeGetOp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeGetOp(Vdbe *p, int addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - c
    - pOp
    argTypes:
    - char
    - Op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66910
      start: 66904
    functionDepth: 0
    functionLinenumber: 66904
    functionLinenumberEnd: 66910
    functionName: translateP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int translateP(char c, const Op *pOp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OpcodeName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66935,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66936,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66945,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66947,1
    - Dst: translateP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66950,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66952,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66953,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66955,1
    - Dst: translateP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66956,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66957,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66962,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66964,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66968,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66974,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66975,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66979,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66980,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 4
    argNames:
    - pOp
    - zP4
    - zTemp
    - nTemp
    argTypes:
    - Op*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66986
      start: 66925
    functionDepth: 2
    functionLinenumber: 66925
    functionLinenumberEnd: 66986
    functionName: displayComment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    - sqlite3Strlen30
    - translateP
    - sqlite3OpcodeName
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int displayComment(\n  const Op *pOp,     /* The opcode to be commented
      */\n  const char *zP4,   /* Previously obtained value for P4 */\n  char *zTemp,
      \      /* Write result here */\n  int nTemp          /* Space available in zTemp[]
      */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:66998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67003,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67004,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67005,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67009,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67010,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67015,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67022,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67027,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67032,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67037,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67043,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67048,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67052,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67056,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67064,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67066,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67068,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67070,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67078,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67083,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67087,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67102,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 96
    argCount: 3
    argNames:
    - pOp
    - zTemp
    - nTemp
    argTypes:
    - Op*
    - char*
    - int
    assertStmts:
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 67002
        line_start: 67002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nTemp>=20 )
      pos:
        line_end: 66997
        line_start: 66997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->flags & MEM_Blob )
      pos:
        line_end: 67069
        line_start: 67069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<nTemp )
      pos:
        line_end: 67026
        line_start: 67026
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zP4!=0 )
      pos:
        line_end: 67101
        line_start: 67101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67104
      start: 66996
    functionDepth: 1
    functionLinenumber: 66996
    functionLinenumberEnd: 67104
    functionName: displayP4
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - memcpy
    - sqlite3Strlen30
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *displayP4(Op *pOp, char *zTemp, int nTemp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67116,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67117,1
    - Dst: DbMaskSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67118,1
    - Dst: sqlite3BtreeSharable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67119,1
    - Dst: DbMaskSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( i>=0 && i<p->db->nDb && i<(int)sizeof(yDbMask)*8 )
      pos:
        line_end: 67115
        line_start: 67115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<(int)sizeof(p->btreeMask)*8 )
      pos:
        line_end: 67116
        line_start: 67116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67122
      start: 67115
    functionDepth: 1
    functionLinenumber: 67115
    functionLinenumberEnd: 67122
    functionName: sqlite3VdbeUsesBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - DbMaskSet
    - sqlite3BtreeSharable
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeUsesBtree(Vdbe *p, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskAllZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67151,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67156,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67156,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67160
      start: 67146
    functionDepth: 1
    functionLinenumber: 67146
    functionLinenumberEnd: 67160
    functionName: sqlite3VdbeEnter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - DbMaskTest
    - DbMaskAllZero
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeEnter(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67176,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67176,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67180
      start: 67167
    functionDepth: 2
    functionLinenumber: 67167
    functionLinenumberEnd: 67180
    functionName: vdbeLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - ALWAYS
    - DbMaskTest
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeLeave(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskAllZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67182,1
    - Dst: vdbeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67184
      start: 67181
    functionDepth: 3
    functionLinenumber: 67181
    functionLinenumberEnd: 67184
    functionName: sqlite3VdbeLeave
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DbMaskAllZero
    - vdbeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeLeave(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: displayP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67197,1
    - Dst: displayComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67199,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67206,1
    - Dst: sqlite3OpcodeName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67207,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pOut
    - pc
    - pOp
    argTypes:
    - FILE*
    - int
    - Op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67211
      start: 67191
    functionDepth: 3
    functionLinenumber: 67191
    functionLinenumberEnd: 67211
    functionName: sqlite3VdbePrintOp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - fflush
    - fprintf
    - displayP4
    - sqlite3OpcodeName
    - displayComment
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbePrintOp(FILE *pOut, int pc, Op *pOp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67224,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67229,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67230,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67230,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67244,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67245,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67246,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67247,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67249,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(p) )
      pos:
        line_end: 67229
        line_start: 67229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (&p[1])==pEnd || p[0].db==p[1].db )
      pos:
        line_end: 67228
        line_start: 67228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67259
      start: 67217
    functionDepth: 9
    functionLinenumber: 67217
    functionLinenumberEnd: 67259
    functionName: releaseMemArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemRelease
    - sqlite3VdbeCheckMemInvariants
    - testcase
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void releaseMemArray(Mem *p, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VdbeFrameMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67267,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67270,1
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67272,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67274
      start: 67265
    functionDepth: 10
    functionLinenumber: 67265
    functionLinenumberEnd: 67274
    functionName: sqlite3VdbeFrameDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeFreeCursor
    - VdbeFrameMem
    - sqlite3DbFree
    - releaseMemArray
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameDelete(VdbeFrame *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67304,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67305,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67306,1
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67335,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67357,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67357,1
    - Dst: sqlite3OpcodeName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67381,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67382,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67383,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67398,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67419,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67420,1
    - Dst: displayP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67424,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67426,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67428,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67429,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67435,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67436,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67441,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67446,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67447,1
    - Dst: displayComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67451,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 114
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->explain )
      pos:
        line_end: 67303
        line_start: 67303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nMem>9 )
      pos:
        line_end: 67334
        line_start: 67334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_RUN )
      pos:
        line_end: 67304
        line_start: 67304
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rc==SQLITE_OK || p->rc==SQLITE_BUSY || p->rc==SQLITE_NOMEM )
      pos:
        line_end: 67305
        line_start: 67305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->z!=0 )
      pos:
        line_end: 67381
        line_start: 67381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 67435
        line_start: 67435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->z!=0 )
      pos:
        line_end: 67427
        line_start: 67427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 67446
        line_start: 67446
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 67419
        line_start: 67419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67464
      start: 67292
    functionDepth: 10
    functionLinenumber: 67292
    functionLinenumberEnd: 67464
    functionName: sqlite3VdbeList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - sqlite3ErrStr
    - assert
    - releaseMemArray
    - sqlite3VdbeMemGrow
    - displayP4
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeError
    - sqlite3Strlen30
    - sqlite3OpcodeName
    - displayComment
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeList(\n  Vdbe *p                   /* The
      VDBE */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67479,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67483
      start: 67471
    functionDepth: 1
    functionLinenumber: 67471
    functionLinenumberEnd: 67483
    functionName: sqlite3VdbePrintSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - printf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbePrintSql(Vdbe *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67499,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67500,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67502,1
    - Dst: sqlite3IoTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67513
      start: 67490
    functionDepth: 1
    functionLinenumber: 67490
    functionLinenumberEnd: 67513
    functionName: sqlite3VdbeIOTraceSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - sqlite3IoTrace
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIOTraceSql(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67544,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67544,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pBuf
    - nByte
    - ppFrom
    - pEnd
    - pnByte
    argTypes:
    - void*
    - int
    - u8**
    - u8*
    - int*
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(*ppFrom) )
      pos:
        line_end: 67543
        line_start: 67543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67554
      start: 67537
    functionDepth: 1
    functionLinenumber: 67537
    functionLinenumberEnd: 67554
    functionName: allocSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - EIGHT_BYTE_ALIGNMENT
    - assert
    linkageType: ''
    returnType: void
    signature: "void *allocSpace(\n  void *pBuf,          /* Where return pointer
      will be stored */\n  int nByte,           /* Number of bytes to allocate */\n
      \ u8 **ppFrom,         /* IN/OUT: Allocate from *ppFrom */\n  u8 *pEnd,            /*
      Pointer to 1 byte past the end of *ppFrom buffer */\n  int *pnByte          /*
      If allocation cannot be made, increment *pnByte */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67564,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67565,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 67563
        line_start: 67563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aMem[i].db==p->db )
      pos:
        line_end: 67575
        line_start: 67575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 67568
        line_start: 67568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 67564
        line_start: 67564
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67594
      start: 67560
    functionDepth: 0
    functionLinenumber: 67560
    functionLinenumberEnd: 67594
    functionName: sqlite3VdbeRewind
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRewind(Vdbe *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67629,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67630,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67632,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67633,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67635,1
    - Dst: resolveP2Values
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67660,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67665,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67667,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67667,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67682,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67683,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67684,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67685,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67686,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67688,1
    - Dst: allocSpace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67690,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67693,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67710,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67711,1
    - Dst: sqlite3VdbeRewind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67722,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 2
    argNames:
    - p
    - pParse
    argTypes:
    - Vdbe*
    - Parse*
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 67630
        line_start: 67630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse==p->pParse )
      pos:
        line_end: 67632
        line_start: 67632
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(zCsr) )
      pos:
        line_end: 67666
        line_start: 67666
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 67629
        line_start: 67629
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 67628
        line_start: 67628
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 67631
        line_start: 67631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed==0 )
      pos:
        line_end: 67634
        line_start: 67634
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67723
      start: 67614
    functionDepth: 6
    functionLinenumber: 67614
    functionLinenumberEnd: 67723
    functionName: sqlite3VdbeMakeReady
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3DbMallocZero
    - sqlite3VdbeRewind
    - memcpy
    - allocSpace
    - resolveP2Values
    - EIGHT_BYTE_ALIGNMENT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMakeReady(\n  Vdbe *p,                       /*
      The VDBE */\n  Parse *pParse                  /* Parsing context */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeSorterClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67733,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67735,1
    - Dst: sqlite3BtreeCloseCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67745,1
    - Dst: sqlite3_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - pCx
    argTypes:
    - Vdbe*
    - VdbeCursor*
    assertStmts:
    - condition: ( pVtabCursor->pVtab->nRef>0 )
      pos:
        line_end: 67744
        line_start: 67744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67750
      start: 67729
    functionDepth: 12
    functionLinenumber: 67729
    functionLinenumberEnd: 67750
    functionName: sqlite3VdbeFreeCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_module*::xClose
    - assert
    - sqlite3BtreeClose
    - sqlite3BtreeCloseCursor
    - sqlite3VdbeSorterClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFreeCursor(Vdbe *p, VdbeCursor *pCx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67766
      start: 67755
    functionDepth: 13
    functionLinenumber: 67755
    functionLinenumberEnd: 67766
    functionName: closeCursorsInFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeFreeCursor
    linkageType: ''
    returnType: void
    signature: void closeCursorsInFrame(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeCursorsInFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - pFrame
    argTypes:
    - VdbeFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67791
      start: 67773
    functionDepth: 14
    functionLinenumber: 67773
    functionLinenumberEnd: 67791
    functionName: sqlite3VdbeFrameRestore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - closeCursorsInFrame
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameRestore(VdbeFrame *pFrame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFrameRestore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67805,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67809,1
    - Dst: closeCursorsInFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67810,1
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67812,1
    - Dst: sqlite3VdbeFrameDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67817,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->nFrame==0 )
      pos:
        line_end: 67808
        line_start: 67808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pAuxData==0 )
      pos:
        line_end: 67821
        line_start: 67821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67823
      start: 67801
    functionDepth: 15
    functionLinenumber: 67801
    functionLinenumberEnd: 67823
    functionName: closeAllCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeFrameRestore
    - assert
    - releaseMemArray
    - sqlite3VdbeDeleteAuxData
    - sqlite3VdbeFrameDelete
    - closeCursorsInFrame
    linkageType: ''
    returnType: void
    signature: void closeAllCursors(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67837,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->apCsr[i]==0 )
      pos:
        line_end: 67834
        line_start: 67834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aMem[i].flags==MEM_Undefined )
      pos:
        line_end: 67836
        line_start: 67836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67844
      start: 67828
    functionDepth: 5
    functionLinenumber: 67828
    functionLinenumberEnd: 67844
    functionName: Cleanup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void Cleanup(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67857,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67858,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - nResColumn
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67868
      start: 67852
    functionDepth: 10
    functionLinenumber: 67852
    functionLinenumberEnd: 67868
    functionName: sqlite3VdbeSetNumCols
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocZero
    - sqlite3DbFree
    - releaseMemArray
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetNumCols(Vdbe *p, int nResColumn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67889,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67890,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67892,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67895,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67897,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67898,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - p
    - idx
    - var
    - zName
    argTypes:
    - Vdbe*
    - int
    - int
    - char*
    assertStmts:
    - condition: ( idx<p->nResColumn )
      pos:
        line_end: 67888
        line_start: 67888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( var<COLNAME_N )
      pos:
        line_end: 67889
        line_start: 67889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aColName!=0 )
      pos:
        line_end: 67894
        line_start: 67894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !zName || xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 67891
        line_start: 67891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=0 || !zName || (pColName->flags&MEM_Term)!=0 )
      pos:
        line_end: 67897
        line_start: 67897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67900
      start: 67880
    functionDepth: 10
    functionLinenumber: 67880
    functionLinenumberEnd: 67900
    functionName: sqlite3VdbeSetColName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetStr
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSetColName(\n  Vdbe *p,                         /*
      Vdbe being configured */\n  int idx,                         /* Index of column
      zName applies to */\n  int var,                         /* One of the COLNAME_*
      constants */\n  const char *zName,               /* Pointer to buffer containing
      name */\n  void (*xDel)(void*)              /* Memory management strategy for
      zName */\n)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67918,1
    - Dst: sqlite3VtabSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67927,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67937,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67940,1
    - Dst: sqlite3PagerExclusiveLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67941,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67941,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67942,1
    - Dst: sqlite3*::xCommitCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67951,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67966,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67966,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67972,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67984,1
    - Dst: sqlite3VtabCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:67988,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68001,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68009,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68010,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68016,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68017,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68020,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68024,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68025,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68029,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68029,1
    - Dst: sqlite3FileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68030,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68031,1
    - Dst: sqlite3OsOpenMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68035,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68041,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68053,1
    - Dst: sqlite3BtreeGetJournalname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68054,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68058,1
    - Dst: sqlite3BtreeSyncDisabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68059,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68062,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68062,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68063,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68065,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68066,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68067,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68077,1
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68078,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68080,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68081,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68082,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68099,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68103,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68105,1
    - Dst: sqlite3OsDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68113,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68114,1
    - Dst: disable_simulated_io_errors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68127,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68128,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68132,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68135,1
    - Dst: enable_simulated_io_errors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68136,1
    - Dst: sqlite3VtabCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68138,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 120
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( zFile[0]!=0 )
      pos:
        line_end: 68057
        line_start: 68057
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_BUSY )
      pos:
        line_end: 68102
        line_start: 68102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zMaster[sqlite3Strlen30(zMaster)-3]=='9' )
      pos:
        line_end: 68028
        line_start: 68028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68143
      start: 67908
    functionDepth: 20
    functionLinenumber: 67908
    functionLinenumberEnd: 68143
    functionName: vdbeCommit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeSyncDisabled
    - sqlite3BtreePager
    - sqlite3OsAccess
    - sqlite3_log
    - sqlite3OsSync
    - UNUSED_PARAMETER
    - sqlite3EndBenignMalloc
    - enable_simulated_io_errors
    - sqlite3Strlen30
    - sqlite3OsOpenMalloc
    - sqlite3FileSuffix3
    - sqlite3DbFree
    - sqlite3OsDelete
    - sqlite3OsCloseFree
    - disable_simulated_io_errors
    - sqlite3*::xCommitCallback
    - sqlite3BtreeGetJournalname
    - sqlite3_randomness
    - sqlite3PagerExclusiveLock
    - sqlite3OsDeviceCharacteristics
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3BtreeIsInTrans
    - sqlite3BtreeCommitPhaseOne
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3BeginBenignMalloc
    - sqlite3BtreeGetFilename
    - sqlite3MPrintf
    - sqlite3VtabCommit
    - sqlite3OsWrite
    - sqlite3VtabSync
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int vdbeCommit(sqlite3 *db, Vdbe *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stmt_busy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68169,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68170,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( nRead==db->nVdbeRead )
      pos:
        line_end: 68170
        line_start: 68170
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nWrite==db->nVdbeWrite )
      pos:
        line_end: 68169
        line_start: 68169
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( cnt==db->nVdbeActive )
      pos:
        line_end: 68168
        line_start: 68168
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68172
      start: 68155
    functionDepth: 1
    functionLinenumber: 68155
    functionLinenumberEnd: 68172
    functionName: checkActiveVdbeCnt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stmt_busy
    - assert
    linkageType: ''
    returnType: void
    signature: void checkActiveVdbeCnt(sqlite3 *db)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68200,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68201,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68202,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68209,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68212,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68224,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - p
    - eOp
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( eOp==SAVEPOINT_ROLLBACK || eOp==SAVEPOINT_RELEASE)
      pos:
        line_end: 68199
        line_start: 68199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nStatement>0 )
      pos:
        line_end: 68200
        line_start: 68200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iStatement==(db->nStatement+db->nSavepoint) )
      pos:
        line_end: 68201
        line_start: 68201
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68240
      start: 68187
    functionDepth: 15
    functionLinenumber: 68187
    functionLinenumberEnd: 68240
    functionName: sqlite3VdbeCloseStatement
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabSavepoint
    - assert
    - sqlite3BtreeSavepoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCloseStatement(Vdbe *p, int eOp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - deferred
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68264
      start: 68253
    functionDepth: 8
    functionLinenumber: 68253
    functionLinenumberEnd: 68264
    functionName: sqlite3VdbeCheckFk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCheckFk(Vdbe *p, int deferred)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68303,1
    - Dst: closeAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68304,1
    - Dst: checkActiveVdbeCnt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68308,1
    - Dst: sqlite3VdbeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68318,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68344,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68345,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68354,1
    - Dst: sqlite3VtabInSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68363,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68368,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68370,1
    - Dst: sqlite3VdbeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68371,1
    - Dst: vdbeCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68380,1
    - Dst: sqlite3VdbeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68383,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68387,1
    - Dst: sqlite3CommitInternalChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68393,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68396,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68406,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68407,1
    - Dst: sqlite3VdbeCloseStatement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68420,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68424,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68427,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68428,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68439,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68441,1
    - Dst: sqlite3VdbeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68447,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68455,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68456,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68457,1
    - Dst: checkActiveVdbeCnt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68460,1
    - Dst: sqlite3ConnectionUnlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68470,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68473,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 119
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( db->nVdbeActive>=db->nVdbeRead )
      pos:
        line_end: 68454
        line_start: 68454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nVdbeActive>0 || db->autoCommit==0 || db->nStatement==0 )
      pos:
        line_end: 68472
        line_start: 68472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nVdbeWrite>=0 )
      pos:
        line_end: 68456
        line_start: 68456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nVdbeRead>=db->nVdbeWrite )
      pos:
        line_end: 68455
        line_start: 68455
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68475
      start: 68280
    functionDepth: 21
    functionLinenumber: 68280
    functionLinenumberEnd: 68475
    functionName: sqlite3VdbeHalt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - memset
    - assert
    - sqlite3CloseSavepoints
    - sqlite3VdbeEnter
    - sqlite3ConnectionUnlocked
    - sqlite3RollbackAll
    - checkActiveVdbeCnt
    - sqlite3CommitInternalChanges
    - sqlite3VdbeCloseStatement
    - sqlite3VtabInSync
    - sqlite3VdbeSetChanges
    - sqlite3VdbeLeave
    - closeAllCursors
    - sqlite3VdbeCheckFk
    - sqlite3DbFree
    - vdbeCommit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeHalt(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68484
      start: 68482
    functionDepth: 0
    functionLinenumber: 68482
    functionLinenumberEnd: 68484
    functionName: sqlite3VdbeResetStepResult
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeResetStepResult(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68499,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68500,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68501,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68502,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68509
      start: 68494
    functionDepth: 11
    functionLinenumber: 68494
    functionLinenumberEnd: 68509
    functionName: sqlite3VdbeTransferError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BeginBenignMalloc
    - sqlite3EndBenignMalloc
    - sqlite3ValueNew
    - sqlite3Error
    - sqlite3ValueSetStr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeTransferError(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeExpandSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68518,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68519,1
    - Dst: xSqllog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68521,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( v->db->init.busy==0 )
      pos:
        line_end: 68518
        line_start: 68518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68527
      start: 68516
    functionDepth: 5
    functionLinenumber: 68516
    functionLinenumberEnd: 68527
    functionName: vdbeInvokeSqllog
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xSqllog
    - sqlite3VdbeExpandSql
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void vdbeInvokeSqllog(Vdbe *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeHalt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68551,1
    - Dst: vdbeInvokeSqllog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68559,1
    - Dst: sqlite3VdbeTransferError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68560,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68561,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68569,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68570,1
    - Dst: Cleanup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68576,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68582,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68585,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68587,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68589,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68592,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68594,1
    - Dst: putc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68595,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68598,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68602,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68607,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68608,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68610,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68617
      start: 68543
    functionDepth: 22
    functionLinenumber: 68543
    functionLinenumberEnd: 68617
    functionName: sqlite3VdbeReset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fopen
    - fprintf
    - fclose
    - Cleanup
    - sqlite3VdbePrintOp
    - vdbeInvokeSqllog
    - sqlite3ErrorWithMsg
    - sqlite3DbFree
    - putc
    - sqlite3VdbeHalt
    - sqlite3VdbeTransferError
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeReset(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68626,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68627,1
    - Dst: sqlite3VdbeDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( (rc & p->db->errMask)==rc )
      pos:
        line_end: 68626
        line_start: 68626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68631
      start: 68623
    functionDepth: 23
    functionLinenumber: 68623
    functionLinenumberEnd: 68631
    functionName: sqlite3VdbeFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeDelete
    - sqlite3VdbeReset
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFinalize(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASKBIT32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68654,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68656,1
    - Dst: AuxData*::xDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68658,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - pVdbe
    - iOp
    - mask
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68666
      start: 68649
    functionDepth: 5
    functionLinenumber: 68649
    functionLinenumberEnd: 68666
    functionName: sqlite3VdbeDeleteAuxData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - MASKBIT32
    - AuxData*::xDelete
    - testcase
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDeleteAuxData(Vdbe *pVdbe, int iOp, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68679,1
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68680,1
    - Dst: releaseMemArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68681,1
    - Dst: vdbeFreeOpArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68684,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68685,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68687,1
    - Dst: vdbeFreeOpArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68688,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68689,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68690,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68691,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68694,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( p->db==0 || p->db==db )
      pos:
        line_end: 68678
        line_start: 68678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68698
      start: 68676
    functionDepth: 12
    functionLinenumber: 68676
    functionLinenumberEnd: 68698
    functionName: sqlite3VdbeClearObject
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeFreeOpArray
    - sqlite3DbFree
    - assert
    - releaseMemArray
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68708,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68708,1
    - Dst: sqlite3VdbeClearObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68713,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( db->pVdbe==p )
      pos:
        line_end: 68712
        line_start: 68712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 68707
        line_start: 68707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68722
      start: 68703
    functionDepth: 13
    functionLinenumber: 68703
    functionLinenumberEnd: 68722
    functionName: sqlite3VdbeDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - sqlite3_mutex_held
    - assert
    - sqlite3VdbeClearObject
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDelete(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68734,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68735,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts:
    - condition: ( p->deferredMoveto )
      pos:
        line_end: 68733
        line_start: 68733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->isTable )
      pos:
        line_end: 68734
        line_start: 68734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68745
      start: 68729
    functionDepth: 16
    functionLinenumber: 68729
    functionLinenumberEnd: 68745
    functionName: SQLITE_NOINLINE::handleDeferredMoveto
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeMovetoUnpacked
    - assert
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE handleDeferredMoveto(VdbeCursor *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68757,1
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68757,1
    - Dst: sqlite3BtreeCursorRestore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts:
    - condition: ( p->pCursor!=0 )
      pos:
        line_end: 68755
        line_start: 68755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeCursorHasMoved(p->pCursor) )
      pos:
        line_end: 68756
        line_start: 68756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68762
      start: 68754
    functionDepth: 2
    functionLinenumber: 68754
    functionLinenumberEnd: 68762
    functionName: SQLITE_NOINLINE::handleMovedCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeCursorRestore
    - assert
    - sqlite3BtreeCursorHasMoved
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE handleMovedCursor(VdbeCursor *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68769,1
    - Dst: handleMovedCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68773
      start: 68768
    functionDepth: 1
    functionLinenumber: 68768
    functionLinenumberEnd: 68773
    functionName: sqlite3VdbeCursorRestore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - handleMovedCursor
    - sqlite3BtreeCursorHasMoved
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCursorRestore(VdbeCursor *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handleDeferredMoveto
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68790,1
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68792,1
    - Dst: handleMovedCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68796
      start: 68788
    functionDepth: 1
    functionLinenumber: 68788
    functionLinenumberEnd: 68796
    functionName: sqlite3VdbeCursorMoveto
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - handleMovedCursor
    - sqlite3BtreeCursorHasMoved
    - handleDeferredMoveto
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCursorMoveto(VdbeCursor *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68873,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - pMem
    - file_format
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( pMem->db->mallocFailed || flags&(MEM_Str|MEM_Blob) )
      pos:
        line_end: 68871
        line_start: 68871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 68872
        line_start: 68872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68879
      start: 68843
    functionDepth: 0
    functionLinenumber: 68843
    functionLinenumberEnd: 68879
    functionName: sqlite3VdbeSerialType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialType(Mem *pMem, int file_format)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - serial_type
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68897
      start: 68891
    functionDepth: 0
    functionLinenumber: 68891
    functionLinenumberEnd: 68897
    functionName: sqlite3VdbeSerialTypeLen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialTypeLen(u32 serial_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68946
      start: 68934
    functionDepth: 0
    functionLinenumber: 68934
    functionLinenumberEnd: 68946
    functionName: floatSwap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 floatSwap(u64 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68948
      start: 68947
    functionDepth: 0
    functionLinenumber: 68947
    functionLinenumberEnd: 68948
    functionName: swapMixedEndianFloat
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swapMixedEndianFloat(X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68973,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68974,1
    - Dst: swapMixedEndianFloat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68980,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68990,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68991,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:68993,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - buf
    - pMem
    - serial_type
    argTypes:
    - u8*
    - Mem*
    - u32
    assertStmts:
    - condition: ( sizeof(v)==sizeof(pMem->u.r) )
      pos:
        line_end: 68972
        line_start: 68972
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>0 )
      pos:
        line_end: 68979
        line_start: 68979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pMem->n + ((pMem->flags & MEM_Zero)?pMem->u.nZero:0)\n             ==
        (int)sqlite3VdbeSerialTypeLen(serial_type) )"
      pos:
        line_end: 68990
        line_start: 68989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68999
      start: 68965
    functionDepth: 1
    functionLinenumber: 68965
    functionLinenumberEnd: 68999
    functionName: sqlite3VdbeSerialPut
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - swapMixedEndianFloat
    - sqlite3VdbeSerialTypeLen
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialPut(u8 *buf, Mem *pMem, u32 serial_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69005
      start: 69004
    functionDepth: 0
    functionLinenumber: 69004
    functionLinenumberEnd: 69005
    functionName: ONE_BYTE_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONE_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69006
      start: 69005
    functionDepth: 0
    functionLinenumber: 69005
    functionLinenumberEnd: 69006
    functionName: TWO_BYTE_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69007
      start: 69006
    functionDepth: 0
    functionLinenumber: 69006
    functionLinenumberEnd: 69007
    functionName: THREE_BYTE_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREE_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69008
      start: 69007
    functionDepth: 0
    functionLinenumber: 69007
    functionLinenumberEnd: 69008
    functionName: FOUR_BYTE_UINT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOUR_BYTE_UINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69009
      start: 69008
    functionDepth: 0
    functionLinenumber: 69008
    functionLinenumberEnd: 69009
    functionName: FOUR_BYTE_INT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOUR_BYTE_INT(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69024,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69025,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69032,1
    - Dst: swapMixedEndianFloat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69045,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69046,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69046,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69048,1
    - Dst: swapMixedEndianFloat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69049,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69050,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - serial_type
    - pMem
    argTypes:
    - unsigned char*
    - u32
    - Mem*
    assertStmts:
    - condition: ( sizeof(r1)==sizeof(t2) && memcmp(&r1, &t2, sizeof(r1))==0 )
      pos:
        line_end: 69045
        line_start: 69045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(x)==8 && sizeof(pMem->u.r)==8 )
      pos:
        line_end: 69047
        line_start: 69047
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69054
      start: 69019
    functionDepth: 1
    functionLinenumber: 69019
    functionLinenumberEnd: 69054
    functionName: SQLITE_NOINLINE::serialGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - swapMixedEndianFloat
    - memcmp
    - sqlite3IsNaN
    - assert
    - memcpy
    - testcase
    - FOUR_BYTE_UINT
    linkageType: ''
    returnType: u32
    signature: "u32 SQLITE_NOINLINE serialGet(\n  const unsigned char *buf,     /*
      Buffer to deserialize from */\n  u32 serial_type,              /* Serial type
      to deserialize */\n  Mem *pMem                     /* Memory cell to write value
      into */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ONE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69071,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69073,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69079,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69081,1
    - Dst: THREE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69087,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69089,1
    - Dst: FOUR_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69095,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69097,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69103,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69103,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69105,1
    - Dst: serialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 3
    argNames:
    - buf
    - serial_type
    - pMem
    argTypes:
    - unsigned char*
    - u32
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69135
      start: 69055
    functionDepth: 1
    functionLinenumber: 69055
    functionLinenumberEnd: 69135
    functionName: sqlite3VdbeSerialGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - TWO_BYTE_INT
    - ONE_BYTE_INT
    - FOUR_BYTE_INT
    - FOUR_BYTE_UINT
    - serialGet
    - testcase
    - THREE_BYTE_INT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSerialGet(\n  const unsigned char *buf,
      \    /* Buffer to deserialize from */\n  u32 serial_type,              /* Serial
      type to deserialize */\n  Mem *pMem                     /* Memory cell to write
      value into */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69164,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69165,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69167,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69175,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 69175
        line_start: 69175
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69180
      start: 69150
    functionDepth: 5
    functionLinenumber: 69150
    functionLinenumberEnd: 69180
    functionName: "UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(\n  KeyInfo *pKeyInfo,
      \             /* Description of the record */\n  char *pSpace,                   /*
      Unaligned space available */\n  int szSpace,                    /* Size of pSpace[]
      in bytes */\n  char **ppFree                   /* OUT: Caller should free this
      pointer */\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - SQLITE_PTR_TO_INT
    - assert
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(\n  KeyInfo
      *pKeyInfo,              /* Description of the record */\n  char *pSpace,                   /*
      Unaligned space available */\n  int szSpace,                    /* Size of pSpace[]
      in bytes */\n  char **ppFree                   /* OUT: Caller should free this
      pointer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69201,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69201,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69202,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69208,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - pKeyInfo
    - nKey
    - pKey
    - p
    argTypes:
    - KeyInfo*
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 69200
        line_start: 69200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( u<=pKeyInfo->nField + 1 )
      pos:
        line_end: 69216
        line_start: 69216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69219
      start: 69187
    functionDepth: 2
    functionLinenumber: 69187
    functionLinenumberEnd: 69219
    functionName: sqlite3VdbeRecordUnpack
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeSerialGet
    - getVarint32
    - EIGHT_BYTE_ALIGNMENT
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordUnpack(\n  KeyInfo *pKeyInfo,     /*
      Information about the record format */\n  int nKey,              /* Size of
      the binary record */\n  const void *pKey,      /* The binary record */\n  UnpackedRecord
      *p      /* Populate this structure before returning. */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69252,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69263,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69266,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69267,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69269,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69274,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69283,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69290,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69309,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    - desiredResult
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    - int
    assertStmts:
    - condition: ( pKeyInfo->nField>0 )
      pos:
        line_end: 69267
        line_start: 69267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 69266
        line_start: 69266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->nField+pKeyInfo->nXField>=pPKey2->nField || CORRUPT_DB
        )
      pos:
        line_end: 69265
        line_start: 69265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx1<=szHdr1 || CORRUPT_DB )
      pos:
        line_end: 69268
        line_start: 69268
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 69308
        line_start: 69308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 69295
        line_start: 69295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69323
      start: 69233
    functionDepth: 2
    functionLinenumber: 69233
    functionLinenumberEnd: 69323
    functionName: vdbeRecordCompareDebug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSerialTypeLen
    - assert
    - VVA_ONLY
    - getVarint32
    - sqlite3MemCompare
    - sqlite3VdbeSerialGet
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareDebug(\n  int nKey1, const void *pKey1, /* Left
      key */\n  const UnpackedRecord *pPKey2, /* Right key */\n  int desiredResult
      \            /* Correct answer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69349,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69350,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69351,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69353,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - nKey
    - pKey
    - pKeyInfo
    argTypes:
    - int
    - void*
    - KeyInfo*
    assertStmts:
    - condition: ( nKey>=0 )
      pos:
        line_end: 69349
        line_start: 69349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nField <= pKeyInfo->nField+pKeyInfo->nXField )
      pos:
        line_end: 69355
        line_start: 69355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( szHdr<=(u32)nKey )
      pos:
        line_end: 69350
        line_start: 69350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69357
      start: 69338
    functionDepth: 1
    functionLinenumber: 69338
    functionLinenumberEnd: 69357
    functionName: vdbeAssertFieldCountWithinLimits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - getVarint32
    - assert
    linkageType: ''
    returnType: void
    signature: "void vdbeAssertFieldCountWithinLimits(\n  int nKey, const void *pKey,
      \  /* The record to verify */ \n  const KeyInfo *pKeyInfo       /* Compare size
      with this KeyInfo */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CollSeq*::xCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69377,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69384,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69385,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69386,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69387,1
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69388,1
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69390,1
    - Dst: CollSeq*::xCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69392,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69393,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - pMem1
    - pMem2
    - pColl
    - prcErr
    argTypes:
    - Mem*
    - Mem*
    - CollSeq*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69398
      start: 69368
    functionDepth: 12
    functionLinenumber: 69368
    functionLinenumberEnd: 69398
    functionName: vdbeCompareMemString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - CollSeq*::xCmp
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemShallowCopy
    - sqlite3VdbeMemRelease
    - sqlite3ValueText
    linkageType: ''
    returnType: int
    signature: "int vdbeCompareMemString(\n  const Mem *pMem1,\n  const Mem *pMem2,\n
      \ const CollSeq *pColl,\n  u8 *prcErr                      /* If an OOM occurs,
      set to SQLITE_NOMEM */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pB1
    - pB2
    argTypes:
    - Mem*
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69409
      start: 69405
    functionDepth: 0
    functionLinenumber: 69405
    functionLinenumberEnd: 69409
    functionName: sqlite3BlobCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE sqlite3BlobCompare(const Mem *pB1, const Mem *pB2)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69428,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69478,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69479,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69486,1
    - Dst: vdbeCompareMemString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69489,1
    - Dst: sqlite3BlobCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69496,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - pMem1
    - pMem2
    - pColl
    argTypes:
    - Mem*
    - Mem*
    - CollSeq*
    assertStmts:
    - condition: ( (combined_flags & MEM_RowSet)==0 )
      pos:
        line_end: 69427
        line_start: 69427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pColl || pColl->xCmp )
      pos:
        line_end: 69485
        line_start: 69485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pMem1->enc==SQLITE_UTF8 || \n            pMem1->enc==SQLITE_UTF16LE
        || pMem1->enc==SQLITE_UTF16BE )"
      pos:
        line_end: 69479
        line_start: 69478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMem1->enc==pMem2->enc )
      pos:
        line_end: 69477
        line_start: 69477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69497
      start: 69421
    functionDepth: 13
    functionLinenumber: 69421
    functionLinenumberEnd: 69497
    functionName: sqlite3MemCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeCompareMemString
    - assert
    - sqlite3BlobCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2,
      const CollSeq *pColl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69509,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69513,1
    - Dst: ONE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69514,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69516,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69517,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69519,1
    - Dst: THREE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69520,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69522,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69523,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69527,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69528,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69528,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69531,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69532,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - serial_type
    - aKey
    argTypes:
    - u32
    - u8*
    assertStmts:
    - condition: ( CORRUPT_DB || (serial_type>=1 && serial_type<=9 && serial_type!=7)
        )
      pos:
        line_end: 69508
        line_start: 69508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69539
      start: 69507
    functionDepth: 1
    functionLinenumber: 69507
    functionLinenumberEnd: 69539
    functionName: vdbeRecordDecodeInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - TWO_BYTE_INT
    - assert
    - ONE_BYTE_INT
    - FOUR_BYTE_UINT
    - testcase
    - THREE_BYTE_INT
    linkageType: ''
    returnType: i64
    signature: i64 vdbeRecordDecodeInt(u32 serial_type, const u8 *aKey)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69582,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69584,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69588,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69597,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69598,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69600,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69601,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69602,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69609,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69616,1
    - Dst: vdbeRecordDecodeInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69623,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69647,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69663,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69664,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69671,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69672,1
    - Dst: vdbeCompareMemString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69681,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69685,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69686,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69694,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69695,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69700,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69701,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69706,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69707,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69723,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69723,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69724,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69730,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69731,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69737,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69742,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69743,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 136
    argCount: 4
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    - bSkip
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    - int
    assertStmts:
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 69736
        line_start: 69736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( CORRUPT_DB \n       || vdbeRecordCompareDebug(nKey1, pKey1, pPKey2,
        pPKey2->default_rc) \n       || pKeyInfo->db->mallocFailed\n  )"
      pos:
        line_end: 69744
        line_start: 69741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pPKey2->pKeyInfo->nField+pPKey2->pKeyInfo->nXField>=pPKey2->nField
        \n       || CORRUPT_DB )"
      pos:
        line_end: 69598
        line_start: 69597
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 69723
        line_start: 69723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx1<=szHdr1 || CORRUPT_DB )
      pos:
        line_end: 69601
        line_start: 69601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, rc) )
      pos:
        line_end: 69722
        line_start: 69722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPKey2->pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 69599
        line_start: 69599
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPKey2->pKeyInfo->nField>0 )
      pos:
        line_end: 69600
        line_start: 69600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69747
      start: 69562
    functionDepth: 13
    functionLinenumber: 69562
    functionLinenumberEnd: 69747
    functionName: sqlite3VdbeRecordCompareWithSkip
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - vdbeCompareMemString
    - vdbeRecordCompareDebug
    - sqlite3VdbeSerialTypeLen
    - assert
    - VVA_ONLY
    - vdbeRecordDecodeInt
    - getVarint32
    - sqlite3VarintLen
    - testcase
    - sqlite3VdbeSerialGet
    - MIN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordCompareWithSkip(\n  int nKey1, const
      void *pKey1,   /* Left key */\n  UnpackedRecord *pPKey2,         /* Right key
      */\n  int bSkip                       /* If true, skip the first field */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69753
      start: 69748
    functionDepth: 14
    functionLinenumber: 69748
    functionLinenumberEnd: 69753
    functionName: sqlite3VdbeRecordCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRecordCompareWithSkip
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordCompare(\n  int nKey1, const void
      *pKey1,   /* Left key */\n  UnpackedRecord *pPKey2          /* Right key */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: vdbeAssertFieldCountWithinLimits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69777,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69778,1
    - Dst: ONE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69781,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69782,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69786,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69787,1
    - Dst: THREE_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69791,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69792,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69796,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69798,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69802,1
    - Dst: TWO_BYTE_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69802,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69803,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69807,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69808,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69810,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69827,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69830,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69840,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69847,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69847,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: ( (*(u8*)pKey1)<=0x3F || CORRUPT_DB )
      pos:
        line_end: 69777
        line_start: 69777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, res) )
      pos:
        line_end: 69846
        line_start: 69846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69849
      start: 69765
    functionDepth: 15
    functionLinenumber: 69765
    functionLinenumberEnd: 69849
    functionName: vdbeRecordCompareInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - TWO_BYTE_INT
    - sqlite3VdbeRecordCompare
    - vdbeRecordCompareDebug
    - assert
    - vdbeAssertFieldCountWithinLimits
    - ONE_BYTE_INT
    - FOUR_BYTE_UINT
    - sqlite3VdbeRecordCompareWithSkip
    - testcase
    - THREE_BYTE_INT
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareInt(\n  int nKey1, const void *pKey1, /* Left
      key */\n  UnpackedRecord *pPKey2        /* Right key */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vdbeAssertFieldCountWithinLimits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69865,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69866,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69881,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69882,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69888,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69904,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69904,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: "( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, res)\n       || CORRUPT_DB\n
        \      || pPKey2->pKeyInfo->db->mallocFailed\n  )"
      pos:
        line_end: 69906
        line_start: 69903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69909
      start: 69857
    functionDepth: 14
    functionLinenumber: 69857
    functionLinenumberEnd: 69909
    functionName: vdbeRecordCompareString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - vdbeRecordCompareDebug
    - vdbeAssertFieldCountWithinLimits
    - assert
    - getVarint32
    - sqlite3VdbeRecordCompareWithSkip
    - MIN
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareString(\n  int nKey1, const void *pKey1, /* Left
      key */\n  UnpackedRecord *pPKey2        /* Right key */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69942,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69943,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69944,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - UnpackedRecord*
    assertStmts:
    - condition: ( flags & MEM_Str )
      pos:
        line_end: 69945
        line_start: 69945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69952
      start: 69916
    functionDepth: 1
    functionLinenumber: 69916
    functionLinenumberEnd: 69952
    functionName: RecordCompare::sqlite3VdbeFindCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE RecordCompare sqlite3VdbeFindCompare(UnpackedRecord
      *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69975,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69975,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69976,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69977,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69978,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69981,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69982,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69988,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69989,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69990,1
    - Dst: unlikely
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69991,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69997,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69998,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:69999,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70000,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70001,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70002,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70003,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70004,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70005,1
    - Dst: unlikely
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70006,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70010,1
    - Dst: unlikely
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70011,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70016,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70018,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70024,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70025,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - db
    - pCur
    - rowid
    argTypes:
    - sqlite3*
    - BtCursor*
    - i64*
    assertStmts:
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 69974
        line_start: 69974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 69976
        line_start: 69976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (nCellKey & SQLITE_MAX_U32)==(u64)nCellKey )
      pos:
        line_end: 69977
        line_start: 69977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70027
      start: 69962
    functionDepth: 18
    functionLinenumber: 69962
    functionLinenumberEnd: 70027
    functionName: sqlite3VdbeIdxRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemFromBtree
    - assert
    - VVA_ONLY
    - sqlite3BtreeCursorIsValid
    - getVarint32
    - sqlite3VdbeMemRelease
    - sqlite3BtreeKeySize
    - unlikely
    - testcase
    - sqlite3VdbeSerialGet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIdxRowid(sqlite3 *db, BtCursor *pCur, i64
      *rowid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70051,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70051,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70052,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70052,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70053,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70060,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70061,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70065,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - db
    - pC
    - pUnpacked
    - res
    argTypes:
    - sqlite3*
    - VdbeCursor*
    - UnpackedRecord*
    - int*
    assertStmts:
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 70050
        line_start: 70050
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 70052
        line_start: 70052
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70068
      start: 70040
    functionDepth: 18
    functionLinenumber: 70040
    functionLinenumberEnd: 70068
    functionName: sqlite3VdbeIdxKeyCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemFromBtree
    - sqlite3VdbeRecordCompare
    - assert
    - VVA_ONLY
    - sqlite3BtreeCursorIsValid
    - sqlite3VdbeMemRelease
    - sqlite3BtreeKeySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeIdxKeyCompare(\n  sqlite3 *db,                     /*
      Database connection */\n  VdbeCursor *pC,                  /* The cursor to
      compare against */\n  UnpackedRecord *pUnpacked,       /* Unpacked version of
      key */\n  int *res                         /* Write the comparison result here
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70075,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - db
    - nChange
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 70074
        line_start: 70074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70078
      start: 70074
    functionDepth: 1
    functionLinenumber: 70074
    functionLinenumberEnd: 70078
    functionName: sqlite3VdbeSetChanges
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetChanges(sqlite3 *db, int nChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70086
      start: 70084
    functionDepth: 0
    functionLinenumber: 70084
    functionLinenumberEnd: 70086
    functionName: sqlite3VdbeCountChanges
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCountChanges(Vdbe *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70103
      start: 70098
    functionDepth: 0
    functionLinenumber: 70098
    functionLinenumberEnd: 70103
    functionName: sqlite3ExpirePreparedStatements
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExpirePreparedStatements(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70110
      start: 70108
    functionDepth: 0
    functionLinenumber: 70108
    functionLinenumberEnd: 70110
    functionName: sqlite3VdbeDb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeDb(Vdbe *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70121,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70125,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70127,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( iVar>0 )
      pos:
        line_end: 70120
        line_start: 70120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70134
      start: 70120
    functionDepth: 10
    functionLinenumber: 70120
    functionLinenumberEnd: 70134
    functionName: sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueApplyAffinity
    - sqlite3ValueNew
    - sqlite3VdbeMemCopy
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int
      iVar, u8 aff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - iVar
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( iVar>0 )
      pos:
        line_end: 70141
        line_start: 70141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70148
      start: 70141
    functionDepth: 0
    functionLinenumber: 70141
    functionLinenumberEnd: 70148
    functionName: sqlite3VdbeSetVarmask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetVarmask(Vdbe *v, int iVar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70158,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70159,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - pVtab
    argTypes:
    - Vdbe*
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70162
      start: 70156
    functionDepth: 6
    functionLinenumber: 70156
    functionLinenumberEnd: 70162
    functionName: sqlite3VtabImportErrmsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3DbFree
    - sqlite3DbStrDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabImportErrmsg(Vdbe *p, sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70197
      start: 70194
    functionDepth: 0
    functionLinenumber: 70194
    functionLinenumberEnd: 70197
    functionName: sqlite3_expired
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_expired(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70212
      start: 70205
    functionDepth: 8
    functionLinenumber: 70205
    functionLinenumberEnd: 70212
    functionName: vdbeSafety
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: int
    signature: int vdbeSafety(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70215,1
    - Dst: vdbeSafety
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70220
      start: 70213
    functionDepth: 9
    functionLinenumber: 70213
    functionLinenumberEnd: 70220
    functionName: vdbeSafetyNotNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    - vdbeSafety
    linkageType: ''
    returnType: int
    signature: int vdbeSafetyNotNull(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70229,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70231,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70232,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70233,1
    - Dst: sqlite3*::xProfile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( p->startTime>0 )
      pos:
        line_end: 70228
        line_start: 70228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zSql!=0 )
      pos:
        line_end: 70231
        line_start: 70231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->xProfile!=0 )
      pos:
        line_end: 70229
        line_start: 70229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 70230
        line_start: 70230
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70236
      start: 70227
    functionDepth: 1
    functionLinenumber: 70227
    functionLinenumberEnd: 70236
    functionName: invokeProfileCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsCurrentTimeInt64
    - sqlite3*::xProfile
    - assert
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE invokeProfileCallback(sqlite3 *db, Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DB
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70243
      start: 70241
    functionDepth: 0
    functionLinenumber: 70241
    functionLinenumberEnd: 70243
    functionName: checkProfileCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkProfileCallback(DB,P)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafety
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70265,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70266,1
    - Dst: checkProfileCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70267,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70268,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70269,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70273
      start: 70256
    functionDepth: 24
    functionLinenumber: 70256
    functionLinenumberEnd: 70273
    functionName: sqlite3_finalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - checkProfileCallback
    - sqlite3ApiExit
    - sqlite3VdbeFinalize
    - sqlite3LeaveMutexAndCloseZombie
    - vdbeSafety
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_finalize(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70290,1
    - Dst: checkProfileCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70291,1
    - Dst: sqlite3VdbeReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70292,1
    - Dst: sqlite3VdbeRewind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70293,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70294,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70295,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( (rc & (db->errMask))==rc )
      pos:
        line_end: 70293
        line_start: 70293
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70299
      start: 70283
    functionDepth: 23
    functionLinenumber: 70283
    functionLinenumberEnd: 70299
    functionName: sqlite3_reset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - checkProfileCallback
    - sqlite3ApiExit
    - assert
    - sqlite3VdbeRewind
    - sqlite3VdbeReset
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_reset(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70311,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70313,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70321
      start: 70304
    functionDepth: 9
    functionLinenumber: 70304
    functionLinenumberEnd: 70321
    functionName: sqlite3_clear_bindings
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3VdbeMemRelease
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_clear_bindings(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70332,1
    - Dst: SQLITE_STDCALL::sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts:
    - condition: ( p->flags==MEM_Null && p->z==0 )
      pos:
        line_end: 70331
        line_start: 70331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70340
      start: 70328
    functionDepth: 1
    functionLinenumber: 70328
    functionLinenumberEnd: 70340
    functionName: SQLITE_STDCALL::sqlite3_value_blob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemExpandBlob
    - SQLITE_STDCALL::sqlite3_value_text
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_value_blob(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70343
      start: 70341
    functionDepth: 13
    functionLinenumber: 70341
    functionLinenumberEnd: 70343
    functionName: sqlite3_value_bytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueBytes
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_bytes(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueBytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70346
      start: 70344
    functionDepth: 13
    functionLinenumber: 70344
    functionLinenumberEnd: 70346
    functionName: sqlite3_value_bytes16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueBytes
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_bytes16(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70349
      start: 70347
    functionDepth: 3
    functionLinenumber: 70347
    functionLinenumberEnd: 70349
    functionName: sqlite3_value_double
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeRealValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_double(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70352
      start: 70350
    functionDepth: 4
    functionLinenumber: 70350
    functionLinenumberEnd: 70352
    functionName: sqlite3_value_int
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeIntValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_int(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70355
      start: 70353
    functionDepth: 4
    functionLinenumber: 70353
    functionLinenumberEnd: 70355
    functionName: sqlite3_value_int64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeIntValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_int64(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70358
      start: 70356
    functionDepth: 12
    functionLinenumber: 70356
    functionLinenumberEnd: 70358
    functionName: SQLITE_STDCALL::sqlite3_value_text
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70362
      start: 70360
    functionDepth: 12
    functionLinenumber: 70360
    functionLinenumberEnd: 70362
    functionName: SQLITE_STDCALL::sqlite3_value_text16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_value_text16(sqlite3_value* pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70365
      start: 70363
    functionDepth: 12
    functionLinenumber: 70363
    functionLinenumberEnd: 70365
    functionName: SQLITE_STDCALL::sqlite3_value_text16be
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_value_text16be(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70368
      start: 70366
    functionDepth: 12
    functionLinenumber: 70366
    functionLinenumberEnd: 70368
    functionName: SQLITE_STDCALL::sqlite3_value_text16le
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_value_text16le(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70410
      start: 70374
    functionDepth: 0
    functionLinenumber: 70374
    functionLinenumberEnd: 70410
    functionName: sqlite3_value_type
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_type(sqlite3_value* pVal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70417,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70419,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70420,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70426,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - pOrig
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70432
      start: 70414
    functionDepth: 10
    functionLinenumber: 70414
    functionLinenumberEnd: 70432
    functionName: sqlite3_value_dup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    - memset
    - memcpy
    - sqlite3_malloc
    - sqlite3VdbeMemMakeWriteable
    linkageType: ''
    returnType: void
    signature: void sqlite3_value_dup(const sqlite3_value *pOrig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70439
      start: 70437
    functionDepth: 10
    functionLinenumber: 70437
    functionLinenumberEnd: 70439
    functionName: sqlite3_value_free
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_free(sqlite3_value *pOld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70460,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pCtx
    - z
    - n
    - enc
    argTypes:
    - sqlite3_context*
    - char*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70463
      start: 70453
    functionDepth: 10
    functionLinenumber: 70453
    functionLinenumberEnd: 70463
    functionName: setResultStrOrError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetStr
    - sqlite3_result_error_toobig
    linkageType: ''
    returnType: void
    signature: "void setResultStrOrError(\n  sqlite3_context *pCtx,  /* Function context
      */\n  const char *z,          /* String pointer */\n  int n,                  /*
      Bytes in string, or negative */\n  u8 enc,                 /* Encoding of z.
      \ 0 for BLOBs */\n  void (*xDel)(void*)     /* Destructor function */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70469,1
    - Dst: xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70475,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pCtx
    argTypes:
    - void*
    - sqlite3_context*
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 70468
        line_start: 70468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70479
      start: 70464
    functionDepth: 1
    functionLinenumber: 70464
    functionLinenumberEnd: 70479
    functionName: invokeValueDestructor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xDel
    - sqlite3_result_error_toobig
    - assert
    linkageType: ''
    returnType: int
    signature: "int invokeValueDestructor(\n  const void *p,             /* Value
      to destroy */\n  void (*xDel)(void*),       /* The destructor */\n  sqlite3_context
      *pCtx      /* Set a SQLITE_TOOBIG error if no NULL */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70487,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70487,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( n>=0 )
      pos:
        line_end: 70485
        line_start: 70485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70486
        line_start: 70486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70489
      start: 70480
    functionDepth: 11
    functionLinenumber: 70480
    functionLinenumberEnd: 70489
    functionName: sqlite3_result_blob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_blob(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70496,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70496,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70497,1
    - Dst: invokeValueDestructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70499,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - sqlite3_uint64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70495
        line_start: 70495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 70496
        line_start: 70496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70503
      start: 70490
    functionDepth: 11
    functionLinenumber: 70490
    functionLinenumberEnd: 70503
    functionName: sqlite3_result_blob64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - invokeValueDestructor
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_blob64(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  sqlite3_uint64 n,\n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70505,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70505,1
    - Dst: sqlite3VdbeMemSetDouble
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - rVal
    argTypes:
    - sqlite3_context*
    - double
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70504
        line_start: 70504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70507
      start: 70504
    functionDepth: 9
    functionLinenumber: 70504
    functionLinenumberEnd: 70507
    functionName: sqlite3_result_double
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetDouble
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_double(sqlite3_context *pCtx, double rVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70509,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70509,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - char*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70508
        line_start: 70508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70513
      start: 70508
    functionDepth: 10
    functionLinenumber: 70508
    functionLinenumberEnd: 70513
    functionName: sqlite3_result_error
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error(sqlite3_context *pCtx, const char *z,
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70516,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70516,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70515
        line_start: 70515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70520
      start: 70515
    functionDepth: 10
    functionLinenumber: 70515
    functionLinenumberEnd: 70520
    functionName: sqlite3_result_error16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error16(sqlite3_context *pCtx, const void
      *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70523,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70523,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - iVal
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70522
        line_start: 70522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70525
      start: 70522
    functionDepth: 10
    functionLinenumber: 70522
    functionLinenumberEnd: 70525
    functionName: sqlite3_result_int
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetInt64
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_int(sqlite3_context *pCtx, int iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70527,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70527,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - iVal
    argTypes:
    - sqlite3_context*
    - i64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70526
        line_start: 70526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70529
      start: 70526
    functionDepth: 10
    functionLinenumber: 70526
    functionLinenumberEnd: 70529
    functionName: sqlite3_result_int64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetInt64
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_int64(sqlite3_context *pCtx, i64 iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70531,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70531,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70530
        line_start: 70530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70533
      start: 70530
    functionDepth: 8
    functionLinenumber: 70530
    functionLinenumberEnd: 70533
    functionName: sqlite3_result_null
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_null(sqlite3_context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70540,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70540,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - char*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70539
        line_start: 70539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70542
      start: 70534
    functionDepth: 11
    functionLinenumber: 70534
    functionLinenumberEnd: 70542
    functionName: sqlite3_result_text
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text(\n  sqlite3_context *pCtx, \n  const
      char *z, \n  int n,\n  void (*xDel)(void *)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70550,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70550,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70551,1
    - Dst: invokeValueDestructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70554,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pCtx
    - z
    - n
    - enc
    argTypes:
    - sqlite3_context*
    - char*
    - sqlite3_uint64
    - unsigned char
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70549
        line_start: 70549
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 70550
        line_start: 70550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70558
      start: 70543
    functionDepth: 11
    functionLinenumber: 70543
    functionLinenumberEnd: 70558
    functionName: sqlite3_result_text64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - invokeValueDestructor
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text64(\n  sqlite3_context *pCtx, \n  const
      char *z, \n  sqlite3_uint64 n,\n  void (*xDel)(void *),\n  unsigned char enc\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70566,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70566,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70565
        line_start: 70565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70568
      start: 70560
    functionDepth: 11
    functionLinenumber: 70560
    functionLinenumberEnd: 70568
    functionName: sqlite3_result_text16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70575,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70575,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70574
        line_start: 70574
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70577
      start: 70569
    functionDepth: 11
    functionLinenumber: 70569
    functionLinenumberEnd: 70577
    functionName: sqlite3_result_text16be
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16be(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70584,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70584,1
    - Dst: setResultStrOrError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70583
        line_start: 70583
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70586
      start: 70578
    functionDepth: 11
    functionLinenumber: 70578
    functionLinenumberEnd: 70586
    functionName: sqlite3_result_text16le
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - setResultStrOrError
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16le(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70589,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70589,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - pValue
    argTypes:
    - sqlite3_context*
    - sqlite3_value*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70588
        line_start: 70588
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70591
      start: 70588
    functionDepth: 10
    functionLinenumber: 70588
    functionLinenumberEnd: 70591
    functionName: sqlite3_result_value
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemCopy
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_value(sqlite3_context *pCtx, sqlite3_value
      *pValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70593,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70593,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - n
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70592
        line_start: 70592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70595
      start: 70592
    functionDepth: 10
    functionLinenumber: 70592
    functionLinenumberEnd: 70595
    functionName: sqlite3_result_zeroblob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetZeroBlob
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_zeroblob(sqlite3_context *pCtx, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70598,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70598,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pCtx
    - n
    argTypes:
    - sqlite3_context*
    - u64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pOut->db->mutex) )
      pos:
        line_end: 70597
        line_start: 70597
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70604
      start: 70596
    functionDepth: 10
    functionLinenumber: 70596
    functionLinenumberEnd: 70604
    functionName: sqlite3_result_zeroblob64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetZeroBlob
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_zeroblob64(sqlite3_context *pCtx, u64 n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70612,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pCtx
    - errCode
    argTypes:
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70615
      start: 70605
    functionDepth: 10
    functionLinenumber: 70605
    functionLinenumberEnd: 70615
    functionName: sqlite3_result_error_code
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetStr
    - sqlite3ErrStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_code(sqlite3_context *pCtx, int errCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70619,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70619,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70618
        line_start: 70618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70624
      start: 70618
    functionDepth: 10
    functionLinenumber: 70618
    functionLinenumberEnd: 70624
    functionName: sqlite3_result_error_toobig
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_toobig(sqlite3_context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70628,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70628,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70627
        line_start: 70627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70633
      start: 70627
    functionDepth: 8
    functionLinenumber: 70627
    functionLinenumberEnd: 70633
    functionName: sqlite3_result_error_nomem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_nomem(sqlite3_context *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70647,1
    - Dst: sqlite3PagerWalCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70648,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70648,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70649,1
    - Dst: sqlite3*::xWalCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70657
      start: 70639
    functionDepth: 2
    functionLinenumber: 70639
    functionLinenumberEnd: 70657
    functionName: doWalCallbacks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3*::xWalCallback
    - sqlite3BtreePager
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerWalCallback
    linkageType: ''
    returnType: int
    signature: int doWalCallbacks(sqlite3 *db)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70673,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70693,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70698,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70723,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70729,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70731,1
    - Dst: sqlite3VdbeList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70745,1
    - Dst: sqlite3VdbeExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70750,1
    - Dst: checkProfileCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70760,1
    - Dst: doWalCallbacks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70761,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70779,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70782,1
    - Dst: sqlite3VdbeTransferError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70788,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: (p)
      pos:
        line_end: 70672
        line_start: 70672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( db->nVdbeWrite>0 || db->autoCommit==0 \n        || (db->nDeferredCons==0
        && db->nDeferredImmCons==0)\n    )"
      pos:
        line_end: 70724
        line_start: 70722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->startTime==0 )
      pos:
        line_end: 70730
        line_start: 70730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 70759
        line_start: 70759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->rc!=SQLITE_ROW && p->rc!=SQLITE_DONE) || p->rc==p->rcApp )
      pos:
        line_end: 70781
        line_start: 70781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( rc==SQLITE_ROW  || rc==SQLITE_DONE   || rc==SQLITE_ERROR \n       ||
        rc==SQLITE_BUSY || rc==SQLITE_MISUSE\n  )"
      pos:
        line_end: 70780
        line_start: 70778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70791
      start: 70669
    functionDepth: 24
    functionLinenumber: 70669
    functionLinenumberEnd: 70791
    functionName: sqlite3Step
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - checkProfileCallback
    - sqlite3OsCurrentTimeInt64
    - sqlite3ApiExit
    - sqlite3VdbeExec
    - assert
    - doWalCallbacks
    - sqlite3_reset
    - sqlite3VdbeTransferError
    - sqlite3VdbeList
    linkageType: ''
    returnType: int
    signature: int sqlite3Step(Vdbe *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafetyNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70805,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70809,1
    - Dst: sqlite3Step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70811,1
    - Dst: sqlite3Reprepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70814,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70816,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70818,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70829,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70830,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70832,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70839,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( v->expired==0 )
      pos:
        line_end: 70817
        line_start: 70817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70842
      start: 70798
    functionDepth: 25
    functionLinenumber: 70798
    functionLinenumberEnd: 70842
    functionName: sqlite3_step
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - vdbeSafetyNotNull
    - sqlite3Step
    - sqlite3ApiExit
    - assert
    - sqlite3_value_text
    - sqlite3DbStrDup
    - sqlite3_reset
    - sqlite3_mutex_leave
    - sqlite3Reprepare
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_step(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pFunc )
      pos:
        line_end: 70849
        line_start: 70849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70852
      start: 70849
    functionDepth: 0
    functionLinenumber: 70849
    functionLinenumberEnd: 70852
    functionName: SQLITE_STDCALL::sqlite3_user_data
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_user_data(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pFunc )
      pos:
        line_end: 70864
        line_start: 70864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70867
      start: 70864
    functionDepth: 0
    functionLinenumber: 70864
    functionLinenumberEnd: 70867
    functionName: SQLITE_STDCALL::sqlite3_context_db_handle
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_context_db_handle(sqlite3_context
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70880,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p->pVdbe!=0 )
      pos:
        line_end: 70879
        line_start: 70879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70890
      start: 70876
    functionDepth: 1
    functionLinenumber: 70876
    functionLinenumberEnd: 70890
    functionName: sqlite3_int64::sqlite3StmtCurrentTime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsCurrentTimeInt64
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70907,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70908,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70910,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70912
      start: 70900
    functionDepth: 11
    functionLinenumber: 70900
    functionLinenumberEnd: 70912
    functionName: sqlite3InvalidFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3InvalidFunction(\n  sqlite3_context *context,
      \ /* The function calling context */\n  int NotUsed,               /* Number
      of arguments to the function */\n  sqlite3_value **NotUsed2   /* Value of each
      argument */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70920,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70922,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70925,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( (pMem->flags & MEM_Agg)==0 )
      pos:
        line_end: 70919
        line_start: 70919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70933
      start: 70918
    functionDepth: 9
    functionLinenumber: 70918
    functionLinenumberEnd: 70933
    functionName: createAggContext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - memset
    - assert
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *createAggContext(sqlite3_context *p, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70942,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70942,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70943,1
    - Dst: createAggContext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( p && p->pFunc && p->pFunc->xStep )
      pos:
        line_end: 70940
        line_start: 70940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pOut->db->mutex) )
      pos:
        line_end: 70941
        line_start: 70941
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70949
      start: 70940
    functionDepth: 10
    functionLinenumber: 70940
    functionLinenumberEnd: 70949
    functionName: SQLITE_STDCALL::sqlite3_aggregate_context
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - createAggContext
    - testcase
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_aggregate_context(sqlite3_context
      *p, int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70958,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70958,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70962,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - pCtx
    - iArg
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70957
        line_start: 70957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCtx->pVdbe!=0 )
      pos:
        line_end: 70961
        line_start: 70961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70969
      start: 70955
    functionDepth: 1
    functionLinenumber: 70955
    functionLinenumberEnd: 70969
    functionName: SQLITE_STDCALL::sqlite3_get_auxdata
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_get_auxdata(sqlite3_context *pCtx,
      int iArg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70985,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70985,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70990,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:70997,1
    - Dst: AuxData*::xDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71008,1
    - Dst: xDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71017,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - pCtx
    - iArg
    - pAux
    argTypes:
    - sqlite3_context*
    - int
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 70984
        line_start: 70984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVdbe!=0 )
      pos:
        line_end: 70989
        line_start: 70989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71019
      start: 70976
    functionDepth: 2
    functionLinenumber: 70976
    functionLinenumberEnd: 71019
    functionName: sqlite3_set_auxdata
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - AuxData*::xDelete
    - assert
    - xDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_set_auxdata(\n  sqlite3_context *pCtx, \n  int
      iArg, \n  void *pAux, \n  void (*xDelete)(void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pMem && p->pFunc && p->pFunc->xStep )
      pos:
        line_end: 71031
        line_start: 71031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71034
      start: 71031
    functionDepth: 0
    functionLinenumber: 71031
    functionLinenumberEnd: 71034
    functionName: sqlite3_aggregate_count
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_aggregate_count(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71043
      start: 71040
    functionDepth: 0
    functionLinenumber: 71040
    functionLinenumberEnd: 71043
    functionName: sqlite3_column_count
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_count(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71053
      start: 71049
    functionDepth: 0
    functionLinenumber: 71049
    functionLinenumberEnd: 71053
    functionName: sqlite3_data_count
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_data_count(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71103,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71106,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71107,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71108,1
    - Dst: columnNullValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71113
      start: 71097
    functionDepth: 2
    functionLinenumber: 71097
    functionLinenumberEnd: 71113
    functionName: columnMem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Error
    - ALWAYS
    - columnNullValue
    linkageType: ''
    returnType: Mem
    signature: Mem *columnMem(sqlite3_stmt *pStmt, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71142,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71145
      start: 71133
    functionDepth: 3
    functionLinenumber: 71133
    functionLinenumberEnd: 71145
    functionName: columnMallocFailure
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - sqlite3ApiExit
    linkageType: ''
    returnType: void
    signature: void columnMallocFailure(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_STDCALL::sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71153,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71153,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71160
      start: 71151
    functionDepth: 4
    functionLinenumber: 71151
    functionLinenumberEnd: 71160
    functionName: SQLITE_STDCALL::sqlite3_column_blob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - columnMem
    - SQLITE_STDCALL::sqlite3_value_blob
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_blob(sqlite3_stmt *pStmt,
      int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71162,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71162,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71165
      start: 71161
    functionDepth: 14
    functionLinenumber: 71161
    functionLinenumberEnd: 71165
    functionName: sqlite3_column_bytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_bytes
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_bytes(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_bytes16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71167,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71167,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71170
      start: 71166
    functionDepth: 14
    functionLinenumber: 71166
    functionLinenumberEnd: 71170
    functionName: sqlite3_column_bytes16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_bytes16
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_bytes16(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71172,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71172,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71175
      start: 71171
    functionDepth: 4
    functionLinenumber: 71171
    functionLinenumberEnd: 71175
    functionName: sqlite3_column_double
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_double(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71177,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71177,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71180
      start: 71176
    functionDepth: 5
    functionLinenumber: 71176
    functionLinenumberEnd: 71180
    functionName: sqlite3_column_int
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_int(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71182,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71182,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71185
      start: 71181
    functionDepth: 5
    functionLinenumber: 71181
    functionLinenumberEnd: 71185
    functionName: sqlite3_column_int64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_int64(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_STDCALL::sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71187,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71187,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71190
      start: 71186
    functionDepth: 13
    functionLinenumber: 71186
    functionLinenumberEnd: 71190
    functionName: SQLITE_STDCALL::sqlite3_column_text
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_STDCALL::sqlite3_value_text
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_text(sqlite3_stmt *pStmt,
      int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71192,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71199
      start: 71191
    functionDepth: 4
    functionLinenumber: 71191
    functionLinenumberEnd: 71199
    functionName: sqlite3_column_value
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: void
    signature: void sqlite3_column_value(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_STDCALL::sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71202,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71202,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71205
      start: 71201
    functionDepth: 13
    functionLinenumber: 71201
    functionLinenumberEnd: 71205
    functionName: SQLITE_STDCALL::sqlite3_column_text16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - SQLITE_STDCALL::sqlite3_value_text16
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_text16(sqlite3_stmt *pStmt,
      int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71208,1
    - Dst: columnMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71208,1
    - Dst: columnMallocFailure
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71211
      start: 71207
    functionDepth: 4
    functionLinenumber: 71207
    functionLinenumberEnd: 71211
    functionName: sqlite3_column_type
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - sqlite3_value_type
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_type(sqlite3_stmt *pStmt, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71248,1
    - Dst: sqlite3_column_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71249,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71253,1
    - Dst: xFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71254,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - pStmt
    - N
    - (*xFunc)(Mem*)
    - useType
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 71247
        line_start: 71247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed==0 )
      pos:
        line_end: 71252
        line_start: 71252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71265
      start: 71229
    functionDepth: 1
    functionLinenumber: 71229
    functionLinenumberEnd: 71265
    functionName: columnName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_column_count
    - assert
    - xFunc
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: "void *columnName(\n  sqlite3_stmt *pStmt,\n  int N,\n  const void
      *(*xFunc)(Mem*),\n  int useType\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71274
      start: 71271
    functionDepth: 2
    functionLinenumber: 71271
    functionLinenumberEnd: 71274
    functionName: SQLITE_STDCALL::sqlite3_column_name
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_name(sqlite3_stmt *pStmt,
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71279
      start: 71276
    functionDepth: 2
    functionLinenumber: 71276
    functionLinenumberEnd: 71279
    functionName: SQLITE_STDCALL::sqlite3_column_name16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_name16(sqlite3_stmt *pStmt,
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71299
      start: 71296
    functionDepth: 2
    functionLinenumber: 71296
    functionLinenumberEnd: 71299
    functionName: SQLITE_STDCALL::sqlite3_column_decltype
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_decltype(sqlite3_stmt *pStmt,
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71304
      start: 71301
    functionDepth: 2
    functionLinenumber: 71301
    functionLinenumberEnd: 71304
    functionName: SQLITE_STDCALL::sqlite3_column_decltype16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_decltype16(sqlite3_stmt *pStmt,
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71317
      start: 71314
    functionDepth: 2
    functionLinenumber: 71314
    functionLinenumberEnd: 71317
    functionName: SQLITE_STDCALL::sqlite3_column_database_name
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_database_name(sqlite3_stmt
      *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71322
      start: 71319
    functionDepth: 2
    functionLinenumber: 71319
    functionLinenumberEnd: 71322
    functionName: SQLITE_STDCALL::sqlite3_column_database_name16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_database_name16(sqlite3_stmt
      *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71333
      start: 71330
    functionDepth: 2
    functionLinenumber: 71330
    functionLinenumberEnd: 71333
    functionName: SQLITE_STDCALL::sqlite3_column_table_name
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_table_name(sqlite3_stmt *pStmt,
      int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71338
      start: 71335
    functionDepth: 2
    functionLinenumber: 71335
    functionLinenumberEnd: 71338
    functionName: SQLITE_STDCALL::sqlite3_column_table_name16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_table_name16(sqlite3_stmt
      *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71349
      start: 71346
    functionDepth: 2
    functionLinenumber: 71346
    functionLinenumberEnd: 71349
    functionName: SQLITE_STDCALL::sqlite3_column_origin_name
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_origin_name(sqlite3_stmt
      *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71354
      start: 71351
    functionDepth: 2
    functionLinenumber: 71351
    functionLinenumberEnd: 71354
    functionName: SQLITE_STDCALL::sqlite3_column_origin_name16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_column_origin_name16(sqlite3_stmt
      *pStmt, int N)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafetyNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71376,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71379,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71381,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71382,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71383,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71388,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71389,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71394,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71396,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71413
      start: 71374
    functionDepth: 10
    functionLinenumber: 71374
    functionLinenumberEnd: 71413
    functionName: vdbeUnbind
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - vdbeSafetyNotNull
    - sqlite3_log
    - sqlite3Error
    - sqlite3VdbeMemRelease
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: int vdbeUnbind(Vdbe *p, int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71430,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71434,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71436,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71436,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71438,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71439,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71441,1
    - Dst: xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - pStmt
    - i
    - zData
    - nData
    - encoding
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71446
      start: 71418
    functionDepth: 11
    functionLinenumber: 71418
    functionLinenumberEnd: 71446
    functionName: bindText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xDel
    - sqlite3ApiExit
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeChangeEncoding
    - vdbeUnbind
    - ENC
    - sqlite3Error
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: "int bindText(\n  sqlite3_stmt *pStmt,   /* The statement to bind against
      */\n  int i,                 /* Index of the parameter to bind */\n  const void
      *zData,     /* Pointer to the data to be bound */\n  int nData,             /*
      Number of bytes of data to be bound */\n  void (*xDel)(void*),   /* Destructor
      for the data */\n  u8 encoding            /* Encoding for the data */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71460
      start: 71452
    functionDepth: 12
    functionLinenumber: 71452
    functionLinenumberEnd: 71460
    functionName: sqlite3_bind_blob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_blob(\n  sqlite3_stmt *pStmt, \n  int i, \n
      \ const void *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71468,1
    - Dst: invokeValueDestructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71470,1
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - sqlite3_uint64
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 71467
        line_start: 71467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71474
      start: 71461
    functionDepth: 12
    functionLinenumber: 71461
    functionLinenumberEnd: 71474
    functionName: sqlite3_bind_blob64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    - invokeValueDestructor
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_blob64(\n  sqlite3_stmt *pStmt, \n  int i,
      \n  const void *zData, \n  sqlite3_uint64 nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71478,1
    - Dst: sqlite3VdbeMemSetDouble
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71480,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - rValue
    argTypes:
    - sqlite3_stmt*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71484
      start: 71475
    functionDepth: 11
    functionLinenumber: 71475
    functionLinenumberEnd: 71484
    functionName: sqlite3_bind_double
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - vdbeUnbind
    - sqlite3VdbeMemSetDouble
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_double(sqlite3_stmt *pStmt, int i, double rValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - i
    - iValue
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71487
      start: 71485
    functionDepth: 1
    functionLinenumber: 71485
    functionLinenumberEnd: 71487
    functionName: sqlite3_bind_int
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_int(sqlite3_stmt *p, int i, int iValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71491,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71493,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - iValue
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71497
      start: 71488
    functionDepth: 11
    functionLinenumber: 71488
    functionLinenumberEnd: 71497
    functionName: sqlite3_bind_int64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetInt64
    - sqlite3_mutex_leave
    - vdbeUnbind
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64
      iValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71501,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71506
      start: 71498
    functionDepth: 11
    functionLinenumber: 71498
    functionLinenumberEnd: 71506
    functionName: sqlite3_bind_null
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - vdbeUnbind
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_null(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71515
      start: 71507
    functionDepth: 12
    functionLinenumber: 71507
    functionLinenumberEnd: 71515
    functionName: sqlite3_bind_text
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text( \n  sqlite3_stmt *pStmt, \n  int i,
      \n  const char *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71524,1
    - Dst: invokeValueDestructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71526,1
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - pStmt
    - i
    - zData
    - nData
    - enc
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    - sqlite3_uint64
    - unsigned char
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 71523
        line_start: 71523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71531
      start: 71516
    functionDepth: 12
    functionLinenumber: 71516
    functionLinenumberEnd: 71531
    functionName: sqlite3_bind_text64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    - invokeValueDestructor
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text64( \n  sqlite3_stmt *pStmt, \n  int i,
      \n  const char *zData, \n  sqlite3_uint64 nData, \n  void (*xDel)(void*),\n
      \ unsigned char enc\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71541
      start: 71533
    functionDepth: 12
    functionLinenumber: 71533
    functionLinenumberEnd: 71541
    functionName: sqlite3_bind_text16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text16(\n  sqlite3_stmt *pStmt, \n  int i,
      \n  const void *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71545,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71547,1
    - Dst: sqlite3_bind_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71551,1
    - Dst: sqlite3_bind_zeroblob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71556,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71558,1
    - Dst: bindText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71563,1
    - Dst: sqlite3_bind_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71568,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - pStmt
    - i
    - pValue
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71573
      start: 71543
    functionDepth: 13
    functionLinenumber: 71543
    functionLinenumberEnd: 71573
    functionName: sqlite3_bind_value
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_zeroblob
    - sqlite3_bind_null
    - sqlite3_bind_blob
    - sqlite3_bind_double
    - bindText
    - sqlite3_value_type
    - sqlite3_bind_int64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_value(sqlite3_stmt *pStmt, int i, const sqlite3_value
      *pValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71577,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71579,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - n
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71583
      start: 71574
    functionDepth: 11
    functionLinenumber: 71574
    functionLinenumberEnd: 71583
    functionName: sqlite3_bind_zeroblob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetZeroBlob
    - sqlite3_mutex_leave
    - vdbeUnbind
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_zeroblob(sqlite3_stmt *pStmt, int i, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71587,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71591,1
    - Dst: sqlite3_bind_zeroblob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71592,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71594,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pStmt
    - i
    - n
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite3_uint64
    assertStmts:
    - condition: ( (n & 0x7FFFFFFF)==n )
      pos:
        line_end: 71590
        line_start: 71590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71597
      start: 71584
    functionDepth: 12
    functionLinenumber: 71584
    functionLinenumberEnd: 71597
    functionName: sqlite3_bind_zeroblob64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - sqlite3_bind_zeroblob
    - assert
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_zeroblob64(sqlite3_stmt *pStmt, int i, sqlite3_uint64
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71606
      start: 71603
    functionDepth: 0
    functionLinenumber: 71603
    functionLinenumberEnd: 71606
    functionName: sqlite3_bind_parameter_count
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_parameter_count(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71620
      start: 71614
    functionDepth: 0
    functionLinenumber: 71614
    functionLinenumberEnd: 71620
    functionName: SQLITE_STDCALL::sqlite3_bind_parameter_name
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_bind_parameter_name(sqlite3_stmt
      *pStmt, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - p
    - zName
    - nName
    argTypes:
    - Vdbe*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71641
      start: 71627
    functionDepth: 0
    functionLinenumber: 71627
    functionLinenumberEnd: 71641
    functionName: sqlite3VdbeParameterIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeParameterIndex(Vdbe *p, const char *zName,
      int nName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeParameterIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71643,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - zName
    argTypes:
    - sqlite3_stmt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71644
      start: 71642
    functionDepth: 1
    functionLinenumber: 71642
    functionLinenumberEnd: 71644
    functionName: sqlite3_bind_parameter_index
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Strlen30
    - sqlite3VdbeParameterIndex
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_parameter_index(sqlite3_stmt *pStmt, const
      char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71654,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71655,1
    - Dst: sqlite3VdbeMemMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71657,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pFromStmt
    - pToStmt
    argTypes:
    - sqlite3_stmt*
    - sqlite3_stmt*
    assertStmts:
    - condition: ( pTo->db==pFrom->db )
      pos:
        line_end: 71652
        line_start: 71652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTo->nVar==pFrom->nVar )
      pos:
        line_end: 71653
        line_start: 71653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71661
      start: 71649
    functionDepth: 10
    functionLinenumber: 71649
    functionLinenumberEnd: 71661
    functionName: sqlite3TransferBindings
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3VdbeMemMove
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TransferBindings(sqlite3_stmt *pFromStmt, sqlite3_stmt
      *pToStmt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TransferBindings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71688,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - pFromStmt
    - pToStmt
    argTypes:
    - sqlite3_stmt*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71689
      start: 71676
    functionDepth: 11
    functionLinenumber: 71676
    functionLinenumberEnd: 71689
    functionName: sqlite3_transfer_bindings
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TransferBindings
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_transfer_bindings(sqlite3_stmt *pFromStmt, sqlite3_stmt
      *pToStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71700
      start: 71698
    functionDepth: 0
    functionLinenumber: 71698
    functionLinenumberEnd: 71700
    functionName: SQLITE_STDCALL::sqlite3_db_handle
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_db_handle(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71708
      start: 71706
    functionDepth: 0
    functionLinenumber: 71706
    functionLinenumberEnd: 71708
    functionName: sqlite3_stmt_readonly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_readonly(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71716
      start: 71713
    functionDepth: 0
    functionLinenumber: 71713
    functionLinenumberEnd: 71716
    functionName: sqlite3_stmt_busy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_busy(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71727,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71732,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pDb
    - pStmt
    argTypes:
    - sqlite3*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71740
      start: 71724
    functionDepth: 10
    functionLinenumber: 71724
    functionLinenumberEnd: 71740
    functionName: sqlite3_next_stmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pStmt
    - op
    - resetFlag
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71757
      start: 71745
    functionDepth: 0
    functionLinenumber: 71745
    functionLinenumberEnd: 71757
    functionName: sqlite3_stmt_status
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_status(sqlite3_stmt *pStmt, int op, int resetFlag)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71789,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - pStmt
    - idx
    - iScanStatusOp
    - pOut
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71817
      start: 71763
    functionDepth: 1
    functionLinenumber: 71763
    functionLinenumberEnd: 71817
    functionName: sqlite3_stmt_scanstatus
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEstToInt
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_stmt_scanstatus(\n  sqlite3_stmt *pStmt,            /*
      Prepared statement being queried */\n  int idx,                        /* Index
      of loop to report on */\n  int iScanStatusOp,              /* Which metric to
      return */\n  void *pOut                      /* OUT: Write the answer here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71825
      start: 71822
    functionDepth: 0
    functionLinenumber: 71822
    functionLinenumberEnd: 71825
    functionName: sqlite3_stmt_scanstatus_reset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_scanstatus_reset(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71865,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - zSql
    - pnToken
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( n>0 && tokenType!=TK_ILLEGAL )
      pos:
        line_end: 71865
        line_start: 71865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71875
      start: 71858
    functionDepth: 1
    functionLinenumber: 71858
    functionLinenumberEnd: 71875
    functionName: findNextHostParameter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetToken
    - assert
    linkageType: ''
    returnType: int
    signature: int findNextHostParameter(const char *zSql, int *pnToken)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71916,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71922,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71923,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71924,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71927,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71927,1
    - Dst: findNextHostParameter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71931,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71932,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71934,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71938,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71938,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71944,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71946,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71947,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71948,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71949,1
    - Dst: sqlite3VdbeParameterIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71955,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71958,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71960,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71962,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71966,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71969,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71971,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71972,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71983,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71986,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71990,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71996,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:71997,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72003,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72005,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72008,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72014,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 2
    argNames:
    - p
    - zRawSql
    argTypes:
    - Vdbe*
    - char*
    assertStmts:
    - condition: ( n>0 )
      pos:
        line_end: 71930
        line_start: 71930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (zRawSql - zStart) > 0 )
      pos:
        line_end: 71922
        line_start: 71922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx>0 && idx<=p->nVar )
      pos:
        line_end: 71954
        line_start: 71954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3Isdigit(zRawSql[1]) )
      pos:
        line_end: 71937
        line_start: 71937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( zRawSql[0]==':' || zRawSql[0]=='$' ||\n                zRawSql[0]=='@'
        || zRawSql[0]=='#' )"
      pos:
        line_end: 71944
        line_start: 71943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVar->flags & MEM_Blob )
      pos:
        line_end: 71995
        line_start: 71995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zRawSql[0] || nToken==0 )
      pos:
        line_end: 71933
        line_start: 71933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( idx>0 )
      pos:
        line_end: 71950
        line_start: 71950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72015
      start: 71901
    functionDepth: 10
    functionLinenumber: 71901
    functionLinenumberEnd: 72015
    functionName: sqlite3VdbeExpandSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3StrAccumAppend
    - sqlite3GetInt32
    - assert
    - sqlite3StrAccumInit
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeChangeEncoding
    - sqlite3VdbeParameterIndex
    - ENC
    - sqlite3Isdigit
    - sqlite3Strlen30
    - sqlite3VdbeMemRelease
    - findNextHostParameter
    - sqlite3XPrintf
    - testcase
    - sqlite3StrAccumFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VdbeExpandSql(\n  Vdbe *p,                 /*
      The prepared statement being evaluated */\n  const char *zRawSql      /* Raw
      text of the SQL statement */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72055
      start: 72054
    functionDepth: 0
    functionLinenumber: 72054
    functionLinenumberEnd: 72055
    functionName: memAboutToChange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memAboutToChange(P,M)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72106
      start: 72102
    functionDepth: 0
    functionLinenumber: 72102
    functionLinenumberEnd: 72106
    functionName: updateMaxBlobsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void updateMaxBlobsize(Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72126
      start: 72125
    functionDepth: 0
    functionLinenumber: 72125
    functionLinenumberEnd: 72126
    functionName: UPDATE_MAX_BLOBSIZE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_MAX_BLOBSIZE(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72150
      start: 72149
    functionDepth: 0
    functionLinenumber: 72149
    functionLinenumberEnd: 72150
    functionName: VdbeBranchTaken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeBranchTaken(I,M)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72151,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72155,1
    - Dst: xVdbeBranch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - iSrcLine
    - I
    - M
    argTypes:
    - int
    - u8
    - u8
    assertStmts:
    - condition: ( (M & I)==I )
      pos:
        line_end: 72154
        line_start: 72154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72161
      start: 72150
    functionDepth: 1
    functionLinenumber: 72150
    functionLinenumberEnd: 72161
    functionName: vdbeTakeBranch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xVdbeBranch
    - ALWAYS
    - assert
    linkageType: ''
    returnType: void
    signature: void vdbeTakeBranch(int iSrcLine, u8 I, u8 M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72171
      start: 72168
    functionDepth: 0
    functionLinenumber: 72168
    functionLinenumberEnd: 72171
    functionName: Stringify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Stringify(P, enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72186
      start: 72183
    functionDepth: 0
    functionLinenumber: 72183
    functionLinenumberEnd: 72186
    functionName: Deephemeralize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Deephemeralize(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72189
      start: 72188
    functionDepth: 0
    functionLinenumber: 72188
    functionLinenumberEnd: 72189
    functionName: isSorter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isSorter(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72224,1
    - Dst: sqlite3BtreeCursorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72225,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72227,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72229,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72232,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72234,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72240,1
    - Dst: sqlite3BtreeCursorZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - p
    - iCur
    - nField
    - iDb
    - isBtreeCursor
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( iCur<p->nCursor )
      pos:
        line_end: 72226
        line_start: 72226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72245
      start: 72194
    functionDepth: 13
    functionLinenumber: 72194
    functionLinenumberEnd: 72245
    functionName: allocateCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - memset
    - sqlite3BtreeCursorSize
    - assert
    - sqlite3BtreeCursorZero
    - ROUND8
    - sqlite3VdbeFreeCursor
    linkageType: ''
    returnType: VdbeCursor
    signature: "VdbeCursor *allocateCursor(\n  Vdbe *p,              /* The virtual
      machine */\n  int iCur,             /* Index of the new VdbeCursor */\n  int
      nField,           /* Number of fields in the table or index */\n  int iDb,              /*
      Database the cursor belongs to, or -1 */\n  int isBtreeCursor     /* True for
      B-Tree.  False for pseudo-table or vtab */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72266,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72267,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72268,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pRec
    - bTryForInt
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real))==MEM_Str )
      pos:
        line_end: 72265
        line_start: 72265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72276
      start: 72262
    functionDepth: 3
    functionLinenumber: 72262
    functionLinenumberEnd: 72276
    functionName: applyNumericAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi64
    - sqlite3AtoF
    - sqlite3VdbeIntegerAffinity
    - assert
    linkageType: ''
    returnType: void
    signature: void applyNumericAffinity(Mem *pRec, int bTryForInt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72302,1
    - Dst: applyNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72306,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72308,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - pRec
    - affinity
    - enc
    argTypes:
    - Mem*
    - char
    - u8
    assertStmts:
    - condition: "( affinity==SQLITE_AFF_INTEGER || affinity==SQLITE_AFF_REAL\n             ||
        affinity==SQLITE_AFF_NUMERIC )"
      pos:
        line_end: 72302
        line_start: 72301
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72321
      start: 72296
    functionDepth: 10
    functionLinenumber: 72296
    functionLinenumberEnd: 72321
    functionName: applyAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemStringify
    - sqlite3VdbeIntegerAffinity
    - assert
    - applyNumericAffinity
    linkageType: ''
    returnType: void
    signature: "void applyAffinity(\n  Mem *pRec,          /* The value to apply affinity
      to */\n  char affinity,      /* The affinity to be applied */\n  u8 enc              /*
      Use this text encoding */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72330,1
    - Dst: applyNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72333,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72337
      start: 72329
    functionDepth: 4
    functionLinenumber: 72329
    functionLinenumberEnd: 72337
    functionName: sqlite3_value_numeric_type
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - applyNumericAffinity
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_numeric_type(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVal
    - affinity
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72349
      start: 72343
    functionDepth: 11
    functionLinenumber: 72343
    functionLinenumberEnd: 72349
    functionName: sqlite3ValueApplyAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - applyAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueApplyAffinity(\n  sqlite3_value *pVal,
      \n  u8 affinity, \n  u8 enc\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72358,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72359,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72360,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (pMem->flags & (MEM_Int|MEM_Real))==0 )
      pos:
        line_end: 72357
        line_start: 72357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & (MEM_Str|MEM_Blob))!=0 )
      pos:
        line_end: 72358
        line_start: 72358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72367
      start: 72357
    functionDepth: 3
    functionLinenumber: 72357
    functionLinenumberEnd: 72367
    functionName: SQLITE_NOINLINE::computeNumericType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi64
    - sqlite3AtoF
    - assert
    linkageType: ''
    returnType: u16
    signature: u16 SQLITE_NOINLINE computeNumericType(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: computeNumericType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72384
      start: 72376
    functionDepth: 0
    functionLinenumber: 72376
    functionLinenumberEnd: 72384
    functionName: numericType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeNumericType
    linkageType: ''
    returnType: u16
    signature: u16 numericType(Mem *pMem)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72402,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72405,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72408,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72413,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72414,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72415,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72416,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72418,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72419,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72427,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72428,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72430,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72439,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72442,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72445,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72450,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72451,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72462,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72463,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 2
    argNames:
    - pMem
    - zBuf
    argTypes:
    - Mem*
    - char*
    assertStmts:
    - condition: ( (f & (MEM_Dyn|MEM_Ephem))==0 )
      pos:
        line_end: 72441
        line_start: 72441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Ephem))==0 )
      pos:
        line_end: 72438
        line_start: 72438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Ephem))==0 )
      pos:
        line_end: 72401
        line_start: 72401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Dyn))==0 )
      pos:
        line_end: 72444
        line_start: 72444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Dyn))==0 )
      pos:
        line_end: 72407
        line_start: 72407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (f & (MEM_Dyn|MEM_Ephem))==0 )
      pos:
        line_end: 72404
        line_start: 72404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72466
      start: 72391
    functionDepth: 1
    functionLinenumber: 72391
    functionLinenumberEnd: 72466
    functionName: sqlite3VdbeMemPrettyPrint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_snprintf
    - sqlite3Strlen30
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72475,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72477,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72479,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72481,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72484,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72487,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72490,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72493
      start: 72473
    functionDepth: 2
    functionLinenumber: 72473
    functionLinenumberEnd: 72493
    functionName: memTracePrint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemPrettyPrint
    - printf
    linkageType: ''
    returnType: void
    signature: void memTracePrint(Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72495,1
    - Dst: memTracePrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72496,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - iReg
    - p
    argTypes:
    - int
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72498
      start: 72494
    functionDepth: 3
    functionLinenumber: 72494
    functionLinenumberEnd: 72498
    functionName: registerTrace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memTracePrint
    - printf
    linkageType: ''
    returnType: void
    signature: void registerTrace(int iReg, Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - R
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72503
      start: 72502
    functionDepth: 0
    functionLinenumber: 72502
    functionLinenumberEnd: 72503
    functionName: REGISTER_TRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TRACE(R,M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72549
      start: 72545
    functionDepth: 0
    functionLinenumber: 72545
    functionLinenumberEnd: 72549
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72568
      start: 72564
    functionDepth: 0
    functionLinenumber: 72564
    functionLinenumberEnd: 72568
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72583
      start: 72572
    functionDepth: 0
    functionLinenumber: 72572
    functionLinenumberEnd: 72583
    functionName: sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72596
      start: 72596
    functionDepth: 0
    functionLinenumber: 72596
    functionLinenumberEnd: 72596
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( n==(db->nSavepoint + db->isTransactionSavepoint) )
      pos:
        line_end: 72621
        line_start: 72621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72624
      start: 72618
    functionDepth: 0
    functionLinenumber: 72618
    functionLinenumberEnd: 72624
    functionName: checkSavepointCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int checkSavepointCount(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72633,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72634,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72636,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72637,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pOp
    argTypes:
    - Vdbe*
    - VdbeOp*
    assertStmts:
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 72632
        line_start: 72632
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72633
        line_start: 72633
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72640
      start: 72631
    functionDepth: 8
    functionLinenumber: 72631
    functionLinenumberEnd: 72640
    functionName: out2Prerelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memAboutToChange
    - VdbeMemDynamic
    - assert
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: Mem
    signature: Mem *out2Prerelease(Vdbe *p, VdbeOp *pOp)
  - BBCount: 554
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72658,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72676,1
    - Dst: sqlite3VdbeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72677,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72683,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72684,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72687,1
    - Dst: sqlite3VdbeIOTraceSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72691,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72695,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72700,1
    - Dst: sqlite3VdbePrintSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72706,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72708,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72710,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72716,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72717,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72722,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72724,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72727,1
    - Dst: sqlite3Hwtime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72730,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72741,1
    - Dst: sqlite3_interrupt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72753,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72760,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72762,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72764,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72764,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72765,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72765,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72771,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72771,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72772,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72772,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72773,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72776,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72777,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72778,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72779,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72779,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72780,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72783,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72784,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72785,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72788,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72789,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72790,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72870,1
    - Dst: sqlite3*::xProgress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72888,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72890,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72890,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72891,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72894,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72910,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72928,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72929,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72932,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72932,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72953,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72976,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72976,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:72980,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73041,1
    - Dst: sqlite3VdbeFrameRestore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73042,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73064,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73065,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73066,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73067,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73068,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73073,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73076,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73078,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73080,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73082,1
    - Dst: sqlite3VdbeHalt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73084,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73085,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73089,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73090,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73102,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73114,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73115,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73128,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73130,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73130,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73145,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73146,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73148,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73152,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73154,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73155,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73156,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73156,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73160,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73184,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73185,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73190,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73192,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73195,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73216,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73218,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73222,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73223,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73239,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73252,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73253,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73254,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73256,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73271,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73272,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73274,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73277,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73278,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73279,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73300,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73301,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73306,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73307,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73308,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73308,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73309,1
    - Dst: sqlite3VdbeMemMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73310,1
    - Dst: Deephemeralize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73316,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73317,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73338,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73340,1
    - Dst: Deephemeralize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73341,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73345,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73369,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73370,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73389,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73391,1
    - Dst: sqlite3*::xProgress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73398,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73408,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73409,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73410,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73429,1
    - Dst: sqlite3VdbeCloseStatement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73430,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73444,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73444,1
    - Dst: Deephemeralize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73446,1
    - Dst: sqlite3VdbeMemNulTerminate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73448,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73449,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73479,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73481,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73484,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73484,1
    - Dst: Stringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73485,1
    - Dst: Stringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73486,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73491,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73494,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73496,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73498,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73504,1
    - Dst: numericType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73561,1
    - Dst: numericType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73563,1
    - Dst: sqlite3AddInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73572,1
    - Dst: sqlite3SubInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73573,1
    - Dst: sqlite3MulInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73574,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73589,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73593,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73594,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73616,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73618,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73622,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73624,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73651,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73703,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73705,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73707,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73708,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73724,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73737,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73740,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73740,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73741,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73744,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73753,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73753,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73756,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73761,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73762,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73765,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73766,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73813,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73816,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73817,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73824,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73828,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73836,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73844,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73848,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73862,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73863,1
    - Dst: applyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73878,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73879,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73889,1
    - Dst: sqlite3VdbeMemRealify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73906,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73929,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73930,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73931,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73932,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73933,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73934,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73936,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73937,1
    - Dst: sqlite3VdbeMemCast
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73938,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:73939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74048,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74049,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74050,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74066,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74067,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74069,1
    - Dst: applyNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74081,1
    - Dst: applyNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74084,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74088,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74089,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74090,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74091,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74095,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74096,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74097,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74102,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74104,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74108,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74112,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74126,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74131,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74132,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74134,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74136,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74154,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74155,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74194,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74201,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74202,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74204,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74210,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74210,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74211,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74211,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74212,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74214,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74217,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74235,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74237,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74239,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74273,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74279,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74290,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74293,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74308,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74311,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74326,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74329,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74346,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74347,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74376,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74378,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74382,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74396,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74410,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74463,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74465,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74466,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74468,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74469,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74472,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74475,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74476,1
    - Dst: sqlite3VdbeCursorMoveto
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74479,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74484,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74487,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74487,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74491,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74495,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74497,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74497,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74498,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74498,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74499,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74503,1
    - Dst: sqlite3BtreeKeyFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74504,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74507,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74507,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74508,1
    - Dst: sqlite3BtreeDataSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74508,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74509,1
    - Dst: sqlite3BtreeDataFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74512,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74523,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74554,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74569,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74585,1
    - Dst: sqlite3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74591,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74594,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74606,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74632,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74634,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74644,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74645,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74646,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74646,1
    - Dst: VdbeMemDynamic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74647,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74647,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74652,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74657,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74667,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74669,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74674,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74687,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74690,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74691,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74697,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74698,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74716,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74720,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74721,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74721,1
    - Dst: applyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74722,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74789,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74791,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74795,1
    - Dst: applyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74799,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74800,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74809,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74809,1
    - Dst: sqlite3VdbeSerialType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74810,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74811,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74814,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74821,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74822,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74823,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74830,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74831,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74837,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74839,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74851,1
    - Dst: putVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74859,1
    - Dst: putVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74865,1
    - Dst: sqlite3VdbeSerialPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74868,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74870,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74871,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74873,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74881,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74898,1
    - Dst: sqlite3BtreeCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74900,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74901,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74929,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74931,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74932,1
    - Dst: checkSavepointCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74932,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74933,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74940,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74943,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74950,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74951,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74957,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74960,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74985,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74991,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:74997,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75008,1
    - Dst: sqlite3VdbeHalt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75012,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75026,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75035,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75041,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75042,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75052,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75061,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75063,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75099,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75101,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75102,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75113,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75114,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75116,1
    - Dst: sqlite3VdbeHalt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75127,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75128,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75136,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75185,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75188,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75188,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75196,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75209,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75209,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75211,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75216,1
    - Dst: sqlite3BtreeBeginStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75218,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75239,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75241,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75242,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75257,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75282,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75285,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75286,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75287,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75288,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75288,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75290,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75308,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75309,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75310,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75314,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75314,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75316,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75318,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75330,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75411,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75415,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75423,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75425,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75426,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75438,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75439,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75439,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75442,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75445,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75453,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75454,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75456,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75456,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75457,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75458,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75464,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75471,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75472,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75477,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75478,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75479,1
    - Dst: allocateCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75480,1
    - Dst: sqlite3BtreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75485,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75494,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75495,1
    - Dst: sqlite3BtreeCursorHints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75496,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75538,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75539,1
    - Dst: allocateCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75540,1
    - Dst: sqlite3BtreeOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75544,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75547,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75557,1
    - Dst: sqlite3BtreeCreateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75558,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75561,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75562,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75562,1
    - Dst: sqlite3BtreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75564,1
    - Dst: sqlite3BtreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75568,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75589,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75590,1
    - Dst: allocateCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75594,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75595,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75595,1
    - Dst: sqlite3VdbeSorterInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75596,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75609,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75611,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75637,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75638,1
    - Dst: allocateCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75644,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75654,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75655,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75674,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75764,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75771,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75772,1
    - Dst: sqlite3BtreeCursorHasHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75784,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75785,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75786,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75787,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75788,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75789,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75790,1
    - Dst: applyNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75800,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75802,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75823,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75824,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75833,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75837,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75844,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75845,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75858,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75859,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75864,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75864,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75866,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75867,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75877,1
    - Dst: sqlite3BtreeNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75880,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75886,1
    - Dst: sqlite3BtreePrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75889,1
    - Dst: sqlite3BtreeEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75895,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75898,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75899,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75919,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75921,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75922,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75923,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:75926,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76008,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76011,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76016,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76024,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76024,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76025,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76027,1
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76032,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76036,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76037,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76038,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76053,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76054,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76064,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76067,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76099,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76101,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76105,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76106,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76108,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76111,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76116,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76131,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76132,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76133,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76164,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76165,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76168,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76183,1
    - Dst: sqlite3BtreeLast
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76196,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76203,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76203,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76204,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76221,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76225,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76229,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76229,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76231,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76232,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76233,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76249,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76253,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76255,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76263,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76332,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76332,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76334,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76337,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76338,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76342,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76343,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76343,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76344,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76347,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76357,1
    - Dst: sqlite3BtreeInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76365,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76377,1
    - Dst: sqlite3*::xUpdateCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76378,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76379,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76407,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76409,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76410,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76411,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76419,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76420,1
    - Dst: sqlite3BtreeDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76424,1
    - Dst: sqlite3*::xUpdateCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76431,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76444,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76470,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76470,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76471,1
    - Dst: sqlite3VdbeSorterCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76475,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76476,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76498,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76498,1
    - Dst: sqlite3VdbeSorterRowkey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76499,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76500,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76501,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76536,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76541,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76541,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76542,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76543,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76544,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76545,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76546,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76547,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76557,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76558,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76558,1
    - Dst: sqlite3VdbeCursorMoveto
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76565,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76566,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76566,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76567,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76573,1
    - Dst: sqlite3BtreeDataSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76574,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76579,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76580,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76580,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76584,1
    - Dst: sqlite3BtreeKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76586,1
    - Dst: sqlite3BtreeData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76588,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76591,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76592,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76613,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76616,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76626,1
    - Dst: sqlite3_module*::xRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76627,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76628,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76631,1
    - Dst: sqlite3VdbeCursorRestore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76632,1
    - Dst: sqlite3BtreeKeySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76638,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76654,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76656,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76660,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76682,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76684,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76687,1
    - Dst: sqlite3BtreeLast
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76688,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76742,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76744,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76745,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76745,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76750,1
    - Dst: sqlite3VdbeSorterRewind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76751,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76754,1
    - Dst: sqlite3BtreeFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76755,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76760,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76834,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76834,1
    - Dst: sqlite3VdbeSorterNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76836,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76844,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76845,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76845,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76848,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76849,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76850,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76851,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76853,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76863,1
    - Dst: Op*::p4::xAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76867,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76870,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76911,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76913,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76914,1
    - Dst: isSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76914,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76916,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76918,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76919,1
    - Dst: ExpandBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76920,1
    - Dst: sqlite3VdbeSorterWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76923,1
    - Dst: sqlite3BtreeInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76927,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76956,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76957,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76963,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76963,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76965,1
    - Dst: sqlite3BtreeDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76967,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76969,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76988,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76989,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76991,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76995,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:76996,1
    - Dst: sqlite3VdbeCursorRestore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77002,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77003,1
    - Dst: sqlite3VdbeIdxRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77007,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77069,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77071,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77072,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77074,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77075,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77076,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77083,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77088,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77088,1
    - Dst: sqlite3VdbeIdxKeyCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77091,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77094,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77097,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77129,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77130,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77137,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77137,1
    - Dst: sqlite3BtreeDropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77139,1
    - Dst: sqlite3RootPageMoved
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77146,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77176,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77177,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77177,1
    - Dst: sqlite3BtreeClearTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77184,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77184,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77185,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77203,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77205,1
    - Dst: sqlite3VdbeSorterReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77207,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77209,1
    - Dst: sqlite3BtreeClearTableOfCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77210,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77247,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77248,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77248,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77249,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77251,1
    - Dst: sqlite3BtreeCreateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77258,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77283,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77289,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77289,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77291,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77295,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77301,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77304,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77305,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77307,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77326,1
    - Dst: sqlite3AnalysisLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77327,1
    - Dst: sqlite3UnlinkAndDeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77341,1
    - Dst: sqlite3UnlinkAndDeleteIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77354,1
    - Dst: sqlite3UnlinkAndDeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77367,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77401,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77403,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77404,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77406,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77408,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77409,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77415,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77416,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77416,1
    - Dst: sqlite3BtreeIntegrityCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77417,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77419,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77421,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77423,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77427,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77429,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77430,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77446,1
    - Dst: sqlite3VdbeMemSetRowSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77448,1
    - Dst: sqlite3RowSetInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77451,1
    - Dst: sqlite3RowSetNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77467,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77470,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77471,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77475,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77476,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77512,1
    - Dst: sqlite3VdbeMemSetRowSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77518,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77522,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77523,1
    - Dst: sqlite3RowSetTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77525,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77526,1
    - Dst: sqlite3RowSetInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77565,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77586,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77601,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77605,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77609,1
    - Dst: VdbeFrameMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77630,1
    - Dst: VdbeFrameMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77637,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77638,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77639,1
    - Dst: VdbeFrameMem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77649,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77661,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77681,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77684,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77724,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77754,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77754,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77755,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77777,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77791,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77793,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77807,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77824,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77826,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77841,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77881,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77883,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77902,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77917,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77917,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77918,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77923,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77930,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77930,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77933,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77935,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77938,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77940,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77960,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77962,1
    - Dst: sqlite3VdbeMemFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77963,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77965,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77965,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77967,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77968,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77969,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77992,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:77995,1
    - Dst: sqlite3Checkpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78000,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78006,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78033,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78035,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78043,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78044,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78047,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78048,1
    - Dst: sqlite3PagerOkToChangeJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78050,1
    - Dst: sqlite3PagerFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78053,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78059,1
    - Dst: sqlite3PagerWalSupported
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78060,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78070,1
    - Dst: sqlite3PagerCloseWal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78083,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78085,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78090,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78096,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78096,1
    - Dst: sqlite3BtreeSetVersion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78098,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78107,1
    - Dst: sqlite3JournalModename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78110,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78111,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78113,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78126,1
    - Dst: sqlite3RunVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78127,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78142,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78143,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78143,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78144,1
    - Dst: sqlite3BtreeIncrVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78146,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78147,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78168,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78196,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78196,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78197,1
    - Dst: sqlite3BtreeLockTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78198,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78201,1
    - Dst: sqlite3VtabBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78221,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78222,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78241,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78242,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78243,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78244,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78246,1
    - Dst: sqlite3VtabCallCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78248,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78250,1
    - Dst: sqlite3VtabCallDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78263,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78282,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78286,1
    - Dst: sqlite3_module*::xOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78291,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78292,1
    - Dst: allocateCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78298,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78303,1
    - Dst: sqlite3_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78304,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78348,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78348,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78349,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78350,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78356,1
    - Dst: sqlite3_module*::xFilter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78366,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78367,1
    - Dst: sqlite3_module*::xEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78369,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78372,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78393,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78394,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78396,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78398,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78403,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78404,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78406,1
    - Dst: sqlite3_module*::xColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78407,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78408,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78412,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78413,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78414,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78416,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78438,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78444,1
    - Dst: sqlite3_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78452,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78453,1
    - Dst: sqlite3_module*::xEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78455,1
    - Dst: VdbeBranchTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78457,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78479,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78480,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78480,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78481,1
    - Dst: REGISTER_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78482,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78483,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78484,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78485,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78486,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78487,1
    - Dst: sqlite3_vtab*::pModule::xRename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78489,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78534,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78537,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78545,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78546,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78551,1
    - Dst: memIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78551,1
    - Dst: memAboutToChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78552,1
    - Dst: sqlite3_module*::xUpdate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78557,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78561,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78584,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78585,1
    - Dst: out2Prerelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78604,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78608,1
    - Dst: sqlite3BtreeMaxPageCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78611,1
    - Dst: sqlite3VdbeExpandSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78638,1
    - Dst: sqlite3*::xTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78639,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78640,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78647,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78648,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78656,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78677,1
    - Dst: sqlite3Hwtime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78691,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78703,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78707,1
    - Dst: registerTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78709,1
    - Dst: registerTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78712,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78723,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78725,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78726,1
    - Dst: sqlite3VdbeHalt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78728,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78732,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78740,1
    - Dst: sqlite3VdbeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78742,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78749,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78765,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78768,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78776,1
    - Dst: sqlite3VdbeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78779,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78779,1
    CyclomaticComplexity: 943
    EdgeCount: 943
    ICount: 3260
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 72787
        line_start: 72787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 74498
        line_start: 74498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2<pC->nField )
      pos:
        line_end: 74468
        line_start: 74468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>0 && p1>0 && p2>0 )
      pos:
        line_end: 73299
        line_start: 73299
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem-p->nCursor)+1) )
      pos:
        line_end: 73705
        line_start: 73705
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 || pC->pseudoTableReg>0 )
      pos:
        line_end: 74474
        line_start: 74474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[1].p1==pOp[0].p1 )
      pos:
        line_end: 75786
        line_start: 75786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3==0 )
      pos:
        line_end: 76248
        line_start: 76248
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 75608
        line_start: 75608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>0 && pOp->p2<p->nOp )
      pos:
        line_end: 76759
        line_start: 76759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxLT )
      pos:
        line_end: 77082
        line_start: 77082
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode!=OP_Prev || pOp->p4.xAdvance==sqlite3BtreePrevious
        )
      pos:
        line_end: 76853
        line_start: 76853
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn2->flags & MEM_Blob )
      pos:
        line_end: 76915
        line_start: 76915
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 72768
        line_start: 72768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 76955
        line_start: 76955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nArg>1 && apArg[0] && (apArg[0]->flags&MEM_Null) )
      pos:
        line_end: 78560
        line_start: 78560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p5) )
      pos:
        line_end: 77415
        line_start: 77415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 76376
        line_start: 76376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 78480
        line_start: 78480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1 <= SQLITE_MAX_LENGTH )
      pos:
        line_end: 73251
        line_start: 73251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zAffinity!=0 )
      pos:
        line_end: 74715
        line_start: 74715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1==SAVEPOINT_BEGIN||p1==SAVEPOINT_RELEASE||p1==SAVEPOINT_ROLLBACK
        )
      pos:
        line_end: 74929
        line_start: 74929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 75287
        line_start: 75287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76630
        line_start: 76630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode!=OP_NextIfOpen || pOp->p4.xAdvance==sqlite3BtreeNext
        )
      pos:
        line_end: 76854
        line_start: 76854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 76470
        line_start: 76470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&r.aMem[i]) )
      pos:
        line_end: 76962
        line_start: 76962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (aMem[pOp->p2].flags & MEM_Str)!=0 )
      pos:
        line_end: 78240
        line_start: 78240
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pVtabCursor )
      pos:
        line_end: 78437
        line_start: 78437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor )
      pos:
        line_end: 76849
        line_start: 76849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p1]) )
      pos:
        line_end: 72763
        line_start: 72763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pVtabCursor==0 )
      pos:
        line_end: 74471
        line_start: 74471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z==0 )
      pos:
        line_end: 77422
        line_start: 77422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pKey) )
      pos:
        line_end: 76342
        line_start: 76342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (payloadSize64 & SQLITE_MAX_U32)==(u64)payloadSize64 )
      pos:
        line_end: 74502
        line_start: 74502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader || p->readOnly!=0 )
      pos:
        line_end: 72683
        line_start: 72683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.z!=0 )
      pos:
        line_end: 73144
        line_start: 73144
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCCTX )
      pos:
        line_end: 73723
        line_start: 73723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pProgram->nCsr==pFrame->nChildCsr )
      pos:
        line_end: 77637
        line_start: 77637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nField>0 )
      pos:
        line_end: 75844
        line_start: 75844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 77246
        line_start: 77246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nVdbeActive>0 )
      pos:
        line_end: 75100
        line_start: 75100
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_RUN )
      pos:
        line_end: 72675
        line_start: 72675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne )
      pos:
        line_end: 74047
        line_start: 74047
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<SQLITE_N_BTREE_META )
      pos:
        line_end: 75284
        line_start: 75284
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 76994
        line_start: 76994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor )
      pos:
        line_end: 75673
        line_start: 75673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76330
        line_start: 76330
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76500
        line_start: 76500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pModule->xColumn )
      pos:
        line_end: 78402
        line_start: 78402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->pSavepoint || db->isTransactionSavepoint==0 )
      pos:
        line_end: 74930
        line_start: 74930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags==MEM_Int )
      pos:
        line_end: 72949
        line_start: 72949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<pKeyInfo->nField )
      pos:
        line_end: 74213
        line_start: 74213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 74644
        line_start: 74644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( desiredAutoCommit==1 )
      pos:
        line_end: 75112
        line_start: 75112
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 75281
        line_start: 75281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->iDb==pOp->p3 )
      pos:
        line_end: 75414
        line_start: 75414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekLE==(OP_SeekLT+1) )
      pos:
        line_end: 75830
        line_start: 75830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc!=OP_SeekLE || r.default_rc==-1 )
      pos:
        line_end: 75857
        line_start: 75857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p2) )
      pos:
        line_end: 77176
        line_start: 77176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pnErr->flags & MEM_Int)!=0 )
      pos:
        line_end: 77407
        line_start: 77407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 77400
        line_start: 77400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 78043
        line_start: 78043
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 77247
        line_start: 77247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 77790
        line_start: 77790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.ai )
      pos:
        line_end: 74154
        line_start: 74154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op==OP_ShiftRight || op==OP_ShiftLeft )
      pos:
        line_end: 73823
        line_start: 73823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags==MEM_Int )
      pos:
        line_end: 72909
        line_start: 72909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 74932
        line_start: 74932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pIn2) )
      pos:
        line_end: 75455
        line_start: 75455
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pOp->p5&(OPFLAG_P2ISREG|OPFLAG_BULKCSR|OPFLAG_SEEKEQ))==pOp->p5
        )
      pos:
        line_end: 75422
        line_start: 75422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76968
        line_start: 76968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxGT )
      pos:
        line_end: 77079
        line_start: 77079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 77202
        line_start: 77202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76988
        line_start: 76988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pQuery->flags&MEM_Int)!=0 && pArgc->flags==MEM_Int )
      pos:
        line_end: 78355
        line_start: 78355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( resetSchemaOnFault==0 || resetSchemaOnFault==iDb+1 )
      pos:
        line_end: 77145
        line_start: 77145
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReg->flags & MEM_Blob )
      pos:
        line_end: 74485
        line_start: 74485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 &&  pOp->p1<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72927
        line_start: 72927
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p2]) )
      pos:
        line_end: 72770
        line_start: 72770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 73191
        line_start: 73191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 75101
        line_start: 75101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 || pOp->p2==0 )
      pos:
        line_end: 75185
        line_start: 75185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&r.aMem[ii]) )
      pos:
        line_end: 76023
        line_start: 76023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->zErrMsg==0 )
      pos:
        line_end: 78764
        line_start: 78764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_InsertInt )
      pos:
        line_end: 76346
        line_start: 76346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT )
      pos:
        line_end: 73088
        line_start: 73088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOut->szMalloc>0 && pOut->zMalloc==pOut->z )
      pos:
        line_end: 73154
        line_start: 73154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( checkSavepointCount(db) )
      pos:
        line_end: 74931
        line_start: 74931
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_OpenWrite || pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ
        )
      pos:
        line_end: 75423
        line_start: 75423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 78142
        line_start: 78142
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 76497
        line_start: 76497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pIn3->flags & MEM_Dyn) == (flags3 & MEM_Dyn) )
      pos:
        line_end: 74125
        line_start: 74125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i==nHdr )
      pos:
        line_end: 74869
        line_start: 74869
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76015
        line_start: 76015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 77068
        line_start: 77068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb==1 || sqlite3BtreeHoldsMutex(db->aDb[iDb].pBt) )
      pos:
        line_end: 77282
        line_start: 77282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 74465
        line_start: 74465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>=0 )
      pos:
        line_end: 75637
        line_start: 75637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg==0 )
      pos:
        line_end: 75766
        line_start: 75766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekGE==(OP_SeekGT-1) )
      pos:
        line_end: 75821
        line_start: 75821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 75922
        line_start: 75922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 76104
        line_start: 76104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76410
        line_start: 76410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76990
        line_start: 76990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( eNew==PAGER_JOURNALMODE_DELETE \n       || eNew==PAGER_JOURNALMODE_TRUNCATE
        \n       || eNew==PAGER_JOURNALMODE_PERSIST \n       || eNew==PAGER_JOURNALMODE_OFF\n
        \      || eNew==PAGER_JOURNALMODE_MEMORY\n       || eNew==PAGER_JOURNALMODE_WAL\n
        \      || eNew==PAGER_JOURNALMODE_QUERY\n  )"
      pos:
        line_end: 78041
        line_start: 78034
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 78281
        line_start: 78281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 77405
        line_start: 77405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p5==1 )
      pos:
        line_end: 77074
        line_start: 77074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCrsr) )
      pos:
        line_end: 76557
        line_start: 76557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 78302
        line_start: 78302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg>0 )
      pos:
        line_end: 74483
        line_start: 74483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCrsr) )
      pos:
        line_end: 74496
        line_start: 74496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76130
        line_start: 76130
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 76833
        line_start: 76833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isEphemeral )
      pos:
        line_end: 77208
        line_start: 77208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCx->pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 75594
        line_start: 75594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76543
        line_start: 76543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pIn1->flags & MEM_Dyn) == (flags1 & MEM_Dyn) )
      pos:
        line_end: 74123
        line_start: 74123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pRec) )
      pos:
        line_end: 74808
        line_start: 74808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ )
      pos:
        line_end: 75410
        line_start: 75410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekGE == OP_SeekLT+2 )
      pos:
        line_end: 75768
        line_start: 75768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode!=OP_PrevIfOpen || pOp->p4.xAdvance==sqlite3BtreePrevious)
      pos:
        line_end: 76855
        line_start: 76855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zType!=0 || pOp->p4.z!=0 )
      pos:
        line_end: 73072
        line_start: 73072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1>0 && p1+mx<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 74200
        line_start: 74200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 )
      pos:
        line_end: 73389
        line_start: 73389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&pMem[i]) )
      pos:
        line_end: 73443
        line_start: 73443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pData0<=pLast )
      pos:
        line_end: 74794
        line_start: 74794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( desiredAutoCommit==1 || iRollback==0 )
      pos:
        line_end: 75099
        line_start: 75099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 77070
        line_start: 77070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable==0 || pOp->opcode==OP_RowData )
      pos:
        line_end: 76542
        line_start: 76542
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 74462
        line_start: 74462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_SeekGE || pOp->opcode==OP_SeekLE )
      pos:
        line_end: 75784
        line_start: 75784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pProgram->nMem+pProgram->nCsr==pFrame->nChildMem )
      pos:
        line_end: 77636
        line_start: 77636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 75762
        line_start: 75762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2>0 && p2+mx<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 74201
        line_start: 74201
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 75309
        line_start: 75309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 75537
        line_start: 75537
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 76107
        line_start: 76107
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 77776
        line_start: 77776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76334
        line_start: 76334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76847
        line_start: 76847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 77300
        line_start: 77300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72887
        line_start: 72887
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 )
      pos:
        line_end: 74101
        line_start: 74101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pData0<=pLast )
      pos:
        line_end: 74858
        line_start: 74858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->pSavepoint==0 || db->autoCommit==0 )
      pos:
        line_end: 74928
        line_start: 74928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 75920
        line_start: 75920
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( t.flags==MEM_Null )
      pos:
        line_end: 77934
        line_start: 77934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 76182
        line_start: 76182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76848
        line_start: 76848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76546
        line_start: 76546
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 76918
        line_start: 76918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fx!=0 )
      pos:
        line_end: 74686
        line_start: 74686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 75444
        line_start: 75444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 75771
        line_start: 75771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76843
        line_start: 76843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->opcode!=OP_Next || pOp->opcode!=OP_NextIfOpen\n       ||
        pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE\n       || pC->seekOp==OP_Rewind
        || pC->seekOp==OP_Found)"
      pos:
        line_end: 76861
        line_start: 76859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 77136
        line_start: 77136
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pProgram->nOp>0 )
      pos:
        line_end: 77564
        line_start: 77564
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nRoot>0 )
      pos:
        line_end: 77402
        line_start: 77402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & ~(MEM_Null|MEM_Agg))==0 )
      pos:
        line_end: 77961
        line_start: 77961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pC->pCursor) )
      pos:
        line_end: 76202
        line_start: 76202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76743
        line_start: 76743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 77880
        line_start: 77880
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->p2==1        || pOp->p5==OE_Fail   || pOp->p5==OE_Rollback
        \n       || pOp->p5==OE_Abort || pOp->p5==OE_Ignore || pOp->p5==OE_Replace\n
        \ )"
      pos:
        line_end: 78535
        line_start: 78533
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 76992
        line_start: 76992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->flags&SQLITE_CountRows )
      pos:
        line_end: 73408
        line_start: 73408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pCtx->argv[i]) )
      pos:
        line_end: 73739
        line_start: 73739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCrsr) )
      pos:
        line_end: 74506
        line_start: 74506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 75187
        line_start: 75187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nStatement>=0 && db->nSavepoint>=0 )
      pos:
        line_end: 75210
        line_start: 75210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pData) )
      pos:
        line_end: 76331
        line_start: 76331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKey->flags & MEM_Int )
      pos:
        line_end: 76341
        line_start: 76341
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76681
        line_start: 76681
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (int)(pOp - aOp)==pFrame->pc )
      pos:
        line_end: 77638
        line_start: 77638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 78143
        line_start: 78143
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, pOp->p1, 0) )
      pos:
        line_end: 75313
        line_start: 75313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isWriteLock==0 || isWriteLock==1 )
      pos:
        line_end: 78196
        line_start: 78196
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 75310
        line_start: 75310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2<=(p->nMem-p->nCursor) )
      pos:
        line_end: 75453
        line_start: 75453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable || pOp->opcode!=OP_RowData )
      pos:
        line_end: 76541
        line_start: 76541
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&r.aMem[i]) )
      pos:
        line_end: 75863
        line_start: 75863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5==0 )
      pos:
        line_end: 76956
        line_start: 76956
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76953
        line_start: 76953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 )
      pos:
        line_end: 72761
        line_start: 72761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( VdbeMemDynamic(pIn1)==0 )
      pos:
        line_end: 72975
        line_start: 72975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2<SQLITE_N_BTREE_META )
      pos:
        line_end: 75307
        line_start: 75307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->opcode==OP_OpenRead || pOp->opcode==OP_ReopenIdx\n          ||
        p->readOnly==0 )"
      pos:
        line_end: 75426
        line_start: 75425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 75437
        line_start: 75437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 75653
        line_start: 75653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, p1) )
      pos:
        line_end: 78195
        line_start: 78195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 76469
        line_start: 76469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&r.aMem[i]) )
      pos:
        line_end: 77087
        line_start: 77087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo!=0 )
      pos:
        line_end: 74193
        line_start: 74193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 < db->nProgressOps )
      pos:
        line_end: 72694
        line_start: 72694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 77840
        line_start: 77840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0)
      pos:
        line_end: 77072
        line_start: 77072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 75438
        line_start: 75438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_KEYINFO )
      pos:
        line_end: 75556
        line_start: 75556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.z!=0 )
      pos:
        line_end: 73183
        line_start: 73183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(pDest) )
      pos:
        line_end: 74645
        line_start: 74645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zAffinity[0]==0 || pRec<=pLast )
      pos:
        line_end: 74799
        line_start: 74799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 75285
        line_start: 75285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pX!=0 )
      pos:
        line_end: 75441
        line_start: 75441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( DbHasProperty(db, iDb, DB_SchemaLoaded) )
      pos:
        line_end: 77288
        line_start: 77288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVtab->pModule->xRename )
      pos:
        line_end: 78478
        line_start: 78478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1+pOp->p2<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 73390
        line_start: 73390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem-p->nCursor) )
      pos:
        line_end: 73238
        line_start: 73238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc!=OP_SeekLT || r.default_rc==+1 )
      pos:
        line_end: 75859
        line_start: 75859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 76016
        line_start: 76016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76912
        line_start: 76912
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 77204
        line_start: 77204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pReg) )
      pos:
        line_end: 74486
        line_start: 74486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nStatement==0 )
      pos:
        line_end: 75126
        line_start: 75126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=pFrame->nMem )
      pos:
        line_end: 76220
        line_start: 76220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 76573
        line_start: 76573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76655
        line_start: 76655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+n )
      pos:
        line_end: 77882
        line_start: 77882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isOrdered )
      pos:
        line_end: 77071
        line_start: 77071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 78141
        line_start: 78141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pBt)==0 )
      pos:
        line_end: 78095
        line_start: 78095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76995
        line_start: 76995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pOp->p5 & SQLITE_JUMPIFNULL)==0 )
      pos:
        line_end: 74049
        line_start: 74049
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->nHdrParsed<=p2 )
      pos:
        line_end: 74553
        line_start: 74553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2<pC->nHdrParsed )
      pos:
        line_end: 74643
        line_start: 74643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j==nByte )
      pos:
        line_end: 74870
        line_start: 74870
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 75424
        line_start: 75424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgno==MASTER_ROOT+1 )
      pos:
        line_end: 75559
        line_start: 75559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg==0 || pC->nullRow )
      pos:
        line_end: 76615
        line_start: 76615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 77303
        line_start: 77303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1>=0 && p1<db->nDb )
      pos:
        line_end: 78194
        line_start: 78194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pIn2->flags & MEM_Int)!=0 )
      pos:
        line_end: 75456
        line_start: 75456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OPFLAG_SEEKEQ==BTREE_SEEK_EQ )
      pos:
        line_end: 75494
        line_start: 75494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 75588
        line_start: 75588
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT )
      pos:
        line_end: 75785
        line_start: 75785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76333
        line_start: 76333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 76753
        line_start: 76753
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76741
        line_start: 76741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 77248
        line_start: 77248
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rc==SQLITE_OK || p->rc==SQLITE_BUSY )
      pos:
        line_end: 72682
        line_start: 72682
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.pI64!=0 )
      pos:
        line_end: 73114
        line_start: 73114
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOut!=pIn1 )
      pos:
        line_end: 73368
        line_start: 73368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1<=&aMem[(p->nMem-p->nCursor)] )
      pos:
        line_end: 73306
        line_start: 73306
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( res==0 || (res==1 && pC->isTable==0) )
      pos:
        line_end: 76850
        line_start: 76850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pCtx->argv[i]) )
      pos:
        line_end: 77916
        line_start: 77916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn3->flags&MEM_Int )
      pos:
        line_end: 77511
        line_start: 77511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp>=&aOp[-1] && pOp<&aOp[p->nOp-1] )
      pos:
        line_end: 78702
        line_start: 78702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76166
        line_start: 76166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp>=aOp && pOp<&aOp[p->nOp])
      pos:
        line_end: 72726
        line_start: 72726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72776
        line_start: 72776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->usesStmtJournal )
      pos:
        line_end: 73409
        line_start: 73409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INTARRAY )
      pos:
        line_end: 74153
        line_start: 74153
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>=SQLITE_AFF_BLOB && pOp->p2<=SQLITE_AFF_REAL )
      pos:
        line_end: 73928
        line_start: 73928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<pOp->p1 || pOp->p3>=pOp->p1+pOp->p2 )
      pos:
        line_end: 74788
        line_start: 74788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (OP_SeekLE & 0x0001)==(OP_SeekGT & 0x0001) )
      pos:
        line_end: 75823
        line_start: 75823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p3]) )
      pos:
        line_end: 77183
        line_start: 77183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( VdbeMemDynamic(pIn1)==0 )
      pos:
        line_end: 72889
        line_start: 72889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p3]) )
      pos:
        line_end: 72778
        line_start: 72778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCaller->p2>=0 && pCaller->p2<p->nOp )
      pos:
        line_end: 72953
        line_start: 72953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 73217
        line_start: 73217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->autoCommit==0 || db->nVTrans==0 )
      pos:
        line_end: 74949
        line_start: 74949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pData->flags & (MEM_Blob|MEM_Str) )
      pos:
        line_end: 76356
        line_start: 76356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc!=OP_SeekGT || r.default_rc==-1 )
      pos:
        line_end: 75856
        line_start: 75856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=p->nVar )
      pos:
        line_end: 73270
        line_start: 73270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+n )
      pos:
        line_end: 73706
        line_start: 73706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[p2+idx]) )
      pos:
        line_end: 74210
        line_start: 74210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2>0 )
      pos:
        line_end: 75452
        line_start: 75452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc==OP_SeekLT || oc==OP_SeekLE )
      pos:
        line_end: 75885
        line_start: 75885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76007
        line_start: 76007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76538
        line_start: 76538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 76638
        line_start: 76638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 76686
        line_start: 76686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCCTX )
      pos:
        line_end: 77901
        line_start: 77901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76406
        line_start: 76406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->u1.isInterrupted )
      pos:
        line_end: 78775
        line_start: 78775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pIn2->flags & MEM_Int)!=0 )
      pos:
        line_end: 77445
        line_start: 77445
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 73192
        line_start: 73192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr!=0 || pC->nullRow )
      pos:
        line_end: 74475
        line_start: 74475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2!=0 )
      pos:
        line_end: 75763
        line_start: 75763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[1].p4.i==pOp[0].p4.i )
      pos:
        line_end: 75789
        line_start: 75789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 76336
        line_start: 76336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (OP_IdxLE&1)==(OP_IdxLT&1) && (OP_IdxGE&1)==(OP_IdxGT&1) )
      pos:
        line_end: 77091
        line_start: 77091
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 77075
        line_start: 77075
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn3->flags & MEM_Int )
      pos:
        line_end: 73194
        line_start: 73194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1 <= &p->aMem[(p->nMem-p->nCursor)] )
      pos:
        line_end: 74719
        line_start: 74719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5==0 )
      pos:
        line_end: 75643
        line_start: 75643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (aMem[pOp->p2].flags & MEM_Static)!=0 )
      pos:
        line_end: 78241
        line_start: 78241
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCx->pKeyInfo->db==db )
      pos:
        line_end: 75593
        line_start: 75593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[1].p3==pOp[0].p3 )
      pos:
        line_end: 75788
        line_start: 75788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76612
        line_start: 76612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 78125
        line_start: 78125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_VTAB )
      pos:
        line_end: 78544
        line_start: 78544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 77325
        line_start: 77325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1!=pOut )
      pos:
        line_end: 73478
        line_start: 73478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg==0 )
      pos:
        line_end: 76105
        line_start: 76105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->apCsr[pOp->p1]!=0 )
      pos:
        line_end: 76131
        line_start: 76131
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode!=OP_Next || pOp->p4.xAdvance==sqlite3BtreeNext )
      pos:
        line_end: 76852
        line_start: 76852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pVtabCursor )
      pos:
        line_end: 78392
        line_start: 78392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 77806
        line_start: 77806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p4type==P4_INT32 )
      pos:
        line_end: 75238
        line_start: 75238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76167
        line_start: 76167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2>0 && p2+n<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 74204
        line_start: 74204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nField>0 && pOp->p2>0 && pOp->p2+nField<=(p->nMem-p->nCursor)+1
        )
      pos:
        line_end: 74781
        line_start: 74781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSavepoint==db->pSavepoint )
      pos:
        line_end: 75060
        line_start: 75060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 75897
        line_start: 75897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 76204
        line_start: 76204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg==0 )
      pos:
        line_end: 76335
        line_start: 76335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opflags==sqlite3OpcodeProperty[pOp->opcode] )
      pos:
        line_end: 72759
        line_start: 72759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72783
        line_start: 72783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>=0 && pOp->p3<p->nOp )
      pos:
        line_end: 72929
        line_start: 72929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.z==0 || pOp->p4.z==p->azVar[pOp->p1-1] )
      pos:
        line_end: 73271
        line_start: 73271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 75538
        line_start: 75538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pName) )
      pos:
        line_end: 78479
        line_start: 78479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 77287
        line_start: 77287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 74508
        line_start: 74508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb[iDb].pBt!=0 )
      pos:
        line_end: 75286
        line_start: 75286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76010
        line_start: 76010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76556
        line_start: 76556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 77175
        line_start: 77175
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 77753
        line_start: 77753
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1>0 && p1+n<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 74203
        line_start: 74203
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCDEF )
      pos:
        line_end: 73702
        line_start: 73702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 75476
        line_start: 75476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC)==0 )
      pos:
        line_end: 76540
        line_start: 76540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDb->pBt!=0 )
      pos:
        line_end: 77250
        line_start: 77250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !VdbeMemDynamic(pOut) )
      pos:
        line_end: 72931
        line_start: 72931
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<=p2 && zHdr<zEndHdr )
      pos:
        line_end: 74584
        line_start: 74584
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 75589
        line_start: 75589
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekLE == OP_SeekLT+1 )
      pos:
        line_end: 75767
        line_start: 75767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekLT==(OP_SeekLE-1) )
      pos:
        line_end: 75822
        line_start: 75822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 76224
        line_start: 76224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 76566
        line_start: 76566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pModule->xRowid )
      pos:
        line_end: 76625
        line_start: 76625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMem->flags & MEM_Int)!=0 )
      pos:
        line_end: 76232
        line_start: 76232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ )
      pos:
        line_end: 73650
        line_start: 73650
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 74872
        line_start: 74872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_KEYINFO )
      pos:
        line_end: 75411
        line_start: 75411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem-p->nCursor)+1) )
      pos:
        line_end: 77881
        line_start: 77881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_ShiftRight==OP_ShiftLeft+1 )
      pos:
        line_end: 73827
        line_start: 73827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekGT == OP_SeekLT+3 )
      pos:
        line_end: 75769
        line_start: 75769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (OP_SeekLT & 0x0001)==(OP_SeekGE & 0x0001) )
      pos:
        line_end: 75832
        line_start: 75832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5<db->nDb )
      pos:
        line_end: 77414
        line_start: 77414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 78536
        line_start: 78536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 75765
        line_start: 75765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v>0 )
      pos:
        line_end: 76262
        line_start: 76262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76409
        line_start: 76409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxLT )
      pos:
        line_end: 77093
        line_start: 77093
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76910
        line_start: 76910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCDEF )
      pos:
        line_end: 77878
        line_start: 77878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 76949
        line_start: 76949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76951
        line_start: 76951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC)==(pOp->opcode==OP_SorterSort) )
      pos:
        line_end: 76744
        line_start: 76744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p3]) )
      pos:
        line_end: 72777
        line_start: 72777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCaller->opcode==OP_Yield )
      pos:
        line_end: 72952
        line_start: 72952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5>=1 && pOp->p5<=4 )
      pos:
        line_end: 73063
        line_start: 73063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nResColumn==pOp->p2 )
      pos:
        line_end: 73388
        line_start: 73388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( avail<=65536 )
      pos:
        line_end: 74511
        line_start: 74511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc )
      pos:
        line_end: 78722
        line_start: 78722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0
        )
      pos:
        line_end: 73089
        line_start: 73089
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 74192
        line_start: 74192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 74897
        line_start: 74897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 75921
        line_start: 75921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->iDb>=0 )
      pos:
        line_end: 76378
        line_start: 76378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p5<ArraySize(p->aCounter) )
      pos:
        line_end: 76844
        line_start: 76844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->p2==SQLITE_CHECKPOINT_PASSIVE\n       || pOp->p2==SQLITE_CHECKPOINT_FULL\n
        \      || pOp->p2==SQLITE_CHECKPOINT_RESTART\n       || pOp->p2==SQLITE_CHECKPOINT_TRUNCATE\n
        \ )"
      pos:
        line_end: 77998
        line_start: 77994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 78042
        line_start: 78042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 77073
        line_start: 77073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pSorter )
      pos:
        line_end: 75610
        line_start: 75610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn3->flags & MEM_Int )
      pos:
        line_end: 76097
        line_start: 76097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76164
        line_start: 76164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pMem) )
      pos:
        line_end: 76228
        line_start: 76228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72762
        line_start: 72762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 73307
        line_start: 73307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 74720
        line_start: 74720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nField>=0 )
      pos:
        line_end: 75477
        line_start: 75477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 76929
        line_start: 76929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (pOut->flags & MEM_Blob) )
      pos:
        line_end: 76499
        line_start: 76499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p1]) )
      pos:
        line_end: 72764
        line_start: 72764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 74467
        line_start: 74467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOut!=pIn1 )
      pos:
        line_end: 73337
        line_start: 73337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDb->pBt!=0 )
      pos:
        line_end: 75312
        line_start: 75312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76614
        line_start: 76614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxGT )
      pos:
        line_end: 77096
        line_start: 77096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSet==-1 || iSet>=0 )
      pos:
        line_end: 77522
        line_start: 77522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 77521
        line_start: 77521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->explain==0 )
      pos:
        line_end: 72686
        line_start: 72686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1+n<=p2 || p2+n<=p1 )
      pos:
        line_end: 73300
        line_start: 73300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->db==db )
      pos:
        line_end: 75471
        line_start: 75471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[1].p2==pOp[0].p2 )
      pos:
        line_end: 75787
        line_start: 75787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76683
        line_start: 76683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pQuery) )
      pos:
        line_end: 78347
        line_start: 78347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->nullRow==0 )
      pos:
        line_end: 76544
        line_start: 76544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc==OP_SeekGE || oc==OP_SeekGT )
      pos:
        line_end: 75876
        line_start: 75876
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isSorter(pC)==(pOp->opcode==OP_SorterInsert) )
      pos:
        line_end: 76913
        line_start: 76913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OP_SeekGT==(OP_SeekGE+1) )
      pos:
        line_end: 75831
        line_start: 75831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1<p->nOnceFlag )
      pos:
        line_end: 74345
        line_start: 74345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 72775
        line_start: 72775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 75184
        line_start: 75184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pBt) )
      pos:
        line_end: 75208
        line_start: 75208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76408
        line_start: 76408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OPFLAG_BULKCSR==BTREE_BULKLOAD )
      pos:
        line_end: 75493
        line_start: 75493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->opcode!=OP_Prev || pOp->opcode!=OP_PrevIfOpen\n       ||
        pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE\n       || pC->seekOp==OP_Last
        )"
      pos:
        line_end: 76864
        line_start: 76862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName->flags & MEM_Str )
      pos:
        line_end: 78482
        line_start: 78482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_BUSY || rc==SQLITE_OK || rc==SQLITE_ERROR )
      pos:
        line_end: 73084
        line_start: 73084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zAffinity[pOp->p2]==0 )
      pos:
        line_end: 74716
        line_start: 74716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 76216
        line_start: 76216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(pX) )
      pos:
        line_end: 78550
        line_start: 78550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_Noop || pOp->opcode==OP_Explain )
      pos:
        line_end: 78676
        line_start: 78676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 76100
        line_start: 76100
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 77128
        line_start: 77128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 75918
        line_start: 75918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 73704
        line_start: 73704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (flags1 & MEM_Cleared)==0 )
      pos:
        line_end: 74048
        line_start: 74048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nProgressOps!=0 )
      pos:
        line_end: 72869
        line_start: 72869
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>=0 && pOp->p2<p->nOp )
      pos:
        line_end: 72928
        line_start: 72928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iStatement==0 || db->flags&SQLITE_CountRows )
      pos:
        line_end: 73428
        line_start: 73428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( oc!=OP_SeekGE || r.default_rc==+1 )
      pos:
        line_end: 75858
        line_start: 75858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76653
        line_start: 76653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 75843
        line_start: 75843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p2]) )
      pos:
        line_end: 72771
        line_start: 72771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72788
        line_start: 72788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOut<=&aMem[(p->nMem-p->nCursor)] )
      pos:
        line_end: 73305
        line_start: 73305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 75186
        line_start: 75186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 75636
        line_start: 75636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->isOrdered )
      pos:
        line_end: 75770
        line_start: 75770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 76008
        line_start: 76008
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 78243
        line_start: 78243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->pVtabCursor )
      pos:
        line_end: 78349
        line_start: 78349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pModule->xNext )
      pos:
        line_end: 78443
        line_start: 78443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem-p->nCursor) )
      pos:
        line_end: 72769
        line_start: 72769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( desiredAutoCommit==1 || desiredAutoCommit==0 )
      pos:
        line_end: 75098
        line_start: 75098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->db==db )
      pos:
        line_end: 75560
        line_start: 75560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->iDb>=0 )
      pos:
        line_end: 76430
        line_start: 76430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem-p->nCursor) )
      pos:
        line_end: 77959
        line_start: 77959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 77823
        line_start: 77823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_CollSeq )
      pos:
        line_end: 77937
        line_start: 77937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( VdbeMemDynamic(pOut)==0 )
      pos:
        line_end: 73155
        line_start: 73155
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn3->flags & MEM_Blob )
      pos:
        line_end: 76035
        line_start: 76035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pnErr->flags & (MEM_Str|MEM_Blob))==0 )
      pos:
        line_end: 77408
        line_start: 77408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 77991
        line_start: 77991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem-p->nCursor) )
      pos:
        line_end: 78393
        line_start: 78393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pseudoTableReg==0 )
      pos:
        line_end: 76545
        line_start: 76545
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->pCursor!=0 )
      pos:
        line_end: 76917
        line_start: 76917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 74494
        line_start: 74494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 75470
        line_start: 75470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 75308
        line_start: 75308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pC->isTable )
      pos:
        line_end: 76564
        line_start: 76564
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zTab || db->mallocFailed )
      pos:
        line_end: 78245
        line_start: 78245
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( memIsValid(&aMem[p1+idx]) )
      pos:
        line_end: 74209
        line_start: 74209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn1->u.i>=0 && pIn1->u.i<p->nOp )
      pos:
        line_end: 72950
        line_start: 72950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>0 && pOp->p2+pOp->p3<=(p->nMem-p->nCursor)+1 )
      pos:
        line_end: 76950
        line_start: 76950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 75561
        line_start: 75561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 72782
        line_start: 72782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !sqlite3IsNaN(*pOp->p4.pReal) )
      pos:
        line_end: 73129
        line_start: 73129
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pMem[i].flags & MEM_Ephem)==0\n            || (pMem[i].flags
        & (MEM_Str|MEM_Blob))==0 )"
      pos:
        line_end: 73446
        line_start: 73445
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 76098
        line_start: 76098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pC->movetoTarget==iKey )
      pos:
        line_end: 76419
        line_start: 76419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78781
      start: 72647
    functionDepth: 22
    functionLinenumber: 72647
    functionLinenumberEnd: 78781
    functionName: sqlite3VdbeExec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - MemSetTypeFlag
    - sqlite3BtreeDataSize
    - sqlite3VdbeRecordUnpack
    - sqlite3_file_control
    - sqlite3BtreeLastPage
    - sqlite3BtreeTripAllCursors
    - sqlite3VdbeDeleteAuxData
    - sqlite3_value_text
    - sqlite3BtreeLast
    - sqlite3BtreeKeySize
    - sqlite3VdbeMemSetNull
    - sqlite3VdbeLeave
    - sqlite3_module*::xFilter
    - sqlite3BtreeMovetoUnpacked
    - sqlite3ExpirePreparedStatements
    - memcpy
    - sqlite3BtreeEof
    - sqlite3BtreeMaxPageCount
    - sqlite3VdbeMemNulTerminate
    - sqlite3VdbeSorterRowkey
    - sqlite3VdbeSetChanges
    - applyAffinity
    - checkSavepointCount
    - sqlite3BtreeLockTable
    - sqlite3_vtab*::pModule::xRename
    - sqlite3ErrStr
    - sqlite3VdbeMemRealify
    - sqlite3RowSetNext
    - ALWAYS
    - sqlite3VdbeMemRelease
    - sqlite3PagerOkToChangeJournalMode
    - sqlite3VdbeExpandSql
    - sqlite3VdbeCheckMemInvariants
    - sqlite3Checkpoint
    - sqlite3_module*::xNext
    - sqlite3IsNaN
    - sqlite3BtreeCursorIsValid
    - sqlite3MPrintf
    - sqlite3DbMallocZero
    - out2Prerelease
    - sqlite3VdbeMemShallowCopy
    - REGISTER_TRACE
    - sqlite3VdbeMemStringify
    - sqlite3BtreeDelete
    - sqlite3BtreeFirst
    - sqlite3VdbePrintSql
    - sqlite3MemCompare
    - sqlite3DbMallocRaw
    - sqlite3VdbeMemFromBtree
    - sqlite3VdbeMemMove
    - MAX
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeMemSetInt64
    - sqlite3_log
    - sqlite3BtreeKeyFetch
    - sqlite3VdbeSerialPut
    - sqlite3RollbackAll
    - sqlite3UnlinkAndDeleteTable
    - sqlite3_module*::xOpen
    - sqlite3BtreeOpen
    - sqlite3BtreeDropTable
    - sqlite3VdbeMemIntegerify
    - sqlite3VdbeMemSetRowSet
    - NEVER
    - sqlite3_module*::xClose
    - sqlite3Hwtime
    - sqlite3RowSetTest
    - sqlite3BtreeNext
    - sqlite3VdbeMemCopy
    - Stringify
    - sqlite3MulInt64
    - sqlite3BtreeClearTableOfCursor
    - sqlite3VdbeMemCast
    - sqlite3VtabBegin
    - sqlite3VdbeRealValue
    - sqlite3VdbeFrameRestore
    - sqlite3VdbeSerialTypeLen
    - assert
    - sqlite3BtreeClearCursor
    - allocateCursor
    - sqlite3JournalModename
    - registerTrace
    - DbMaskTest
    - sqlite3BtreeCount
    - sqlite3BtreeInsert
    - VdbeMemDynamic
    - sqlite3VdbeSorterReset
    - sqlite3ResetOneSchema
    - sqlite3RunVacuum
    - numericType
    - sqlite3PagerFilename
    - sqlite3VdbeMemExpandBlob
    - sqlite3VdbeSorterWrite
    - sqlite3VdbeMemFinalize
    - sqlite3VdbeIntegerAffinity
    - sqlite3BtreeCursorHints
    - DbHasProperty
    - sqlite3VdbeCheckFk
    - ExpandBlob
    - testcase
    - sqlite3VdbeSorterInit
    - sqlite3VdbeSorterNext
    - sqlite3_module*::xUpdate
    - memset
    - sqlite3BtreePager
    - sqlite3SubInt64
    - sqlite3VdbeEnter
    - sqlite3UnlinkAndDeleteIndex
    - sqlite3EndBenignMalloc
    - sqlite3BtreeCursor
    - Deephemeralize
    - ROUND8
    - sqlite3DbFree
    - sqlite3_module*::xEof
    - sqlite3DbStrDup
    - sqlite3SchemaMutexHeld
    - sqlite3BtreeData
    - sqlite3VdbeSorterCompare
    - sqlite3_interrupt
    - sqlite3VdbeCursorMoveto
    - sqlite3VdbeAllocUnpackedRecord
    - isSorter
    - memIsValid
    - sqlite3VdbeIdxKeyCompare
    - sqlite3RootPageMoved
    - sqlite3UnlinkAndDeleteTrigger
    - sqlite3VdbeSerialGet
    - sqlite3BtreeBeginStmt
    - sqlite3BtreeClearTable
    - sqlite3CloseSavepoints
    - SCHEMA_TABLE
    - sqlite3*::xUpdateCallback
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3BtreeHoldsMutex
    - sqlite3*::xProgress
    - sqlite3BtreeUpdateMeta
    - sqlite3VdbeCursorRestore
    - sqlite3VdbeIdxRowid
    - sqlite3VdbeChangeEncoding
    - sqlite3AddInt64
    - sqlite3VdbePrintOp
    - sqlite3BtreeSavepoint
    - sqlite3VdbeSerialType
    - sqlite3BtreeBeginTrans
    - sqlite3BtreePrevious
    - sqlite3VdbeCloseStatement
    - sqlite3PagerWalSupported
    - sqlite3VdbeMemGrow
    - sqlite3RowSetInsert
    - ENC
    - sqlite3BtreeIncrVacuum
    - sqlite3VdbeMemTooBig
    - sqlite3BtreeDataFetch
    - getVarint32
    - sqlite3Strlen30
    - sqlite3DebugPrintf
    - memAboutToChange
    - sqlite3VdbeFreeCursor
    - UPDATE_MAX_BLOBSIZE
    - sqlite3VarintLen
    - VdbeFrameMem
    - sqlite3VdbeMemInit
    - sqlite3_module*::xRowid
    - sqlite3VdbeIntValue
    - sqlite3PagerCloseWal
    - sqlite3StrICmp
    - Op*::p4::xAdvance
    - printf
    - sqlite3VdbeError
    - sqlite3_randomness
    - sqlite3BtreeKey
    - sqlite3*::xTrace
    - sqlite3BtreeCursorHasHint
    - sqlite3BtreeIntegrityCheck
    - sqlite3VdbeHalt
    - sqlite3_module*::xColumn
    - sqlite3VdbeMemClearAndResize
    - sqlite3BtreeIsInTrans
    - sqlite3BtreeCreateTable
    - sqlite3VdbeSorterRewind
    - sqlite3BeginBenignMalloc
    - VVA_ONLY
    - sqlite3GetVarint32
    - putVarint32
    - VdbeBranchTaken
    - sqlite3BtreeGetMeta
    - applyNumericAffinity
    - sqlite3_exec
    - sqlite3VdbeIOTraceSql
    - sqlite3PagerGetJournalMode
    - sqlite3VtabSavepoint
    - sqlite3VtabImportErrmsg
    - sqlite3AnalysisLoad
    - sqlite3PagerSetJournalMode
    - sqlite3BtreeSetVersion
    - ArraySize
    - sqlite3VtabCallDestroy
    - sqlite3VtabCallCreate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeExec(\n  Vdbe *p                    /* The
      VDBE */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78847,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78850,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78855,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78859,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78863,1
    - Dst: sqlite3BtreeIncrblobCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78865,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78872,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78875,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78878,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - p
    - iRow
    - pzErr
    argTypes:
    - Incrblob*
    - sqlite3_int64
    - char**
    assertStmts:
    - condition: ( v->aVar[0].flags&MEM_Int )
      pos:
        line_end: 78846
        line_start: 78846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || zErr==0 )
      pos:
        line_end: 78881
        line_start: 78881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_ROW && rc!=SQLITE_DONE )
      pos:
        line_end: 78882
        line_start: 78882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78887
      start: 78838
    functionDepth: 26
    functionLinenumber: 78838
    functionLinenumberEnd: 78887
    functionName: blobSeekToRow
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3VdbeSerialTypeLen
    - assert
    - sqlite3_step
    - sqlite3MPrintf
    - sqlite3BtreeIncrblobCursor
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78919,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78948,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78954,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78956,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78958,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78962,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78964,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78967,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78968,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78969,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78971,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78973,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78975,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78980,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78985,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78990,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:78996,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79001,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79002,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79004,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79041,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79042,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79044,1
    - Dst: sqlite3VdbeCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79049,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79050,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79053,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79056,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79059,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79060,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79060,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79063,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79067,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79069,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79070,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79071,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79072,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79077,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79078,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79079,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79088,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79088,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79089,1
    - Dst: sqlite3VdbeMakeReady
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79094,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79101,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79105,1
    - Dst: blobSeekToRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79106,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79113,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79114,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79116,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79117,1
    - Dst: sqlite3ParserReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79118,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79119,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79120,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79121,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 7
    argNames:
    - db
    - zDb
    - zTable
    - zColumn
    - iRow
    - flags
    - ppBlob
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char*
    - sqlite_int64
    - int
    - sqlite3_blob**
    assertStmts:
    - condition: ( pBlob->pStmt || db->mallocFailed )
      pos:
        line_end: 79049
        line_start: 79049
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79123
      start: 78892
    functionDepth: 27
    functionLinenumber: 78892
    functionLinenumberEnd: 79123
    functionName: sqlite3_blob_open
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - VDBE_OFFSET_LINENO
    - blobSeekToRow
    - sqlite3VdbeMakeReady
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3BtreeLeaveAll
    - sqlite3VdbeAddOpList
    - sqlite3SchemaToIndex
    - sqlite3VdbeAddOp4Int
    - sqlite3StrICmp
    - IsVirtual
    - sqlite3SafetyCheckOk
    - sqlite3VdbeCreate
    - HasRowid
    - sqlite3_mutex_leave
    - sqlite3VdbeChangeP1
    - sqlite3ParserReset
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3VdbeChangeToNoop
    - SQLITE_INT_TO_PTR
    - sqlite3StackAllocRaw
    - sqlite3ErrorWithMsg
    - sqlite3_bind_int64
    - sqlite3BtreeEnterAll
    - sqlite3LocateTable
    - sqlite3VdbeChangeP4
    - sqlite3VdbeFinalize
    - sqlite3MPrintf
    - sqlite3VdbeChangeP2
    - sqlite3DbMallocZero
    - sqlite3VdbeChangeP3
    - ArraySize
    - sqlite3StackFree
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_blob_open(\n  sqlite3* db,            /* The database
      connection */\n  const char *zDb,        /* The attached database containing
      the blob */\n  const char *zTable,     /* The table containing the blob */\n
      \ const char *zColumn,    /* The column containing the blob */\n  sqlite_int64
      iRow,      /* The row containing the glob */\n  int flags,              /* True
      -> read/write access, false -> read-only */\n  sqlite3_blob **ppBlob   /* Handle
      for accessing the blob returned here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79136,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79137,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79138,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pBlob
    argTypes:
    - sqlite3_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79144
      start: 79129
    functionDepth: 25
    functionLinenumber: 79129
    functionLinenumberEnd: 79144
    functionName: sqlite3_blob_close
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_finalize
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_close(sqlite3_blob *pBlob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79163,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79178,1
    - Dst: sqlite3BtreeEnterCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79179,1
    - Dst: xCall
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79180,1
    - Dst: sqlite3BtreeLeaveCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79181,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79183,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79189,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79190,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts:
    - condition: ( db == v->db )
      pos:
        line_end: 79177
        line_start: 79177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79193
      start: 79149
    functionDepth: 24
    functionLinenumber: 79149
    functionLinenumberEnd: 79193
    functionName: blobReadWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3VdbeFinalize
    - sqlite3BtreeEnterCursor
    - sqlite3BtreeLeaveCursor
    - sqlite3Error
    - xCall
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: int
    signature: "int blobReadWrite(\n  sqlite3_blob *pBlob, \n  void *z, \n  int n,
      \n  int iOffset, \n  int (*xCall)(BtCursor*, u32, u32, void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blobReadWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79200
      start: 79198
    functionDepth: 25
    functionLinenumber: 79198
    functionLinenumberEnd: 79200
    functionName: sqlite3_blob_read
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobReadWrite
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_read(sqlite3_blob *pBlob, void *z, int n, int
      iOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blobReadWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79207
      start: 79205
    functionDepth: 25
    functionLinenumber: 79205
    functionLinenumberEnd: 79207
    functionName: sqlite3_blob_write
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobReadWrite
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_write(sqlite3_blob *pBlob, const void *z, int
      n, int iOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pBlob
    argTypes:
    - sqlite3_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79218
      start: 79215
    functionDepth: 0
    functionLinenumber: 79215
    functionLinenumberEnd: 79218
    functionName: sqlite3_blob_bytes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_bytes(sqlite3_blob *pBlob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79237,1
    - Dst: blobSeekToRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79246,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79248,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79249,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79251,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79255,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pBlob
    - iRow
    argTypes:
    - sqlite3_blob*
    - sqlite3_int64
    assertStmts:
    - condition: ( rc!=SQLITE_SCHEMA )
      pos:
        line_end: 79250
        line_start: 79250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || p->pStmt==0 )
      pos:
        line_end: 79254
        line_start: 79254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79258
      start: 79230
    functionDepth: 27
    functionLinenumber: 79230
    functionLinenumberEnd: 79258
    functionName: sqlite3_blob_reopen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - blobSeekToRow
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79720
      start: 79719
    functionDepth: 0
    functionLinenumber: 79719
    functionLinenumberEnd: 79720
    functionName: SRVAL
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRVAL(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79733,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79734,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79735,1
    - Dst: vdbeIncrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79736,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pReadr
    argTypes:
    - PmaReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79738
      start: 79732
    functionDepth: 3
    functionLinenumber: 79732
    functionLinenumberEnd: 79738
    functionName: vdbePmaReaderClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsUnfetch
    - memset
    - sqlite3_free
    - vdbeIncrFree
    linkageType: ''
    returnType: void
    signature: void vdbePmaReaderClear(PmaReader *pReadr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79779,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79783,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79803,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79805,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79813,1
    - Dst: vdbePmaReadBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79826,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79828,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - p
    - nByte
    - ppOut
    argTypes:
    - PmaReader*
    - int
    - u8**
    assertStmts:
    - condition: ( p->aBuffer )
      pos:
        line_end: 79762
        line_start: 79762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_IOERR_SHORT_READ )
      pos:
        line_end: 79782
        line_start: 79782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nRead>0 )
      pos:
        line_end: 79778
        line_start: 79778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aNext!=p->aAlloc )
      pos:
        line_end: 79827
        line_start: 79827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79837
      start: 79749
    functionDepth: 5
    functionLinenumber: 79749
    functionLinenumberEnd: 79837
    functionName: vdbePmaReadBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - MAX
    - vdbePmaReadBlob
    - sqlite3Realloc
    - memcpy
    - sqlite3OsRead
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReadBlob(\n  PmaReader *p,                   /* PmaReader
      from which to take the blob */\n  int nByte,                      /* Bytes of
      data to read */\n  u8 **ppOut                      /* OUT: Pointer to buffer
      containing data */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79847,1
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79851,1
    - Dst: vdbePmaReadBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79856,1
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - p
    - pnOut
    argTypes:
    - PmaReader*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79865
      start: 79843
    functionDepth: 6
    functionLinenumber: 79843
    functionLinenumberEnd: 79865
    functionName: vdbePmaReadVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVarint
    - vdbePmaReadBlob
    linkageType: ''
    returnType: int
    signature: int vdbePmaReadVarint(PmaReader *p, u64 *pnOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79881,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pTask
    - pFile
    - pp
    argTypes:
    - SortSubtask*
    - SorterFile*
    - u8**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79886
      start: 79876
    functionDepth: 2
    functionLinenumber: 79876
    functionLinenumberEnd: 79886
    functionName: vdbeSorterMapFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3OsFetch
    linkageType: ''
    returnType: int
    signature: int vdbeSorterMapFile(SortSubtask *pTask, SorterFile *pFile, u8 **pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79901,1
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79903,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79905,1
    - Dst: vdbeSorterMapFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79912,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79917,1
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79926,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79929,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - pTask
    - pReadr
    - pFile
    - iOff
    argTypes:
    - SortSubtask*
    - PmaReader*
    - SorterFile*
    - i64
    assertStmts:
    - condition: ( pReadr->pIncr==0 || pReadr->pIncr->bEof==0 )
      pos:
        line_end: 79900
        line_start: 79900
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79934
      start: 79893
    functionDepth: 4
    functionLinenumber: 79893
    functionLinenumberEnd: 79934
    functionName: vdbePmaReaderSeek
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsUnfetch
    - assert
    - vdbeSorterMapFile
    - sqlite3FaultSim
    - sqlite3Malloc
    - sqlite3OsRead
    - testcase
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReaderSeek(\n  SortSubtask *pTask,             /* Task
      context */\n  PmaReader *pReadr,              /* Reader whose cursor is to be
      moved */\n  SorterFile *pFile,              /* Sorter file to read from */\n
      \ i64 iOff                        /* Offset in pFile */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vdbeIncrSwap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79949,1
    - Dst: vdbePmaReaderSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79951,1
    - Dst: vdbePmaReaderClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79960,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79961,1
    - Dst: vdbePmaReadVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79967,1
    - Dst: vdbePmaReadBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79971,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79972,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - pReadr
    argTypes:
    - PmaReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79976
      start: 79940
    functionDepth: 7
    functionLinenumber: 79940
    functionLinenumberEnd: 79976
    functionName: vdbePmaReaderNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderSeek
    - vdbePmaReadBlob
    - vdbePmaReaderClear
    - vdbeIncrSwap
    - testcase
    - vdbePmaReadVarint
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderNext(PmaReader *pReadr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79996,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79997,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:79999,1
    - Dst: vdbePmaReaderSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80001,1
    - Dst: vdbePmaReadVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80004,1
    - Dst: vdbePmaReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - pTask
    - pFile
    - iStart
    - pReadr
    - pnByte
    argTypes:
    - SortSubtask*
    - SorterFile*
    - i64
    - PmaReader*
    - i64*
    assertStmts:
    - condition: ( pFile->iEof>iStart )
      pos:
        line_end: 79995
        line_start: 79995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReadr->aBuffer==0 )
      pos:
        line_end: 79997
        line_start: 79997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReadr->aAlloc==0 && pReadr->nAlloc==0 )
      pos:
        line_end: 79996
        line_start: 79996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReadr->aMap==0 )
      pos:
        line_end: 79998
        line_start: 79998
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80013
      start: 79987
    functionDepth: 8
    functionLinenumber: 79987
    functionLinenumberEnd: 80013
    functionName: vdbePmaReaderInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderNext
    - vdbePmaReaderSeek
    - vdbePmaReadVarint
    - assert
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReaderInit(\n  SortSubtask *pTask,             /* Task
      context */\n  SorterFile *pFile,              /* Sorter file to read from */\n
      \ i64 iStart,                     /* Start offset in pFile */\n  PmaReader *pReadr,
      \             /* PmaReader to populate */\n  i64 *pnByte                     /*
      IN/OUT: Increment this value by PMA size */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80028,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80032
      start: 80020
    functionDepth: 14
    functionLinenumber: 80020
    functionLinenumberEnd: 80032
    functionName: vdbeSorterCompareTail
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeRecordCompareWithSkip
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareTail(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80055,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80059
      start: 80047
    functionDepth: 15
    functionLinenumber: 80047
    functionLinenumberEnd: 80059
    functionName: vdbeSorterCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeRecordCompare
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompare(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80081,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80082,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80083,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80083,1
    - Dst: vdbeSorterCompareTail
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80101
      start: 80066
    functionDepth: 15
    functionLinenumber: 80066
    functionLinenumberEnd: 80101
    functionName: vdbeSorterCompareText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - getVarint32
    - vdbeSorterCompareTail
    - MIN
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareText(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80121,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80122,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80148,1
    - Dst: vdbeSorterCompareTail
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80160,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts:
    - condition: ( (s1>0 && s1<7) || s1==8 || s1==9 )
      pos:
        line_end: 80120
        line_start: 80120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (s2>0 && s2<7) || s2==8 || s2==9 )
      pos:
        line_end: 80121
        line_start: 80121
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( res!=0 )
      pos:
        line_end: 80147
        line_start: 80147
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80169
      start: 80107
    functionDepth: 15
    functionLinenumber: 80107
    functionLinenumberEnd: 80169
    functionName: vdbeSorterCompareInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeSorterCompareTail
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareInt(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TempInMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80211,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80226,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80230,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80236,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80242,1
    - Dst: sqlite3TempInMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80252,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80257,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80264,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80266,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - db
    - nField
    - pCsr
    argTypes:
    - sqlite3*
    - int
    - VdbeCursor*
    assertStmts:
    - condition: ( pCsr->pKeyInfo && pCsr->pBt==0 )
      pos:
        line_end: 80225
        line_start: 80225
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->iMemory==0 )
      pos:
        line_end: 80263
        line_start: 80263
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80279
      start: 80190
    functionDepth: 4
    functionLinenumber: 80190
    functionLinenumberEnd: 80279
    functionName: sqlite3VdbeSorterInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TempInMemory
    - assert
    - sqlite3Malloc
    - sqlite3DbMallocZero
    - memcpy
    - sqlite3BtreeGetPageSize
    - MIN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterInit(\n  sqlite3 *db,                    /*
      Database connection (for malloc()) */\n  int nField,                     /*
      Number of key fields in each record */\n  VdbeCursor *pCsr                /*
      Cursor that holds the new sorter */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pRecord
    argTypes:
    - sqlite3*
    - SorterRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80292
      start: 80285
    functionDepth: 5
    functionLinenumber: 80285
    functionLinenumberEnd: 80292
    functionName: vdbeSorterRecordFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void vdbeSorterRecordFree(sqlite3 *db, SorterRecord *pRecord)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80299,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80304,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80308,1
    - Dst: vdbeSorterRecordFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80309,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80312,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80315,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - db
    - pTask
    argTypes:
    - sqlite3*
    - SortSubtask*
    assertStmts:
    - condition: ( pTask->list.aMemory==0 )
      pos:
        line_end: 80307
        line_start: 80307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80318
      start: 80298
    functionDepth: 6
    functionLinenumber: 80298
    functionLinenumberEnd: 80318
    functionName: vdbeSortSubtaskCleanup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterRecordFree
    - memset
    - sqlite3OsCloseFree
    - assert
    - sqlite3_free
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void vdbeSortSubtaskCleanup(sqlite3 *db, SortSubtask *pTask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80324,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pTask
    - zEvent
    argTypes:
    - SortSubtask*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80326
      start: 80321
    functionDepth: 1
    functionLinenumber: 80321
    functionLinenumberEnd: 80326
    functionName: vdbeSorterWorkDebug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: void vdbeSorterWorkDebug(SortSubtask *pTask, const char *zEvent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80329,1
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80329,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zEvent
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80331
      start: 80327
    functionDepth: 2
    functionLinenumber: 80327
    functionLinenumberEnd: 80331
    functionName: vdbeSorterRewindDebug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    - sqlite3_vfs_find
    linkageType: ''
    returnType: void
    signature: void vdbeSorterRewindDebug(const char *zEvent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80338,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pTask
    - zEvent
    argTypes:
    - SortSubtask*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80340
      start: 80332
    functionDepth: 1
    functionLinenumber: 80332
    functionLinenumberEnd: 80340
    functionName: vdbeSorterPopulateDebug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: "void vdbeSorterPopulateDebug(\n  SortSubtask *pTask,\n  const char
      *zEvent\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80348,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pTask
    - bBlocked
    - zEvent
    argTypes:
    - SortSubtask*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80351
      start: 80341
    functionDepth: 1
    functionLinenumber: 80341
    functionLinenumberEnd: 80351
    functionName: vdbeSorterBlockDebug
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: "void vdbeSorterBlockDebug(\n  SortSubtask *pTask,\n  int bBlocked,\n
      \ const char *zEvent\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80369,1
    - Dst: vdbeSorterBlockDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80370,1
    - Dst: sqlite3ThreadJoin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80371,1
    - Dst: vdbeSorterBlockDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80372,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80373,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pTask
    argTypes:
    - SortSubtask*
    assertStmts:
    - condition: ( pTask->bDone==1 )
      pos:
        line_end: 80373
        line_start: 80373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80379
      start: 80363
    functionDepth: 4
    functionLinenumber: 80363
    functionLinenumberEnd: 80379
    functionName: vdbeSorterJoinThread
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ThreadJoin
    - SQLITE_PTR_TO_INT
    - assert
    - vdbeSorterBlockDebug
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: int
    signature: int vdbeSorterJoinThread(SortSubtask *pTask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80389,1
    - Dst: sqlite3ThreadCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - pTask
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SortSubtask*
    - void*
    - void*
    assertStmts:
    - condition: ( pTask->pThread==0 && pTask->bDone==0 )
      pos:
        line_end: 80388
        line_start: 80388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80391
      start: 80384
    functionDepth: 5
    functionLinenumber: 80384
    functionLinenumberEnd: 80391
    functionName: vdbeSorterCreateThread
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ThreadCreate
    - assert
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCreateThread(\n  SortSubtask *pTask,             /*
      Thread will use this task object */\n  void *(*xTask)(void*),          /* Routine
      to run in a separate thread */\n  void *pIn                       /* Argument
      passed into xTask() */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pSorter
    - rcin
    argTypes:
    - VdbeSorter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80414
      start: 80397
    functionDepth: 5
    functionLinenumber: 80397
    functionLinenumberEnd: 80414
    functionName: vdbeSorterJoinAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterJoinThread
    linkageType: ''
    returnType: int
    signature: int vdbeSorterJoinAll(VdbeSorter *pSorter, int rcin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - rcin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80417
      start: 80416
    functionDepth: 0
    functionLinenumber: 80416
    functionLinenumberEnd: 80417
    functionName: vdbeSorterJoinAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vdbeSorterJoinAll(x,rcin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pTask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80418
      start: 80417
    functionDepth: 0
    functionLinenumber: 80417
    functionLinenumberEnd: 80418
    functionName: vdbeSorterJoinThread
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vdbeSorterJoinThread(pTask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80432,1
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80437,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - nReader
    argTypes:
    - int
    assertStmts:
    - condition: ( nReader<=SORTER_MAX_MERGE_COUNT )
      pos:
        line_end: 80431
        line_start: 80431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80445
      start: 80427
    functionDepth: 5
    functionLinenumber: 80427
    functionLinenumberEnd: 80445
    functionName: vdbeMergeEngineNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3FaultSim
    - assert
    linkageType: ''
    returnType: MergeEngine
    signature: MergeEngine *vdbeMergeEngineNew(int nReader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbePmaReaderClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80454,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pMerger
    argTypes:
    - MergeEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80458
      start: 80450
    functionDepth: 4
    functionLinenumber: 80450
    functionLinenumberEnd: 80458
    functionName: vdbeMergeEngineFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderClear
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void vdbeMergeEngineFree(MergeEngine *pMerger)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80468,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80469,1
    - Dst: sqlite3OsCloseFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80470,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80473,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80476
      start: 80464
    functionDepth: 5
    functionLinenumber: 80464
    functionLinenumberEnd: 80476
    functionName: vdbeIncrFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeSorterJoinThread
    - sqlite3OsCloseFree
    - sqlite3_free
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: void
    signature: void vdbeIncrFree(IncrMerger *pIncr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80483,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80484,1
    - Dst: vdbePmaReaderClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80487,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80488,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80492,1
    - Dst: vdbeSortSubtaskCleanup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80496,1
    - Dst: vdbeSorterRecordFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80500,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - db
    - pSorter
    argTypes:
    - sqlite3*
    - VdbeSorter*
    assertStmts:
    - condition: ( pSorter->bUseThreads || pSorter->pReader==0 )
      pos:
        line_end: 80483
        line_start: 80483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80509
      start: 80481
    functionDepth: 7
    functionLinenumber: 80481
    functionLinenumberEnd: 80509
    functionName: sqlite3VdbeSorterReset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeSorterRecordFree
    - assert
    - vdbePmaReaderClear
    - vdbeSorterJoinAll
    - vdbeSortSubtaskCleanup
    - sqlite3DbFree
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterReset(sqlite3 *db, VdbeSorter *pSorter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeSorterReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80517,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80518,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - pCsr
    argTypes:
    - sqlite3*
    - VdbeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80522
      start: 80514
    functionDepth: 8
    functionLinenumber: 80514
    functionLinenumberEnd: 80522
    functionName: sqlite3VdbeSorterClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - sqlite3VdbeSorterReset
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterClose(sqlite3 *db, VdbeCursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80538,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80539,1
    - Dst: sqlite3OsFetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80540,1
    - Dst: sqlite3OsUnfetch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - db
    - pFd
    - nByte
    argTypes:
    - sqlite3*
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80543
      start: 80534
    functionDepth: 2
    functionLinenumber: 80534
    functionLinenumberEnd: 80543
    functionName: vdbeSorterExtendFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsUnfetch
    - sqlite3OsFileControlHint
    - sqlite3OsFetch
    linkageType: ''
    returnType: void
    signature: void vdbeSorterExtendFile(sqlite3 *db, sqlite3_file *pFd, i64 nByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80559,1
    - Dst: sqlite3OsOpenMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80560,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80567,1
    - Dst: vdbeSorterExtendFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - db
    - nExtend
    - ppFd
    argTypes:
    - sqlite3*
    - i64
    - sqlite3_file**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80573
      start: 80553
    functionDepth: 3
    functionLinenumber: 80553
    functionLinenumberEnd: 80573
    functionName: vdbeSorterOpenTempFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FaultSim
    - sqlite3OsOpenMalloc
    - sqlite3OsFileControlHint
    - vdbeSorterExtendFile
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterOpenTempFile(\n  sqlite3 *db,                    /*
      Database handle doing sort */\n  i64 nExtend,                    /* Attempt
      to extend file to this size */\n  sqlite3_file **ppFd\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pTask
    argTypes:
    - SortSubtask*
    assertStmts:
    - condition: ( pTask->pUnpacked==(UnpackedRecord*)pFree )
      pos:
        line_end: 80585
        line_start: 80585
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80592
      start: 80580
    functionDepth: 0
    functionLinenumber: 80580
    functionLinenumberEnd: 80592
    functionName: vdbeSortAllocUnpacked
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeAllocUnpackedRecord
    linkageType: ''
    returnType: int
    signature: int vdbeSortAllocUnpacked(SortSubtask *pTask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SortSubtask*::xCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80611,1
    - Dst: SRVAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80612,1
    - Dst: SRVAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - pTask
    - p1
    - p2
    - ppOut
    argTypes:
    - SortSubtask*
    - SorterRecord*
    - SorterRecord*
    - SorterRecord**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80628
      start: 80599
    functionDepth: 1
    functionLinenumber: 80599
    functionLinenumberEnd: 80628
    functionName: vdbeSorterMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SortSubtask*::xCompare
    - SRVAL
    linkageType: ''
    returnType: void
    signature: "void vdbeSorterMerge(\n  SortSubtask *pTask,             /* Calling
      thread context */\n  SorterRecord *p1,               /* First list to merge
      */\n  SorterRecord *p2,               /* Second list to merge */\n  SorterRecord
      **ppOut            /* OUT: Head of merged list */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeSorter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80641
      start: 80634
    functionDepth: 0
    functionLinenumber: 80634
    functionLinenumberEnd: 80641
    functionName: vdbeSorterGetCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SorterCompare
    signature: SorterCompare vdbeSorterGetCompare(VdbeSorter *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSortAllocUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80654,1
    - Dst: vdbeSorterGetCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80658,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80660,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80671,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80671,1
    - Dst: vdbeSorterMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80680,1
    - Dst: vdbeSorterMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80689,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80693,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - pTask
    - pList
    argTypes:
    - SortSubtask*
    - SorterList*
    assertStmts:
    - condition: ( p->u.iNext<sqlite3MallocSize(pList->aMemory) )
      pos:
        line_end: 80670
        line_start: 80670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pTask->pUnpacked->errCode==SQLITE_OK \n       || pTask->pUnpacked->errCode==SQLITE_NOMEM
        \n  )"
      pos:
        line_end: 80695
        line_start: 80693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80698
      start: 80648
    functionDepth: 5
    functionLinenumber: 80648
    functionLinenumberEnd: 80698
    functionName: vdbeSorterSort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - assert
    - vdbeSorterGetCompare
    - sqlite3_free
    - vdbeSorterMerge
    - sqlite3MallocSize
    - vdbeSortAllocUnpacked
    linkageType: ''
    returnType: int
    signature: int vdbeSorterSort(SortSubtask *pTask, SorterList *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80709,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - pFd
    - p
    - nBuf
    - iStart
    argTypes:
    - sqlite3_file*
    - PmaWriter*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80719
      start: 80703
    functionDepth: 4
    functionLinenumber: 80703
    functionLinenumberEnd: 80719
    functionName: vdbePmaWriterInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Malloc
    - memset
    linkageType: ''
    returnType: void
    signature: "void vdbePmaWriterInit(\n  sqlite3_file *pFd,              /* File
      handle to write to */\n  PmaWriter *p,                   /* Object to populate
      */\n  int nBuf,                       /* Buffer size */\n  i64 iStart                      /*
      Offset of pFd to begin writing at */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80733,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80736,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - pData
    - nData
    argTypes:
    - PmaWriter*
    - u8*
    - int
    assertStmts:
    - condition: ( p->iBufEnd<p->nBuffer )
      pos:
        line_end: 80742
        line_start: 80742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80747
      start: 80725
    functionDepth: 2
    functionLinenumber: 80725
    functionLinenumberEnd: 80747
    functionName: vdbePmaWriteBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void vdbePmaWriteBlob(PmaWriter *p, u8 *pData, int nData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80760,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80761,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80767,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - piEof
    argTypes:
    - PmaWriter*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80771
      start: 80758
    functionDepth: 3
    functionLinenumber: 80758
    functionLinenumberEnd: 80771
    functionName: vdbePmaWriterFinish
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ALWAYS
    - sqlite3OsWrite
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int vdbePmaWriterFinish(PmaWriter *p, i64 *piEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80780,1
    - Dst: vdbePmaWriteBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - iVal
    argTypes:
    - PmaWriter*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80782
      start: 80777
    functionDepth: 3
    functionLinenumber: 80777
    functionLinenumberEnd: 80782
    functionName: vdbePmaWriteVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaWriteBlob
    - sqlite3PutVarint
    linkageType: ''
    returnType: void
    signature: void vdbePmaWriteVarint(PmaWriter *p, u64 iVal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80806,1
    - Dst: vdbeSorterWorkDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80809,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80811,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80815,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80816,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80817,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80818,1
    - Dst: vdbeSorterExtendFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80823,1
    - Dst: vdbeSorterSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80828,1
    - Dst: vdbePmaWriterInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80835,1
    - Dst: vdbePmaWriteVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80838,1
    - Dst: vdbePmaWriteVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80841,1
    - Dst: vdbePmaWriteBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80842,1
    - Dst: SRVAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80842,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80843,1
    - Dst: vdbePmaWriterFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80846,1
    - Dst: vdbeSorterWorkDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80849,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80850,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80851,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - pTask
    - pList
    argTypes:
    - SortSubtask*
    - SorterList*
    assertStmts:
    - condition: ( pTask->nPMA==0 )
      pos:
        line_end: 80817
        line_start: 80817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->szPMA>0 )
      pos:
        line_end: 80810
        line_start: 80810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pTask->file.iEof==iSz )
      pos:
        line_end: 80850
        line_start: 80850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->file.iEof==0 )
      pos:
        line_end: 80816
        line_start: 80816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pList->pList==0 )
      pos:
        line_end: 80849
        line_start: 80849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pTask->file.pFd )
      pos:
        line_end: 80815
        line_start: 80815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80853
      start: 80798
    functionDepth: 6
    functionLinenumber: 80798
    functionLinenumberEnd: 80853
    functionName: vdbeSorterListToPMA
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - vdbePmaWriteVarint
    - vdbeSorterExtendFile
    - vdbePmaWriteBlob
    - assert
    - sqlite3_free
    - vdbeSorterOpenTempFile
    - vdbePmaWriterInit
    - vdbePmaWriterFinish
    - SRVAL
    - vdbeSorterWorkDebug
    - vdbeSorterSort
    - sqlite3VarintLen
    linkageType: ''
    returnType: int
    signature: int vdbeSorterListToPMA(SortSubtask *pTask, SorterList *pList)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbePmaReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80871,1
    - Dst: SortSubtask*::xCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80893,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - pMerger
    - pbEof
    argTypes:
    - MergeEngine*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80927
      start: 80862
    functionDepth: 8
    functionLinenumber: 80862
    functionLinenumberEnd: 80927
    functionName: vdbeMergeEngineStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SortSubtask*::xCompare
    - vdbePmaReaderNext
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineStep(\n  MergeEngine *pMerger,      /* The merge
      engine to advance to the next row */\n  int *pbEof                 /* Set TRUE
      at EOF.  Set false for more content */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80936,1
    - Dst: vdbeSorterListToPMA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80937,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts:
    - condition: ( pTask->bDone==0 )
      pos:
        line_end: 80935
        line_start: 80935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80940
      start: 80933
    functionDepth: 7
    functionLinenumber: 80933
    functionLinenumberEnd: 80940
    functionName: vdbeSorterFlushThread
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_INT_TO_PTR
    - vdbeSorterListToPMA
    - assert
    linkageType: ''
    returnType: void
    signature: void *vdbeSorterFlushThread(void *pCtx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterListToPMA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80950,1
    - Dst: vdbeSorterJoinThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80973,1
    - Dst: vdbeSorterListToPMA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80987,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80988,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80989,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80997,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:80999,1
    - Dst: vdbeSorterCreateThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81003,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - pSorter
    argTypes:
    - VdbeSorter*
    assertStmts:
    - condition: ( pTask->list.pList==0 )
      pos:
        line_end: 80987
        line_start: 80987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->pThread==0 && pTask->bDone==0 )
      pos:
        line_end: 80986
        line_start: 80986
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->list.aMemory==0 || pSorter->list.aMemory!=0 )
      pos:
        line_end: 80988
        line_start: 80988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81009
      start: 80947
    functionDepth: 7
    functionLinenumber: 80947
    functionLinenumberEnd: 81009
    functionName: vdbeSorterFlushPMA
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterJoinThread
    - assert
    - vdbeSorterListToPMA
    - sqlite3Malloc
    - vdbeSorterCreateThread
    - sqlite3MallocSize
    linkageType: ''
    returnType: int
    signature: int vdbeSorterFlushPMA(VdbeSorter *pSorter)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81027,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81036,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81055,1
    - Dst: sqlite3HeapNearlyFull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81062,1
    - Dst: vdbeSorterFlushPMA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81066,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81069,1
    - Dst: sqlite3Realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81088,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81098,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81101,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81108,1
    - Dst: SRVAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81108,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - pCsr
    - pVal
    argTypes:
    - VdbeCursor*
    - Mem*
    assertStmts:
    - condition: ( pSorter )
      pos:
        line_end: 81035
        line_start: 81035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pSorter->list.pList==0 )
      pos:
        line_end: 81068
        line_start: 81068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81113
      start: 81014
    functionDepth: 8
    functionLinenumber: 81014
    functionLinenumberEnd: 81113
    functionName: sqlite3VdbeSorterWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3Malloc
    - sqlite3HeapNearlyFull
    - sqlite3Realloc
    - memcpy
    - ROUND8
    - getVarint32
    - SRVAL
    - vdbeSorterFlushPMA
    - sqlite3VarintLen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterWrite(\n  const VdbeCursor *pCsr,
      \        /* Sorter cursor */\n  Mem *pVal                       /* Memory cell
      containing record */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81128,1
    - Dst: vdbeSorterPopulateDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81130,1
    - Dst: vdbePmaWriterInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81132,1
    - Dst: sqlite3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81142,1
    - Dst: vdbePmaWriteVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81145,1
    - Dst: vdbePmaWriteBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81146,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81147,1
    - Dst: vdbeMergeEngineStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81148,1
    - Dst: vdbePmaWriterFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81151,1
    - Dst: vdbeSorterPopulateDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts:
    - condition: ( pIncr->bEof==0 )
      pos:
        line_end: 81127
        line_start: 81127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIncr->pMerger->pTask==pTask )
      pos:
        line_end: 81146
        line_start: 81146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81155
      start: 81120
    functionDepth: 9
    functionLinenumber: 81120
    functionLinenumberEnd: 81155
    functionName: vdbeIncrPopulate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaWriteVarint
    - vdbePmaWriteBlob
    - assert
    - vdbeSorterPopulateDebug
    - vdbePmaWriterInit
    - vdbeMergeEngineStep
    - vdbePmaWriterFinish
    - sqlite3VarintLen
    linkageType: ''
    returnType: int
    signature: int vdbeIncrPopulate(IncrMerger *pIncr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81164,1
    - Dst: vdbeIncrPopulate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81167
      start: 81162
    functionDepth: 10
    functionLinenumber: 81162
    functionLinenumberEnd: 81167
    functionName: vdbeIncrPopulateThread
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrPopulate
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: void
    signature: void *vdbeIncrPopulateThread(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81174,1
    - Dst: vdbeSorterCreateThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts:
    - condition: ( pIncr->bUseThread )
      pos:
        line_end: 81173
        line_start: 81173
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81176
      start: 81172
    functionDepth: 6
    functionLinenumber: 81172
    functionLinenumberEnd: 81176
    functionName: vdbeIncrBgPopulate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterCreateThread
    - assert
    linkageType: ''
    returnType: int
    signature: int vdbeIncrBgPopulate(IncrMerger *pIncr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81201,1
    - Dst: vdbeIncrBgPopulate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81213,1
    - Dst: vdbeIncrPopulate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81227
      start: 81196
    functionDepth: 10
    functionLinenumber: 81196
    functionLinenumberEnd: 81227
    functionName: vdbeIncrSwap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeIncrBgPopulate
    - vdbeSorterJoinThread
    - vdbeIncrPopulate
    linkageType: ''
    returnType: int
    signature: int vdbeIncrSwap(IncrMerger *pIncr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81242,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81242,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81246,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pTask
    - pMerger
    - ppOut
    argTypes:
    - SortSubtask*
    - MergeEngine*
    - IncrMerger**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81253
      start: 81235
    functionDepth: 5
    functionLinenumber: 81235
    functionLinenumberEnd: 81253
    functionName: vdbeIncrMergerNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3FaultSim
    - vdbeMergeEngineFree
    - MAX
    linkageType: ''
    returnType: int
    signature: "int vdbeIncrMergerNew(\n  SortSubtask *pTask,     /* The thread that
      will be using the new IncrMerger */\n  MergeEngine *pMerger,   /* The MergeEngine
      that the IncrMerger will control */\n  IncrMerger **ppOut      /* Write the
      new IncrMerger here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81262
      start: 81259
    functionDepth: 0
    functionLinenumber: 81259
    functionLinenumberEnd: 81262
    functionName: vdbeIncrMergerSetThreads
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vdbeIncrMergerSetThreads(IncrMerger *pIncr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81282,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81303,1
    - Dst: SortSubtask*::xCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - pMerger
    - iOut
    argTypes:
    - MergeEngine*
    - int
    assertStmts:
    - condition: ( iOut<pMerger->nTree && iOut>0 )
      pos:
        line_end: 81281
        line_start: 81281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->pUnpacked!=0 )
      pos:
        line_end: 81302
        line_start: 81302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81315
      start: 81272
    functionDepth: 0
    functionLinenumber: 81272
    functionLinenumberEnd: 81315
    functionName: vdbeMergeEngineCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SortSubtask*::xCompare
    - assert
    linkageType: ''
    returnType: void
    signature: "void vdbeMergeEngineCompare(\n  MergeEngine *pMerger,  /* Merge engine
      containing PmaReaders to compare */\n  int iOut               /* Store the result
      in pMerger->aTree[iOut] */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81364,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81367,1
    - Dst: vdbePmaReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81379,1
    - Dst: vdbePmaReaderIncrInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81381,1
    - Dst: vdbeMergeEngineCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - pTask
    - pMerger
    - eMode
    argTypes:
    - SortSubtask*
    - MergeEngine*
    - int
    assertStmts:
    - condition: ( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL )
      pos:
        line_end: 81363
        line_start: 81363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMerger->pTask==0 )
      pos:
        line_end: 81366
        line_start: 81366
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81390
      start: 81354
    functionDepth: 8
    functionLinenumber: 81354
    functionLinenumberEnd: 81390
    functionName: vdbeMergeEngineInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderIncrInit
    - vdbePmaReaderNext
    - assert
    - vdbeMergeEngineCompare
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineInit(\n  SortSubtask *pTask,             /* Thread
      that will run pMerger */\n  MergeEngine *pMerger,           /* MergeEngine to
      initialize */\n  int eMode                       /* One of the INCRINIT_XXX
      constants */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81432,1
    - Dst: vdbeMergeEngineInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81434,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81443,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81451,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81452,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81475,1
    - Dst: vdbeIncrPopulate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81476,1
    - Dst: vdbePmaReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81481,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - pReadr
    - eMode
    argTypes:
    - PmaReader*
    - int
    assertStmts:
    - condition: ( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL )
      pos:
        line_end: 81431
        line_start: 81431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->file2.iEof>0 )
      pos:
        line_end: 81450
        line_start: 81450
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eMode==INCRINIT_ROOT || eMode==INCRINIT_TASK )
      pos:
        line_end: 81474
        line_start: 81474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81485
      start: 81425
    functionDepth: 10
    functionLinenumber: 81425
    functionLinenumberEnd: 81485
    functionName: vdbePmaReaderIncrMergeInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeSorterOpenTempFile
    - vdbePmaReaderNext
    - vdbeIncrPopulate
    - vdbeMergeEngineInit
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81494,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81499
      start: 81492
    functionDepth: 11
    functionLinenumber: 81492
    functionLinenumberEnd: 81499
    functionName: vdbePmaReaderBgIncrInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderIncrMergeInit
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: void
    signature: void *vdbePmaReaderBgIncrInit(void *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81518,1
    - Dst: vdbeSorterCreateThread
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81521,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pReadr
    - eMode
    argTypes:
    - PmaReader*
    - int
    assertStmts:
    - condition: ( pIncr->bUseThread==0 || eMode==INCRINIT_TASK )
      pos:
        line_end: 81517
        line_start: 81517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81529
      start: 81513
    functionDepth: 11
    functionLinenumber: 81513
    functionLinenumberEnd: 81529
    functionName: vdbePmaReaderIncrInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbePmaReaderIncrMergeInit
    - vdbeSorterCreateThread
    - assert
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeMergeEngineNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81554,1
    - Dst: vdbePmaReaderInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81560,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pTask
    - nPMA
    - piOffset
    - ppOut
    argTypes:
    - SortSubtask*
    - int
    - i64*
    - MergeEngine**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81570
      start: 81543
    functionDepth: 9
    functionLinenumber: 81543
    functionLinenumberEnd: 81570
    functionName: vdbeMergeEngineLevel0
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeMergeEngineFree
    - vdbeMergeEngineNew
    - vdbePmaReaderInit
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineLevel0(\n  SortSubtask *pTask,             /* Sorter
      task to read from */\n  int nPMA,                       /* Number of PMAs to
      read */\n  i64 *piOffset,                  /* IN/OUT: Readr offset in pTask->file
      */\n  MergeEngine **ppOut             /* OUT: New merge-engine */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nPMA
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81590
      start: 81582
    functionDepth: 0
    functionLinenumber: 81582
    functionLinenumberEnd: 81590
    functionName: vdbeSorterTreeDepth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vdbeSorterTreeDepth(int nPMA)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeIncrMergerNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81613,1
    - Dst: vdbeMergeEngineNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81624,1
    - Dst: vdbeIncrMergerNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81628,1
    - Dst: vdbeIncrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81640,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - pTask
    - nDepth
    - iSeq
    - pRoot
    - pLeaf
    argTypes:
    - SortSubtask*
    - int
    - int
    - MergeEngine*
    - MergeEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81643
      start: 81600
    functionDepth: 6
    functionLinenumber: 81600
    functionLinenumberEnd: 81643
    functionName: vdbeSorterAddToTree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeMergeEngineNew
    - vdbeIncrMergerNew
    - vdbeIncrFree
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterAddToTree(\n  SortSubtask *pTask,             /* Task
      context */\n  int nDepth,                     /* Depth of tree according to
      TreeDepth() */\n  int iSeq,                       /* Sequence number of leaf
      within tree */\n  MergeEngine *pRoot,             /* Root of tree */\n  MergeEngine
      *pLeaf              /* Leaf to add to tree */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81668,1
    - Dst: vdbeMergeEngineNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81670,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81677,1
    - Dst: vdbeSorterTreeDepth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81680,1
    - Dst: vdbeMergeEngineLevel0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81684,1
    - Dst: vdbeMergeEngineNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81688,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81694,1
    - Dst: vdbeMergeEngineLevel0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81695,1
    - Dst: vdbeSorterAddToTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81697,1
    - Dst: vdbeIncrMergerNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81705,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81709,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81713,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81719,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - pSorter
    - ppOut
    argTypes:
    - VdbeSorter*
    - MergeEngine**
    assertStmts:
    - condition: ( pSorter->bUseThreads || pSorter->nTask==1 )
      pos:
        line_end: 81667
        line_start: 81667
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTask->nPMA>0 || SQLITE_MAX_WORKER_THREADS>0 )
      pos:
        line_end: 81676
        line_start: 81676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMain==0 )
      pos:
        line_end: 81708
        line_start: 81708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81724
      start: 81656
    functionDepth: 10
    functionLinenumber: 81656
    functionLinenumberEnd: 81724
    functionName: vdbeSorterMergeTreeBuild
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeMergeEngineLevel0
    - vdbeMergeEngineFree
    - assert
    - vdbeSorterAddToTree
    - vdbeIncrMergerNew
    - vdbeSorterTreeDepth
    - vdbeMergeEngineNew
    - MIN
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterMergeTreeBuild(\n  VdbeSorter *pSorter,       /* The
      VDBE cursor that implements the sort */\n  MergeEngine **ppOut        /* Write
      the MergeEngine here */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterGetCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81742,1
    - Dst: vdbeSorterMergeTreeBuild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81748,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81751,1
    - Dst: vdbeSortAllocUnpacked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81756,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81758,1
    - Dst: vdbeIncrMergerNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81763,1
    - Dst: vdbeIncrMergerSetThreads
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81765,1
    - Dst: vdbeIncrMergerSetThreads
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81784,1
    - Dst: vdbePmaReaderIncrInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81788,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81794,1
    - Dst: vdbeMergeEngineInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81799,1
    - Dst: vdbeMergeEngineFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81806,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - pSorter
    argTypes:
    - VdbeSorter*
    assertStmts:
    - condition: ( pSorter->bUseThreads==0 || pSorter->nTask>1 )
      pos:
        line_end: 81750
        line_start: 81750
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIncr->pTask!=pLast )
      pos:
        line_end: 81769
        line_start: 81769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->pIncr==0 || (\n                (p->pIncr->pTask==&pSorter->aTask[iTask])
        \            /* a */\n             && (iTask!=pSorter->nTask-1 || p->pIncr->bUseThread==0)
        \ /* b */\n            ))"
      pos:
        line_end: 81786
        line_start: 81783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81809
      start: 81735
    functionDepth: 12
    functionLinenumber: 81735
    functionLinenumberEnd: 81809
    functionName: vdbeSorterSetupMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeSorterGetCompare
    - vdbePmaReaderIncrInit
    - sqlite3DbMallocZero
    - vdbeSorterMergeTreeBuild
    - vdbeIncrMergerNew
    - vdbeIncrMergerSetThreads
    - vdbeMergeEngineInit
    - vdbeSortAllocUnpacked
    - vdbePmaReaderIncrMergeInit
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: int
    signature: int vdbeSorterSetupMerge(VdbeSorter *pSorter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81821,1
    - Dst: vdbeSorterSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81829,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81840,1
    - Dst: vdbeSorterFlushPMA
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81841,1
    - Dst: vdbeSorterJoinAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81844,1
    - Dst: vdbeSorterRewindDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81846,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81850,1
    - Dst: vdbeSorterSetupMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81852,1
    - Dst: vdbeSorterRewindDebug
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - pCsr
    - pbEof
    argTypes:
    - VdbeCursor*
    - int*
    assertStmts:
    - condition: ( pSorter )
      pos:
        line_end: 81820
        line_start: 81820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->list.pList )
      pos:
        line_end: 81839
        line_start: 81839
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->pReader==0 )
      pos:
        line_end: 81849
        line_start: 81849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81858
      start: 81817
    functionDepth: 13
    functionLinenumber: 81817
    functionLinenumberEnd: 81858
    functionName: sqlite3VdbeSorterRewind
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - vdbeSorterRewindDebug
    - vdbeSorterSetupMerge
    - vdbeSorterJoinAll
    - vdbeSorterSort
    - vdbeSorterFlushPMA
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterRewind(const VdbeCursor *pCsr, int
      *pbEof)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81867,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81869,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81870,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81871,1
    - Dst: vdbePmaReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81874,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81880,1
    - Dst: vdbeMergeEngineStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81881,1
    - Dst: vdbeSorterRecordFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81887,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - db
    - pCsr
    - pbEof
    argTypes:
    - sqlite3*
    - VdbeCursor*
    - int*
    assertStmts:
    - condition: ( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0)
        )
      pos:
        line_end: 81866
        line_start: 81866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->bUseThreads==1 || pSorter->pMerger )
      pos:
        line_end: 81870
        line_start: 81870
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->pReader==0 || pSorter->pMerger==0 )
      pos:
        line_end: 81868
        line_start: 81868
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->bUseThreads==0 || pSorter->pReader )
      pos:
        line_end: 81869
        line_start: 81869
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->pMerger!=0 )
      pos:
        line_end: 81878
        line_start: 81878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->pMerger->pTask==(&pSorter->aTask[0]) )
      pos:
        line_end: 81879
        line_start: 81879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81892
      start: 81863
    functionDepth: 9
    functionLinenumber: 81863
    functionLinenumberEnd: 81892
    functionName: sqlite3VdbeSorterNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeSorterRecordFree
    - vdbePmaReaderNext
    - vdbeMergeEngineStep
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterNext(sqlite3 *db, const VdbeCursor
      *pCsr, int *pbEof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SRVAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pSorter
    - pnKey
    argTypes:
    - VdbeSorter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81920
      start: 81898
    functionDepth: 1
    functionLinenumber: 81898
    functionLinenumberEnd: 81920
    functionName: vdbeSorterRowkey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SRVAL
    linkageType: ''
    returnType: void
    signature: "void *vdbeSorterRowkey(\n  const VdbeSorter *pSorter,      /* Sorter
      object */\n  int *pnKey                      /* OUT: Size of current key in
      bytes */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterRowkey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81929,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81930,1
    - Dst: MemSetTypeFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81934,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pCsr
    - pOut
    argTypes:
    - VdbeCursor*
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81938
      start: 81925
    functionDepth: 9
    functionLinenumber: 81925
    functionLinenumberEnd: 81938
    functionName: sqlite3VdbeSorterRowkey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - MemSetTypeFlag
    - memcpy
    - vdbeSorterRowkey
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterRowkey(const VdbeCursor *pCsr, Mem
      *pOut)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81970,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81971,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81975,1
    - Dst: vdbeSorterRowkey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81977,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81978,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:81986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - pCsr
    - pVal
    - nKeyCol
    - pRes
    argTypes:
    - VdbeCursor*
    - Mem*
    - int
    - int*
    assertStmts:
    - condition: ( r2->nField==nKeyCol )
      pos:
        line_end: 81974
        line_start: 81974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSorter->pUnpacked==(UnpackedRecord*)p )
      pos:
        line_end: 81970
        line_start: 81970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81988
      start: 81956
    functionDepth: 15
    functionLinenumber: 81956
    functionLinenumberEnd: 81988
    functionName: sqlite3VdbeSorterCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeRecordCompare
    - assert
    - vdbeSorterRowkey
    - sqlite3VdbeAllocUnpackedRecord
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterCompare(\n  const VdbeCursor *pCsr,
      \        /* Sorter cursor */\n  Mem *pVal,                      /* Value to
      compare to current sorter key */\n  int nKeyCol,                    /* Compare
      this many columns */\n  int *pRes                       /* OUT: Result of comparison
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82046,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82050,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82051,1
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82058,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - JournalFile*
    assertStmts:
    - condition: (p->iSize<=p->nBuf)
      pos:
        line_end: 82049
        line_start: 82049
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82064
      start: 82042
    functionDepth: 2
    functionLinenumber: 82042
    functionLinenumberEnd: 82064
    functionName: createFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsOpen
    - sqlite3OsWrite
    - assert
    - sqlite3OsClose
    linkageType: ''
    returnType: int
    signature: int createFile(JournalFile *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82072,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82076
      start: 82069
    functionDepth: 3
    functionLinenumber: 82069
    functionLinenumberEnd: 82076
    functionName: jrnlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsClose
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int jrnlClose(sqlite3_file *pJfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82090,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82097
      start: 82081
    functionDepth: 2
    functionLinenumber: 82081
    functionLinenumberEnd: 82097
    functionName: jrnlRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int jrnlRead(\n  sqlite3_file *pJfd,    /* The journal file from which
      to read */\n  void *zBuf,            /* Put the results here */\n  int iAmt,
      \             /* Number of bytes to read */\n  sqlite_int64 iOfst     /* Begin
      reading at this offset */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82111,1
    - Dst: sqlite3OsWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82115,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82124
      start: 82102
    functionDepth: 3
    functionLinenumber: 82102
    functionLinenumberEnd: 82124
    functionName: jrnlWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - createFile
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int jrnlWrite(\n  sqlite3_file *pJfd,    /* The journal file into
      which to write */\n  const void *zBuf,      /* Take data to be written from
      here */\n  int iAmt,              /* Number of bytes to write */\n  sqlite_int64
      iOfst     /* Begin writing at this offset into the file */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pJfd
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82138
      start: 82129
    functionDepth: 1
    functionLinenumber: 82129
    functionLinenumberEnd: 82138
    functionName: jrnlTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsTruncate
    linkageType: ''
    returnType: int
    signature: int jrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pJfd
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82152
      start: 82143
    functionDepth: 2
    functionLinenumber: 82143
    functionLinenumberEnd: 82152
    functionName: jrnlSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSync
    linkageType: ''
    returnType: int
    signature: int jrnlSync(sqlite3_file *pJfd, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pJfd
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82166
      start: 82157
    functionDepth: 2
    functionLinenumber: 82157
    functionLinenumberEnd: 82166
    functionName: jrnlFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int jrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82202,1
    - Dst: sqlite3JournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82202,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82204,1
    - Dst: sqlite3OsOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - pVfs
    - zName
    - pJfd
    - flags
    - nBuf
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82217
      start: 82194
    functionDepth: 5
    functionLinenumber: 82194
    functionLinenumberEnd: 82217
    functionName: sqlite3JournalOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MallocZero
    - memset
    - sqlite3OsOpen
    - sqlite3JournalSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3JournalOpen(\n  sqlite3_vfs *pVfs,         /*
      The VFS to use for actual file I/O */\n  const char *zName,         /* Name
      of the journal file */\n  sqlite3_file *pJfd,        /* Preallocated, blank
      file handle */\n  int flags,                 /* Opening flags */\n  int nBuf
      \                  /* Bytes buffered before opening the file */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82228
      start: 82223
    functionDepth: 3
    functionLinenumber: 82223
    functionLinenumberEnd: 82228
    functionName: sqlite3JournalCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - createFile
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalCreate(sqlite3_file *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82238
      start: 82236
    functionDepth: 0
    functionLinenumber: 82236
    functionLinenumberEnd: 82238
    functionName: sqlite3JournalExists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalExists(sqlite3_file *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82246
      start: 82244
    functionDepth: 0
    functionLinenumber: 82244
    functionLinenumberEnd: 82246
    functionName: sqlite3JournalSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalSize(sqlite3_vfs *pVfs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82329,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82334,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82346,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( iOfst+iAmt<=p->endpoint.iOffset )
      pos:
        line_end: 82328
        line_start: 82328
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82356
      start: 82316
    functionDepth: 1
    functionLinenumber: 82316
    functionLinenumberEnd: 82356
    functionName: memjrnlRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ALWAYS
    - assert
    - MIN
    linkageType: ''
    returnType: int
    signature: "int memjrnlRead(\n  sqlite3_file *pJfd,    /* The journal file from
      which to read */\n  void *zBuf,            /* Put the results here */\n  int
      iAmt,              /* Number of bytes to read */\n  sqlite_int64 iOfst     /*
      Begin reading at this offset */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82374,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82375,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82380,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82384,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82393,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( iOfst==p->endpoint.iOffset )
      pos:
        line_end: 82373
        line_start: 82373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pFirst )
      pos:
        line_end: 82389
        line_start: 82389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !p->pFirst )
      pos:
        line_end: 82392
        line_start: 82392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82406
      start: 82361
    functionDepth: 1
    functionLinenumber: 82361
    functionLinenumberEnd: 82406
    functionName: memjrnlWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - memcpy
    - sqlite3_malloc
    - MIN
    linkageType: ''
    returnType: int
    signature: "int memjrnlWrite(\n  sqlite3_file *pJfd,    /* The journal file into
      which to write */\n  const void *zBuf,      /* Take data to be written from
      here */\n  int iAmt,              /* Number of bytes to write */\n  sqlite_int64
      iOfst     /* Begin writing at this offset into the file */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82414,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82415,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82420,1
    - Dst: sqlite3MemJournalOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pJfd
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts:
    - condition: (size==0)
      pos:
        line_end: 82413
        line_start: 82413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82424
      start: 82411
    functionDepth: 3
    functionLinenumber: 82411
    functionLinenumberEnd: 82424
    functionName: memjrnlTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemJournalOpen
    - sqlite3_free
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memjrnlTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82432
      start: 82429
    functionDepth: 4
    functionLinenumber: 82429
    functionLinenumberEnd: 82432
    functionName: memjrnlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memjrnlTruncate
    linkageType: ''
    returnType: int
    signature: int memjrnlClose(sqlite3_file *pJfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82446
      start: 82443
    functionDepth: 1
    functionLinenumber: 82443
    functionLinenumberEnd: 82446
    functionName: memjrnlSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int memjrnlSync(sqlite3_file *NotUsed, int NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pJfd
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82455
      start: 82451
    functionDepth: 0
    functionLinenumber: 82451
    functionLinenumberEnd: 82455
    functionName: memjrnlFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82487,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82487,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82488,1
    - Dst: sqlite3MemJournalSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(p) )
      pos:
        line_end: 82486
        line_start: 82486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82490
      start: 82485
    functionDepth: 1
    functionLinenumber: 82485
    functionLinenumberEnd: 82490
    functionName: sqlite3MemJournalOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - memset
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3MemJournalSize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemJournalOpen(sqlite3_file *pJfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82498
      start: 82496
    functionDepth: 0
    functionLinenumber: 82496
    functionLinenumberEnd: 82498
    functionName: sqlite3IsMemJournal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsMemJournal(sqlite3_file *pJfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82505
      start: 82503
    functionDepth: 0
    functionLinenumber: 82503
    functionLinenumberEnd: 82505
    functionName: sqlite3MemJournalSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemJournalSize(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82550,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82550,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82551,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82551,1
    - Dst: Walker*::xExprCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82552,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82554,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82555,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82556,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82557,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82558,1
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82564
      start: 82547
    functionDepth: 1
    functionLinenumber: 82547
    functionLinenumberEnd: 82564
    functionName: sqlite3WalkExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprHasProperty
    - sqlite3WalkExprList
    - sqlite3WalkSelect
    - Walker*::xExprCallback
    - sqlite3WalkExpr
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkExpr(Walker *pWalker, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82579
      start: 82570
    functionDepth: 2
    functionLinenumber: 82570
    functionLinenumberEnd: 82579
    functionName: sqlite3WalkExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkExprList(Walker *pWalker, ExprList *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82588,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82589,1
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82590,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82591,1
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82592,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82593,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82596
      start: 82587
    functionDepth: 3
    functionLinenumber: 82587
    functionLinenumberEnd: 82596
    functionName: sqlite3WalkSelectExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    - sqlite3WalkExprList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelectExpr(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82611,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82619
      start: 82605
    functionDepth: 1
    functionLinenumber: 82605
    functionLinenumberEnd: 82619
    functionName: sqlite3WalkSelectFrom
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3WalkSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelectFrom(Walker *pWalker, Select *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Walker*::xSelectCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82646,1
    - Dst: sqlite3WalkSelectExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82649,1
    - Dst: sqlite3WalkSelectFrom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82650,1
    - Dst: Walker*::xSelectCallback2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82656,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82662
      start: 82637
    functionDepth: 4
    functionLinenumber: 82637
    functionLinenumberEnd: 82662
    functionName: sqlite3WalkSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - Walker*::xSelectCallback
    - Walker*::xSelectCallback2
    - sqlite3WalkSelectFrom
    - sqlite3WalkSelectExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelect(Walker *pWalker, Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82698
      start: 82695
    functionDepth: 0
    functionLinenumber: 82695
    functionLinenumberEnd: 82698
    functionName: incrAggDepth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int incrAggDepth(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82702,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pExpr
    - N
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82707
      start: 82699
    functionDepth: 2
    functionLinenumber: 82699
    functionLinenumberEnd: 82707
    functionName: incrAggFunctionDepth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    - memset
    linkageType: ''
    returnType: void
    signature: void incrAggFunctionDepth(Expr *pExpr, int N)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82764,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82766,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82768,1
    - Dst: incrAggFunctionDepth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82771,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82772,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82774,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82781,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82791,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82792,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82793,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82794,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82795,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82796,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - pParse
    - pEList
    - iCol
    - pExpr
    - zType
    - nSubquery
    argTypes:
    - Parse*
    - ExprList*
    - int
    - Expr*
    - char*
    - int
    assertStmts:
    - condition: ( iCol>=0 && iCol<pEList->nExpr )
      pos:
        line_end: 82763
        line_start: 82763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrig!=0 )
      pos:
        line_end: 82765
        line_start: 82765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pExpr->flags & (EP_Reduced|EP_TokenOnly))==0 )
      pos:
        line_end: 82794
        line_start: 82794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82800
      start: 82752
    functionDepth: 6
    functionLinenumber: 82752
    functionLinenumberEnd: 82800
    functionName: resolveAlias
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - sqlite3ExprAddCollateString
    - ExprHasProperty
    - sqlite3ExprDup
    - sqlite3PExpr
    - assert
    - memcpy
    - sqlite3DbStrDup
    - incrAggFunctionDepth
    - sqlite3ExprDelete
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: "void resolveAlias(\n  Parse *pParse,         /* Parsing context */\n
      \ ExprList *pEList,      /* A result set */\n  int iCol,              /* A column
      in the result set.  0..pEList->nExpr-1 */\n  Expr *pExpr,           /* Transform
      this into an alias to the result set */\n  const char *zType,     /* \"GROUP\"
      or \"ORDER\" or \"\" */\n  int nSubquery          /* Number of subqueries that
      the label is moving */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pUsing
    - zCol
    argTypes:
    - IdList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82817
      start: 82809
    functionDepth: 0
    functionLinenumber: 82809
    functionLinenumberEnd: 82817
    functionName: nameInUsingClause
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int nameInUsingClause(IdList *pUsing, const char *zCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82833,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82834,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82838,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82839,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82843,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - zSpan
    - zCol
    - zTab
    - zDb
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82847
      start: 82826
    functionDepth: 1
    functionLinenumber: 82826
    functionLinenumberEnd: 82847
    functionName: sqlite3MatchSpanName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3StrICmp
    - sqlite3StrNICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3MatchSpanName(\n  const char *zSpan,\n  const
      char *zCol,\n  const char *zTab,\n  const char *zDb\n)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82897,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82898,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82899,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82899,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82904,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82911,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82912,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82921,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82922,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82938,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82939,1
    - Dst: sqlite3MatchSpanName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82944,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82959,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82960,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82968,1
    - Dst: nameInUsingClause
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82989,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:82991,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83003,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83004,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83007,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83019,1
    - Dst: sqlite3IsRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83026,1
    - Dst: VisibleRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83026,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83036,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83037,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83040,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83041,1
    - Dst: sqlite3IsRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83055,1
    - Dst: VisibleRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83056,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83086,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83088,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83089,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83090,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83092,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83093,1
    - Dst: resolveAlias
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83099,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83124,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83138,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83140,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83142,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83156,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83160,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83166,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83168,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83173,1
    - Dst: sqlite3AuthRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83175,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83180,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 204
    argCount: 6
    argNames:
    - pParse
    - zDb
    - zTab
    - zCol
    - pNC
    - pExpr
    argTypes:
    - Parse*
    - char*
    - char*
    - char*
    - NameContext*
    - Expr*
    assertStmts:
    - condition: ( pNC )
      pos:
        line_end: 82896
        line_start: 82896
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb[i].zName )
      pos:
        line_end: 82920
        line_start: 82920
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zTabName!=0 )
      pos:
        line_end: 82958
        line_start: 82958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pMatch->jointype & JT_RIGHT)==0 )
      pos:
        line_end: 82988
        line_start: 82988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->nCol>0 )
      pos:
        line_end: 82938
        line_start: 82938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT )
      pos:
        line_end: 83002
        line_start: 83002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->x.pSelect==0 )
      pos:
        line_end: 83089
        line_start: 83089
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 82898
        line_start: 82898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zCol )
      pos:
        line_end: 82897
        line_start: 82897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->pLeft==0 && pExpr->pRight==0 )
      pos:
        line_end: 83087
        line_start: 83087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab!=0 && pTab->zName!=0 )
      pos:
        line_end: 82937
        line_start: 82937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->x.pList==0 )
      pos:
        line_end: 83088
        line_start: 83088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMatch->iCursor==pExpr->iTable )
      pos:
        line_end: 83159
        line_start: 83159
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNC!=0 )
      pos:
        line_end: 83172
        line_start: 83172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTopNC!=0 )
      pos:
        line_end: 83179
        line_start: 83179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zTab==0 && zDb==0 )
      pos:
        line_end: 83098
        line_start: 83098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83189
      start: 82876
    functionDepth: 8
    functionLinenumber: 82876
    functionLinenumberEnd: 83189
    functionName: lookupName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - ExprHasProperty
    - VisibleRowid
    - sqlite3StrICmp
    - assert
    - sqlite3ExprDelete
    - nameInUsingClause
    - sqlite3MatchSpanName
    - sqlite3AuthRead
    - resolveAlias
    - sqlite3ErrorMsg
    - ExprSetVVAProperty
    - sqlite3IsRowid
    - testcase
    linkageType: ''
    returnType: int
    signature: "int lookupName(\n  Parse *pParse,       /* The parsing context */\n
      \ const char *zDb,     /* Name of the database containing table, or NULL */\n
      \ const char *zTab,    /* Name of table containing column, or NULL */\n  const
      char *zCol,    /* Name of the column. */\n  NameContext *pNC,    /* The name
      context used to resolve the name */\n  Expr *pExpr          /* Make this EXPR
      node point to the selected column */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83196,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83205,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83206,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - db
    - pSrc
    - iSrc
    - iCol
    argTypes:
    - sqlite3*
    - SrcList*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83212
      start: 83195
    functionDepth: 1
    functionLinenumber: 83195
    functionLinenumberEnd: 83212
    functionName: sqlite3CreateColumnExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - sqlite3ExprAlloc
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3CreateColumnExpr(sqlite3 *db, SrcList *pSrc,
      int iSrc, int iCol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - pNC
    - zMsg
    argTypes:
    - Parse*
    - NameContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83227
      start: 83218
    functionDepth: 8
    functionLinenumber: 83218
    functionLinenumberEnd: 83227
    functionName: notValidPartIdxWhere
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void notValidPartIdxWhere(\n  Parse *pParse,       /* Leave error
      message here */\n  NameContext *pNC,    /* The name context */\n  const char
      *zMsg     /* Type of error */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - pNC
    - zMsg
    argTypes:
    - Parse*
    - NameContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83241
      start: 83233
    functionDepth: 8
    functionLinenumber: 83233
    functionLinenumberEnd: 83241
    functionName: notValidCheckConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void notValidCheckConstraint(\n  Parse *pParse,       /* Leave error
      message here */\n  NameContext *pNC,    /* The name context */\n  const char
      *zMsg     /* Type of error */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83254,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( r>=0.0 )
      pos:
        line_end: 83254
        line_start: 83254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83258
      start: 83251
    functionDepth: 2
    functionLinenumber: 83251
    functionLinenumberEnd: 83258
    functionName: exprProbability
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AtoF
    - sqlite3Strlen30
    - assert
    linkageType: ''
    returnType: int
    signature: int exprProbability(Expr *p)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83276,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83278,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83280,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83281,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83287,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83301,1
    - Dst: lookupName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83335,1
    - Dst: lookupName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83340,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83355,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83357,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83357,1
    - Dst: notValidPartIdxWhere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83358,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83360,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83361,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83363,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83372,1
    - Dst: exprProbability
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83374,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83376,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83395,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83398,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83407,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83411,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83415,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83418,1
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83423,1
    - Dst: sqlite3FunctionUsesThisSrc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83428,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83432,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83434,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83435,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83448,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83451,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83452,1
    - Dst: notValidCheckConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83454,1
    - Dst: notValidPartIdxWhere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83455,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83456,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83457,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83459,1
    - Dst: notValidCheckConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83465,1
    - Dst: notValidPartIdxWhere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83466,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 137
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pNC!=0 )
      pos:
        line_end: 83275
        line_start: 83275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse==pWalker->pParse )
      pos:
        line_end: 83277
        line_start: 83277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrcList->a[i].iCursor>=0 && pSrcList->a[i].iCursor<pParse->nTab)
      pos:
        line_end: 83286
        line_start: 83286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrcList && pSrcList->nSrc==1 )
      pos:
        line_end: 83300
        line_start: 83300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRight->op==TK_DOT )
      pos:
        line_end: 83334
        line_start: 83334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 83356
        line_start: 83356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_FUNC_MINMAX==NC_MinMaxAgg )
      pos:
        line_end: 83433
        line_start: 83433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNC->nRef>=nRef )
      pos:
        line_end: 83456
        line_start: 83456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDef!=0 )
      pos:
        line_end: 83431
        line_start: 83431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83471
      start: 83271
    functionDepth: 9
    functionLinenumber: 83271
    functionLinenumberEnd: 83471
    functionName: resolveExprStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - sqlite3FindFunction
    - ExprHasProperty
    - assert
    - notValidPartIdxWhere
    - sqlite3WalkExprList
    - notValidCheckConstraint
    - exprProbability
    - ENC
    - sqlite3AuthCheck
    - sqlite3Strlen30
    - lookupName
    - sqlite3WalkSelect
    - sqlite3FunctionUsesThisSrc
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: int
    signature: int resolveExprStep(Walker *pWalker, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83492,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - pEList
    - pE
    argTypes:
    - Parse*
    - ExprList*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83504
      start: 83485
    functionDepth: 1
    functionLinenumber: 83485
    functionLinenumberEnd: 83504
    functionName: resolveAsName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int resolveAsName(\n  Parse *pParse,     /* Parsing context for error
      messages */\n  ExprList *pEList,  /* List of expressions to scan */\n  Expr
      *pE           /* Expression we are trying to match */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83536,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83536,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83541,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83550,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - pParse
    - pSelect
    - pE
    argTypes:
    - Parse*
    - Select*
    - Expr*
    assertStmts:
    - condition: ( sqlite3ExprIsInteger(pE, &i)==0 )
      pos:
        line_end: 83535
        line_start: 83535
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83566
      start: 83524
    functionDepth: 1
    functionLinenumber: 83524
    functionLinenumberEnd: 83566
    functionName: resolveOrderByTermToExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3ExprCompare
    - assert
    - sqlite3ExprIsInteger
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: int
    signature: "int resolveOrderByTermToExprList(\n  Parse *pParse,     /* Parsing
      context for error messages */\n  Select *pSelect,   /* The SELECT statement
      with the ORDER BY clause */\n  Expr *pE           /* The specific ORDER BY term
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - zType
    - i
    - mx
    argTypes:
    - Parse*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83580
      start: 83571
    functionDepth: 8
    functionLinenumber: 83571
    functionLinenumberEnd: 83580
    functionName: resolveOutOfRangeError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void resolveOutOfRangeError(\n  Parse *pParse,         /* The error
      context into which to write the error */\n  const char *zType,     /* \"ORDER\"
      or \"GROUP\" */\n  int i,                 /* The index (1-based) of the term
      out of range */\n  int mx                 /* Largest permissible value of i
      */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83628,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83633,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83634,1
    - Dst: resolveOutOfRangeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83636,1
    - Dst: resolveAsName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83640,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83642,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83644,1
    - Dst: resolveOrderByTermToExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83645,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83647,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83661,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83663,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83666,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83677,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts:
    - condition: ( pEList!=0 )
      pos:
        line_end: 83627
        line_start: 83627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pDup)
      pos:
        line_end: 83643
        line_start: 83643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->pLeft==pE )
      pos:
        line_end: 83662
        line_start: 83662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->op==TK_COLLATE )
      pos:
        line_end: 83660
        line_start: 83660
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83683
      start: 83597
    functionDepth: 9
    functionLinenumber: 83597
    functionLinenumberEnd: 83683
    functionName: resolveCompoundOrderBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDup
    - assert
    - sqlite3ExprIsInteger
    - resolveAsName
    - sqlite3Expr
    - sqlite3ExprDelete
    - resolveOutOfRangeError
    - resolveOrderByTermToExprList
    - sqlite3ErrorMsg
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int resolveCompoundOrderBy(\n  Parse *pParse,        /* Parsing context.
      \ Leave error messages here */\n  Select *pSelect       /* The SELECT statement
      containing the ORDER BY */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83714,1
    - Dst: resolveOutOfRangeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83718,1
    - Dst: resolveAlias
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pParse
    - pSelect
    - pOrderBy
    - zType
    argTypes:
    - Parse*
    - Select*
    - ExprList*
    - char*
    assertStmts:
    - condition: ( pEList!=0 )
      pos:
        line_end: 83713
        line_start: 83713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83726
      start: 83695
    functionDepth: 9
    functionLinenumber: 83695
    functionLinenumberEnd: 83726
    functionName: sqlite3ResolveOrderGroupBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - resolveOutOfRangeError
    - sqlite3ErrorMsg
    - resolveAlias
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveOrderGroupBy(\n  Parse *pParse,        /*
      Parsing context.  Leave error messages here */\n  Select *pSelect,      /* The
      SELECT statement containing the clause */\n  ExprList *pOrderBy,   /* The ORDER
      BY or GROUP BY clause to be processed */\n  const char *zType     /* \"ORDER\"
      or \"GROUP\" */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83763,1
    - Dst: resolveAsName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83765,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83775,1
    - Dst: resolveOutOfRangeError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83780,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83789,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83793,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83798,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - pNC
    - pSelect
    - pOrderBy
    - zType
    argTypes:
    - NameContext*
    - Select*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83799
      start: 83746
    functionDepth: 10
    functionLinenumber: 83746
    functionLinenumberEnd: 83799
    functionName: resolveOrderGroupBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompare
    - sqlite3ExprIsInteger
    - resolveAsName
    - sqlite3ResolveOrderGroupBy
    - resolveOutOfRangeError
    - sqlite3ResolveExprNames
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int resolveOrderGroupBy(\n  NameContext *pNC,     /* The name context
      of the SELECT statement */\n  Select *pSelect,      /* The SELECT statement
      holding pOrderBy */\n  ExprList *pOrderBy,   /* An ORDER BY or GROUP BY clause
      to resolve */\n  const char *zType     /* Either \"ORDER\" or \"GROUP\", as
      appropriate */\n)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83817,1
    - Dst: sqlite3SelectPrep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83834,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83843,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83849,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83851,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83865,1
    - Dst: sqlite3ResolveSelectNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83887,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83892,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83906,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83909,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83920,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83929,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83942,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83943,1
    - Dst: resolveOrderGroupBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83973,1
    - Dst: resolveOrderGroupBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83987,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83991,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:83992,1
    - Dst: sqlite3SelectWrongNumTermsError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84002,1
    - Dst: resolveCompoundOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84015,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 107
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pEList!=0 )
      pos:
        line_end: 83905
        line_start: 83905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 83816
        line_start: 83816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->selFlags & SF_Resolved)==0 )
      pos:
        line_end: 83842
        line_start: 83842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->selFlags & SF_Expanded)!=0 )
      pos:
        line_end: 83841
        line_start: 83841
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->isCorrelated==0 && nRef<=0 )
      pos:
        line_end: 83891
        line_start: 83891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( NC_MinMaxAgg==SF_MinMaxAgg )
      pos:
        line_end: 83919
        line_start: 83919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSrc->nSrc==1 && p->pOrderBy )
      pos:
        line_end: 83863
        line_start: 83863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSub->pPrior && pSub->pOrderBy==0 )
      pos:
        line_end: 83864
        line_start: 83864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->selFlags & SF_Aggregate)==0 )
      pos:
        line_end: 83916
        line_start: 83916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84020
      start: 83804
    functionDepth: 11
    functionLinenumber: 83804
    functionLinenumberEnd: 84020
    functionName: resolveSelectStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ExprHasProperty
    - sqlite3SelectWrongNumTermsError
    - assert
    - sqlite3SelectPrep
    - resolveCompoundOrderBy
    - resolveOrderGroupBy
    - sqlite3ResolveSelectNames
    - sqlite3ResolveExprNames
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: int resolveSelectStep(Walker *pWalker, Select *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCheckHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84081,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84089,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84094,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84099,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84102,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - pNC
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84106
      start: 84070
    functionDepth: 2
    functionLinenumber: 84070
    functionLinenumberEnd: 84106
    functionName: sqlite3ResolveExprNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - ExprSetProperty
    - memset
    - ExprHasProperty
    - sqlite3ExprCheckHeight
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveExprNames( \n  NameContext *pNC,       /*
      Namespace to resolve expressions in. */\n  Expr *pExpr             /* The expression
      to be analyzed. */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84128,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84129,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - p
    - pOuterNC
    argTypes:
    - Parse*
    - Select*
    - NameContext*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 84127
        line_start: 84127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84135
      start: 84121
    functionDepth: 5
    functionLinenumber: 84121
    functionLinenumberEnd: 84135
    functionName: sqlite3ResolveSelectNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3WalkSelect
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveSelectNames(\n  Parse *pParse,         /*
      The parser context */\n  Select *p,             /* The SELECT statement being
      coded. */\n  NameContext *pOuterNC  /* Name context for parent SELECT statement
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84159,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84160,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84161,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84169,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - pParse
    - pTab
    - type
    - pExpr
    - pList
    argTypes:
    - Parse*
    - Table*
    - int
    - Expr*
    - ExprList*
    assertStmts:
    - condition: ( type==NC_IsCheck || type==NC_PartIdx )
      pos:
        line_end: 84158
        line_start: 84158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84177
      start: 84148
    functionDepth: 3
    functionLinenumber: 84148
    functionLinenumberEnd: 84177
    functionName: sqlite3ResolveSelfReference
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveExprNames
    - memset
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveSelfReference(\n  Parse *pParse,      /*
      Parsing context */\n  Table *pTab,        /* The table being referenced */\n
      \ int type,           /* NC_IsCheck or NC_PartIdx */\n  Expr *pExpr,        /*
      Expression to resolve.  May be NULL. */\n  ExprList *pList     /* Expression
      list to resolve.  May be NUL. */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84215,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84219,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84224,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84224,1
    - Dst: sqlite3AffinityType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84225,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( pExpr->flags&EP_xIsSelect )
      pos:
        line_end: 84218
        line_start: 84218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 84223
        line_start: 84223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->pTab && j<pExpr->pTab->nCol )
      pos:
        line_end: 84234
        line_start: 84234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84239
      start: 84213
    functionDepth: 1
    functionLinenumber: 84213
    functionLinenumberEnd: 84239
    functionName: sqlite3ExprAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3AffinityType
    - sqlite3ExprAffinity
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAffinity(Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - pCollName
    - dequote
    argTypes:
    - Parse*
    - Expr*
    - Token*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84264
      start: 84249
    functionDepth: 1
    functionLinenumber: 84249
    functionLinenumberEnd: 84264
    functionName: sqlite3ExprAddCollateToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprAddCollateToken(\n  Parse *pParse,           /*
      Parsing context */\n  Expr *pExpr,             /* Add the \"COLLATE\" clause
      to this expression */\n  const Token *pCollName,  /* Name of collating sequence
      */\n  int dequote              /* True to dequote pCollName */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84267,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84269,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - zC
    argTypes:
    - Parse*
    - Expr*
    - char*
    assertStmts:
    - condition: ( zC!=0 )
      pos:
        line_end: 84266
        line_start: 84266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84271
      start: 84265
    functionDepth: 2
    functionLinenumber: 84265
    functionLinenumberEnd: 84271
    functionName: sqlite3ExprAddCollateString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprAddCollateToken
    - sqlite3Strlen30
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr,
      const char *zC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84278,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84279,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84280,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84280,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84281,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84282,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 84279
        line_start: 84279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->x.pList->nExpr>0 )
      pos:
        line_end: 84280
        line_start: 84280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op==TK_FUNCTION )
      pos:
        line_end: 84281
        line_start: 84281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op==TK_COLLATE || pExpr->op==TK_AS )
      pos:
        line_end: 84284
        line_start: 84284
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84290
      start: 84277
    functionDepth: 1
    functionLinenumber: 84277
    functionLinenumberEnd: 84290
    functionName: sqlite3ExprSkipCollate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - ExprHasProperty
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprSkipCollate(Expr *pExpr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84313,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84313,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84325,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84325,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84335,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84339,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84339,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84341,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84342,1
    - Dst: sqlite3CheckCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84354,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 41
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( p->x.pList==0 || p->pRight==0 )
      pos:
        line_end: 84334
        line_start: 84334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84358
      start: 84301
    functionDepth: 1
    functionLinenumber: 84301
    functionLinenumberEnd: 84358
    functionName: sqlite3ExprCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3GetCollSeq
    - sqlite3FindCollSeq
    - ALWAYS
    - ENC
    - sqlite3CheckCollSeq
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84366,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84371,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84371,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84383,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - pExpr
    - aff2
    argTypes:
    - Expr*
    - char
    assertStmts:
    - condition: ( aff1==0 || aff2==0 )
      pos:
        line_end: 84382
        line_start: 84382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84386
      start: 84365
    functionDepth: 2
    functionLinenumber: 84365
    functionLinenumberEnd: 84386
    functionName: sqlite3CompareAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNumericAffinity
    - assert
    - sqlite3ExprAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CompareAffinity(Expr *pExpr, char aff2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84397,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84398,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84400,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84401,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84402,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: "( pExpr->op==TK_EQ || pExpr->op==TK_IN || pExpr->op==TK_LT ||\n
        \         pExpr->op==TK_GT || pExpr->op==TK_GE || pExpr->op==TK_LE ||\n          pExpr->op==TK_NE
        || pExpr->op==TK_IS || pExpr->op==TK_ISNOT )"
      pos:
        line_end: 84395
        line_start: 84393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->pLeft )
      pos:
        line_end: 84396
        line_start: 84396
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84407
      start: 84392
    functionDepth: 3
    functionLinenumber: 84392
    functionLinenumberEnd: 84407
    functionName: comparisonAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3CompareAffinity
    - ExprHasProperty
    - assert
    - sqlite3ExprAffinity
    linkageType: ''
    returnType: char
    signature: char comparisonAffinity(Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: comparisonAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84416,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pExpr
    - idx_affinity
    argTypes:
    - Expr*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84425
      start: 84415
    functionDepth: 4
    functionLinenumber: 84415
    functionLinenumberEnd: 84425
    functionName: sqlite3IndexAffinityOk
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNumericAffinity
    - comparisonAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexAffinityOk(Expr *pExpr, char idx_affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84432,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pExpr1
    - pExpr2
    - jumpIfNull
    argTypes:
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84435
      start: 84431
    functionDepth: 3
    functionLinenumber: 84431
    functionLinenumberEnd: 84435
    functionName: binaryCompareP5
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3CompareAffinity
    - sqlite3ExprAffinity
    linkageType: ''
    returnType: u8
    signature: u8 binaryCompareP5(Expr *pExpr1, Expr *pExpr2, int jumpIfNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84455,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84457,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84459,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84461,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - pLeft
    - pRight
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( pLeft )
      pos:
        line_end: 84454
        line_start: 84454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84467
      start: 84449
    functionDepth: 2
    functionLinenumber: 84449
    functionLinenumberEnd: 84467
    functionName: sqlite3BinaryCompareCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCollSeq
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3BinaryCompareCollSeq(\n  Parse *pParse, \n
      \ Expr *pLeft, \n  Expr *pRight\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84485,1
    - Dst: binaryCompareP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84486,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84487,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - pParse
    - pLeft
    - pRight
    - opcode
    - in1
    - in2
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84491
      start: 84472
    functionDepth: 9
    functionLinenumber: 84472
    functionLinenumberEnd: 84491
    functionName: codeCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - binaryCompareP5
    - sqlite3BinaryCompareCollSeq
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: int
    signature: "int codeCompare(\n  Parse *pParse,    /* The parsing (and code generating)
      context */\n  Expr *pLeft,      /* The left operand */\n  Expr *pRight,     /*
      The right operand */\n  int opcode,       /* The comparison opcode */\n  int
      in1, int in2, /* Register holding operands */\n  int dest,         /* Jump here
      if true.  */\n  int jumpIfNull    /* If true, jump if either operand is NULL
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - nHeight
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84509
      start: 84499
    functionDepth: 8
    functionLinenumber: 84499
    functionLinenumberEnd: 84509
    functionName: sqlite3ExprCheckHeight
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCheckHeight(Parse *pParse, int nHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pnHeight
    argTypes:
    - Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84526
      start: 84520
    functionDepth: 0
    functionLinenumber: 84520
    functionLinenumberEnd: 84526
    functionName: heightOfExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void heightOfExpr(Expr *p, int *pnHeight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pnHeight
    argTypes:
    - ExprList*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84534
      start: 84527
    functionDepth: 1
    functionLinenumber: 84527
    functionLinenumberEnd: 84534
    functionName: heightOfExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfExpr
    linkageType: ''
    returnType: void
    signature: void heightOfExprList(ExprList *p, int *pnHeight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84537,1
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84538,1
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84539,1
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84540,1
    - Dst: heightOfExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84541,1
    - Dst: heightOfExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84542,1
    - Dst: heightOfExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84543,1
    - Dst: heightOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pnHeight
    argTypes:
    - Select*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84546
      start: 84535
    functionDepth: 2
    functionLinenumber: 84535
    functionLinenumberEnd: 84546
    functionName: heightOfSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - heightOfExprList
    - heightOfSelect
    - heightOfExpr
    linkageType: ''
    returnType: void
    signature: void heightOfSelect(Select *p, int *pnHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84560,1
    - Dst: heightOfExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84561,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84562,1
    - Dst: heightOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84563,1
    - Dst: heightOfExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84565,1
    - Dst: sqlite3ExprListFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84569
      start: 84558
    functionDepth: 3
    functionLinenumber: 84558
    functionLinenumberEnd: 84569
    functionName: exprSetHeight
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - heightOfExprList
    - heightOfSelect
    - heightOfExpr
    - sqlite3ExprListFlags
    linkageType: ''
    returnType: void
    signature: void exprSetHeight(Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exprSetHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84581,1
    - Dst: sqlite3ExprCheckHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84583
      start: 84579
    functionDepth: 9
    functionLinenumber: 84579
    functionLinenumberEnd: 84583
    functionName: sqlite3ExprSetHeightAndFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCheckHeight
    - exprSetHeight
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heightOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84593
      start: 84589
    functionDepth: 3
    functionLinenumber: 84589
    functionLinenumberEnd: 84593
    functionName: sqlite3SelectExprHeight
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectExprHeight(Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84600,1
    - Dst: sqlite3ExprListFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84603
      start: 84599
    functionDepth: 1
    functionLinenumber: 84599
    functionLinenumberEnd: 84603
    functionName: sqlite3ExprSetHeightAndFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ExprListFlags
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84641,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84644,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84655,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84656,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84660,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 4
    argNames:
    - db
    - op
    - pToken
    - dequote
    argTypes:
    - sqlite3*
    - int
    - Token*
    - int
    assertStmts:
    - condition: ( iValue>=0 )
      pos:
        line_end: 84640
        line_start: 84640
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToken->z!=0 || pToken->n==0 )
      pos:
        line_end: 84654
        line_start: 84654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84670
      start: 84627
    functionDepth: 2
    functionLinenumber: 84627
    functionLinenumberEnd: 84670
    functionName: sqlite3ExprAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Dequote
    - sqlite3GetInt32
    - assert
    - sqlite3DbMallocZero
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprAlloc(\n  sqlite3 *db,            /* Handle
      for sqlite3DbMallocZero() (may be null) */\n  int op,                 /* Expression
      opcode */\n  const Token *pToken,    /* Token argument.  Might be NULL */\n
      \ int dequote             /* True to dequote */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84683,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - op
    - zToken
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84685
      start: 84676
    functionDepth: 3
    functionLinenumber: 84676
    functionLinenumberEnd: 84685
    functionName: sqlite3Expr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprAlloc
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3Expr(\n  sqlite3 *db,            /* Handle
      for sqlite3DbMallocZero() (may be null) */\n  int op,                 /* Expression
      opcode */\n  const char *zToken      /* Token argument.  Might be NULL */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84700,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84701,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84702,1
    - Dst: exprSetHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - db
    - pRoot
    - pLeft
    - pRight
    argTypes:
    - sqlite3*
    - Expr*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( db->mallocFailed )
      pos:
        line_end: 84699
        line_start: 84699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84714
      start: 84693
    functionDepth: 4
    functionLinenumber: 84693
    functionLinenumberEnd: 84714
    functionName: sqlite3ExprAttachSubtrees
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprSetHeight
    - sqlite3ExprDelete
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprAttachSubtrees(\n  sqlite3 *db,\n  Expr
      *pRoot,\n  Expr *pLeft,\n  Expr *pRight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84733,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84735,1
    - Dst: sqlite3ExprAttachSubtrees
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84736,1
    - Dst: sqlite3ExprCheckHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - pParse
    - op
    - pLeft
    - pRight
    - pToken
    argTypes:
    - Parse*
    - int
    - Expr*
    - Expr*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84742
      start: 84723
    functionDepth: 9
    functionLinenumber: 84723
    functionLinenumberEnd: 84742
    functionName: sqlite3PExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCheckHeight
    - sqlite3ExprAnd
    - sqlite3ExprAlloc
    - sqlite3ExprAttachSubtrees
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3PExpr(\n  Parse *pParse,          /* Parsing
      context */\n  int op,                 /* Expression opcode */\n  Expr *pLeft,
      \           /* Left operand */\n  Expr *pRight,           /* Right operand */\n
      \ const Token *pToken     /* Argument token */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84760,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84763
      start: 84758
    functionDepth: 1
    functionLinenumber: 84758
    functionLinenumberEnd: 84763
    functionName: exprAlwaysTrue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: int
    signature: int exprAlwaysTrue(Expr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84766,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84769
      start: 84764
    functionDepth: 1
    functionLinenumber: 84764
    functionLinenumberEnd: 84769
    functionName: exprAlwaysFalse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: int
    signature: int exprAlwaysFalse(Expr *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exprAlwaysFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84784,1
    - Dst: exprAlwaysFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84784,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84785,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84786,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84787,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84789,1
    - Dst: sqlite3ExprAttachSubtrees
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - db
    - pLeft
    - pRight
    argTypes:
    - sqlite3*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84793
      start: 84779
    functionDepth: 5
    functionLinenumber: 84779
    functionLinenumberEnd: 84793
    functionName: sqlite3ExprAnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprAlloc
    - sqlite3ExprDelete
    - sqlite3ExprAttachSubtrees
    - exprAlwaysFalse
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprAnd(sqlite3 *db, Expr *pLeft, Expr *pRight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84802,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84803,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84805,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84809,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84809,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pList
    - pToken
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    assertStmts:
    - condition: ( pToken )
      pos:
        line_end: 84801
        line_start: 84801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pNew, EP_xIsSelect) )
      pos:
        line_end: 84808
        line_start: 84808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84812
      start: 84799
    functionDepth: 10
    functionLinenumber: 84799
    functionLinenumberEnd: 84812
    functionName: sqlite3ExprFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3ExprSetHeightAndFlags
    - sqlite3ExprAlloc
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprFunction(Parse *pParse, ExprList *pList,
      Token *pToken)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84835,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84837,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84838,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84841,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84845,1
    - Dst: sqlite3Atoi64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84850,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84852,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84853,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84854,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84855,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84857,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84871,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84881,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84884,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84888,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84889,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84894,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue|EP_Reduced|EP_TokenOnly) )
      pos:
        line_end: 84834
        line_start: 84834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z[0]!=0 )
      pos:
        line_end: 84837
        line_start: 84837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z!=0 )
      pos:
        line_end: 84836
        line_start: 84836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z[0]=='?' )
      pos:
        line_end: 84840
        line_start: 84840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84896
      start: 84830
    functionDepth: 8
    functionLinenumber: 84830
    functionLinenumberEnd: 84896
    functionName: sqlite3ExprAssignVarNumber
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ExprHasProperty
    - assert
    - sqlite3DbRealloc
    - sqlite3Atoi64
    - strcmp
    - sqlite3Strlen30
    - sqlite3DbStrNDup
    - sqlite3ErrorMsg
    - testcase
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84904,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84904,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84905,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84907,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84908,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84909,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84910,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84910,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84911,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84912,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84914,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84917,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 )
      pos:
        line_end: 84903
        line_start: 84903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->x.pList==0 || p->pRight==0 )
      pos:
        line_end: 84906
        line_start: 84906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84920
      start: 84901
    functionDepth: 5
    functionLinenumber: 84901
    functionLinenumberEnd: 84920
    functionName: sqlite3ExprDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 6
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3SelectDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprDelete(sqlite3 *db, Expr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84928,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84931
      start: 84927
    functionDepth: 1
    functionLinenumber: 84927
    functionLinenumberEnd: 84931
    functionName: exprStructSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int exprStructSize(Expr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84969,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84970,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84971,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84975,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84976,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84977,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84977,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84978,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84978,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts:
    - condition: ( flags==EXPRDUP_REDUCE || flags==0 )
      pos:
        line_end: 84968
        line_start: 84968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (0xfff & (EP_Reduced|EP_TokenOnly))==0 )
      pos:
        line_end: 84970
        line_start: 84970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 84974
        line_start: 84974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EXPR_FULLSIZE<=0xfff )
      pos:
        line_end: 84969
        line_start: 84969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_FromJoin) )
      pos:
        line_end: 84975
        line_start: 84975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_MemToken) )
      pos:
        line_end: 84976
        line_start: 84976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_NoReduce) )
      pos:
        line_end: 84977
        line_start: 84977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pRight==0 )
      pos:
        line_end: 84981
        line_start: 84981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84987
      start: 84967
    functionDepth: 1
    functionLinenumber: 84967
    functionLinenumberEnd: 84987
    functionName: dupedExprStructSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    linkageType: ''
    returnType: int
    signature: int dupedExprStructSize(Expr *p, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dupedExprStructSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84995,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84996,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84997,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:84999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85000
      start: 84994
    functionDepth: 2
    functionLinenumber: 84994
    functionLinenumberEnd: 85000
    functionName: dupedExprNodeSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - ROUND8
    - dupedExprStructSize
    - sqlite3Strlen30
    linkageType: ''
    returnType: int
    signature: int dupedExprNodeSize(Expr *p, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dupedExprNodeSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85018,1
    - Dst: dupedExprSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85020,1
    - Dst: dupedExprSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85024
      start: 85015
    functionDepth: 3
    functionLinenumber: 85015
    functionLinenumberEnd: 85024
    functionName: dupedExprSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - dupedExprNodeSize
    - dupedExprSize
    linkageType: ''
    returnType: int
    signature: int dupedExprSize(Expr *p, int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85041,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85048,1
    - Dst: dupedExprSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85048,1
    - Dst: dupedExprStructSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85058,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85061,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85062,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85067,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85067,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85068,1
    - Dst: exprStructSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85070,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85071,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85072,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85083,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85088,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85089,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85091,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85096,1
    - Dst: dupedExprNodeSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85097,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85098,1
    - Dst: exprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85099,1
    - Dst: exprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85100,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85106,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85107,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85108,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 4
    argNames:
    - db
    - p
    - flags
    - pzBuffer
    argTypes:
    - sqlite3*
    - Expr*
    - int
    - u8**
    assertStmts:
    - condition: ( pzBuffer==0 || isReduced )
      pos:
        line_end: 85040
        line_start: 85040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ExprHasProperty(p, EP_Reduced)==0 )
      pos:
        line_end: 85066
        line_start: 85066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85115
      start: 85034
    functionDepth: 5
    functionLinenumber: 85034
    functionLinenumberEnd: 85115
    functionName: exprDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - ExprHasProperty
    - sqlite3ExprDup
    - assert
    - sqlite3SelectDup
    - memcpy
    - exprStructSize
    - dupedExprNodeSize
    - sqlite3ExprListDup
    - sqlite3Strlen30
    - exprDup
    - dupedExprSize
    - dupedExprStructSize
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: Expr
    signature: Expr *exprDup(sqlite3 *db, Expr *p, int flags, u8 **pzBuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85127,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85132,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85133,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - With*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85139
      start: 85123
    functionDepth: 6
    functionLinenumber: 85123
    functionLinenumberEnd: 85139
    functionName: withDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListDup
    - sqlite3SelectDup
    - sqlite3DbMallocZero
    - sqlite3DbStrDup
    linkageType: ''
    returnType: With
    signature: With *withDup(sqlite3 *db, With *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85142
      start: 85141
    functionDepth: 0
    functionLinenumber: 85141
    functionLinenumberEnd: 85142
    functionName: withDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: withDup(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85163
      start: 85161
    functionDepth: 6
    functionLinenumber: 85161
    functionLinenumberEnd: 85163
    functionName: sqlite3ExprDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - exprDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprDup(sqlite3 *db, Expr *p, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85169,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85173,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85175,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85181,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85182,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - ExprList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85190
      start: 85164
    functionDepth: 7
    functionLinenumber: 85164
    functionLinenumberEnd: 85190
    functionName: sqlite3ExprListDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExprDup
    - sqlite3DbFree
    - sqlite3DbStrDup
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprListDup(sqlite3 *db, ExprList *p, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85206,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85214,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85215,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85216,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85224,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85231,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85232,1
    - Dst: sqlite3IdListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - SrcList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85237
      start: 85200
    functionDepth: 7
    functionLinenumber: 85200
    functionLinenumberEnd: 85237
    functionName: sqlite3SrcListDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDup
    - sqlite3ExprDup
    - sqlite3SelectDup
    - sqlite3DbStrDup
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SrcListDup(sqlite3 *db, SrcList *p, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85242,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85245,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85247,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - IdList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85260
      start: 85238
    functionDepth: 6
    functionLinenumber: 85238
    functionLinenumberEnd: 85260
    functionName: sqlite3IdListDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbStrDup
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IdListDup(sqlite3 *db, IdList *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85264,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85266,1
    - Dst: sqlite3SrcListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85267,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85268,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85269,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85270,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85271,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85273,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85276,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85277,1
    - Dst: withDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85284,1
    - Dst: sqlite3SelectSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85287
      start: 85261
    functionDepth: 8
    functionLinenumber: 85261
    functionLinenumberEnd: 85287
    functionName: sqlite3SelectDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3ExprDup
    - sqlite3SelectDup
    - sqlite3ExprListDup
    - withDup
    - sqlite3SrcListDup
    - sqlite3SelectSetName
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SelectDup(sqlite3 *db, Select *p, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts:
    - condition: ( p==0 )
      pos:
        line_end: 85289
        line_start: 85289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85292
      start: 85289
    functionDepth: 0
    functionLinenumber: 85289
    functionLinenumberEnd: 85292
    functionName: sqlite3SelectDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SelectDup(sqlite3 *db, Select *p, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85311,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85319,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85320,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85326,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85329,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85336,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - pParse
    - pList
    - pExpr
    argTypes:
    - Parse*
    - ExprList*
    - Expr*
    assertStmts:
    - condition: ( pList->a!=0 )
      pos:
        line_end: 85325
        line_start: 85325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 85318
        line_start: 85318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85339
      start: 85304
    functionDepth: 6
    functionLinenumber: 85304
    functionLinenumberEnd: 85339
    functionName: sqlite3ExprListAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3DbMallocZero
    - sqlite3DbRealloc
    - sqlite3ExprDelete
    - sqlite3ExprListDelete
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprListAppend(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to append. Might
      be NULL */\n  Expr *pExpr             /* Expression to be appended. Might be
      NULL */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85355,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85358,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85360,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85361,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - pParse
    - pList
    - pName
    - dequote
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - int
    assertStmts:
    - condition: ( pList!=0 || pParse->db->mallocFailed!=0 )
      pos:
        line_end: 85354
        line_start: 85354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->zName==0 )
      pos:
        line_end: 85359
        line_start: 85359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 85357
        line_start: 85357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85364
      start: 85349
    functionDepth: 6
    functionLinenumber: 85349
    functionLinenumberEnd: 85364
    functionName: sqlite3ExprListSetName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Dequote
    - sqlite3DbStrNDup
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListSetName(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to add the span.
      */\n  Token *pName,           /* Name to be added */\n  int dequote             /*
      True to cause the name to be dequoted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85380,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85383,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85384,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85385,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - pList
    - pSpan
    argTypes:
    - Parse*
    - ExprList*
    - ExprSpan*
    assertStmts:
    - condition: ( pList!=0 || db->mallocFailed!=0 )
      pos:
        line_end: 85379
        line_start: 85379
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed || pItem->pExpr==pSpan->pExpr )
      pos:
        line_end: 85383
        line_start: 85383
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 85382
        line_start: 85382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85389
      start: 85374
    functionDepth: 6
    functionLinenumber: 85374
    functionLinenumberEnd: 85389
    functionName: sqlite3ExprListSetSpan
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListSetSpan(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to add the span.
      */\n  ExprSpan *pSpan         /* The span to be added */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85401,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85402,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - pEList
    - zObject
    argTypes:
    - Parse*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85406
      start: 85395
    functionDepth: 8
    functionLinenumber: 85395
    functionLinenumberEnd: 85406
    functionName: sqlite3ExprListCheckLength
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListCheckLength(\n  Parse *pParse,\n  ExprList
      *pEList,\n  const char *zObject\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85415,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85417,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85418,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85419,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85421,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - ExprList*
    assertStmts:
    - condition: ( pList->a!=0 || pList->nExpr==0 )
      pos:
        line_end: 85414
        line_start: 85414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85423
      start: 85411
    functionDepth: 6
    functionLinenumber: 85411
    functionLinenumberEnd: 85423
    functionName: sqlite3ExprListDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3ExprDelete
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListDelete(sqlite3 *db, ExprList *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pList
    argTypes:
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85439
      start: 85429
    functionDepth: 1
    functionLinenumber: 85429
    functionLinenumberEnd: 85439
    functionName: sqlite3ExprListFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListFlags(const ExprList *pList)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85471,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85481,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85491,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85492,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85493,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85494,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85515,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85519
      start: 85466
    functionDepth: 1
    functionLinenumber: 85466
    functionLinenumberEnd: 85519
    functionName: exprNodeIsConstant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: int
    signature: int exprNodeIsConstant(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - NotUsed
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85524
      start: 85520
    functionDepth: 1
    functionLinenumber: 85520
    functionLinenumberEnd: 85524
    functionName: selectNodeIsConstant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int selectNodeIsConstant(Walker *pWalker, Select *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85527,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - p
    - initFlag
    - iCur
    argTypes:
    - Expr*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85534
      start: 85525
    functionDepth: 2
    functionLinenumber: 85525
    functionLinenumberEnd: 85534
    functionName: exprIsConst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    - memset
    linkageType: ''
    returnType: int
    signature: int exprIsConst(Expr *p, int initFlag, int iCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85546
      start: 85544
    functionDepth: 3
    functionLinenumber: 85544
    functionLinenumberEnd: 85546
    functionName: sqlite3ExprIsConstant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstant(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85556
      start: 85554
    functionDepth: 3
    functionLinenumber: 85554
    functionLinenumberEnd: 85556
    functionName: sqlite3ExprIsConstantNotJoin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstantNotJoin(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - iCur
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85566
      start: 85564
    functionDepth: 3
    functionLinenumber: 85564
    functionLinenumberEnd: 85566
    functionName: sqlite3ExprIsTableConstant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsTableConstant(Expr *p, int iCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85578,1
    - Dst: exprIsConst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - isInit
    argTypes:
    - Expr*
    - u8
    assertStmts:
    - condition: ( isInit==0 || isInit==1 )
      pos:
        line_end: 85577
        line_start: 85577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85580
      start: 85577
    functionDepth: 3
    functionLinenumber: 85577
    functionLinenumberEnd: 85580
    functionName: sqlite3ExprIsConstantOrFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstantOrFunction(Expr *p, u8 isInit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85593,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85594,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85602,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85607,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pValue
    argTypes:
    - Expr*
    - int*
    assertStmts:
    - condition: "( p->op!=TK_INTEGER || (p->flags & EP_IntValue)!=0\n           ||
        sqlite3GetInt32(p->u.zToken, &rc)==0 )"
      pos:
        line_end: 85593
        line_start: 85592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=(-2147483647-1) )
      pos:
        line_end: 85607
        line_start: 85607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85617
      start: 85588
    functionDepth: 2
    functionLinenumber: 85588
    functionLinenumberEnd: 85617
    functionName: sqlite3ExprIsInteger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3GetInt32
    - assert
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsInteger(Expr *p, int *pValue)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85645,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( p->pTab!=0 )
      pos:
        line_end: 85644
        line_start: 85644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85651
      start: 85633
    functionDepth: 1
    functionLinenumber: 85633
    functionLinenumberEnd: 85651
    functionName: sqlite3ExprCanBeNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCanBeNull(const Expr *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85683,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - p
    - aff
    argTypes:
    - Expr*
    - char
    assertStmts:
    - condition: ( p->iTable>=0 )
      pos:
        line_end: 85682
        line_start: 85682
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85691
      start: 85663
    functionDepth: 0
    functionLinenumber: 85663
    functionLinenumberEnd: 85691
    functionName: sqlite3ExprNeedsNoAffinityChange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprNeedsNoAffinityChange(const Expr *p, char
      aff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85697,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85698,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85701
      start: 85696
    functionDepth: 0
    functionLinenumber: 85696
    functionLinenumberEnd: 85701
    functionName: sqlite3IsRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsRowid(const char *z)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85723,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85724,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85729,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85732,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85736,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85737,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85738,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts:
    - condition: ( pSrc!=0 )
      pos:
        line_end: 85731
        line_start: 85731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pGroupBy==0 )
      pos:
        line_end: 85726
        line_start: 85726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOffset==0 )
      pos:
        line_end: 85728
        line_start: 85728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 85736
        line_start: 85736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85743
      start: 85716
    functionDepth: 1
    functionLinenumber: 85716
    functionLinenumberEnd: 85743
    functionName: isCandidateForInOpt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - testcase
    - assert
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int isCandidateForInOpt(Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85751,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85753
      start: 85750
    functionDepth: 9
    functionLinenumber: 85750
    functionLinenumberEnd: 85753
    functionName: sqlite3CodeOnce
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp1
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeOnce(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85763,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85764,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85764,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85765,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85766,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85767,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - v
    - iCur
    - regHasNull
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85769
      start: 85761
    functionDepth: 9
    functionLinenumber: 85761
    functionLinenumberEnd: 85769
    functionName: sqlite3SetHasNullFlag
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeJumpHere
    - VdbeCoverage
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: void sqlite3SetHasNullFlag(Vdbe *v, int iCur, int regHasNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85780,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85780,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pIn, EP_xIsSelect) )
      pos:
        line_end: 85779
        line_start: 85779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85786
      start: 85777
    functionDepth: 4
    functionLinenumber: 85777
    functionLinenumberEnd: 85786
    functionName: sqlite3InRhsIsConstant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3ExprIsConstant
    linkageType: ''
    returnType: int
    signature: int sqlite3InRhsIsConstant(Expr *pIn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85865,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85867,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85874,1
    - Dst: isCandidateForInOpt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85875,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85882,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85883,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85885,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85891,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85892,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85893,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85899,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85901,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85902,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85904,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85907,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85914,1
    - Dst: sqlite3IndexAffinityOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85920,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85924,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85924,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85925,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85927,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85927,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85928,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85929,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85931,1
    - Dst: sqlite3SetHasNullFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85936,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85938,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85953,1
    - Dst: sqlite3InRhsIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85954,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85969,1
    - Dst: sqlite3CodeSubselect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:85975,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 4
    argNames:
    - pParse
    - pX
    - inFlags
    - prRhsHasNull
    argTypes:
    - Parse*
    - Expr*
    - u32
    - int*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 85881
        line_start: 85881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList->a[0].pExpr!=0 )
      pos:
        line_end: 85883
        line_start: 85883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pX->op==TK_IN )
      pos:
        line_end: 85866
        line_start: 85866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSrc!=0 )
      pos:
        line_end: 85884
        line_start: 85884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IN_INDEX_INDEX_DESC == IN_INDEX_INDEX_ASC+1 )
      pos:
        line_end: 85930
        line_start: 85930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList!=0 )
      pos:
        line_end: 85882
        line_start: 85882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (v)
      pos:
        line_end: 85898
        line_start: 85898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 85981
      start: 85860
    functionDepth: 13
    functionLinenumber: 85860
    functionLinenumberEnd: 85981
    functionName: sqlite3FindInIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3SetHasNullFlag
    - sqlite3TableLock
    - ENC
    - sqlite3VdbeAddOp3
    - sqlite3CodeOnce
    - sqlite3VdbeSetP4KeyInfo
    - IsUniqueIndex
    - sqlite3SchemaToIndex
    - sqlite3CodeVerifySchema
    - sqlite3OpenTable
    - VdbeCoverage
    - VdbeComment
    - sqlite3CodeSubselect
    - sqlite3IndexAffinityOk
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3BinaryCompareCollSeq
    - isCandidateForInOpt
    - sqlite3FindCollSeq
    - sqlite3InRhsIsConstant
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FindInIndex(Parse *pParse, Expr *pX, u32 inFlags,
      int *prRhsHasNull)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86020,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86021,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86022,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86034,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86035,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86035,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86040,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86044,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86055,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86071,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86072,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86074,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86084,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86085,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86087,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86089,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86090,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86091,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86097,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86099,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86099,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86100,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86119,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86119,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86120,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86124,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86125,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86126,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86136,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86137,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86142,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86143,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86145,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86147,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86148,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86149,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86150,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86152,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86153,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86154,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86158,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86159,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86162,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86179,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86180,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86183,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86183,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86185,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86189,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86190,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86193,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86194,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86196,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86197,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86201,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86205,1
    - Dst: sqlite3SetHasNullFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86211,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86215,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86217,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 115
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - rHasNullFlag
    - isRowid
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( pKeyInfo!=0 )
      pos:
        line_end: 86095
        line_start: 86095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 86182
        line_start: 86182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !isRowid )
      pos:
        line_end: 86083
        line_start: 86083
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 86096
        line_start: 86096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyInfo) )
      pos:
        line_end: 86098
        line_start: 86098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyInfo) )
      pos:
        line_end: 86118
        line_start: 86118
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op==TK_EXISTS || pExpr->op==TK_SELECT )
      pos:
        line_end: 86180
        line_start: 86180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pExpr->iTable&0x0000FFFF)==pExpr->iTable )
      pos:
        line_end: 86086
        line_start: 86086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEList->nExpr>0 )
      pos:
        line_end: 86097
        line_start: 86097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86220
      start: 86012
    functionDepth: 12
    functionLinenumber: 86012
    functionLinenumberEnd: 86220
    functionName: sqlite3CodeSubselect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprHasProperty
    - sqlite3SetHasNullFlag
    - sqlite3KeyInfoIsWriteable
    - sqlite3ReleaseTempReg
    - sqlite3ExprCodeTarget
    - sqlite3ExprCollSeq
    - sqlite3KeyInfoAlloc
    - sqlite3CodeOnce
    - sqlite3VdbeAddOp3
    - sqlite3KeyInfoUnref
    - NEVER
    - sqlite3SelectDestInit
    - sqlite3Select
    - VdbeCoverage
    - VdbeComment
    - ExprSetVVAProperty
    - sqlite3ExprCachePush
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3ExprIsInteger
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeToNoop
    - ALWAYS
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3BinaryCompareCollSeq
    - sqlite3VdbeChangeP4
    - sqlite3PExpr
    - sqlite3MPrintf
    - sqlite3ExprIsConstant
    - sqlite3ExprAffinity
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    - testcase
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeSubselect(\n  Parse *pParse,          /*
      Parsing context */\n  Expr *pExpr,            /* The IN, SELECT, or EXISTS operator
      */\n  int rHasNullFlag,       /* Register that records whether NULLs exist in
      RHS */\n  int isRowid             /* If true, LHS of IN operator is a rowid
      */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86257,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86258,1
    - Dst: sqlite3FindInIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86259,1
    - Dst: comparisonAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86267,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86271,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86272,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86273,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86281,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86282,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86286,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86286,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86288,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86289,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86292,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86293,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86294,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86297,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86299,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86300,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86301,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86303,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86304,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86305,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86306,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86308,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86311,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86311,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86312,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86314,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86315,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86321,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86325,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86325,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86327,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86327,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86328,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86329,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86330,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86331,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86338,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86338,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86339,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86340,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86344,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86352,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86361,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86362,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86376,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86377,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86378,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86379,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86380,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86381,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86385,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86386,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 77
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - destIfFalse
    - destIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 86285
        line_start: 86285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 86256
        line_start: 86256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( destIfNull==destIfFalse )
      pos:
        line_end: 86302
        line_start: 86302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( destIfFalse!=destIfNull || rRhsHasNull==0 )
      pos:
        line_end: 86351
        line_start: 86351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86388
      start: 86241
    functionDepth: 14
    functionLinenumber: 86241
    functionLinenumberEnd: 86388
    functionName: sqlite3ExprCodeIN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ReleaseTempReg
    - sqlite3ExprCollSeq
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - comparisonAffinity
    - sqlite3VdbeAddOp4Int
    - VdbeCoverage
    - VdbeComment
    - sqlite3ExprCachePush
    - VdbeCoverageIf
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3ExprCodeTemp
    - sqlite3GetTempReg
    - VdbeNoopComment
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3VdbeResolveLabel
    - sqlite3FindInIndex
    - sqlite3ExprCanBeNull
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCode
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void sqlite3ExprCodeIN(\n  Parse *pParse,        /* Parsing and code
      generating context */\n  Expr *pExpr,          /* The IN expression */\n  int
      destIfFalse,      /* Jump here if LHS is not contained in the RHS */\n  int
      destIfNull        /* Jump here if the results are unknown due to NULLs */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86401,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86403,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86403,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86404,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86404,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - v
    - z
    - negateFlag
    - iMem
    argTypes:
    - Vdbe*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( !sqlite3IsNaN(value) )
      pos:
        line_end: 86403
        line_start: 86403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86408
      start: 86400
    functionDepth: 10
    functionLinenumber: 86400
    functionLinenumberEnd: 86408
    functionName: codeReal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNaN
    - assert
    - ALWAYS
    - sqlite3VdbeAddOp4Dup8
    - sqlite3AtoF
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: void codeReal(Vdbe *v, const char *z, int negateFlag, int iMem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86422,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86429,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86430,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86433,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86436,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86439,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86440,1
    - Dst: codeReal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - negFlag
    - iMem
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( i>=0 )
      pos:
        line_end: 86421
        line_start: 86421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z!=0 )
      pos:
        line_end: 86428
        line_start: 86428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86449
      start: 86418
    functionDepth: 11
    functionLinenumber: 86418
    functionLinenumberEnd: 86449
    functionName: codeInteger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DecOrHexToI64
    - assert
    - sqlite3_strnicmp
    - codeReal
    - sqlite3VdbeAddOp4Dup8
    - sqlite3VdbeAddOp2
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void codeInteger(Parse *pParse, Expr *pExpr, int negFlag, int iMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - struct yColCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86461
      start: 86454
    functionDepth: 1
    functionLinenumber: 86454
    functionLinenumberEnd: 86461
    functionName: cacheEntryClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: void
    signature: void cacheEntryClear(Parse *pParse, struct yColCache *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86475,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86476,1
    - Dst: OptimizationDisabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86482,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86491,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86517,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - pParse
    - iTab
    - iCol
    - iReg
    argTypes:
    - Parse*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iReg>0 || pParse->nErr || pParse->db->mallocFailed )
      pos:
        line_end: 86474
        line_start: 86474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol>=-1 && iCol<32768 )
      pos:
        line_end: 86475
        line_start: 86475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iReg==0 || p->iTable!=iTab || p->iColumn!=iCol )
      pos:
        line_end: 86490
        line_start: 86490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86527
      start: 86468
    functionDepth: 1
    functionLinenumber: 86468
    functionLinenumberEnd: 86527
    functionName: sqlite3ExprCacheStore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - OptimizationDisabled
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCacheStore(Parse *pParse, int iTab, int iCol,
      int iReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cacheEntryClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - iReg
    - nReg
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86544
      start: 86533
    functionDepth: 2
    functionLinenumber: 86533
    functionLinenumberEnd: 86544
    functionName: sqlite3ExprCacheRemove
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cacheEntryClear
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCacheRemove(Parse *pParse, int iReg, int
      nReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86558
      start: 86551
    functionDepth: 0
    functionLinenumber: 86551
    functionLinenumberEnd: 86558
    functionName: sqlite3ExprCachePush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCachePush(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86568,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86572,1
    - Dst: cacheEntryClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->iCacheLevel>=1 )
      pos:
        line_end: 86567
        line_start: 86567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86581
      start: 86565
    functionDepth: 2
    functionLinenumber: 86565
    functionLinenumberEnd: 86581
    functionName: sqlite3ExprCachePop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - printf
    - assert
    - cacheEntryClear
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCachePop(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - iReg
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86597
      start: 86589
    functionDepth: 0
    functionLinenumber: 86589
    functionLinenumberEnd: 86597
    functionName: sqlite3ExprCachePinRegister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3ExprCachePinRegister(Parse *pParse, int iReg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86610,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86612,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86614,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86615,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86615,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86617,1
    - Dst: sqlite3ColumnDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - v
    - pTab
    - iTabCur
    - iCol
    - regOut
    argTypes:
    - Vdbe*
    - Table*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86622
      start: 86602
    functionDepth: 9
    functionLinenumber: 86602
    functionLinenumberEnd: 86622
    functionName: sqlite3ExprCodeGetColumnOfTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PrimaryKeyIndex
    - IsVirtual
    - sqlite3VdbeAddOp3
    - sqlite3ColumnDefault
    - sqlite3VdbeAddOp2
    - HasRowid
    - sqlite3ColumnOfIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeGetColumnOfTable(\n  Vdbe *v,        /*
      The VDBE under construction */\n  Table *pTab,    /* The table containing the
      value */\n  int iTabCur,    /* The table cursor.  Or the PK cursor for WITHOUT
      ROWID */\n  int iCol,       /* Index of the column to extract */\n  int regOut
      \     /* Extract the value into this register */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCachePinRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86652,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86653,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86655,1
    - Dst: sqlite3ExprCacheStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - pParse
    - pTab
    - iColumn
    - iTable
    - iReg
    - p5
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int
    - u8
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 86651
        line_start: 86651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86660
      start: 86633
    functionDepth: 10
    functionLinenumber: 86633
    functionLinenumberEnd: 86660
    functionName: sqlite3ExprCodeGetColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCacheStore
    - sqlite3ExprCachePinRegister
    - assert
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeGetColumn(\n  Parse *pParse,   /* Parsing
      and code generating context */\n  Table *pTab,     /* Description of the table
      we are reading from */\n  int iColumn,     /* Index of the table column */\n
      \ int iTable,      /* The cursor pointing to the table */\n  int iReg,        /*
      Store results here */\n  u8 p5            /* P5 value for OP_Column */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86671,1
    - Dst: cacheEntryClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86680
      start: 86665
    functionDepth: 2
    functionLinenumber: 86665
    functionLinenumberEnd: 86680
    functionName: sqlite3ExprCacheClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    - cacheEntryClear
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCacheClear(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCacheRemove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pParse
    - iStart
    - iCount
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86688
      start: 86686
    functionDepth: 3
    functionLinenumber: 86686
    functionLinenumberEnd: 86688
    functionName: sqlite3ExprCacheAffinityChange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCacheRemove
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCacheAffinityChange(Parse *pParse, int iStart,
      int iCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86695,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86696,1
    - Dst: sqlite3ExprCacheRemove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pParse
    - iFrom
    - iTo
    - nReg
    argTypes:
    - Parse*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iFrom>=iTo+nReg || iFrom+nReg<=iTo )
      pos:
        line_end: 86694
        line_start: 86694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 86698
      start: 86694
    functionDepth: 8
    functionLinenumber: 86694
    functionLinenumberEnd: 86698
    functionName: sqlite3ExprCodeMove
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCacheRemove
    - sqlite3VdbeAddOp3
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo,
      int nReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - iFrom
    - iTo
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86716
      start: 86708
    functionDepth: 0
    functionLinenumber: 86708
    functionLinenumberEnd: 86716
    functionName: usedAsColumnCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usedAsColumnCache(Parse *pParse, int iFrom, int iTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExprClearProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - iReg
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86727
      start: 86722
    functionDepth: 1
    functionLinenumber: 86722
    functionLinenumberEnd: 86727
    functionName: exprToRegister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprClearProperty
    linkageType: ''
    returnType: void
    signature: void exprToRegister(Expr *p, int iReg)
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86750,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86752,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86766,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86770,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86788,1
    - Dst: codeInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86794,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86799,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86799,1
    - Dst: codeReal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86800,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86805,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86805,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86806,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86818,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86818,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86819,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86820,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86823,1
    - Dst: sqlite3HexToBlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86824,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86824,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86830,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86830,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86832,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86833,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86835,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86836,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86837,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86846,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86852,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86854,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86857,1
    - Dst: sqlite3AffinityType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86858,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86859,1
    - Dst: usedAsColumnCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86859,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86860,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86870,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86871,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86874,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86874,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86874,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86875,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86875,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86875,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86876,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86876,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86876,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86877,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86877,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86877,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86878,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86878,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86879,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86879,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86879,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86880,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86881,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86886,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86887,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86888,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86889,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86891,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86893,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86894,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86895,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86896,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86911,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86911,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86912,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86912,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86913,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86913,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86914,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86914,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86915,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86915,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86916,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86916,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86917,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86918,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86918,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86919,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86919,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86920,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86920,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86921,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86921,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86922,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86923,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86924,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86925,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86926,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86931,1
    - Dst: codeInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86933,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86936,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86936,1
    - Dst: codeReal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86937,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86943,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86944,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86945,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86946,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86953,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86953,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86954,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86954,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86955,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86956,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86958,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86964,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86964,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86965,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86965,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86966,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86967,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86968,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86969,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86970,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86971,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86972,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86979,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86979,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86980,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86994,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86997,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86997,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:86998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87004,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87004,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87006,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87007,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87009,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87018,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87019,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87020,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87022,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87023,1
    - Dst: sqlite3ExprCacheRemove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87024,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87025,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87026,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87027,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87037,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87038,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87043,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87044,1
    - Dst: MASKBIT32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87045,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87048,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87056,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87066,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87067,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87071,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87072,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87078,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87079,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87081,1
    - Dst: sqlite3VtabOverloadFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87099,1
    - Dst: sqlite3VtabOverloadFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87101,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87106,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87108,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87110,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87112,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87119,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87120,1
    - Dst: sqlite3CodeSubselect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87121,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87125,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87126,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87127,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87128,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87129,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87130,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87131,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87132,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87154,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87155,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87156,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87157,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87158,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87159,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87160,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87161,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87164,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87165,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87166,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87167,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87168,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87169,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87170,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87171,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87176,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87209,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87210,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87211,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87212,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87214,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87215,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87258,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87270,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87270,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87271,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87275,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87278,1
    - Dst: exprToRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87279,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87279,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87280,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87293,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87298,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87299,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87300,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87301,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87302,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87303,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87304,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87305,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87308,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87309,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87310,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87314,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87321,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87327,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87332,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87334,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87334,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87336,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87338,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87340,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87348,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87349,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 445
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( pExpr->u.zToken[0]!=0 )
      pos:
        line_end: 86831
        line_start: 86831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 86875
        line_start: 86875
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 86873
        line_start: 86873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_OR==OP_Or )
      pos:
        line_end: 86911
        line_start: 86911
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_BITOR==OP_BitOr )
      pos:
        line_end: 86916
        line_start: 86916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86935
        line_start: 86935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pExpr->affinity==OE_Rollback \n           || pExpr->affinity==OE_Abort\n
        \          || pExpr->affinity==OE_Fail\n           || pExpr->affinity==OE_Ignore\n
        \     )"
      pos:
        line_end: 87324
        line_start: 87320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nFarg==1 )
      pos:
        line_end: 87065
        line_start: 87065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_RSHIFT==OP_ShiftRight )
      pos:
        line_end: 86919
        line_start: 86919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) && pExpr->x.pList )
      pos:
        line_end: 87269
        line_start: 87269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86804
        line_start: 86804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_BITNOT==OP_BitNot )
      pos:
        line_end: 86952
        line_start: 86952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 86996
        line_start: 86996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFarg->a[0].pExpr!=0 )
      pos:
        line_end: 87066
        line_start: 87066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 87333
        line_start: 87333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z[n]=='\'' )
      pos:
        line_end: 86822
        line_start: 86822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_REM==OP_Remainder )
      pos:
        line_end: 86914
        line_start: 86914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_NOT==OP_Not )
      pos:
        line_end: 86953
        line_start: 86953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->iPKey<0 || pExpr->iColumn!=pTab->iPKey )
      pos:
        line_end: 87210
        line_start: 87210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( target>0 && target<=pParse->nMem )
      pos:
        line_end: 86749
        line_start: 86749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_FUNC_TYPEOF==OPFLAG_TYPEOFARG )
      pos:
        line_end: 87070
        line_start: 87070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->u.zToken!=0 )
      pos:
        line_end: 86830
        line_start: 86830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_SLASH==OP_Divide )
      pos:
        line_end: 86917
        line_start: 86917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nFarg>=2 )
      pos:
        line_end: 87018
        line_start: 87018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1>=0 && p1<(pTab->nCol*2+2) )
      pos:
        line_end: 87211
        line_start: 87211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( db->mallocFailed || pParse->nErr>0 \n           || pParse->iCacheLevel==iCacheLevel
        )"
      pos:
        line_end: 87314
        line_start: 87313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 86878
        line_start: 86878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->iTable==0 || pExpr->iTable==1 )
      pos:
        line_end: 87208
        line_start: 87208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86978
        line_start: 86978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->u.zToken[1]=='\'' )
      pos:
        line_end: 86819
        line_start: 86819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86829
        line_start: 86829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_PLUS==OP_Add )
      pos:
        line_end: 86912
        line_start: 86912
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_CONCAT==OP_Concat )
      pos:
        line_end: 86920
        line_start: 86920
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->iColumn>=-1 && pExpr->iColumn<pTab->nCol )
      pos:
        line_end: 87209
        line_start: 87209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 86876
        line_start: 86876
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCol->iMem>0 )
      pos:
        line_end: 86765
        line_start: 86765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 86874
        line_start: 86874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLeft )
      pos:
        line_end: 86930
        line_start: 86930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_ISNULL==OP_IsNull )
      pos:
        line_end: 86963
        line_start: 86963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86798
        line_start: 86798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pExpr->u.zToken[0]=='?' \n             || strcmp(pExpr->u.zToken,
        pParse->azVar[pExpr->iColumn-1])==0 )"
      pos:
        line_end: 86835
        line_start: 86834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_BITAND==OP_BitAnd )
      pos:
        line_end: 86915
        line_start: 86915
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 86817
        line_start: 86817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op==TK_CASE )
      pos:
        line_end: 87257
        line_start: 87257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTest!=0 )
      pos:
        line_end: 87292
        line_start: 87292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LSHIFT==OP_ShiftLeft )
      pos:
        line_end: 86918
        line_start: 86918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_FUNC_LENGTH==OPFLAG_LENGTHARG )
      pos:
        line_end: 87069
        line_start: 87069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nFarg>=1 )
      pos:
        line_end: 87036
        line_start: 87036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 87003
        line_start: 87003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 86877
        line_start: 86877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_MINUS==OP_Subtract )
      pos:
        line_end: 86913
        line_start: 86913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 86751
        line_start: 86751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->u.zToken[0]=='x' || pExpr->u.zToken[0]=='X' )
      pos:
        line_end: 86818
        line_start: 86818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pExpr->x.pList->nExpr > 0)
      pos:
        line_end: 87270
        line_start: 87270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_AND==OP_And )
      pos:
        line_end: 86910
        line_start: 86910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_NOTNULL==OP_NotNull )
      pos:
        line_end: 86964
        line_start: 86964
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87351
      start: 86740
    functionDepth: 15
    functionLinenumber: 86740
    functionLinenumberEnd: 87351
    functionName: sqlite3ExprCodeTarget
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FindFunction
    - ExprHasProperty
    - codeReal
    - sqlite3VdbeDb
    - sqlite3ReleaseTempReg
    - sqlite3ExprCodeTarget
    - sqlite3HexToBlob
    - ENC
    - sqlite3VdbeAddOp3
    - sqlite3Strlen30
    - sqlite3VdbeAddOp1
    - sqlite3ExprCollSeq
    - sqlite3ErrorMsg
    - sqlite3VtabOverloadFunction
    - sqlite3ExprCacheRemove
    - VdbeCoverage
    - MASKBIT32
    - VdbeComment
    - sqlite3CodeSubselect
    - sqlite3GetTempRange
    - exprToRegister
    - sqlite3ExprCachePush
    - VdbeCoverageIf
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3ExprIfFalse
    - sqlite3VdbeJumpHere
    - sqlite3ExprCodeTemp
    - sqlite3GetTempReg
    - strcmp
    - sqlite3ReleaseTempRange
    - codeCompare
    - sqlite3ExprCodeExprList
    - sqlite3VdbeAddOp2
    - usedAsColumnCache
    - codeInteger
    - sqlite3ExprCachePop
    - sqlite3ExprCodeIN
    - sqlite3VdbeChangeP4
    - sqlite3VdbeResolveLabel
    - sqlite3MayAbort
    - sqlite3ExprCodeGetColumn
    - sqlite3ExprIsConstant
    - sqlite3HaltConstraint
    - sqlite3AffinityType
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCode
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int
      target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87363,1
    - Dst: ConstFactorOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87363,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87365,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - regDest
    - reusable
    argTypes:
    - Parse*
    - Expr*
    - int
    - u8
    assertStmts:
    - condition: ( ConstFactorOk(pParse) )
      pos:
        line_end: 87362
        line_start: 87362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87373
      start: 87356
    functionDepth: 7
    functionLinenumber: 87356
    functionLinenumberEnd: 87373
    functionName: sqlite3ExprCodeAtInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ConstFactorOk
    - sqlite3ExprListAppend
    - sqlite3ExprDup
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeAtInit(\n  Parse *pParse,    /* Parsing
      context */\n  Expr *pExpr,      /* The expression to code when the VDBE initializes
      */\n  int regDest,      /* Store the value in this register */\n  u8 reusable
      \      /* True if this expression is reusable */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87390,1
    - Dst: ConstFactorOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87391,1
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87393,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87401,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87407,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87409,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87410,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - pReg
    argTypes:
    - Parse*
    - Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87419
      start: 87388
    functionDepth: 16
    functionLinenumber: 87388
    functionLinenumberEnd: 87419
    functionName: sqlite3ExprCodeTemp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExprCompare
    - sqlite3ReleaseTempReg
    - sqlite3ExprCodeTarget
    - sqlite3GetTempReg
    - sqlite3ExprIsConstantNotJoin
    - ConstFactorOk
    - sqlite3ExprCodeAtInit
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeTemp(Parse *pParse, Expr *pExpr, int
      *pReg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87429,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87431,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87434,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( target>0 && target<=pParse->nMem )
      pos:
        line_end: 87428
        line_start: 87428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pVdbe || pParse->db->mallocFailed )
      pos:
        line_end: 87433
        line_start: 87433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87439
      start: 87426
    functionDepth: 16
    functionLinenumber: 87426
    functionLinenumberEnd: 87439
    functionName: sqlite3ExprCode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeAddOp2
    - assert
    - sqlite3ExprCodeTarget
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87448,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87449,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87453
      start: 87447
    functionDepth: 17
    functionLinenumber: 87447
    functionLinenumberEnd: 87453
    functionName: sqlite3ExprCodeFactorable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprIsConstant
    - sqlite3ExprCodeAtInit
    - sqlite3ExprCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeFactorable(Parse *pParse, Expr *pExpr,
      int target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87472,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87473,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87475,1
    - Dst: exprToRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( target>0 )
      pos:
        line_end: 87470
        line_start: 87470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_REGISTER )
      pos:
        line_end: 87471
        line_start: 87471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87477
      start: 87467
    functionDepth: 17
    functionLinenumber: 87467
    functionLinenumberEnd: 87477
    functionName: sqlite3ExprCodeAndCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - exprToRegister
    - sqlite3ExprCode
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeAndCache(Parse *pParse, Expr *pExpr,
      int target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87500,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87502,1
    - Dst: ConstFactorOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87504,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87507,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87508,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87510,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87515,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87521,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - pParse
    - pList
    - target
    - flags
    argTypes:
    - Parse*
    - ExprList*
    - int
    - u8
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 87499
        line_start: 87499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( target>0 )
      pos:
        line_end: 87500
        line_start: 87500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pVdbe!=0 )
      pos:
        line_end: 87501
        line_start: 87501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87527
      start: 87491
    functionDepth: 16
    functionLinenumber: 87491
    functionLinenumberEnd: 87527
    functionName: sqlite3ExprCodeExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VdbeGetOp
    - sqlite3ExprIsConstant
    - sqlite3ExprCodeTarget
    - ConstFactorOk
    - sqlite3VdbeAddOp2
    - sqlite3ExprCodeAtInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeExprList(\n  Parse *pParse,     /* Parsing
      context */\n  ExprList *pList,   /* The expression list to be coded */\n  int
      target,        /* Where to write results */\n  u8 flags           /* SQLITE_ECEL_*
      flags */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87554,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87554,1
    - Dst: exprToRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87565,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87565,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87567,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87569,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87571,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87574,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87575,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87576,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87577,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87578,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87579,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87580,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87581,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfTrue
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    - int
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 87553
        line_start: 87553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87582
      start: 87541
    functionDepth: 17
    functionLinenumber: 87541
    functionLinenumberEnd: 87582
    functionName: exprCodeBetween
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3ExprIfFalse
    - sqlite3ReleaseTempReg
    - sqlite3ExprCodeTemp
    - sqlite3ExprIfTrue
    - exprToRegister
    - testcase
    linkageType: ''
    returnType: void
    signature: "void exprCodeBetween(\n  Parse *pParse,    /* Parsing and code generating
      context */\n  Expr *pExpr,      /* The BETWEEN expression */\n  int dest,         /*
      Jump here if the jump is taken */\n  int jumpIfTrue,   /* Take the jump if the
      BETWEEN is true */\n  int jumpIfNull    /* Take the jump if the BETWEEN is NULL
      */\n)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87605,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87606,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87607,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87611,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87612,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87613,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87614,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87615,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87616,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87617,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87621,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87622,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87623,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87624,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87625,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87629,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87630,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87639,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87640,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87641,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87642,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87644,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87644,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87644,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87645,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87645,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87645,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87646,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87646,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87646,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87647,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87647,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87647,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87648,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87648,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87649,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87649,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87649,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87650,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87651,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87656,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87657,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87658,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87659,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87661,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87663,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87664,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87665,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87666,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87671,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87671,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87672,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87672,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87673,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87674,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87675,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87676,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87677,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87681,1
    - Dst: exprCodeBetween
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87682,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87687,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87689,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87690,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87691,1
    - Dst: exprAlwaysTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87696,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87697,1
    - Dst: exprAlwaysFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87698,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87701,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87702,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87703,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87704,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87705,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87710,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87711,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 117
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( TK_NOTNULL==OP_NotNull )
      pos:
        line_end: 87671
        line_start: 87671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 87645
        line_start: 87645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 87644
        line_start: 87644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 87646
        line_start: 87646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_ISNULL==OP_IsNull )
      pos:
        line_end: 87670
        line_start: 87670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( jumpIfNull==SQLITE_JUMPIFNULL || jumpIfNull==0 )
      pos:
        line_end: 87604
        line_start: 87604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 87647
        line_start: 87647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 87643
        line_start: 87643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 87648
        line_start: 87648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87712
      start: 87598
    functionDepth: 18
    functionLinenumber: 87598
    functionLinenumberEnd: 87712
    functionName: sqlite3ExprIfTrue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - NEVER
    - sqlite3ExprIfTrue
    - VdbeCoverage
    - sqlite3ExprCachePush
    - exprAlwaysFalse
    - VdbeCoverageIf
    - sqlite3ExprIfFalse
    - assert
    - sqlite3ExprCodeTemp
    - exprCodeBetween
    - codeCompare
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3ExprCodeIN
    - sqlite3VdbeResolveLabel
    - exprAlwaysTrue
    - sqlite3VdbeMakeLabel
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest,
      int jumpIfNull)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87730,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87731,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87758,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87759,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87760,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87762,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87763,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87767,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87768,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87769,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87770,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87771,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87775,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87776,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87777,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87778,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87779,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87780,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87781,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87785,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87786,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87795,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87796,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87797,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87798,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87800,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87800,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87800,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87801,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87801,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87801,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87802,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87802,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87802,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87803,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87803,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87803,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87804,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87804,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87804,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87805,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87805,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87805,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87806,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87807,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87812,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87813,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87814,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87815,1
    - Dst: codeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87817,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87819,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87820,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87821,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87822,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87827,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87828,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87829,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87829,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87830,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87830,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87831,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87835,1
    - Dst: exprCodeBetween
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87836,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87842,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87844,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87845,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87846,1
    - Dst: exprAlwaysFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87852,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87853,1
    - Dst: exprAlwaysTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87854,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87857,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87858,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87859,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87860,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87861,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87866,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87867,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 126
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( pExpr->op!=TK_GT || op==OP_Le )
      pos:
        line_end: 87761
        line_start: 87761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 87801
        line_start: 87801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_ISNULL || op==OP_NotNull )
      pos:
        line_end: 87755
        line_start: 87755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 87799
        line_start: 87799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_NE || op==OP_Eq )
      pos:
        line_end: 87757
        line_start: 87757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_GE || op==OP_Lt )
      pos:
        line_end: 87762
        line_start: 87762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_EQ || op==OP_Ne )
      pos:
        line_end: 87758
        line_start: 87758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_LE || op==OP_Gt )
      pos:
        line_end: 87760
        line_start: 87760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 87802
        line_start: 87802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 87804
        line_start: 87804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( jumpIfNull==SQLITE_JUMPIFNULL || jumpIfNull==0 )
      pos:
        line_end: 87729
        line_start: 87729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 87800
        line_start: 87800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_LT || op==OP_Ge )
      pos:
        line_end: 87759
        line_start: 87759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 87803
        line_start: 87803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_NOTNULL || op==OP_IsNull )
      pos:
        line_end: 87756
        line_start: 87756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 87868
      start: 87723
    functionDepth: 19
    functionLinenumber: 87723
    functionLinenumberEnd: 87868
    functionName: sqlite3ExprIfFalse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - NEVER
    - sqlite3ExprIfTrue
    - VdbeCoverage
    - sqlite3ExprCachePush
    - exprAlwaysFalse
    - VdbeCoverageIf
    - sqlite3ExprIfFalse
    - assert
    - sqlite3ExprCodeTemp
    - exprCodeBetween
    - codeCompare
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3ExprCodeIN
    - sqlite3VdbeResolveLabel
    - exprAlwaysTrue
    - sqlite3VdbeMakeLabel
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest,
      int jumpIfNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87877,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87879,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87882
      start: 87875
    functionDepth: 20
    functionLinenumber: 87875
    functionLinenumberEnd: 87882
    functionName: sqlite3ExprIfFalseDup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    - sqlite3ExprDup
    - sqlite3ExprIfFalse
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfFalseDup(Parse *pParse, Expr *pExpr, int
      dest,int jumpIfNull)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87920,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87923,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87928,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87929,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87934,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87936,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87937,1
    - Dst: sqlite3ExprListCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87938,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87939,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87942,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 44
    argCount: 3
    argNames:
    - pA
    - pB
    - iTab
    argTypes:
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87946
      start: 87907
    functionDepth: 1
    functionLinenumber: 87907
    functionLinenumberEnd: 87946
    functionName: sqlite3ExprCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - NEVER
    - sqlite3ExprCompare
    - ALWAYS
    - strcmp
    - sqlite3ExprListCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCompare(Expr *pA, Expr *pB, int iTab)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - pA
    - pB
    - iTab
    argTypes:
    - ExprList*
    - ExprList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87975
      start: 87963
    functionDepth: 2
    functionLinenumber: 87963
    functionLinenumberEnd: 87975
    functionName: sqlite3ExprListCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListCompare(ExprList *pA, ExprList *pB, int
      iTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:87998,1
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88002,1
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88003,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88008,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - pE1
    - pE2
    - iTab
    argTypes:
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88014
      start: 87997
    functionDepth: 2
    functionLinenumber: 87997
    functionLinenumberEnd: 88014
    functionName: sqlite3ExprImpliesExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCompare
    - sqlite3ExprImpliesExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprImpliesExpr(Expr *pE1, Expr *pE2, int iTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88037,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88052
      start: 88031
    functionDepth: 1
    functionLinenumber: 88031
    functionLinenumberEnd: 88052
    functionName: exprSrcCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    linkageType: ''
    returnType: int
    signature: int exprSrcCount(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88063,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88064,1
    - Dst: sqlite3WalkExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pExpr
    - pSrcList
    argTypes:
    - Expr*
    - SrcList*
    assertStmts:
    - condition: ( pExpr->op==TK_AGG_FUNCTION )
      pos:
        line_end: 88062
        line_start: 88062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88072
      start: 88060
    functionDepth: 3
    functionLinenumber: 88060
    functionLinenumberEnd: 88072
    functionName: sqlite3FunctionUsesThisSrc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3WalkExprList
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FunctionUsesThisSrc(Expr *pExpr, SrcList *pSrcList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ArrayAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pInfo
    argTypes:
    - sqlite3*
    - AggInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88088
      start: 88078
    functionDepth: 1
    functionLinenumber: 88078
    functionLinenumberEnd: 88088
    functionName: addAggInfoColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ArrayAllocate
    linkageType: ''
    returnType: int
    signature: int addAggInfoColumn(sqlite3 *db, AggInfo *pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ArrayAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pInfo
    argTypes:
    - sqlite3*
    - AggInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88104
      start: 88094
    functionDepth: 1
    functionLinenumber: 88094
    functionLinenumberEnd: 88104
    functionName: addAggInfoFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ArrayAllocate
    linkageType: ''
    returnType: int
    signature: int addAggInfoFunc(sqlite3 *db, AggInfo *pInfo)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88121,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88122,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88125,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88129,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88129,1
    - Dst: addAggInfoColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88146,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88178,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88197,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88204,1
    - Dst: addAggInfoFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88207,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88207,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88211,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88211,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88212,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88224,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88224,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88225,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 88210
        line_start: 88210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 88128
        line_start: 88128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 88223
        line_start: 88223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 88206
        line_start: 88206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88235
      start: 88111
    functionDepth: 2
    functionLinenumber: 88111
    functionLinenumberEnd: 88235
    functionName: analyzeAggregate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindFunction
    - ExprHasProperty
    - sqlite3ExprCompare
    - assert
    - addAggInfoColumn
    - ALWAYS
    - addAggInfoFunc
    - ENC
    - sqlite3Strlen30
    - ExprSetVVAProperty
    - testcase
    linkageType: ''
    returnType: int
    signature: int analyzeAggregate(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88237,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88240
      start: 88236
    functionDepth: 1
    functionLinenumber: 88236
    functionLinenumberEnd: 88240
    functionName: analyzeAggregatesInSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int analyzeAggregatesInSelect(Walker *pWalker, Select *pSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88253,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88257,1
    - Dst: sqlite3WalkExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pNC
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts:
    - condition: ( pNC->pSrcList!=0 )
      pos:
        line_end: 88256
        line_start: 88256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88259
      start: 88251
    functionDepth: 2
    functionLinenumber: 88251
    functionLinenumberEnd: 88259
    functionName: sqlite3ExprAnalyzeAggregates
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    - memset
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAnalyzeAggregates(NameContext *pNC, Expr
      *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAnalyzeAggregates
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pNC
    - pList
    argTypes:
    - NameContext*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88275
      start: 88267
    functionDepth: 3
    functionLinenumber: 88267
    functionLinenumberEnd: 88275
    functionName: sqlite3ExprAnalyzeAggList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAnalyzeAggregates
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAnalyzeAggList(NameContext *pNC, ExprList
      *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88285
      start: 88280
    functionDepth: 0
    functionLinenumber: 88280
    functionLinenumberEnd: 88285
    functionName: sqlite3GetTempReg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetTempReg(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pParse
    - iReg
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88307
      start: 88295
    functionDepth: 1
    functionLinenumber: 88295
    functionLinenumberEnd: 88307
    functionName: sqlite3ReleaseTempReg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 7
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReleaseTempReg(Parse *pParse, int iReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88317,1
    - Dst: usedAsColumnCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - nReg
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( !usedAsColumnCache(pParse, i, i+n-1) )
      pos:
        line_end: 88316
        line_start: 88316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88325
      start: 88312
    functionDepth: 1
    functionLinenumber: 88312
    functionLinenumberEnd: 88325
    functionName: sqlite3GetTempRange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - usedAsColumnCache
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetTempRange(Parse *pParse, int nReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCacheRemove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - iReg
    - nReg
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88332
      start: 88326
    functionDepth: 3
    functionLinenumber: 88326
    functionLinenumberEnd: 88332
    functionName: sqlite3ReleaseTempRange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCacheRemove
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReleaseTempRange(Parse *pParse, int iReg, int
      nReg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88340
      start: 88337
    functionDepth: 0
    functionLinenumber: 88337
    functionLinenumberEnd: 88340
    functionName: sqlite3ClearTempRegCache
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ClearTempRegCache(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88385,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88386,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88394,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88396,1
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88418,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88420,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88423,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( len>0 )
      pos:
        line_end: 88419
        line_start: 88419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88427
      start: 88380
    functionDepth: 12
    functionLinenumber: 88380
    functionLinenumberEnd: 88427
    functionName: renameTableFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetToken
    - assert
    - sqlite3MPrintf
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_context_db_handle
    linkageType: ''
    returnType: void
    signature: "void renameTableFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88450,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88453,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88454,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88455,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88461,1
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88464,1
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88469,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88473,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88475,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88476,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88477,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88480,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88484,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88488,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88489,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88490,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88491
      start: 88445
    functionDepth: 12
    functionLinenumber: 88445
    functionLinenumberEnd: 88491
    functionName: renameParentFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Dequote
    - sqlite3GetToken
    - sqlite3StrICmp
    - sqlite3MPrintf
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_context_db_handle
    - sqlite3DbStrNDup
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: "void renameParentFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88507,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88508,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88516,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88518,1
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88542,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88544,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88564,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88566,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( len>0 )
      pos:
        line_end: 88543
        line_start: 88543
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88568
      start: 88502
    functionDepth: 12
    functionLinenumber: 88502
    functionLinenumberEnd: 88568
    functionName: renameTriggerFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetToken
    - assert
    - sqlite3MPrintf
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_context_db_handle
    linkageType: ''
    returnType: void
    signature: "void renameTriggerFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88576,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88578,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88581,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88585,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88586,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88588,1
    - Dst: sqlite3FuncDefInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88591
      start: 88574
    functionDepth: 1
    functionLinenumber: 88574
    functionLinenumberEnd: 88591
    functionName: sqlite3AlterFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GLOBAL
    - sqlite3FuncDefInsert
    - FUNCTION
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterFunctions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88612,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88614,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - db
    - zWhere
    - zConstant
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88618
      start: 88609
    functionDepth: 8
    functionLinenumber: 88609
    functionLinenumberEnd: 88618
    functionName: whereOrName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3DbFree
    linkageType: ''
    returnType: char
    signature: char *whereOrName(sqlite3 *db, char *zWhere, char *zConstant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88630,1
    - Dst: whereOrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88634
      start: 88627
    functionDepth: 9
    functionLinenumber: 88627
    functionLinenumberEnd: 88634
    functionName: whereForeignKeys
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FkReferences
    - whereOrName
    linkageType: ''
    returnType: char
    signature: char *whereForeignKeys(Parse *pParse, Table *pTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TriggerList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88655,1
    - Dst: whereOrName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88657,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88662,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88667
      start: 88643
    functionDepth: 9
    functionLinenumber: 88643
    functionLinenumberEnd: 88667
    functionName: whereTempTriggers
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3DbFree
    - sqlite3TriggerList
    - whereOrName
    linkageType: ''
    returnType: char
    signature: char *whereTempTriggers(Parse *pParse, Table *pTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88685,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88686,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88687,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88687,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88688,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88689,1
    - Dst: sqlite3TriggerList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88693,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88694,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88695,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88696,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88701,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88704,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88706,1
    - Dst: whereTempTriggers
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88712,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pParse
    - pTab
    - zName
    argTypes:
    - Parse*
    - Table*
    - char*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 88686
        line_start: 88686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 88688
        line_start: 88688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iTrigDb==iDb || iTrigDb==1 )
      pos:
        line_end: 88694
        line_start: 88694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88716
      start: 88677
    functionDepth: 10
    functionLinenumber: 88677
    functionLinenumberEnd: 88716
    functionName: reloadTableSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3SchemaToIndex
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3MPrintf
    - sqlite3TriggerList
    - sqlite3VdbeAddParseSchemaOp
    - whereTempTriggers
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void reloadTableSchema(Parse *pParse, Table *pTab, const char *zName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88727,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88727,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zName
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88732
      start: 88726
    functionDepth: 8
    functionLinenumber: 88726
    functionLinenumberEnd: 88732
    functionName: isSystemTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3Strlen30
    - sqlite3StrNICmp
    linkageType: ''
    returnType: int
    signature: int isSystemTable(Parse *pParse, const char *zName)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88758,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88759,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88760,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88760,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88762,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88764,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88769,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88775,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88775,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88776,1
    - Dst: isSystemTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88784,1
    - Dst: sqlite3CheckObjectName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88787,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88793,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88800,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88806,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88809,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88810,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88822,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88826,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88827,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88837,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88838,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88839,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88845,1
    - Dst: whereForeignKeys
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88852,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88853,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88856,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88857,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88863,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88880,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88891,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88892,1
    - Dst: whereTempTriggers
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88903,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88904,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88909,1
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88916,1
    - Dst: reloadTableSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88919,1
    - Dst: reloadTableSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88926,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88929,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88930,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 91
    argCount: 3
    argNames:
    - pParse
    - pSrc
    - pName
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 88759
        line_start: 88759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc->nSrc==1 )
      pos:
        line_end: 88758
        line_start: 88758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 88932
      start: 88738
    functionDepth: 11
    functionLinenumber: 88738
    functionLinenumberEnd: 88932
    functionName: sqlite3AlterRenameTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FkReferences
    - sqlite3NestedParse
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3ChangeCookie
    - NEVER
    - sqlite3SchemaToIndex
    - IsVirtual
    - sqlite3GetVTable
    - sqlite3FindTable
    - reloadTableSchema
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3Utf8CharLen
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3LocateTableItem
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FindIndex
    - sqlite3NameFromToken
    - sqlite3CheckObjectName
    - sqlite3MayAbort
    - sqlite3ViewGetColumnNames
    - sqlite3SrcListDelete
    - whereTempTriggers
    - whereForeignKeys
    - sqlite3GetVdbe
    - isSystemTable
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AlterRenameTable(\n  Parse *pParse,            /*
      Parser context. */\n  SrcList *pSrc,            /* The table to rename. */\n
      \ Token *pName              /* The new table name. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88941,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88945,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88946,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88947,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88949,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88950,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88951,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88952,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88953,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88953,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88954,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88955,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88956,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - iDb
    - minFormat
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88959
      start: 88939
    functionDepth: 9
    functionLinenumber: 88939
    functionLinenumberEnd: 88959
    functionName: sqlite3MinimumFileFormat
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeJumpHere
    - sqlite3ReleaseTempReg
    - ALWAYS
    - sqlite3GetTempReg
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MinimumFileFormat(Parse *pParse, int iDb, int
      minFormat)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88983,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88985,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88985,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88986,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88991,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88992,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:88996,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89014,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89018,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89022,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89027,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89038,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89039,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89045,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89048,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89052,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89056,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89060,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89064,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89067,1
    - Dst: sqlite3MinimumFileFormat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89075,1
    - Dst: reloadTableSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89078,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - pParse
    - pColDef
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 88984
        line_start: 88984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew )
      pos:
        line_end: 88982
        line_start: 88982
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab )
      pos:
        line_end: 88991
        line_start: 88991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 89038
        line_start: 89038
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89079
      start: 88969
    functionDepth: 12
    functionLinenumber: 88969
    functionLinenumberEnd: 89079
    functionName: sqlite3AlterFinishAddColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - reloadTableSchema
    - sqlite3SchemaToIndex
    - sqlite3ValueFree
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3NestedParse
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FindTable
    - sqlite3MinimumFileFormat
    - sqlite3Isspace
    - sqlite3ValueFromExpr
    - sqlite3ErrorMsg
    - sqlite3DbStrNDup
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89106,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89107,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89107,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89109,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89113,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89114,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89121,1
    - Dst: isSystemTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89128,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89129,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89138,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89143,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89145,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89146,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89147,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89152,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89155,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89166,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89167,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89169,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89172,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - pParse
    - pSrc
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 89106
        line_start: 89106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->nCol>0 )
      pos:
        line_end: 89142
        line_start: 89142
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->addColOffset>0 )
      pos:
        line_end: 89127
        line_start: 89127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pNewTable==0 )
      pos:
        line_end: 89105
        line_start: 89105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nAlloc>=pNew->nCol && nAlloc%8==0 && nAlloc-pNew->nCol<8 )
      pos:
        line_end: 89144
        line_start: 89144
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89174
      start: 89096
    functionDepth: 9
    functionLinenumber: 89096
    functionLinenumberEnd: 89174
    functionName: sqlite3AlterBeginAddColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - assert
    - IsVirtual
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3MPrintf
    - sqlite3SrcListDelete
    - sqlite3DbMallocZero
    - memcpy
    - sqlite3LocateTableItem
    - sqlite3DbStrDup
    - sqlite3ChangeCookie
    - sqlite3GetVdbe
    - sqlite3ErrorMsg
    - isSystemTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89376,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89377,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89378,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89381,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89381,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89382,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89382,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89388,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89391,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89397,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89409,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89411,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89417,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89424,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89424,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89425,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89426,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - pParse
    - iDb
    - iStatCur
    - zWhere
    - zWhereType
    argTypes:
    - Parse*
    - int
    - int
    - char*
    - char*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 89380
        line_start: 89380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeDb(v)==db )
      pos:
        line_end: 89381
        line_start: 89381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<ArraySize(aTable) )
      pos:
        line_end: 89423
        line_start: 89423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89429
      start: 89350
    functionDepth: 9
    functionLinenumber: 89350
    functionLinenumberEnd: 89429
    functionName: openStatTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4Int
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3VdbeDb
    - sqlite3NestedParse
    - sqlite3TableLock
    - ArraySize
    - sqlite3FindTable
    - VdbeComment
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: "void openStatTable(\n  Parse *pParse,          /* Parsing context
      */\n  int iDb,                /* The database we are looking in */\n  int iStatCur,
      \          /* Open the sqlite_stat1 table on this cursor */\n  const char *zWhere,
      \    /* Delete entries for this table or index */\n  const char *zWhereType
      \ /* Either \"tbl\" or \"idx\" */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89480,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Stat4Sample*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 89479
        line_start: 89479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89485
      start: 89479
    functionDepth: 5
    functionLinenumber: 89479
    functionLinenumberEnd: 89485
    functionName: sampleClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void sampleClear(sqlite3 *db, Stat4Sample *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89492,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89493,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89494,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - p
    - n
    - pData
    argTypes:
    - sqlite3*
    - Stat4Sample*
    - int
    - u8*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 89491
        line_start: 89491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89501
      start: 89491
    functionDepth: 5
    functionLinenumber: 89491
    functionLinenumberEnd: 89501
    functionName: sampleSetRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3DbFree
    - assert
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: void
    signature: void sampleSetRowid(sqlite3 *db, Stat4Sample *p, int n, const u8 *pData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89508,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - p
    - iRowid
    argTypes:
    - sqlite3*
    - Stat4Sample*
    - i64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 89507
        line_start: 89507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89512
      start: 89507
    functionDepth: 5
    functionLinenumber: 89507
    functionLinenumberEnd: 89512
    functionName: sampleSetRowidInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void sampleSetRowidInt64(sqlite3 *db, Stat4Sample *p, i64 iRowid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89524,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89525,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89526,1
    - Dst: sampleSetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89528,1
    - Dst: sampleSetRowidInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - p
    - pTo
    - pFrom
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89532
      start: 89520
    functionDepth: 6
    functionLinenumber: 89520
    functionLinenumberEnd: 89532
    functionName: sampleCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleSetRowidInt64
    - memcpy
    - sampleSetRowid
    linkageType: ''
    returnType: void
    signature: void sampleCopy(Stat4Accum *p, Stat4Sample *pTo, Stat4Sample *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sampleClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89542,1
    - Dst: sampleClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89543,1
    - Dst: sampleClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89544,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89547
      start: 89538
    functionDepth: 6
    functionLinenumber: 89538
    functionLinenumberEnd: 89547
    functionName: stat4Destructor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sampleClear
    linkageType: ''
    returnType: void
    signature: void stat4Destructor(void *pOld)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pAccum
    - pNew
    - pOld
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts:
    - condition: ( pNew->iCol==pOld->iCol )
      pos:
        line_end: 89685
        line_start: 89685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89693
      start: 89679
    functionDepth: 0
    functionLinenumber: 89679
    functionLinenumberEnd: 89693
    functionName: sampleIsBetterPost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int sampleIsBetterPost(\n  Stat4Accum *pAccum, \n  Stat4Sample *pNew,
      \n  Stat4Sample *pOld\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89711,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89712,1
    - Dst: sampleIsBetterPost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - pAccum
    - pNew
    - pOld
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts:
    - condition: ( pOld->isPSample==0 && pNew->isPSample==0 )
      pos:
        line_end: 89710
        line_start: 89710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsStat4 || (pNew->iCol==0 && pOld->iCol==0) )
      pos:
        line_end: 89711
        line_start: 89711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89724
      start: 89703
    functionDepth: 1
    functionLinenumber: 89703
    functionLinenumberEnd: 89724
    functionName: sampleIsBetter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sampleIsBetterPost
    linkageType: ''
    returnType: int
    signature: "int sampleIsBetter(\n  Stat4Accum *pAccum, \n  Stat4Sample *pNew,
      \n  Stat4Sample *pOld\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89734,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89750,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89751,1
    - Dst: sampleIsBetter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89751,1
    - Dst: sampleIsBetter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89752,1
    - Dst: sampleClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89771,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89772,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89785,1
    - Dst: sampleCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89791,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89795,1
    - Dst: sampleIsBetter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89804,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89808,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - p
    - pNew
    - nEqZero
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - int
    assertStmts:
    - condition: ( IsStat4 || nEqZero==0 )
      pos:
        line_end: 89733
        line_start: 89733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->anEq[pNew->iCol]>0 )
      pos:
        line_end: 89738
        line_start: 89738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sampleIsBetter(p, pNew, pOld) )
      pos:
        line_end: 89750
        line_start: 89750
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOld->iCol>pNew->iCol )
      pos:
        line_end: 89749
        line_start: 89749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->nSample==0 \n       || pNew->anLt[p->nCol-1] > p->a[p->nSample-1].anLt[p->nCol-1]
        )"
      pos:
        line_end: 89785
        line_start: 89784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iMin>=0 )
      pos:
        line_end: 89807
        line_start: 89807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89811
      start: 89730
    functionDepth: 7
    functionLinenumber: 89730
    functionLinenumberEnd: 89811
    functionName: sampleInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleIsBetter
    - memset
    - assert
    - sampleClear
    - sampleCopy
    - memmove
    linkageType: ''
    returnType: void
    signature: void sampleInsert(Stat4Accum *p, Stat4Sample *pNew, int nEqZero)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sampleIsBetter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89829,1
    - Dst: sampleInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89830,1
    - Dst: sampleInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89851,1
    - Dst: sampleIsBetter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89857,1
    - Dst: sampleInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89859,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89865,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89866,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - p
    - iChng
    argTypes:
    - Stat4Accum*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89868
      start: 89820
    functionDepth: 8
    functionLinenumber: 89820
    functionLinenumberEnd: 89868
    functionName: samplePushPrevious
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleIsBetter
    - UNUSED_PARAMETER
    - sampleInsert
    linkageType: ''
    returnType: void
    signature: void samplePushPrevious(Stat4Accum *p, int iChng)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89894,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89895,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89897,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89898,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89899,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89900,1
    - Dst: samplePushPrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89907,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89924,1
    - Dst: sampleSetRowidInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89925,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89925,1
    - Dst: sampleSetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89927,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89927,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89928,1
    - Dst: sampleInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89941,1
    - Dst: sampleIsBetterPost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89948,1
    - Dst: sampleCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89949,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p->nCol>0 )
      pos:
        line_end: 89898
        line_start: 89898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iChng<p->nCol )
      pos:
        line_end: 89899
        line_start: 89899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 89954
      start: 89886
    functionDepth: 14
    functionLinenumber: 89886
    functionLinenumberEnd: 89954
    functionName: statPush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - sampleSetRowidInt64
    - assert
    - sampleIsBetterPost
    - samplePushPrevious
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sampleSetRowid
    - sampleInsert
    - sqlite3_value_blob
    - sqlite3_value_type
    - sampleCopy
    - sqlite3_value_int64
    linkageType: ''
    returnType: void
    signature: "void statPush(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89992,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89995,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89996,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:89997,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90003,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90030,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90032,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90036,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90037,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90041,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90042,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90043,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90045,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90047,1
    - Dst: samplePushPrevious
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90052,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90058,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90060,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90067,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90079,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90081,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90083,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90088,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90089,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90091,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90093,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90099,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 90002
        line_start: 90002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iGet<p->nSample )
      pos:
        line_end: 90066
        line_start: 90066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z[0]=='\0' && z>zRet )
      pos:
        line_end: 90044
        line_start: 90044
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z[0]=='\0' && z>zRet )
      pos:
        line_end: 90090
        line_start: 90090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( argc==2 )
      pos:
        line_end: 89995
        line_start: 89995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( eCall==STAT_GET_STAT1 || eCall==STAT_GET_NEQ \n       || eCall==STAT_GET_ROWID
        || eCall==STAT_GET_NLT\n       || eCall==STAT_GET_NDLT \n  )"
      pos:
        line_end: 89999
        line_start: 89996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->current.anEq[i] )
      pos:
        line_end: 90042
        line_start: 90042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90101
      start: 89987
    functionDepth: 12
    functionLinenumber: 89987
    functionLinenumberEnd: 90101
    functionName: statGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - sqlite3MallocZero
    - assert
    - sqlite3_result_error_nomem
    - samplePushPrevious
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_blob
    - sqlite3Strlen30
    - sqlite3_result_blob
    - sqlite3_result_int64
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void statGet(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90116,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90118,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90120,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90122,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90124,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90125,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - v
    - regStat4
    - iParam
    - regOut
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    assertStmts:
    - condition: ( regOut!=regStat4 && regOut!=regStat4+1 )
      pos:
        line_end: 90115
        line_start: 90115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iParam==STAT_GET_STAT1 )
      pos:
        line_end: 90119
        line_start: 90119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90127
      start: 90115
    functionDepth: 12
    functionLinenumber: 90115
    functionLinenumberEnd: 90127
    functionName: callStatGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP4
    - assert
    - UNUSED_PARAMETER
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: void callStatGet(Vdbe *v, int regStat4, int iParam, int regOut)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90162,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90163,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90164,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90171,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90175,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90175,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90176,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90177,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90178,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90178,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90180,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90190,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90193,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90194,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90195,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90206,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90206,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90217,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90218,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90256,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90259,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90259,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90260,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90261,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90262,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90275,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90277,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90278,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90279,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90280,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90281,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90291,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90292,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90293,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90294,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90297,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90299,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90312,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90313,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90314,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90318,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90319,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90322,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90323,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90324,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90326,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90327,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90328,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90330,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90331,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90341,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90343,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90344,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90346,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90347,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90358,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90359,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90360,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90362,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90364,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90366,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90367,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90368,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90370,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90371,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90374,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90375,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90376,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90377,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90378,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90378,1
    - Dst: callStatGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90381,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90382,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90383,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90384,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90385,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90386,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90399,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90401,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90403,1
    - Dst: callStatGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90404,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90405,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90406,1
    - Dst: callStatGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90407,1
    - Dst: callStatGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90408,1
    - Dst: callStatGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90409,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90410,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90414,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90416,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90421,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90423,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90425,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90426,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90427,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90428,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90429,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90434,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90442,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90443,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90444,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90444,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90446,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90447,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90448,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90449,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90450,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90451,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 144
    argCount: 6
    argNames:
    - pParse
    - pTab
    - pOnlyIdx
    - iStatCur
    - iMem
    - iTab
    argTypes:
    - Parse*
    - Table*
    - Index*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iDb==sqlite3SchemaToIndex(db, pIdx->pSchema) )
      pos:
        line_end: 90258
        line_start: 90258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( regRowid==(regStat4+2) )
      pos:
        line_end: 90357
        line_start: 90357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( "BBB"[0]==SQLITE_AFF_TEXT )
      pos:
        line_end: 90381
        line_start: 90381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( regChng==(regStat4+1) )
      pos:
        line_end: 90373
        line_start: 90373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 90177
        line_start: 90177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 90176
        line_start: 90176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( "BBB"[0]==SQLITE_AFF_TEXT )
      pos:
        line_end: 90445
        line_start: 90445
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 90174
        line_start: 90174
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90453
      start: 90133
    functionDepth: 13
    functionLinenumber: 90133
    functionLinenumberEnd: 90453
    functionName: analyzeOneTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MAX
    - sqlite3_strnicmp
    - sqlite3TableLock
    - sqlite3VdbeAddOp0
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3DbFree
    - IsUniqueIndex
    - VdbeCoverageNeverTaken
    - NEVER
    - sqlite3SchemaToIndex
    - IsPrimaryKeyIndex
    - sqlite3VdbeAddOp4Int
    - sqlite3OpenTable
    - VdbeCoverage
    - sqlite3SchemaMutexHeld
    - VdbeComment
    - HasRowid
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - assert
    - callStatGet
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3VdbeJumpHere
    - sqlite3AuthCheck
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp2
    - sqlite3DbMallocRaw
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeChangeP4
    - sqlite3LocateCollSeq
    - sqlite3VdbeResolveLabel
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeMakeLabel
    - sqlite3GetVdbe
    - sqlite3ColumnOfIndex
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void analyzeOneTable(\n  Parse *pParse,   /* Parser context */\n  Table
      *pTab,     /* Table whose indices are to be analyzed */\n  Index *pOnlyIdx,
      /* If not NULL, only analyze this one index */\n  int iStatCur,    /* Index
      of VdbeCursor that writes the sqlite_stat1 table */\n  int iMem,        /* Available
      memory locations begin here */\n  int iTab         /* Next available cursor
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90461,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90465
      start: 90460
    functionDepth: 9
    functionLinenumber: 90460
    functionLinenumberEnd: 90465
    functionName: loadAnalysis
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp1
    linkageType: ''
    returnType: void
    signature: void loadAnalysis(Parse *pParse, int iDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90478,1
    - Dst: openStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90481,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90484,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90484,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90485,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90485,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90486,1
    - Dst: analyzeOneTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90487,1
    - Dst: loadAnalysis
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 90483
        line_start: 90483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90490
      start: 90470
    functionDepth: 14
    functionLinenumber: 90470
    functionLinenumberEnd: 90490
    functionName: analyzeDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - openStatTable
    - sqlite3BeginWriteOperation
    - sqliteHashNext
    - assert
    - sqliteHashFirst
    - sqlite3SchemaMutexHeld
    - analyzeOneTable
    - loadAnalysis
    - sqliteHashData
    linkageType: ''
    returnType: void
    signature: void analyzeDatabase(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90502,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90502,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90503,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90504,1
    - Dst: openStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90508,1
    - Dst: openStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90510,1
    - Dst: analyzeOneTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90512,1
    - Dst: loadAnalysis
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pOnlyIdx
    argTypes:
    - Parse*
    - Table*
    - Index*
    assertStmts:
    - condition: ( pTab!=0 )
      pos:
        line_end: 90500
        line_start: 90500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 90501
        line_start: 90501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90514
      start: 90497
    functionDepth: 14
    functionLinenumber: 90497
    functionLinenumberEnd: 90514
    functionName: analyzeTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - openStatTable
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - analyzeOneTable
    - loadAnalysis
    linkageType: ''
    returnType: void
    signature: void analyzeTable(Parse *pParse, Table *pTab, Index *pOnlyIdx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90540,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90540,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90541,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90545,1
    - Dst: analyzeDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90550,1
    - Dst: sqlite3FindDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90554,1
    - Dst: analyzeDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90556,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90558,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90560,1
    - Dst: analyzeTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90561,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90562,1
    - Dst: analyzeTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90563,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90565,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90570,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90573,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90575,1
    - Dst: analyzeTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90576,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90577,1
    - Dst: analyzeTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90578,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90580,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90584,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90585,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - pParse
    - pName1
    - pName2
    argTypes:
    - Parse*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pName2!=0 || pName1==0 )
      pos:
        line_end: 90544
        line_start: 90544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 90539
        line_start: 90539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90586
      start: 90528
    functionDepth: 15
    functionLinenumber: 90528
    functionLinenumberEnd: 90586
    functionName: sqlite3Analyze
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LocateTable
    - analyzeDatabase
    - assert
    - sqlite3VdbeAddOp0
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3NameFromToken
    - sqlite3TwoPartName
    - sqlite3FindIndex
    - analyzeTable
    - sqlite3GetVdbe
    - sqlite3ReadSchema
    - sqlite3DbFree
    - sqlite3FindDb
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Analyze(Parse *pParse, Token *pName1, Token *pName2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90680,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90681,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90686,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90692,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90693,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90695,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90707,1
    - Dst: decodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90713,1
    - Dst: decodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90721,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - pData
    - argc
    - argv
    - NotUsed
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( argc==3 )
      pos:
        line_end: 90679
        line_start: 90679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90726
      start: 90674
    functionDepth: 5
    functionLinenumber: 90674
    functionLinenumberEnd: 90726
    functionName: analysisLoader
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3PrimaryKeyIndex
    - sqlite3_stricmp
    - assert
    - decodeIntArray
    - UNUSED_PARAMETER2
    - sqlite3FindIndex
    - sqlite3FindTable
    linkageType: ''
    returnType: int
    signature: int analysisLoader(void *pData, int argc, char **argv, char **NotUsed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90738,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90740,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90747,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - db
    - pIdx
    argTypes:
    - sqlite3*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90750
      start: 90732
    functionDepth: 5
    functionLinenumber: 90732
    functionLinenumberEnd: 90750
    functionName: sqlite3DeleteIndexSamples
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90810
      start: 90757
    functionDepth: 0
    functionLinenumber: 90757
    functionLinenumberEnd: 90810
    functionName: initAvgEq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initAvgEq(Index *pIdx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90821,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90823,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90824,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - db
    - zName
    - zDb
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90827
      start: 90816
    functionDepth: 1
    functionLinenumber: 90816
    functionLinenumberEnd: 90827
    functionName: findIndexOrPrimaryKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3PrimaryKeyIndex
    - sqlite3FindIndex
    - sqlite3FindTable
    linkageType: ''
    returnType: Index
    signature: "Index *findIndexOrPrimaryKey(\n  sqlite3 *db,\n  const char *zName,\n
      \ const char *zDb\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90855,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90856,1
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90860,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90861,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90864,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90874,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90876,1
    - Dst: findIndexOrPrimaryKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90877,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90883,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90883,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90884,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90884,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90895,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90897,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90907,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90909,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90912,1
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90916,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90917,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90920,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90925,1
    - Dst: findIndexOrPrimaryKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90927,1
    - Dst: initAvgEq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90934,1
    - Dst: decodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90938,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90938,1
    - Dst: decodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90939,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90939,1
    - Dst: decodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90940,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90940,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90948,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90949,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90951,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90954,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90954,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90957,1
    - Dst: initAvgEq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90958,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 5
    argNames:
    - db
    - bStat3
    - zSql1
    - zSql2
    - zDb
    argTypes:
    - sqlite3*
    - int
    - char*
    - char*
    - char*
    assertStmts:
    - condition: ( !HasRowid(pIdx->pTable) || pIdx->nColumn==pIdx->nKeyCol+1 )
      pos:
        line_end: 90882
        line_start: 90882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->lookaside.bEnabled==0 )
      pos:
        line_end: 90854
        line_start: 90854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx==0 || bStat3 || pIdx->nSample==0 )
      pos:
        line_end: 90877
        line_start: 90877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((u8*)pSpace)-nByte==(u8*)(pIdx->aSample) )
      pos:
        line_end: 90906
        line_start: 90906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90960
      start: 90842
    functionDepth: 26
    functionLinenumber: 90842
    functionLinenumberEnd: 90960
    functionName: loadStatTbl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - sqlite3_prepare
    - IsPrimaryKeyIndex
    - findIndexOrPrimaryKey
    - assert
    - decodeIntArray
    - sqlite3MPrintf
    - sqlite3_step
    - sqlite3_column_text
    - sqlite3DbMallocZero
    - sqlite3_column_bytes
    - memcpy
    - initAvgEq
    - HasRowid
    - sqlite3_column_blob
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: "int loadStatTbl(\n  sqlite3 *db,                  /* Database handle
      */\n  int bStat3,                   /* Assume single column records only */\n
      \ const char *zSql1,            /* SQL statement 1 (see above) */\n  const char
      *zSql2,            /* SQL statement 2 (see above) */\n  const char *zDb               /*
      Database name (e.g. \"main\") */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90969,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90970,1
    - Dst: loadStatTbl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90971,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90978,1
    - Dst: loadStatTbl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:90979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - db
    - zDb
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( db->lookaside.bEnabled==0 )
      pos:
        line_end: 90968
        line_start: 90968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 90987
      start: 90966
    functionDepth: 27
    functionLinenumber: 90966
    functionLinenumberEnd: 90987
    functionName: loadStat4
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - loadStatTbl
    - sqlite3FindTable
    - assert
    linkageType: ''
    returnType: int
    signature: int loadStat4(sqlite3 *db, const char *zDb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91016,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91020,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91020,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91021,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91021,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91022,1
    - Dst: sqlite3DefaultRowEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91023,1
    - Dst: sqlite3DeleteIndexSamples
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91025,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91033,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91038,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91043,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91044,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91050,1
    - Dst: loadStat4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91053,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91056,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91056,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91057,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91058,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - db
    - iDb
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 91019
        line_start: 91019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 91015
        line_start: 91015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb[iDb].pBt!=0 )
      pos:
        line_end: 91016
        line_start: 91016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91067
      start: 91010
    functionDepth: 28
    functionLinenumber: 91010
    functionLinenumberEnd: 91067
    functionName: sqlite3AnalysisLoad
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqliteHashNext
    - assert
    - sqlite3_free
    - sqlite3MPrintf
    - sqliteHashFirst
    - sqlite3SchemaMutexHeld
    - sqlite3DefaultRowEst
    - loadStat4
    - sqlite3FindTable
    - sqliteHashData
    - sqlite3_exec
    - OptimizationEnabled
    - sqlite3DbFree
    - sqlite3DeleteIndexSamples
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AnalysisLoad(sqlite3 *db, int iDb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pName
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91119
      start: 91108
    functionDepth: 3
    functionLinenumber: 91108
    functionLinenumberEnd: 91119
    functionName: resolveAttachExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: int
    signature: int resolveAttachExpr(NameContext *pName, Expr *pExpr)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91139,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91149,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91151,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91152,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91163,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91169,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91174,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91175,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91176,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91185,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91187,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91189,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91194,1
    - Dst: sqlite3ParseUri
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91201,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91204,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91208,1
    - Dst: sqlite3BtreeOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91210,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91211,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91215,1
    - Dst: sqlite3SchemaGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91218,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91221,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91222,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91226,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91227,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91228,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91229,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91230,1
    - Dst: sqlite3BtreeSetPagerFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91232,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91234,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91237,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91249,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91253,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91259,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91260,1
    - Dst: sqlite3CodecAttach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91261,1
    - Dst: sqlite3CodecGetKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91266,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91267,1
    - Dst: sqlite3CodecAttach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91268,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91281,1
    - Dst: sqlite3Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91282,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91283,1
    - Dst: sqlite3UserAuthCheckLogin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91296,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91298,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91302,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91306,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91307,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91309,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91319,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91320,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91322,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 139
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z && zName )
      pos:
        line_end: 91173
        line_start: 91173
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=2 )
      pos:
        line_end: 91295
        line_start: 91295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVfs )
      pos:
        line_end: 91207
        line_start: 91207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91323
      start: 91132
    functionDepth: 14
    functionLinenumber: 91132
    functionLinenumberEnd: 91323
    functionName: attachFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3BtreePager
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - ENC
    - sqlite3CodecGetKey
    - sqlite3_result_error
    - sqlite3BtreeOpen
    - sqlite3UserAuthCheckLogin
    - sqlite3DbFree
    - sqlite3BtreeLeaveAll
    - sqlite3Init
    - sqlite3StrICmp
    - sqlite3_free
    - sqlite3CodecAttach
    - memcpy
    - sqlite3DbStrDup
    - sqlite3BtreeClose
    - sqlite3BtreeGetOptimalReserve
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3DbRealloc
    - sqlite3BtreeSetPagerFlags
    - sqlite3ParseUri
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3_result_error_code
    - sqlite3BtreeEnterAll
    - sqlite3SchemaGet
    - sqlite3PagerLockingMode
    - sqlite3MPrintf
    - sqlite3_value_blob
    - sqlite3_value_type
    - sqlite3_context_db_handle
    - sqlite3BtreeSecureDelete
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: void
    signature: "void attachFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91338,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91339,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91344,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91350,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91354,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91358,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91362,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91366,1
    - Dst: sqlite3BtreeIsInBackup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91366,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91367,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91371,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91374,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91379
      start: 91333
    functionDepth: 11
    functionLinenumber: 91333
    functionLinenumberEnd: 91379
    functionName: detachFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - sqlite3BtreeIsInReadTrans
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3BtreeClose
    - sqlite3BtreeIsInBackup
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - sqlite3CollapseDatabaseArray
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void detachFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91400,1
    - Dst: resolveAttachExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91404,1
    - Dst: resolveAttachExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91405,1
    - Dst: resolveAttachExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91406,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91419,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91427,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91428,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91429,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91430,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91433,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91435,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91436,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91437,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91438,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91444,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91448,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91449,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91450,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 7
    argNames:
    - pParse
    - type
    - pFunc
    - pAuthArg
    - pFilename
    - pDbname
    - pKey
    argTypes:
    - Parse*
    - int
    - FuncDef*
    - Expr*
    - Expr*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( v || db->mallocFailed )
      pos:
        line_end: 91432
        line_start: 91432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFunc->nArg==-1 || (pFunc->nArg&0xff)==pFunc->nArg )
      pos:
        line_end: 91435
        line_start: 91435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91451
      start: 91385
    functionDepth: 17
    functionLinenumber: 91385
    functionLinenumberEnd: 91451
    functionName: codeAttach
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3VdbeChangeP4
    - assert
    - resolveAttachExpr
    - sqlite3ExprDelete
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3GetTempRange
    - sqlite3GetVdbe
    - sqlite3ExprCode
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: "void codeAttach(\n  Parse *pParse,       /* The parser context */\n
      \ int type,            /* Either SQLITE_ATTACH or SQLITE_DETACH */\n  FuncDef
      const *pFunc,/* FuncDef wrapper for detachFunc() or attachFunc() */\n  Expr
      *pAuthArg,      /* Expression to pass to authorization callback */\n  Expr *pFilename,
      \    /* Name of database file */\n  Expr *pDbname,       /* Name of the database
      to use internally */\n  Expr *pKey           /* Database key for encryption
      extension */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codeAttach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pParse
    - pDbname
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91472
      start: 91458
    functionDepth: 18
    functionLinenumber: 91458
    functionLinenumberEnd: 91472
    functionName: sqlite3Detach
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeAttach
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Detach(Parse *pParse, Expr *pDbname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codeAttach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - p
    - pDbname
    - pKey
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91493
      start: 91479
    functionDepth: 18
    functionLinenumber: 91479
    functionLinenumberEnd: 91493
    functionName: sqlite3Attach
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeAttach
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Attach(Parse *pParse, Expr *p, Expr *pDbname,
      Expr *pKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - pFix
    - pParse
    - iDb
    - zType
    - pName
    argTypes:
    - DbFixer*
    - Parse*
    - int
    - char*
    - Token*
    assertStmts:
    - condition: ( db->nDb>iDb )
      pos:
        line_end: 91509
        line_start: 91509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91517
      start: 91500
    functionDepth: 0
    functionLinenumber: 91500
    functionLinenumberEnd: 91517
    functionName: sqlite3FixInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixInit(\n  DbFixer *pFix,      /* The fixer
      to be initialized */\n  Parse *pParse,      /* Error messages will be written
      here */\n  int iDb,            /* This is the database that must be used */\n
      \ const char *zType,  /* \"view\", \"trigger\", or \"index\" */\n  const Token
      *pName  /* Name of the view, trigger, or index */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91541,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91545,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91546,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91551,1
    - Dst: sqlite3FixSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91556,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91557,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pFix
    - pList
    argTypes:
    - DbFixer*
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91561
      start: 91533
    functionDepth: 8
    functionLinenumber: 91533
    functionLinenumberEnd: 91561
    functionName: sqlite3FixSrcList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3StrICmp
    - sqlite3FixExpr
    - sqlite3FixSelect
    - sqlite3ErrorMsg
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixSrcList(\n  DbFixer *pFix,       /* Context
      of the fixation */\n  SrcList *pList       /* The Source list to check and modify
      */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91568,1
    - Dst: sqlite3FixSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91571,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91574,1
    - Dst: sqlite3FixExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91577,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91580,1
    - Dst: sqlite3FixExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91583,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91586,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91589,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - pFix
    - pSelect
    argTypes:
    - DbFixer*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91595
      start: 91563
    functionDepth: 9
    functionLinenumber: 91563
    functionLinenumberEnd: 91595
    functionName: sqlite3FixSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FixSrcList
    - sqlite3FixExprList
    - sqlite3FixExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixSelect(\n  DbFixer *pFix,       /* Context
      of the fixation */\n  Select *pSelect      /* The SELECT statement to be fixed
      to one database */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91605,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91609,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91610,1
    - Dst: sqlite3FixSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91611,1
    - Dst: sqlite3FixExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91613,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91615,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - pFix
    - pExpr
    argTypes:
    - DbFixer*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91621
      start: 91596
    functionDepth: 10
    functionLinenumber: 91596
    functionLinenumberEnd: 91621
    functionName: sqlite3FixExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - ExprHasProperty
    - sqlite3FixExprList
    - sqlite3FixExpr
    - sqlite3FixSelect
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixExpr(\n  DbFixer *pFix,     /* Context of
      the fixation */\n  Expr *pExpr        /* The expression to be fixed to one database
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pFix
    - pList
    argTypes:
    - DbFixer*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91635
      start: 91622
    functionDepth: 11
    functionLinenumber: 91622
    functionLinenumberEnd: 91635
    functionName: sqlite3FixExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FixExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixExprList(\n  DbFixer *pFix,     /* Context
      of the fixation */\n  ExprList *pList    /* The expression to be fixed to one
      database */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91644,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91647,1
    - Dst: sqlite3FixExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pFix
    - pStep
    argTypes:
    - DbFixer*
    - TriggerStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91656
      start: 91639
    functionDepth: 12
    functionLinenumber: 91639
    functionLinenumberEnd: 91656
    functionName: sqlite3FixTriggerStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FixExprList
    - sqlite3FixExpr
    - sqlite3FixSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixTriggerStep(\n  DbFixer *pFix,     /* Context
      of the fixation */\n  TriggerStep *pStep /* The trigger step be fixed to one
      database */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91736,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91738,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91741,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91744
      start: 91730
    functionDepth: 10
    functionLinenumber: 91730
    functionLinenumberEnd: 91744
    functionName: sqlite3_set_authorizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3ExpirePreparedStatements
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_set_authorizer(\n  sqlite3 *db,\n  int (*xAuth)(void*,int,const
      char*,const char*,const char*,const char*),\n  void *pArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91753
      start: 91750
    functionDepth: 8
    functionLinenumber: 91750
    functionLinenumberEnd: 91753
    functionName: sqliteAuthBadReturnCode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void sqliteAuthBadReturnCode(Parse *pParse)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3*::xAuth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91774,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91781,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91783,1
    - Dst: sqliteAuthBadReturnCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - pParse
    - zTab
    - zCol
    - iDb
    argTypes:
    - Parse*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91790
      start: 91764
    functionDepth: 9
    functionLinenumber: 91764
    functionLinenumberEnd: 91790
    functionName: sqlite3AuthReadCol
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3*::xAuth
    - sqliteAuthBadReturnCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthReadCol(\n  Parse *pParse,                  /*
      The parser context */\n  const char *zTab,               /* Table name */\n
      \ const char *zCol,               /* Column name */\n  int iDb                         /*
      Index of containing database. */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91815,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91826,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91827,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91838,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91841,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91846,1
    - Dst: sqlite3AuthReadCol
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91847,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - pSchema
    - pTabList
    argTypes:
    - Parse*
    - Expr*
    - Schema*
    - SrcList*
    assertStmts:
    - condition: ( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER )
      pos:
        line_end: 91821
        line_start: 91821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTabList )
      pos:
        line_end: 91825
        line_start: 91825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol<pTab->nCol )
      pos:
        line_end: 91837
        line_start: 91837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->iPKey<pTab->nCol )
      pos:
        line_end: 91840
        line_start: 91840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 91845
        line_start: 91845
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91850
      start: 91801
    functionDepth: 10
    functionLinenumber: 91801
    functionLinenumberEnd: 91850
    functionName: sqlite3AuthRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - sqlite3SchemaToIndex
    - assert
    - ALWAYS
    - sqlite3AuthReadCol
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthRead(\n  Parse *pParse,        /* The parser
      context */\n  Expr *pExpr,          /* The expression to check authorization
      on */\n  Schema *pSchema,      /* The schema of the expression */\n  SrcList
      *pTabList     /* All table that pExpr might refer to */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3*::xAuth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91878,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91884,1
    - Dst: sqliteAuthBadReturnCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - pParse
    - code
    - zArg1
    - zArg2
    - zArg3
    argTypes:
    - Parse*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91891
      start: 91858
    functionDepth: 9
    functionLinenumber: 91858
    functionLinenumberEnd: 91891
    functionName: sqlite3AuthCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3*::xAuth
    - sqliteAuthBadReturnCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthCheck(\n  Parse *pParse,\n  int code,\n
      \ const char *zArg1,\n  const char *zArg2,\n  const char *zArg3\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - pContext
    - zContext
    argTypes:
    - Parse*
    - AuthContext*
    - char*
    assertStmts:
    - condition: ( pParse )
      pos:
        line_end: 91902
        line_start: 91902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91907
      start: 91898
    functionDepth: 0
    functionLinenumber: 91898
    functionLinenumberEnd: 91907
    functionName: sqlite3AuthContextPush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthContextPush(\n  Parse *pParse,\n  AuthContext
      *pContext, \n  const char *zContext\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pContext
    argTypes:
    - AuthContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91918
      start: 91913
    functionDepth: 0
    functionLinenumber: 91913
    functionLinenumberEnd: 91918
    functionName: sqlite3AuthContextPop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AuthContextPop(AuthContext *pContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pParse
    - explainFlag
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91957
      start: 91954
    functionDepth: 0
    functionLinenumber: 91954
    functionLinenumberEnd: 91957
    functionName: sqlite3BeginParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginParse(Parse *pParse, int explainFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91988,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:91992,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92004,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - pParse
    - iDb
    - iTab
    - isWriteLock
    - zName
    argTypes:
    - Parse*
    - int
    - int
    - u8
    - char*
    assertStmts:
    - condition: ( iDb>=0 )
      pos:
        line_end: 91991
        line_start: 91991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92015
      start: 91981
    functionDepth: 7
    functionLinenumber: 91981
    functionLinenumberEnd: 92015
    functionName: sqlite3TableLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbReallocOrFree
    - sqlite3ParseToplevel
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TableLock(\n  Parse *pParse,     /* Parsing
      context */\n  int iDb,           /* Index of the database containing the table
      to lock */\n  int iTab,          /* Root page number of the table to be locked
      */\n  u8 isWriteLock,    /* True for a write lock */\n  const char *zName  /*
      Name of the table to be locked */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92025,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92026,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pVdbe!=0 )
      pos:
        line_end: 92025
        line_start: 92025
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92034
      start: 92021
    functionDepth: 9
    functionLinenumber: 92021
    functionLinenumberEnd: 92034
    functionName: codeTableLocks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVdbe
    - assert
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void codeTableLocks(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - yDbMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92049
      start: 92045
    functionDepth: 0
    functionLinenumber: 92045
    functionLinenumberEnd: 92049
    functionName: sqlite3DbMaskAllZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbMaskAllZero(yDbMask m)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92066,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92077,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92078,1
    - Dst: sqlite3VdbeAssertMayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92079,1
    - Dst: sqlite3VdbeDeletePriorOpcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92081,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92082,1
    - Dst: sqlite3UserAuthInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92086,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92089,1
    - Dst: DbMaskNonZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92102,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92105,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92105,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92106,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92108,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92109,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92110,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92113,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92117,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92121,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92122,1
    - Dst: codeTableLocks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92131,1
    - Dst: sqlite3AutoincrementBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92135,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92142,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92147,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92155,1
    - Dst: sqlite3VdbeMakeReady
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92159,1
    - Dst: DbMaskZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92169,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( sqlite3VdbeGetOp(v, 0)->opcode==OP_Init )
      pos:
        line_end: 92104
        line_start: 92104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( !pParse->isMultiWrite \n       || sqlite3VdbeAssertMayAbort(v,
        pParse->mayAbort))"
      pos:
        line_end: 92078
        line_start: 92077
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->iCacheLevel==0 )
      pos:
        line_end: 92154
        line_start: 92154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pToplevel==0 )
      pos:
        line_end: 92065
        line_start: 92065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92170
      start: 92062
    functionDepth: 17
    functionLinenumber: 92062
    functionLinenumberEnd: 92170
    functionName: sqlite3FinishCoding
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp0
    - DbMaskZero
    - DbMaskNonZero
    - sqlite3AutoincrementBegin
    - sqlite3VdbeMakeReady
    - sqlite3ErrorMsg
    - sqlite3VdbeAddOp4Int
    - sqlite3GetVTable
    - codeTableLocks
    - sqlite3VdbeDeletePriorOpcode
    - assert
    - sqlite3VdbeJumpHere
    - DbMaskTest
    - sqlite3UserAuthInit
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAssertMayAbort
    - sqlite3VdbeGetOp
    - sqlite3GetVdbe
    - sqlite3ExprCode
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FinishCoding(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92193,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92194,1
    - Dst: sqlite3VMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92195,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92196,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92201,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92202,1
    - Dst: sqlite3RunParser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92203,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92204,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92205,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - pParse
    - zFormat
    argTypes:
    - Parse*
    - char*
    assertStmts:
    - condition: ( pParse->nested<10 )
      pos:
        line_end: 92192
        line_start: 92192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92208
      start: 92184
    functionDepth: 7
    functionLinenumber: 92184
    functionLinenumberEnd: 92208
    functionName: sqlite3NestedParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - memset
    - assert
    - va_start
    - memcpy
    - sqlite3RunParser
    - sqlite3VMPrintf
    - va_end
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NestedParse(Parse *pParse, const char *zFormat,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zTable
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92217
      start: 92215
    functionDepth: 1
    functionLinenumber: 92215
    functionLinenumberEnd: 92217
    functionName: sqlite3UserAuthTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UserAuthTable(const char *zTable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92237,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92237,1
    - Dst: sqlite3UserAuthTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92241,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92247,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92248,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92248,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - db
    - zName
    - zDatabase
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts:
    - condition: ( zDatabase!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 92236
        line_start: 92236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 92247
        line_start: 92247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92253
      start: 92232
    functionDepth: 3
    functionLinenumber: 92232
    functionLinenumberEnd: 92253
    functionName: sqlite3FindTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3StrICmp
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3UserAuthTable
    - sqlite3SchemaMutexHeld
    - sqlite3HashFind
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FindTable(sqlite3 *db, const char *zName, const
      char *zDatabase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92275,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92279,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92283,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92285,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - isView
    - zName
    - zDbase
    argTypes:
    - Parse*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92296
      start: 92265
    functionDepth: 8
    functionLinenumber: 92265
    functionLinenumberEnd: 92296
    functionName: sqlite3LocateTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FindTable
    - sqlite3ErrorMsg
    - sqlite3ReadSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LocateTable(\n  Parse *pParse,         /* context
      in which to report errors */\n  int isView,            /* True if looking for
      a VIEW rather than a TABLE */\n  const char *zName,     /* Name of the table
      we are looking for */\n  const char *zDbase     /* Name of the database.  Might
      be NULL */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92313,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92315,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - isView
    - p
    argTypes:
    - Parse*
    - int
    - struct SrcList_item*
    assertStmts:
    - condition: ( p->pSchema==0 || p->zDatabase==0 )
      pos:
        line_end: 92312
        line_start: 92312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92321
      start: 92307
    functionDepth: 9
    functionLinenumber: 92307
    functionLinenumberEnd: 92321
    functionName: sqlite3LocateTableItem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3LocateTable
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LocateTableItem(\n  Parse *pParse, \n  int
      isView, \n  struct SrcList_item *p\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92339,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92339,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92343,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92344,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92345,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92345,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - db
    - zName
    - zDb
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts:
    - condition: ( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 92338
        line_start: 92338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 92344
        line_start: 92344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSchema )
      pos:
        line_end: 92342
        line_start: 92342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92350
      start: 92335
    functionDepth: 3
    functionLinenumber: 92335
    functionLinenumberEnd: 92350
    functionName: sqlite3FindIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3StrICmp
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3SchemaMutexHeld
    - sqlite3HashFind
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FindIndex(sqlite3 *db, const char *zName, const
      char *zDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DeleteIndexSamples
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92357,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92359,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92360,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92361,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92363,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92366
      start: 92355
    functionDepth: 6
    functionLinenumber: 92355
    functionLinenumberEnd: 92366
    functionName: freeIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    - sqlite3DbFree
    - sqlite3_free
    - sqlite3DeleteIndexSamples
    linkageType: ''
    returnType: void
    signature: void freeIndex(sqlite3 *db, Index *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92378,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92378,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92380,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92381,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92389,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92390,1
    - Dst: freeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - db
    - iDb
    - zIdxName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 92377
        line_start: 92377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92397
      start: 92374
    functionDepth: 7
    functionLinenumber: 92374
    functionLinenumberEnd: 92397
    functionName: sqlite3UnlinkAndDeleteIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ALWAYS
    - sqlite3SchemaMutexHeld
    - freeIndex
    - sqlite3HashInsert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const
      char *zIdxName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92412,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92421,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92424,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92428
      start: 92407
    functionDepth: 5
    functionLinenumber: 92407
    functionLinenumberEnd: 92428
    functionName: sqlite3CollapseDatabaseArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3DbFree
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CollapseDatabaseArray(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92436,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92440,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92440,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92441,1
    - Dst: sqlite3SchemaClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92442,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92450,1
    - Dst: sqlite3SchemaClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - db
    - iDb
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 92435
        line_start: 92435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 92439
        line_start: 92439
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDb->pSchema!=0 )
      pos:
        line_end: 92440
        line_start: 92440
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDb->pSchema!=0 )
      pos:
        line_end: 92449
        line_start: 92449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92454
      start: 92434
    functionDepth: 1
    functionLinenumber: 92434
    functionLinenumberEnd: 92454
    functionName: sqlite3ResetOneSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SchemaMutexHeld
    - sqlite3SchemaClear
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResetOneSchema(sqlite3 *db, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92462,1
    - Dst: sqlite3SchemaClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92466,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92470,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92471,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92473
      start: 92460
    functionDepth: 6
    functionLinenumber: 92460
    functionLinenumberEnd: 92473
    functionName: sqlite3ResetAllSchemasOfConnection
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3VtabUnlockList
    - sqlite3SchemaClear
    - sqlite3BtreeEnterAll
    - sqlite3CollapseDatabaseArray
    - sqlite3BtreeLeaveAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResetAllSchemasOfConnection(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92480
      start: 92478
    functionDepth: 0
    functionLinenumber: 92478
    functionLinenumberEnd: 92480
    functionName: sqlite3CommitInternalChanges
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CommitInternalChanges(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92489,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92492,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92493,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92494,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92495,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92496,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - db
    - pTable
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( pTable!=0 )
      pos:
        line_end: 92488
        line_start: 92488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92500
      start: 92486
    functionDepth: 6
    functionLinenumber: 92486
    functionLinenumberEnd: 92500
    functionName: sqliteDeleteColumnNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void sqliteDeleteColumnNames(sqlite3 *db, Table *pTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92539,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92542,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92542,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92543,1
    - Dst: freeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92545,1
    - Dst: sqlite3FkDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92549,1
    - Dst: sqliteDeleteColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92553,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92554,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92555,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92556,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92558,1
    - Dst: sqlite3VtabClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92561,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92566,1
    - Dst: sqlite3UnlinkAndDeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92577,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92578,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92579,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92580,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92580,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92581,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92583,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pOld==pIndex || pOld==0 )
      pos:
        line_end: 92542
        line_start: 92542
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zTabName )
      pos:
        line_end: 92578
        line_start: 92578
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nLookaside==0 || nLookaside==db->lookaside.nOut )
      pos:
        line_end: 92565
        line_start: 92565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) )
      pos:
        line_end: 92541
        line_start: 92541
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 92579
        line_start: 92579
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 92577
        line_start: 92577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 92576
        line_start: 92576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92586
      start: 92539
    functionDepth: 7
    functionLinenumber: 92539
    functionLinenumberEnd: 92586
    functionName: TESTONLY
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3VtabClear
    - assert
    - sqlite3UnlinkAndDeleteTable
    - sqlite3FkDelete
    - sqliteDeleteColumnNames
    - sqlite3SelectDelete
    - sqlite3SchemaMutexHeld
    - sqlite3DeleteTable
    - freeIndex
    - sqlite3HashInsert
    - testcase
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: "void TESTONLY ( Index *pOld = ) sqlite3HashInsert(\n         &pIndex->pSchema->idxHash,
      zName, 0\n      );\n      assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema)
      );\n      assert( pOld==pIndex || pOld==0 );\n    }\n    freeIndex(db, pIndex);\n
      \ }\n\n  /* Delete any foreign keys attached to this table. */\n  sqlite3FkDelete(db,
      pTable);\n\n  /* Delete the Table structure itself.\n  */\n  sqliteDeleteColumnNames(db,
      pTable);\n  sqlite3DbFree(db, pTable->zName);\n  sqlite3DbFree(db, pTable->zColAff);\n
      \ sqlite3SelectDelete(db, pTable->pSelect);\n#ifndef SQLITE_OMIT_CHECK\n  sqlite3ExprListDelete(db,
      pTable->pCheck);\n#endif\n#ifndef SQLITE_OMIT_VIRTUALTABLE\n  sqlite3VtabClear(db,
      pTable);\n#endif\n  sqlite3DbFree(db, pTable);\n\n  /* Verify that no lookaside
      memory was used by schema tables */\n  assert( nLookaside==0 || nLookaside==db->lookaside.nOut
      );\n}\n\n/*\n** Unlink the given table from the hash tables and the delete the\n**
      table structure with all its indices and foreign keys.\n*/\nSQLITE_PRIVATE void
      sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92604,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - db
    - pName
    argTypes:
    - sqlite3*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92610
      start: 92601
    functionDepth: 6
    functionLinenumber: 92601
    functionLinenumberEnd: 92610
    functionName: sqlite3NameFromToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Dequote
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NameFromToken(sqlite3 *db, Token *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92617,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92618,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92618,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92623
      start: 92616
    functionDepth: 9
    functionLinenumber: 92616
    functionLinenumberEnd: 92623
    functionName: sqlite3OpenMasterTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TableLock
    - SCHEMA_TABLE
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp4Int
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OpenMasterTable(Parse *p, int iDb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92635,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92637,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - db
    - zName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92644
      start: 92631
    functionDepth: 1
    functionLinenumber: 92631
    functionLinenumberEnd: 92644
    functionName: sqlite3FindDbName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Strlen30
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FindDbName(sqlite3 *db, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92655,1
    - Dst: sqlite3FindDbName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92656,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pName
    argTypes:
    - sqlite3*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92659
      start: 92652
    functionDepth: 7
    functionLinenumber: 92652
    functionLinenumberEnd: 92659
    functionName: sqlite3FindDb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - sqlite3NameFromToken
    - sqlite3FindDbName
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FindDb(sqlite3 *db, Token *pName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92686,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92688,1
    - Dst: sqlite3FindDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92692,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92694,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - pParse
    - pName1
    - pName2
    - pUnqual
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token**
    assertStmts:
    - condition: ( db->init.iDb==0 || db->init.busy )
      pos:
        line_end: 92697
        line_start: 92697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92703
      start: 92677
    functionDepth: 8
    functionLinenumber: 92677
    functionLinenumberEnd: 92703
    functionName: sqlite3TwoPartName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - ALWAYS
    - assert
    - sqlite3FindDb
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TwoPartName(\n  Parse *pParse,      /* Parsing
      and code generating context */\n  Token *pName1,      /* The \"xxx\" in the
      name \"xxx.yyy\" or \"xxx\" */\n  Token *pName2,      /* The \"yyy\" in the
      name \"xxx.yyy\" */\n  Token **pUnqual     /* Write the unqualified object name
      here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92715,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zName
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92720
      start: 92712
    functionDepth: 8
    functionLinenumber: 92712
    functionLinenumberEnd: 92720
    functionName: sqlite3CheckObjectName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3StrNICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CheckObjectName(Parse *pParse, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92729
      start: 92725
    functionDepth: 1
    functionLinenumber: 92725
    functionLinenumberEnd: 92729
    functionName: sqlite3PrimaryKeyIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - IsPrimaryKeyIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PrimaryKeyIndex(Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pIdx
    - iCol
    argTypes:
    - Index*
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92741
      start: 92735
    functionDepth: 0
    functionLinenumber: 92735
    functionLinenumberEnd: 92741
    functionName: sqlite3ColumnOfIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ColumnOfIndex(Index *pIdx, i16 iCol)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92792,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92797,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92803,1
    - Dst: sqlite3CheckObjectName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92805,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92810,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92814,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92814,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92830,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92845,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92848,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92851,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92853,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92854,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92858,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92859,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92875,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92875,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92876,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92885,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92885,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92898,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92902,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92906,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92916,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92917,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92918,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92918,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92921,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92922,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92923,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92923,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92924,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92925,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92938,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92942,1
    - Dst: sqlite3OpenMasterTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92944,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92945,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92946,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92947,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92948,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92949,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92957,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 7
    argNames:
    - pParse
    - pName1
    - pName2
    - isTemp
    - isView
    - isVirtual
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( pParse->pNewTable==0 )
      pos:
        line_end: 92875
        line_start: 92875
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 92884
        line_start: 92884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 92874
        line_start: 92874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (isTemp & 1)==isTemp )
      pos:
        line_end: 92809
        line_start: 92809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->init.busy || CORRUPT_DB )
      pos:
        line_end: 92852
        line_start: 92852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92959
      start: 92759
    functionDepth: 10
    functionLinenumber: 92759
    functionLinenumberEnd: 92959
    functionName: sqlite3StartTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp0
    - sqlite3TwoPartName
    - ENC
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3CodeVerifySchema
    - VdbeCoverage
    - sqlite3SchemaMutexHeld
    - sqlite3FindTable
    - sqlite3ReadSchema
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FindIndex
    - strcmp
    - sqlite3VdbeAddOp2
    - sqlite3LogEst
    - sqlite3NameFromToken
    - sqlite3CheckObjectName
    - sqlite3OpenMasterTable
    - sqlite3DbMallocZero
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3StartTable(\n  Parse *pParse,   /* Parser context
      */\n  Token *pName1,   /* First part of the name of the table or view */\n  Token
      *pName2,   /* Second part of the name of the table or view */\n  int isTemp,
      \     /* True if this is a TEMP table */\n  int isView,      /* True if this
      is a VIEW */\n  int isVirtual,   /* True if this is a VIRTUAL table */\n  int
      noErr        /* Do nothing if table already exists */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92973
      start: 92969
    functionDepth: 0
    functionLinenumber: 92969
    functionLinenumberEnd: 92973
    functionName: STRICMP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRICMP(x, y)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92991,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92995,1
    - Dst: STRICMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92998,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:92999,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93000,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93006,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93008,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93014,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - pParse
    - pName
    argTypes:
    - Parse*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93024
      start: 92982
    functionDepth: 8
    functionLinenumber: 92982
    functionLinenumberEnd: 93024
    functionName: sqlite3AddColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbRealloc
    - STRICMP
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddColumn(Parse *pParse, Token *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - onError
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93037
      start: 93032
    functionDepth: 1
    functionLinenumber: 93032
    functionLinenumberEnd: 93037
    functionName: sqlite3AddNotNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddNotNull(Parse *pParse, int onError)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93108,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 2
    argNames:
    - zIn
    - pszEst
    argTypes:
    - char*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93124
      start: 93064
    functionDepth: 2
    functionLinenumber: 93064
    functionLinenumberEnd: 93124
    functionName: sqlite3AffinityType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3Isdigit
    - sqlite3GetInt32
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AffinityType(const char *zIn, u8 *pszEst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93140,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93142,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93143,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93144,1
    - Dst: sqlite3AffinityType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - pType
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( pCol->zType==0 || CORRUPT_DB )
      pos:
        line_end: 93141
        line_start: 93141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93146
      start: 93135
    functionDepth: 7
    functionLinenumber: 93135
    functionLinenumberEnd: 93146
    functionName: sqlite3AddColumnType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - sqlite3AffinityType
    - sqlite3DbFree
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddColumnType(Parse *pParse, Token *pType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstantOrFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93165,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93166,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93173,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93174,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93175,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93176,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pSpan
    argTypes:
    - Parse*
    - ExprSpan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93181
      start: 93158
    functionDepth: 8
    functionLinenumber: 93158
    functionLinenumberEnd: 93181
    functionName: sqlite3AddDefaultValue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprDelete
    - sqlite3ExprIsConstantOrFunction
    - sqlite3ErrorMsg
    - sqlite3DbStrNDup
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddDefaultValue(Parse *pParse, ExprSpan *pSpan)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93214,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93228,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93242,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93247,1
    - Dst: sqlite3CreateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93252,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93261,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - pParse
    - pList
    - onError
    - autoInc
    - sortOrder
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    - int
    assertStmts:
    - condition: ( autoInc==0 || autoInc==1 )
      pos:
        line_end: 93241
        line_start: 93241
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93263
      start: 93201
    functionDepth: 8
    functionLinenumber: 93201
    functionLinenumberEnd: 93263
    functionName: sqlite3AddPrimaryKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    - sqlite3ErrorMsg
    - sqlite3CreateIndex
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AddPrimaryKey(\n  Parse *pParse,    /* Parsing
      context */\n  ExprList *pList,  /* List of field names to be indexed */\n  int
      onError,      /* What to do with a uniqueness conflict */\n  int autoInc,      /*
      True if the AUTOINCREMENT keyword is present */\n  int sortOrder     /* SQLITE_SO_ASC
      or SQLITE_SO_DESC */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsReadonly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93276,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93278,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93280,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - pCheckExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93287
      start: 93268
    functionDepth: 7
    functionLinenumber: 93268
    functionLinenumberEnd: 93287
    functionName: sqlite3AddCheckConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListSetName
    - sqlite3BtreeIsReadonly
    - sqlite3ExprDelete
    - sqlite3ExprListAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AddCheckConstraint(\n  Parse *pParse,    /*
      Parsing context */\n  Expr *pCheckExpr  /* The check expression */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93302,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93305,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93307,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93315,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pParse
    - pToken
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( pIdx->nKeyCol==1 )
      pos:
        line_end: 93314
        line_start: 93314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93323
      start: 93293
    functionDepth: 7
    functionLinenumber: 93293
    functionLinenumberEnd: 93323
    functionName: sqlite3AddCollateType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LocateCollSeq
    - assert
    - sqlite3DbFree
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddCollateType(Parse *pParse, Token *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93347,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93351,1
    - Dst: sqlite3GetCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zName
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93357
      start: 93345
    functionDepth: 1
    functionLinenumber: 93345
    functionLinenumberEnd: 93357
    functionName: sqlite3LocateCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3GetCollSeq
    - sqlite3FindCollSeq
    - ENC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3LocateCollSeq(Parse *pParse, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93377,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93380,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93380,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93381,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93382,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 93379
        line_start: 93379
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93384
      start: 93376
    functionDepth: 9
    functionLinenumber: 93376
    functionLinenumberEnd: 93384
    functionName: sqlite3ChangeCookie
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3ReleaseTempReg
    - sqlite3GetTempReg
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ChangeCookie(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93400
      start: 93394
    functionDepth: 0
    functionLinenumber: 93394
    functionLinenumberEnd: 93400
    functionName: identLength
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int identLength(const char *z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93421,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93423,1
    - Dst: sqlite3KeywordCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93424,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - z
    - pIdx
    - zSignedIdent
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93436
      start: 93415
    functionDepth: 1
    functionLinenumber: 93415
    functionLinenumberEnd: 93436
    functionName: identPut
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - sqlite3KeywordCode
    - sqlite3Isalnum
    linkageType: ''
    returnType: void
    signature: void identPut(char *z, int *pIdx, char *zSignedIdent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: identLength
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93450,1
    - Dst: identLength
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93452,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93463,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93468,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93469,1
    - Dst: identPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93470,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93483,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93484,1
    - Dst: identPut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93487,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93488,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93488,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93489,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93490,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93491,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93492,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93493,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93496,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93497,1
    - Dst: sqlite3AffinityType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93498,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93499,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93501,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( k<=n )
      pos:
        line_end: 93500
        line_start: 93500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCol->affinity-SQLITE_AFF_BLOB >= 0 )
      pos:
        line_end: 93486
        line_start: 93486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pCol->affinity==SQLITE_AFF_BLOB \n            || pCol->affinity==sqlite3AffinityType(zType,
        0) )"
      pos:
        line_end: 93497
        line_start: 93496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCol->affinity-SQLITE_AFF_BLOB < ArraySize(azType) )
      pos:
        line_end: 93487
        line_start: 93487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93505
      start: 93443
    functionDepth: 5
    functionLinenumber: 93443
    functionLinenumberEnd: 93505
    functionName: createTableStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - identPut
    - ArraySize
    - sqlite3AffinityType
    - sqlite3Strlen30
    - identLength
    - testcase
    - sqlite3_snprintf
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: char
    signature: char *createTableStmt(sqlite3 *db, Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93515,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93517,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93519,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93522,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - db
    - pIdx
    - N
    argTypes:
    - sqlite3*
    - Index*
    - int
    assertStmts:
    - condition: ( pIdx->isResized==0 )
      pos:
        line_end: 93514
        line_start: 93514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93530
      start: 93511
    functionDepth: 2
    functionLinenumber: 93511
    functionLinenumberEnd: 93530
    functionName: resizeIndexObject
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3DbMallocZero
    - assert
    linkageType: ''
    returnType: int
    signature: int resizeIndexObject(sqlite3 *db, Index *pIdx, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93544
      start: 93535
    functionDepth: 1
    functionLinenumber: 93535
    functionLinenumberEnd: 93544
    functionName: estimateTableWidth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    linkageType: ''
    returnType: void
    signature: void estimateTableWidth(Table *pTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93555,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts:
    - condition: ( x<pIdx->pTable->nCol )
      pos:
        line_end: 93554
        line_start: 93554
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93559
      start: 93549
    functionDepth: 1
    functionLinenumber: 93549
    functionLinenumberEnd: 93559
    functionName: estimateIndexWidth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    - assert
    linkageType: ''
    returnType: void
    signature: void estimateIndexWidth(Index *pIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - aiCol
    - nCol
    - x
    argTypes:
    - i16*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93566
      start: 93563
    functionDepth: 0
    functionLinenumber: 93563
    functionLinenumberEnd: 93566
    functionName: hasColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasColumn(const i16 *aiCol, int nCol, int x)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93604,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93605,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93613,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93618,1
    - Dst: sqlite3CreateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93619,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93624,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93631,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93632,1
    - Dst: hasColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93641,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93650,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93670,1
    - Dst: hasColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93672,1
    - Dst: resizeIndexObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93679,1
    - Dst: hasColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93681,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93687,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93688,1
    - Dst: resizeIndexObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93694,1
    - Dst: hasColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93696,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93703,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93704,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pPk->nColumn==j )
      pos:
        line_end: 93702
        line_start: 93702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 93630
        line_start: 93630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->nColumn>=pIdx->nKeyCol+n )
      pos:
        line_end: 93686
        line_start: 93686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<pPk->nColumn )
      pos:
        line_end: 93696
        line_start: 93696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 93649
        line_start: 93649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->nCol==j )
      pos:
        line_end: 93703
        line_start: 93703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 93603
        line_start: 93603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pNewTable==pTab )
      pos:
        line_end: 93617
        line_start: 93617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->nColumn>=j )
      pos:
        line_end: 93687
        line_start: 93687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93708
      start: 93591
    functionDepth: 7
    functionLinenumber: 93591
    functionLinenumberEnd: 93708
    functionName: convertToWithoutRowidTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PrimaryKeyIndex
    - sqlite3ExprListAppend
    - IsPrimaryKeyIndex
    - assert
    - sqlite3VdbeGetOp
    - hasColumn
    - sqlite3DbStrDup
    - resizeIndexObject
    - sqlite3CreateIndex
    linkageType: ''
    returnType: void
    signature: void convertToWithoutRowidTable(Parse *pParse, Table *pTab)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93748,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93763,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93768,1
    - Dst: convertToWithoutRowidTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93771,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93775,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93781,1
    - Dst: estimateTableWidth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93786,1
    - Dst: estimateIndexWidth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93788,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93804,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93805,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93807,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93849,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93850,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93851,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93852,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93854,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93855,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93856,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93857,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93858,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93859,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93861,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93863,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93868,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93869,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93870,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93871,1
    - Dst: sqlite3TableAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93872,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93873,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93874,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93875,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93876,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93877,1
    - Dst: createTableStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93882,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93887,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93896,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93900,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93908,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93909,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93917,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93917,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93919,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93928,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93929,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93938,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93938,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93952,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93957,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 117
    argCount: 5
    argNames:
    - pParse
    - pCons
    - pEnd
    - tabOpts
    - pSelect
    argTypes:
    - Parse*
    - Token*
    - Token*
    - u8
    - Select*
    assertStmts:
    - condition: ( !pSelect && pCons && pEnd )
      pos:
        line_end: 93951
        line_start: 93951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aCol==0 )
      pos:
        line_end: 93862
        line_start: 93862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 93937
        line_start: 93937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->init.busy || !pSelect )
      pos:
        line_end: 93747
        line_start: 93747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pParse->nTab==1)
      pos:
        line_end: 93848
        line_start: 93848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 93916
        line_start: 93916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==pOld )
      pos:
        line_end: 93940
        line_start: 93940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93961
      start: 93730
    functionDepth: 10
    functionLinenumber: 93730
    functionLinenumberEnd: 93961
    functionName: sqlite3EndTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3DeleteTable
    - createTableStmt
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3ChangeCookie
    - NEVER
    - sqlite3SchemaToIndex
    - convertToWithoutRowidTable
    - sqlite3SelectDestInit
    - sqlite3Select
    - VdbeCoverage
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddParseSchemaOp
    - estimateTableWidth
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3Utf8CharLen
    - sqlite3VdbeJumpHere
    - SCHEMA_TABLE
    - sqlite3VdbeAddOp2
    - sqlite3HashInsert
    - sqlite3ResultSetOfSelect
    - sqlite3ResolveSelfReference
    - sqlite3MayAbort
    - sqlite3MPrintf
    - sqlite3TableAffinity
    - sqlite3GetVdbe
    - estimateIndexWidth
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3EndTable(\n  Parse *pParse,          /* Parse
      context */\n  Token *pCons,           /* The ',' token after the last column
      defn. */\n  Token *pEnd,            /* The ')' before options in the CREATE
      TABLE */\n  u8 tabOpts,             /* Extra table options. Usually 0. */\n
      \ Select *pSelect         /* Select from a \"CREATE ... AS SELECT\" */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93986,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93987,1
    - Dst: sqlite3StartTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93990,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93993,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93996,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93997,1
    - Dst: sqlite3FixInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93998,1
    - Dst: sqlite3FixSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:93999,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94000,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94009,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94010,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94015,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94022,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94028,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94028,1
    - Dst: sqlite3EndTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94033,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 7
    argNames:
    - pParse
    - pBegin
    - pName1
    - pName2
    - pSelect
    - isTemp
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - Select*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94035
      start: 93967
    functionDepth: 11
    functionLinenumber: 93967
    functionLinenumberEnd: 94035
    functionName: sqlite3CreateView
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3TwoPartName
    - sqlite3SelectDelete
    - sqlite3SelectDup
    - sqlite3ViewGetColumnNames
    - ALWAYS
    - sqlite3EndTable
    - sqlite3StartTable
    - sqlite3FixSelect
    - sqlite3FixInit
    - sqlite3Isspace
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateView(\n  Parse *pParse,     /* The parsing
      context */\n  Token *pBegin,     /* The CREATE token that begins the statement
      */\n  Token *pName1,     /* The token that holds the name of the view */\n  Token
      *pName2,     /* The token that holds the name of the view */\n  Select *pSelect,
      \  /* A SELECT statement that will become the new view */\n  int isTemp,        /*
      TRUE for a TEMPORARY view */\n  int noErr          /* Suppress error messages
      if VIEW already exists */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94052,1
    - Dst: sqlite3VtabCallConnect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94055,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94058,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94083,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94086,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94095,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94096,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94100,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94106,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94109,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94114,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94120,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94120,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 2
    argNames:
    - pParse
    - pTable
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pTable )
      pos:
        line_end: 94051
        line_start: 94051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable->nCol>=0 )
      pos:
        line_end: 94085
        line_start: 94085
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable->pSelect )
      pos:
        line_end: 94094
        line_start: 94094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable->aCol==0 )
      pos:
        line_end: 94113
        line_start: 94113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) )
      pos:
        line_end: 94119
        line_start: 94119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94132
      start: 94044
    functionDepth: 9
    functionLinenumber: 94044
    functionLinenumberEnd: 94132
    functionName: sqlite3ViewGetColumnNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ResultSetOfSelect
    - assert
    - IsVirtual
    - sqlite3SelectDup
    - sqlite3SelectDelete
    - sqlite3SchemaMutexHeld
    - sqlite3DeleteTable
    - sqlite3SrcListAssignCursors
    - sqlite3ErrorMsg
    - sqlite3VtabCallConnect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94141,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94141,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94142,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94143,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94143,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94144,1
    - Dst: sqliteDeleteColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94146,1
    - Dst: DbClearProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - db
    - idx
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, idx, 0) )
      pos:
        line_end: 94140
        line_start: 94140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94152
      start: 94139
    functionDepth: 7
    functionLinenumber: 94139
    functionLinenumberEnd: 94152
    functionName: sqliteViewResetAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteHashNext
    - assert
    - DbClearProperty
    - sqliteHashFirst
    - sqlite3SchemaMutexHeld
    - sqliteHashData
    - sqliteDeleteColumnNames
    - DbHasProperty
    linkageType: ''
    returnType: void
    signature: void sqliteViewResetAll(sqlite3 *db, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94180,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94180,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94183,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94183,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94184,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94190,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94190,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - db
    - iDb
    - iFrom
    - iTo
    argTypes:
    - sqlite3*
    - int
    - int
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 94179
        line_start: 94179
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94196
      start: 94175
    functionDepth: 1
    functionLinenumber: 94175
    functionLinenumberEnd: 94196
    functionName: sqlite3RootPageMoved
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqliteHashNext
    - assert
    - sqliteHashFirst
    - sqlite3SchemaMutexHeld
    - sqliteHashData
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RootPageMoved(sqlite3 *db, int iDb, int iFrom,
      int iTo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94206,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94207,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94208,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94209,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94220,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94222,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - iTable
    - iDb
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94225
      start: 94205
    functionDepth: 8
    functionLinenumber: 94205
    functionLinenumberEnd: 94225
    functionName: destroyRootPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MayAbort
    - sqlite3NestedParse
    - sqlite3ReleaseTempReg
    - sqlite3GetTempReg
    - SCHEMA_TABLE
    - sqlite3VdbeAddOp3
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: void destroyRootPage(Parse *pParse, int iTable, int iDb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94236,1
    - Dst: destroyRootPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94237,1
    - Dst: destroyRootPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94239,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94270,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94278,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94279,1
    - Dst: destroyRootPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 94269
        line_start: 94269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<pParse->db->nDb )
      pos:
        line_end: 94278
        line_start: 94278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94285
      start: 94233
    functionDepth: 9
    functionLinenumber: 94233
    functionLinenumberEnd: 94285
    functionName: destroyTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - assert
    - destroyRootPage
    linkageType: ''
    returnType: void
    signature: void destroyTable(Parse *pParse, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94301,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94302,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pParse
    - iDb
    - zType
    - zName
    argTypes:
    - Parse*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94309
      start: 94291
    functionDepth: 8
    functionLinenumber: 94291
    functionLinenumberEnd: 94309
    functionName: sqlite3ClearStatTables
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3FindTable
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void sqlite3ClearStatTables(\n  Parse *pParse,         /* The parsing
      context */\n  int iDb,               /* The database number */\n  const char
      *zType,     /* \"idx\" or \"tbl\" */\n  const char *zName      /* Name of index
      or table */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94320,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94321,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94322,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94325,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94326,1
    - Dst: sqlite3TriggerList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94334,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94336,1
    - Dst: sqlite3DropTriggerPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94338,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94349,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94363,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94365,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94366,1
    - Dst: destroyTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94367,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94373,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94374,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94376,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94377,1
    - Dst: sqliteViewResetAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - pParse
    - pTab
    - iDb
    - isView
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 94320
        line_start: 94320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pTrigger->pSchema==pTab->pSchema || \n        pTrigger->pSchema==db->aDb[1].pSchema
        )"
      pos:
        line_end: 94336
        line_start: 94335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94379
      start: 94314
    functionDepth: 10
    functionLinenumber: 94314
    functionLinenumberEnd: 94379
    functionName: sqlite3CodeDropTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3VdbeAddOp0
    - IsVirtual
    - destroyTable
    - sqlite3NestedParse
    - sqlite3TriggerList
    - sqliteViewResetAll
    - SCHEMA_TABLE
    - sqlite3DropTriggerPtr
    - sqlite3GetVdbe
    - sqlite3ChangeCookie
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeDropTable(Parse *pParse, Table *pTab, int
      iDb, int isView)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94394,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94395,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94396,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94398,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94402,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94405,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94406,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94411,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94411,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94417,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94420,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94430,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94432,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94441,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94444,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94449,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94450,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94451,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94460,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94464,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94472,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94474,1
    - Dst: sqlite3ClearStatTables
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94475,1
    - Dst: sqlite3FkDropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94476,1
    - Dst: sqlite3CodeDropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94477,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94481,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 82
    argCount: 4
    argNames:
    - pParse
    - pName
    - isView
    - noErr
    argTypes:
    - Parse*
    - SrcList*
    - int
    - int
    assertStmts:
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 94393
        line_start: 94393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 94394
        line_start: 94394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 94405
        line_start: 94405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94482
      start: 94385
    functionDepth: 11
    functionLinenumber: 94385
    functionLinenumberEnd: 94482
    functionName: sqlite3DropTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - sqlite3CodeDropTable
    - sqlite3CodeVerifyNamedSchema
    - assert
    - IsVirtual
    - sqlite3ViewGetColumnNames
    - sqlite3SrcListDelete
    - sqlite3GetVTable
    - sqlite3StrNICmp
    - sqlite3LocateTableItem
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FkDropTable
    - sqlite3ClearStatTables
    - sqlite3GetVdbe
    - sqlite3ErrorMsg
    - sqlite3ReadSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTable(Parse *pParse, SrcList *pName, int
      isView, int noErr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94517,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94521,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94523,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94530,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94540,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94543,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94551,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94553,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94562,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94568,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94577,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94579,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94588,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94588,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94589,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94597,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94608,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94610,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94611,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 5
    argNames:
    - pParse
    - pFromCol
    - pTo
    - pToCol
    - flags
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - ExprList*
    - int
    assertStmts:
    - condition: ( pTo!=0 )
      pos:
        line_end: 94516
        line_start: 94516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNextTo->pPrevTo==0 )
      pos:
        line_end: 94596
        line_start: 94596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, p->pSchema) )
      pos:
        line_end: 94587
        line_start: 94587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94612
      start: 94500
    functionDepth: 8
    functionLinenumber: 94500
    functionLinenumberEnd: 94612
    functionName: sqlite3CreateForeignKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3Dequote
    - sqlite3StrICmp
    - assert
    - sqlite3DbMallocZero
    - memcpy
    - sqlite3SchemaMutexHeld
    - sqlite3Strlen30
    - sqlite3HashInsert
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateForeignKey(\n  Parse *pParse,       /*
      Parsing context */\n  ExprList *pFromCol,  /* Columns in this table that point
      to other table */\n  Token *pTo,          /* Name of the other table */\n  ExprList
      *pToCol,    /* Columns in the other table */\n  int flags            /* Conflict
      resolution algorithms. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - isDeferred
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( isDeferred==0 || isDeferred==1 )
      pos:
        line_end: 94625
        line_start: 94625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94629
      start: 94621
    functionDepth: 0
    functionLinenumber: 94621
    functionLinenumberEnd: 94629
    functionName: sqlite3DeferForeignKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeferForeignKey(Parse *pParse, int isDeferred)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94655,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94658,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94665,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94667,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94674,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94678,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94679,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94683,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94684,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94684,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94685,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94687,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94688,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94689,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94690,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94690,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94691,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94692,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94693,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94695,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94697,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94698,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94699,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94700,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94701,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94702,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94703,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94704,1
    - Dst: sqlite3UniqueConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94705,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94707,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94709,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94710,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94711,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94712,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94713,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94714,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94714,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94715,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94717,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94718,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 3
    argNames:
    - pParse
    - pIndex
    - memRootPage
    argTypes:
    - Parse*
    - Index*
    - int
    assertStmts:
    - condition: ( pKey!=0 || db->mallocFailed || pParse->nErr )
      pos:
        line_end: 94697
        line_start: 94697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94720
      start: 94642
    functionDepth: 9
    functionLinenumber: 94642
    functionLinenumberEnd: 94720
    functionName: sqlite3RefillIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolvePartIdxLabel
    - sqlite3TableLock
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - IsUniqueIndex
    - sqlite3SchemaToIndex
    - sqlite3VdbeAddOp4Int
    - sqlite3OpenTable
    - VdbeCoverage
    - sqlite3KeyInfoOfIndex
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempReg
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp2
    - sqlite3GenerateIndexKey
    - sqlite3KeyInfoRef
    - sqlite3UniqueConstraint
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94738,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94739,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94740,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94743,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94745,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - db
    - nCol
    - nExtra
    - ppExtra
    argTypes:
    - sqlite3*
    - i16
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94755
      start: 94729
    functionDepth: 2
    functionLinenumber: 94729
    functionLinenumberEnd: 94755
    functionName: sqlite3AllocateIndexObject
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3AllocateIndexObject(\n  sqlite3 *db,         /*
      Database connection */\n  i16 nCol,            /* Total number of columns in
      the index */\n  int nExtra,          /* Number of bytes of extra space to alloc
      */\n  char **ppExtra       /* Pointer to the \"extra\" space */\n)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94807,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94820,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94823,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94831,1
    - Dst: sqlite3FixInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94838,1
    - Dst: sqlite3FixSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94839,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94842,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94844,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94845,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94848,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94853,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94853,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94856,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94859,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94864,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94865,1
    - Dst: sqlite3UserAuthTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94868,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94870,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94871,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94876,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94881,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94882,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94901,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94903,1
    - Dst: sqlite3CheckObjectName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94904,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94908,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94909,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94913,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94915,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94917,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94918,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94926,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94937,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94937,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94942,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94953,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94955,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94966,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94967,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94974,1
    - Dst: sqlite3AllocateIndexObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94981,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94981,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94982,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94982,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94985,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94997,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:94997,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95023,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95026,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95035,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95037,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95038,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95039,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95047,1
    - Dst: hasColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95058,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95067,1
    - Dst: sqlite3DefaultRowEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95072,1
    - Dst: estimateIndexWidth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95073,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95100,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95101,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95102,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95102,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95111,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95123,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95141,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95141,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95142,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95145,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95168,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95173,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95176,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95184,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95185,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95194,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95204,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95206,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95212,1
    - Dst: sqlite3RefillIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95218,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95219,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95220,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95221,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95222,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95225,1
    - Dst: freeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95253,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95254,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95255,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95256,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95257,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 304
    argCount: 10
    argNames:
    - pParse
    - pName1
    - pName2
    - pTblName
    - pList
    - onError
    - pStart
    - pPIWhere
    - sortOrder
    - ifNotExist
    argTypes:
    - Parse*
    - Token*
    - Token*
    - SrcList*
    - ExprList*
    - int
    - Token*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( pExpr->op==TK_COLLATE )
      pos:
        line_end: 94965
        line_start: 94965
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsUniqueIndex(pIndex) )
      pos:
        line_end: 95101
        line_start: 95101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 94863
        line_start: 94863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 94996
        line_start: 94996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName1 && pName2 )
      pos:
        line_end: 94819
        line_start: 94819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (0)
      pos:
        line_end: 94841
        line_start: 94841
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 94862
        line_start: 94862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed==0 || pTab==0 )
      pos:
        line_end: 94844
        line_start: 94844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsUniqueIndex(pIdx) )
      pos:
        line_end: 95099
        line_start: 95099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pStart==0 )
      pos:
        line_end: 94855
        line_start: 94855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) )
      pos:
        line_end: 95140
        line_start: 95140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName && pName->z )
      pos:
        line_end: 94822
        line_start: 94822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<=0x7fff )
      pos:
        line_end: 95030
        line_start: 95030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName->z!=0 )
      pos:
        line_end: 94902
        line_start: 94902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->idxType!=SQLITE_IDXTYPE_APPDEF )
      pos:
        line_end: 95100
        line_start: 95100
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName==0 )
      pos:
        line_end: 94854
        line_start: 94854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->init.busy )
      pos:
        line_end: 94916
        line_start: 94916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nExtra>=nColl )
      pos:
        line_end: 95037
        line_start: 95037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==pIndex )
      pos:
        line_end: 95144
        line_start: 95144
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i==pIndex->nColumn )
      pos:
        line_end: 95066
        line_start: 95066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pListItem->pExpr->op==TK_COLLATE )
      pos:
        line_end: 95034
        line_start: 95034
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pIndex->azColl) )
      pos:
        line_end: 94981
        line_start: 94981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pIndex->aiRowLogEst) )
      pos:
        line_end: 94980
        line_start: 94980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95259
      start: 94773
    functionDepth: 10
    functionLinenumber: 94773
    functionLinenumberEnd: 95259
    functionName: sqlite3CreateIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SrcListLookup
    - sqlite3VdbeAddOp0
    - sqlite3TwoPartName
    - sqlite3AllocateIndexObject
    - sqlite3NestedParse
    - sqlite3DefaultRowEst
    - sqlite3VdbeAddOp1
    - sqlite3Strlen30
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - IsUniqueIndex
    - sqlite3ChangeCookie
    - sqlite3SchemaToIndex
    - sqlite3StrICmp
    - IsVirtual
    - sqlite3FixSrcList
    - sqlite3CodeVerifySchema
    - hasColumn
    - sqlite3DbStrDup
    - memcpy
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3FindTable
    - HasRowid
    - sqlite3ReadSchema
    - sqlite3ExprListDelete
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3UserAuthTable
    - sqlite3VdbeJumpHere
    - sqlite3StrNICmp
    - sqlite3LocateTableItem
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FindIndex
    - sqlite3FixInit
    - sqlite3HashInsert
    - sqlite3VdbeAddOp2
    - sqlite3NameFromToken
    - sqlite3PrimaryKeyIndex
    - sqlite3ExprListAppend
    - sqlite3LocateCollSeq
    - sqlite3CheckObjectName
    - sqlite3MPrintf
    - sqlite3ResolveSelfReference
    - sqlite3SrcListDelete
    - sqlite3RefillIndex
    - EIGHT_BYTE_ALIGNMENT
    - freeIndex
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    - estimateIndexWidth
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3CreateIndex(\n  Parse *pParse,     /* All information
      about this parse */\n  Token *pName1,     /* First part of index name. May be
      NULL */\n  Token *pName2,     /* Second part of index name. May be NULL */\n
      \ SrcList *pTblName, /* Table to index. Use pParse->pNewTable if 0 */\n  ExprList
      *pList,   /* A list of columns to be indexed */\n  int onError,       /* OE_Abort,
      OE_Ignore, OE_Replace, or OE_None */\n  Token *pStart,     /* The CREATE token
      that begins this statement */\n  Expr *pPIWhere,    /* WHERE clause for partial
      indices */\n  int sortOrder,     /* Sort order of primary key when pList==NULL
      */\n  int ifNotExist     /* Omit error if index already exists */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95283,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95283,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95290,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95290,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95296,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95299,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95299,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts:
    - condition: ( 33==sqlite3LogEst(10) )
      pos:
        line_end: 95289
        line_start: 95289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 23==sqlite3LogEst(5) )
      pos:
        line_end: 95295
        line_start: 95295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==sqlite3LogEst(1) )
      pos:
        line_end: 95298
        line_start: 95298
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95301
      start: 95279
    functionDepth: 1
    functionLinenumber: 95279
    functionLinenumberEnd: 95301
    functionName: sqlite3DefaultRowEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - IsUniqueIndex
    - assert
    - memcpy
    - ArraySize
    - sqlite3LogEst
    - MIN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DefaultRowEst(Index *pIdx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95317,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95318,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95321,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95324,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95326,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95332,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95336,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95342,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95343,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95347,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95354,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95356,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95357,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95359,1
    - Dst: sqlite3ClearStatTables
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95361,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95362,1
    - Dst: destroyRootPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95363,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95364,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95368,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - pParse
    - pName
    - ifExists
    argTypes:
    - Parse*
    - SrcList*
    - int
    assertStmts:
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 95312
        line_start: 95312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 95316
        line_start: 95316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95369
      start: 95307
    functionDepth: 10
    functionLinenumber: 95307
    functionLinenumberEnd: 95369
    functionName: sqlite3DropIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - sqlite3CodeVerifyNamedSchema
    - assert
    - destroyRootPage
    - sqlite3NestedParse
    - sqlite3SrcListDelete
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FindIndex
    - sqlite3ClearStatTables
    - sqlite3GetVdbe
    - sqlite3ErrorMsg
    - sqlite3ReadSchema
    - sqlite3ChangeCookie
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropIndex(Parse *pParse, SrcList *pName, int
      ifExists)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95399,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - db
    - pArray
    - szEntry
    - pnEntry
    - pIdx
    argTypes:
    - sqlite3*
    - void*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95411
      start: 95388
    functionDepth: 6
    functionLinenumber: 95388
    functionLinenumberEnd: 95411
    functionName: sqlite3ArrayAllocate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - memset
    - sqlite3DbRealloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ArrayAllocate(\n  sqlite3 *db,      /* Connection
      to notify of malloc failures */\n  void *pArray,     /* Array of objects.  Might
      be reallocated */\n  int szEntry,      /* Size of each object in the array */\n
      \ int *pnEntry,     /* Number of objects currently in use */\n  int *pIdx         /*
      Write the index of a new slot here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95422,1
    - Dst: sqlite3ArrayAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95425,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95433,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - pList
    - pToken
    argTypes:
    - sqlite3*
    - IdList*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95438
      start: 95419
    functionDepth: 7
    functionLinenumber: 95419
    functionLinenumberEnd: 95438
    functionName: sqlite3IdListAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ArrayAllocate
    - sqlite3IdListDelete
    - sqlite3DbMallocZero
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IdListAppend(sqlite3 *db, IdList *pList, Token
      *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95447,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95449,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - IdList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95451
      start: 95443
    functionDepth: 5
    functionLinenumber: 95443
    functionLinenumberEnd: 95451
    functionName: sqlite3IdListDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IdListDelete(sqlite3 *db, IdList *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pList
    - zName
    argTypes:
    - IdList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95464
      start: 95457
    functionDepth: 0
    functionLinenumber: 95457
    functionLinenumberEnd: 95464
    functionName: sqlite3IdListIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IdListIndex(IdList *pList, const char *zName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95494,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95495,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95496,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95497,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95504,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95507,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95511,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - db
    - pSrc
    - nExtra
    - iStart
    argTypes:
    - sqlite3*
    - SrcList*
    - int
    - int
    assertStmts:
    - condition: ( iStart>=0 )
      pos:
        line_end: 95493
        line_start: 95493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nExtra>=1 )
      pos:
        line_end: 95494
        line_start: 95494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc!=0 )
      pos:
        line_end: 95495
        line_start: 95495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iStart<=pSrc->nSrc )
      pos:
        line_end: 95496
        line_start: 95496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 95506
        line_start: 95506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95530
      start: 95485
    functionDepth: 6
    functionLinenumber: 95485
    functionLinenumberEnd: 95530
    functionName: sqlite3SrcListEnlarge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbMallocSize
    - sqlite3DbRealloc
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListEnlarge(\n  sqlite3 *db,       /* Database
      connection to notify of OOM errors */\n  SrcList *pSrc,     /* The SrcList to
      be enlarged */\n  int nExtra,        /* Number of new slots to add to pSrc->a[]
      */\n  int iStart         /* Index in pSrc->a[] of first new slot */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95574,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95576,1
    - Dst: sqlite3SrcListEnlarge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95580,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95582,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95594,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95595,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - db
    - pList
    - pTable
    - pDatabase
    argTypes:
    - sqlite3*
    - SrcList*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pDatabase==0 || pTable!=0 )
      pos:
        line_end: 95573
        line_start: 95573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95597
      start: 95567
    functionDepth: 7
    functionLinenumber: 95567
    functionLinenumberEnd: 95597
    functionName: sqlite3SrcListAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SrcListEnlarge
    - assert
    - sqlite3SrcListDelete
    - sqlite3DbMallocZero
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListAppend(\n  sqlite3 *db,        /* Connection
      to notify of malloc failures */\n  SrcList *pList,     /* Append to this SrcList.
      NULL creates a new SrcList */\n  Token *pTable,      /* Table to append */\n
      \ Token *pDatabase    /* Database of the table */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95605,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95611,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pList
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: (pList || pParse->db->mallocFailed )
      pos:
        line_end: 95604
        line_start: 95604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95615
      start: 95602
    functionDepth: 1
    functionLinenumber: 95602
    functionLinenumberEnd: 95615
    functionName: sqlite3SrcListAssignCursors
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SrcListAssignCursors
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95625,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95626,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95627,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95628,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95629,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95630,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95631,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95632,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95635
      start: 95620
    functionDepth: 6
    functionLinenumber: 95620
    functionLinenumberEnd: 95635
    functionName: sqlite3SrcListDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3DeleteTable
    - sqlite3IdListDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListDelete(sqlite3 *db, SrcList *pList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95666,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95671,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95672,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95676,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95678,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95686,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95687,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95688,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95689,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 8
    argNames:
    - pParse
    - p
    - pTable
    - pDatabase
    - pAlias
    - pSubquery
    - pOn
    - pUsing
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    - Token*
    - Token*
    - Select*
    - Expr*
    - IdList*
    assertStmts:
    - condition: ( pAlias!=0 )
      pos:
        line_end: 95675
        line_start: 95675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==0 )
      pos:
        line_end: 95685
        line_start: 95685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95691
      start: 95653
    functionDepth: 8
    functionLinenumber: 95653
    functionLinenumberEnd: 95691
    functionName: sqlite3SrcListAppendFromTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - sqlite3SelectDelete
    - sqlite3ExprDelete
    - sqlite3SrcListAppend
    - sqlite3IdListDelete
    - sqlite3ErrorMsg
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListAppendFromTerm(\n  Parse *pParse,          /*
      Parsing context */\n  SrcList *p,             /* The left part of the FROM clause
      already seen */\n  Token *pTable,          /* Name of the table to add to the
      FROM clause */\n  Token *pDatabase,       /* Name of the database containing
      pTable */\n  Token *pAlias,          /* The right-hand side of the AS subexpression
      */\n  Select *pSubquery,      /* A subquery used in place of a table name */\n
      \ Expr *pOn,              /* The ON clause of a join */\n  IdList *pUsing          /*
      The USING clause of a join */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95698,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95699,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95701,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - p
    - pIndexedBy
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    assertStmts:
    - condition: ( pIndexedBy!=0 )
      pos:
        line_end: 95697
        line_start: 95697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->notIndexed==0 && pItem->zIndexedBy==0 )
      pos:
        line_end: 95700
        line_start: 95700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95710
      start: 95697
    functionDepth: 7
    functionLinenumber: 95697
    functionLinenumberEnd: 95710
    functionName: sqlite3SrcListIndexedBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NameFromToken
    - ALWAYS
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListIndexedBy(Parse *pParse, SrcList *p, Token
      *pIndexedBy)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95735
      start: 95727
    functionDepth: 0
    functionLinenumber: 95727
    functionLinenumberEnd: 95735
    functionName: sqlite3SrcListShiftJoinType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListShiftJoinType(SrcList *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95745,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95747,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95749,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95752,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95756,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95757,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pParse
    - type
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 95744
        line_start: 95744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 95746
        line_start: 95746
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95761
      start: 95740
    functionDepth: 9
    functionLinenumber: 95740
    functionLinenumberEnd: 95761
    functionName: sqlite3BeginTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginTransaction(Parse *pParse, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95770,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95771,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95774,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 95768
        line_start: 95768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->db!=0 )
      pos:
        line_end: 95769
        line_start: 95769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95778
      start: 95766
    functionDepth: 9
    functionLinenumber: 95766
    functionLinenumberEnd: 95778
    functionName: sqlite3CommitTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3GetVdbe
    - assert
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CommitTransaction(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95786,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95787,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95788,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95791,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 95785
        line_start: 95785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->db!=0 )
      pos:
        line_end: 95786
        line_start: 95786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95795
      start: 95783
    functionDepth: 9
    functionLinenumber: 95783
    functionLinenumberEnd: 95795
    functionName: sqlite3RollbackTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3GetVdbe
    - assert
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RollbackTransaction(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95802,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95804,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95807,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95809,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95810,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - op
    - pName
    argTypes:
    - Parse*
    - int
    - Token*
    assertStmts:
    - condition: ( !SAVEPOINT_BEGIN && SAVEPOINT_RELEASE==1 && SAVEPOINT_ROLLBACK==2
        )
      pos:
        line_end: 95806
        line_start: 95806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95815
      start: 95801
    functionDepth: 9
    functionLinenumber: 95801
    functionLinenumberEnd: 95815
    functionName: sqlite3Savepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3AuthCheck
    - sqlite3GetVdbe
    - sqlite3DbFree
    - sqlite3NameFromToken
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Savepoint(Parse *pParse, int op, Token *pName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95833,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95841,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( db->aDb[1].pSchema )
      pos:
        line_end: 95840
        line_start: 95840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95848
      start: 95821
    functionDepth: 9
    functionLinenumber: 95821
    functionLinenumberEnd: 95848
    functionName: sqlite3OpenTempDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeSetPageSize
    - sqlite3ErrorMsg
    - assert
    - sqlite3BtreeOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OpenTempDatabase(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95861,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95862,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95863,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95863,1
    - Dst: DbMaskTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95864,1
    - Dst: DbMaskSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95865,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95868,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 95859
        line_start: 95859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb[iDb].pBt!=0 || iDb==1 )
      pos:
        line_end: 95860
        line_start: 95860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 95862
        line_start: 95862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb<SQLITE_MAX_ATTACHED+2 )
      pos:
        line_end: 95861
        line_start: 95861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95871
      start: 95856
    functionDepth: 10
    functionLinenumber: 95856
    functionLinenumberEnd: 95871
    functionName: sqlite3CodeVerifySchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3ParseToplevel
    - sqlite3SchemaMutexHeld
    - DbMaskSet
    - DbMaskTest
    - sqlite3OpenTempDatabase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeVerifySchema(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95882,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zDb
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95886
      start: 95877
    functionDepth: 11
    functionLinenumber: 95877
    functionLinenumberEnd: 95886
    functionName: sqlite3CodeVerifyNamedSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3CodeVerifySchema
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeVerifyNamedSchema(Parse *pParse, const char
      *zDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95902,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95903,1
    - Dst: DbMaskSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - setStatement
    - iDb
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95906
      start: 95901
    functionDepth: 11
    functionLinenumber: 95901
    functionLinenumberEnd: 95906
    functionName: sqlite3BeginWriteOperation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 9
    functionsReached:
    - sqlite3CodeVerifySchema
    - sqlite3ParseToplevel
    - DbMaskSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginWriteOperation(Parse *pParse, int setStatement,
      int iDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95918
      start: 95915
    functionDepth: 1
    functionLinenumber: 95915
    functionLinenumberEnd: 95918
    functionName: sqlite3MultiWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MultiWrite(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95939
      start: 95936
    functionDepth: 1
    functionLinenumber: 95936
    functionLinenumberEnd: 95939
    functionName: sqlite3MayAbort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MayAbort(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95955,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95957,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95959,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - pParse
    - errCode
    - onError
    - p4
    - p4type
    - p5Errmsg
    argTypes:
    - Parse*
    - int
    - int
    - char*
    - i8
    - u8
    assertStmts:
    - condition: ( (errCode&0xff)==SQLITE_CONSTRAINT )
      pos:
        line_end: 95954
        line_start: 95954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95961
      start: 95946
    functionDepth: 9
    functionLinenumber: 95946
    functionLinenumberEnd: 95961
    functionName: sqlite3HaltConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3MayAbort
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3HaltConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int errCode,      /* extended error code */\n  int onError,      /*
      Constraint type */\n  char *p4,         /* Error message */\n  i8 p4type,        /*
      P4_STATIC or P4_TRANSIENT */\n  u8 p5Errmsg       /* P5_ErrMsg type */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95976,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95979,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95980,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95981,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95982,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95984,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95985,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:95986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - onError
    - pIdx
    argTypes:
    - Parse*
    - int
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95989
      start: 95966
    functionDepth: 10
    functionLinenumber: 95966
    functionLinenumberEnd: 95989
    functionName: sqlite3UniqueConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrAccumAppend
    - IsPrimaryKeyIndex
    - sqlite3StrAccumInit
    - sqlite3StrAccumAppendAll
    - sqlite3HaltConstraint
    - sqlite3StrAccumFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3UniqueConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int onError,      /* Constraint type */\n  Index *pIdx       /*
      The index that triggers the constraint */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96003,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96007,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - onError
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96012
      start: 95995
    functionDepth: 10
    functionLinenumber: 95995
    functionLinenumberEnd: 96012
    functionName: sqlite3RowidConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3HaltConstraint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3RowidConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int onError,      /* Conflict resolution algorithm */\n  Table
      *pTab       /* The table with the non-unique rowid */ \n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96021,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96024,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - zColl
    - pIndex
    argTypes:
    - char*
    - Index*
    assertStmts:
    - condition: ( zColl!=0 )
      pos:
        line_end: 96020
        line_start: 96020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( z!=0 || pIndex->aiColumn[i]<0 )
      pos:
        line_end: 96023
        line_start: 96023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96030
      start: 96019
    functionDepth: 0
    functionLinenumber: 96019
    functionLinenumberEnd: 96030
    functionName: collationMatch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    linkageType: ''
    returnType: int
    signature: int collationMatch(const char *zColl, Index *pIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: collationMatch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96042,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96043,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96044,1
    - Dst: sqlite3RefillIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - pTab
    - zColl
    argTypes:
    - Parse*
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96048
      start: 96038
    functionDepth: 12
    functionLinenumber: 96038
    functionLinenumberEnd: 96048
    functionName: reindexTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - collationMatch
    - sqlite3SchemaToIndex
    - sqlite3RefillIndex
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: void
    signature: void reindexTable(Parse *pParse, Table *pTab, char const *zColl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96064,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96064,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96066,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96067,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96067,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96068,1
    - Dst: reindexTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - zColl
    argTypes:
    - Parse*
    - char*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 96063
        line_start: 96063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDb!=0 )
      pos:
        line_end: 96065
        line_start: 96065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96072
      start: 96057
    functionDepth: 13
    functionLinenumber: 96057
    functionLinenumberEnd: 96072
    functionName: reindexDatabases
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteHashNext
    - reindexTable
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqliteHashFirst
    - sqliteHashData
    linkageType: ''
    returnType: void
    signature: void reindexDatabases(Parse *pParse, char const *zColl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96101,1
    - Dst: reindexDatabases
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96106,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96110,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96111,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96113,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96113,1
    - Dst: reindexDatabases
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96115,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96116,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96119,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96121,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96123,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96126,1
    - Dst: reindexTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96128,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96129,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96132,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96133,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96135,1
    - Dst: sqlite3RefillIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96136,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - pParse
    - pName1
    - pName2
    argTypes:
    - Parse*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pName1->z )
      pos:
        line_end: 96109
        line_start: 96109
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96140
      start: 96089
    functionDepth: 14
    functionLinenumber: 96089
    functionLinenumberEnd: 96140
    functionName: sqlite3Reindex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3BeginWriteOperation
    - reindexTable
    - assert
    - sqlite3TwoPartName
    - reindexDatabases
    - sqlite3FindCollSeq
    - ENC
    - sqlite3FindIndex
    - sqlite3RefillIndex
    - sqlite3FindTable
    - sqlite3ErrorMsg
    - sqlite3ReadSchema
    - sqlite3DbFree
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96160,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96162,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96165,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96165,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96168,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96169,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96170,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pParse
    - pIdx
    argTypes:
    - Parse*
    - Index*
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pKey) )
      pos:
        line_end: 96164
        line_start: 96164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zColl!=0 )
      pos:
        line_end: 96167
        line_start: 96167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96179
      start: 96153
    functionDepth: 2
    functionLinenumber: 96153
    functionLinenumberEnd: 96179
    functionName: sqlite3KeyInfoOfIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3LocateCollSeq
    - assert
    - sqlite3KeyInfoIsWriteable
    - strcmp
    - sqlite3KeyInfoAlloc
    - sqlite3KeyInfoUnref
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoOfIndex(Parse *pParse, Index *pIdx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96199,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96203,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96204,1
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96211,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96215,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96216,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96219,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96220,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - pParse
    - pWith
    - pName
    - pArglist
    - pQuery
    argTypes:
    - Parse*
    - With*
    - Token*
    - ExprList*
    - Select*
    assertStmts:
    - condition: ( zName!=0 || pNew==0 )
      pos:
        line_end: 96214
        line_start: 96214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed==0 || pNew==0 )
      pos:
        line_end: 96215
        line_start: 96215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96232
      start: 96186
    functionDepth: 8
    functionLinenumber: 96186
    functionLinenumberEnd: 96232
    functionName: sqlite3WithAdd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    - sqlite3ExprListDelete
    - sqlite3SelectDelete
    - sqlite3DbMallocZero
    - sqlite3DbRealloc
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WithAdd(\n  Parse *pParse,          /* Parsing
      context */\n  With *pWith,            /* Existing WITH clause, or NULL */\n
      \ Token *pName,           /* Name of the common-table */\n  ExprList *pArglist,
      \    /* Optional column name list for the table */\n  Select *pQuery          /*
      Query used to initialize the table */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96242,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96243,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96244,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pWith
    argTypes:
    - sqlite3*
    - With*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96248
      start: 96237
    functionDepth: 7
    functionLinenumber: 96237
    functionLinenumberEnd: 96248
    functionName: sqlite3WithDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WithDelete(sqlite3 *db, With *pWith)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96276,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96278,1
    - Dst: sqlite3*::xCollNeeded
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96280,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96281,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96286,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96287,1
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96288,1
    - Dst: sqlite3*::xCollNeeded16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96290,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96290,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - db
    - enc
    - zName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( !db->xCollNeeded || !db->xCollNeeded16 )
      pos:
        line_end: 96275
        line_start: 96275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96295
      start: 96275
    functionDepth: 12
    functionLinenumber: 96275
    functionLinenumberEnd: 96295
    functionName: callCollNeeded
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    - sqlite3*::xCollNeeded
    - assert
    - sqlite3*::xCollNeeded16
    - sqlite3DbStrDup
    - ENC
    - sqlite3ValueNew
    - sqlite3ValueSetStr
    - sqlite3ValueText
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void callCollNeeded(sqlite3 *db, int enc, const char *zName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96310,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - db
    - pColl
    argTypes:
    - sqlite3*
    - CollSeq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96318
      start: 96304
    functionDepth: 1
    functionLinenumber: 96304
    functionLinenumberEnd: 96318
    functionName: synthCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindCollSeq
    - memcpy
    linkageType: ''
    returnType: int
    signature: int synthCollSeq(sqlite3 *db, CollSeq *pColl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96345,1
    - Dst: callCollNeeded
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96351,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96352,1
    - Dst: synthCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96354,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96357,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - enc
    - pColl
    - zName
    argTypes:
    - Parse*
    - u8
    - CollSeq*
    - char*
    assertStmts:
    - condition: ( !p || p->xCmp )
      pos:
        line_end: 96356
        line_start: 96356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96362
      start: 96334
    functionDepth: 13
    functionLinenumber: 96334
    functionLinenumberEnd: 96362
    functionName: sqlite3GetCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - synthCollSeq
    - sqlite3FindCollSeq
    - callCollNeeded
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3GetCollSeq(\n  Parse *pParse,        /* Parsing
      context */\n  u8 enc,               /* The desired encoding for the collating
      sequence */\n  CollSeq *pColl,       /* Collating sequence with native encoding,
      or NULL */\n  const char *zName     /* Collating sequence name */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96379,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96379,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - pColl
    argTypes:
    - Parse*
    - CollSeq*
    assertStmts:
    - condition: ( p==pColl )
      pos:
        line_end: 96382
        line_start: 96382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96386
      start: 96375
    functionDepth: 14
    functionLinenumber: 96375
    functionLinenumberEnd: 96386
    functionName: sqlite3CheckCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3GetCollSeq
    - assert
    - ENC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CheckCollSeq(Parse *pParse, CollSeq *pColl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96409,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96412,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96413,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96422,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96430,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - db
    - zName
    - create
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts:
    - condition: ( pDel==0 || pDel==pColl )
      pos:
        line_end: 96429
        line_start: 96429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96439
      start: 96403
    functionDepth: 6
    functionLinenumber: 96403
    functionLinenumberEnd: 96439
    functionName: findCollSeqEntry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocZero
    - memcpy
    - sqlite3Strlen30
    - sqlite3HashFind
    - sqlite3HashInsert
    - sqlite3DbFree
    linkageType: ''
    returnType: CollSeq
    signature: "CollSeq *findCollSeqEntry(\n  sqlite3 *db,          /* Database connection
      */\n  const char *zName,    /* Name of the collating sequence */\n  int create
      \           /* Create a new entry if true */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: findCollSeqEntry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96464,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96468,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - db
    - enc
    - zName
    - create
    argTypes:
    - sqlite3*
    - u8
    - char*
    - int
    assertStmts:
    - condition: ( enc>=SQLITE_UTF8 && enc<=SQLITE_UTF16BE )
      pos:
        line_end: 96468
        line_start: 96468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_UTF8==1 && SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 96467
        line_start: 96467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96472
      start: 96456
    functionDepth: 7
    functionLinenumber: 96456
    functionLinenumberEnd: 96472
    functionName: sqlite3FindCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 6
    functionsReached:
    - assert
    - findCollSeqEntry
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3FindCollSeq(\n  sqlite3 *db,\n  u8 enc,\n  const
      char *zName,\n  int create\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - p
    - nArg
    - enc
    argTypes:
    - FuncDef*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96532
      start: 96503
    functionDepth: 0
    functionLinenumber: 96503
    functionLinenumberEnd: 96532
    functionName: matchQuality
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int matchQuality(\n  FuncDef *p,     /* The function we are evaluating
      for match quality */\n  int nArg,       /* Desired number of arguments.  (-1)==any
      */\n  u8 enc          /* Desired text encoding */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - pHash
    - h
    - zFunc
    - nFunc
    argTypes:
    - FuncDefHash*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96551
      start: 96538
    functionDepth: 0
    functionLinenumber: 96538
    functionLinenumberEnd: 96551
    functionName: functionSearch
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrNICmp
    linkageType: ''
    returnType: FuncDef
    signature: "FuncDef *functionSearch(\n  FuncDefHash *pHash,  /* Hash table to
      search */\n  int h,               /* Hash of the name */\n  const char *zFunc,
      \  /* Name of function */\n  int nFunc            /* Number of bytes in zFunc
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96561,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96563,1
    - Dst: functionSearch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96564,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pHash
    - pDef
    argTypes:
    - FuncDefHash*
    - FuncDef*
    assertStmts:
    - condition: ( pOther!=pDef && pOther->pNext!=pDef )
      pos:
        line_end: 96565
        line_start: 96565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96574
      start: 96556
    functionDepth: 1
    functionLinenumber: 96556
    functionLinenumberEnd: 96574
    functionName: sqlite3FuncDefInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - functionSearch
    - sqlite3Strlen30
    - assert
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FuncDefInsert(\n  FuncDefHash *pHash,  /* The
      hash table into which to insert */\n  FuncDef *pDef        /* The function definition
      to insert */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96610,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96611,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96612,1
    - Dst: functionSearch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96616,1
    - Dst: matchQuality
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96618,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96639,1
    - Dst: functionSearch
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96641,1
    - Dst: matchQuality
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96643,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96657,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96661,1
    - Dst: sqlite3FuncDefInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96663,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 6
    argNames:
    - db
    - zName
    - nName
    - nArg
    - enc
    - createFlag
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - u8
    - u8
    assertStmts:
    - condition: ( nArg>=(-2) )
      pos:
        line_end: 96609
        line_start: 96609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nArg>=(-1) || createFlag==0 )
      pos:
        line_end: 96610
        line_start: 96610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96670
      start: 96597
    functionDepth: 2
    functionLinenumber: 96597
    functionLinenumberEnd: 96670
    functionName: sqlite3FindFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3FuncDefInsert
    - assert
    - functionSearch
    - matchQuality
    - sqlite3DbMallocZero
    - memcpy
    - ArraySize
    - GLOBAL
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3FindFunction(\n  sqlite3 *db,       /* An open
      database */\n  const char *zName, /* Name of the function.  Not null-terminated
      */\n  int nName,         /* Number of characters in the name */\n  int nArg,
      \         /* Number of arguments.  -1 means any number */\n  u8 enc,            /*
      Preferred text encoding */\n  u8 createFlag      /* Create new entry if true
      and does not otherwise exist */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96688,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96689,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96690,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96690,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96691,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96691,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96693,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96694,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96695,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96695,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96696,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96697,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96699,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96706
      start: 96680
    functionDepth: 4
    functionLinenumber: 96680
    functionLinenumberEnd: 96706
    functionName: sqlite3SchemaClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqliteHashNext
    - sqliteHashFirst
    - sqlite3HashInit
    - sqlite3DeleteTable
    - sqliteHashData
    - sqlite3HashClear
    - sqlite3DeleteTrigger
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaClear(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96715,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96717,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96722,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96723,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96724,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - db
    - pBt
    argTypes:
    - sqlite3*
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96729
      start: 96712
    functionDepth: 3
    functionLinenumber: 96712
    functionLinenumberEnd: 96729
    functionName: sqlite3SchemaGet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3HashInit
    - sqlite3DbMallocZero
    - sqlite3BtreeSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SchemaGet(sqlite3 *db, Btree *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96766,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96767,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96768,1
    - Dst: sqlite3IndexedByLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pSrc
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: ( pItem && pSrc->nSrc==1 )
      pos:
        line_end: 96765
        line_start: 96765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96777
      start: 96763
    functionDepth: 10
    functionLinenumber: 96763
    functionLinenumberEnd: 96777
    functionName: sqlite3SrcListLookup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DeleteTable
    - sqlite3IndexedByLookup
    - assert
    - sqlite3LocateTableItem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96795,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96796,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96801,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - pTab
    - viewOk
    argTypes:
    - Parse*
    - Table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96812
      start: 96784
    functionDepth: 8
    functionLinenumber: 96784
    functionLinenumberEnd: 96812
    functionName: sqlite3IsReadOnly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3GetVTable
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96831,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96832,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96833,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96835,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96836,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96837,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96838,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96839,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96841,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96842,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96843,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - pParse
    - pView
    - pWhere
    - iCur
    argTypes:
    - Parse*
    - Table*
    - Expr*
    - int
    assertStmts:
    - condition: ( pFrom->nSrc==1 )
      pos:
        line_end: 96834
        line_start: 96834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->a[0].pOn==0 )
      pos:
        line_end: 96837
        line_start: 96837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->a[0].pUsing==0 )
      pos:
        line_end: 96838
        line_start: 96838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96845
      start: 96821
    functionDepth: 8
    functionLinenumber: 96821
    functionLinenumberEnd: 96845
    functionName: sqlite3MaterializeView
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3ExprDup
    - assert
    - sqlite3SelectDestInit
    - sqlite3SelectNew
    - sqlite3SelectDelete
    - sqlite3Select
    - sqlite3DbStrDup
    - sqlite3SrcListAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3MaterializeView(\n  Parse *pParse,       /*
      Parsing context */\n  Table *pView,        /* View definition */\n  Expr *pWhere,
      \       /* Optional WHERE clause to be added */\n  int iCur             /* Cursor
      number for ephemeral table */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96876,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96885,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96898,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96900,1
    - Dst: sqlite3SrcListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96905,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96907,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96912,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96917,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96919,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96924,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96929,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96933,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96934,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96935,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96936,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 7
    argNames:
    - pParse
    - pSrc
    - pWhere
    - pOrderBy
    - pLimit
    - pOffset
    - zStmtType
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    - ExprList*
    - Expr*
    - Expr*
    - char*
    assertStmts:
    - condition: ( pOffset == 0 )
      pos:
        line_end: 96884
        line_start: 96884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96938
      start: 96857
    functionDepth: 10
    functionLinenumber: 96857
    functionLinenumberEnd: 96938
    functionName: sqlite3LimitWhere
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListAppend
    - sqlite3PExpr
    - assert
    - sqlite3SelectNew
    - sqlite3SelectDelete
    - sqlite3ExprDelete
    - sqlite3ExprSetHeightAndFlags
    - sqlite3SrcListDup
    - sqlite3ErrorMsg
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LimitWhere(\n  Parse *pParse,               /*
      The parser context */\n  SrcList *pSrc,               /* the FROM clause --
      which tables to scan */\n  Expr *pWhere,                /* The WHERE clause.
      \ May be null */\n  ExprList *pOrderBy,          /* The ORDER BY clause.  May
      be null */\n  Expr *pLimit,                /* The LIMIT clause.  May be null
      */\n  Expr *pOffset,               /* The OFFSET clause.  May be null */\n  char
      *zStmtType              /* Either DELETE or UPDATE.  For err msgs. */\n)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96990,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:96995,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97002,1
    - Dst: sqlite3TriggersExist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97009,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97022,1
    - Dst: sqlite3IsReadOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97026,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97030,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97032,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97033,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97037,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97041,1
    - Dst: sqlite3AuthContextPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97050,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97055,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97059,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97060,1
    - Dst: sqlite3MaterializeView
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97067,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97074,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97077,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97086,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97094,1
    - Dst: sqlite3FkRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97097,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97098,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97099,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97104,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97105,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97110,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97115,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97120,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97125,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97126,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97132,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97136,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97140,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97146,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97152,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97162,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97164,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97167,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97171,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97172,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97177,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97178,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97179,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97183,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97187,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97190,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97191,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97192,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97201,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97201,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97202,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97204,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97204,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97205,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97213,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97214,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97214,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97216,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97217,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97218,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97221,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97221,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97222,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97223,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97225,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97226,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97227,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97232,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97233,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97234,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97235,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97236,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97237,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97242,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97248,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97250,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97250,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97251,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97253,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97254,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97258,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97259,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97261,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97271,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97279,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97280,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97281,1
    - Dst: sqlite3AuthContextPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97285,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97286,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97287,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97288,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 208
    argCount: 3
    argNames:
    - pParse
    - pTabList
    - pWhere
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    assertStmts:
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 97040
        line_start: 97040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 96994
        line_start: 96994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (!isView || pTrigger)
      pos:
        line_end: 97036
        line_start: 97036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !isView )
      pos:
        line_end: 97096
        line_start: 97096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk!=0 || pTab->pSelect!=0 )
      pos:
        line_end: 97215
        line_start: 97215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 97103
        line_start: 97103
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk || IsVirtual(pTab) || iDataCur==iTabCur )
      pos:
        line_end: 97203
        line_start: 97203
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk || IsVirtual(pTab) || iIdxCur==iDataCur+1 )
      pos:
        line_end: 97204
        line_start: 97204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nKey==0 )
      pos:
        line_end: 97222
        line_start: 97222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 97119
        line_start: 97119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !IsVirtual(pTab) )
      pos:
        line_end: 97213
        line_start: 97213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nKey==nPk )
      pos:
        line_end: 97212
        line_start: 97212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rcauth==SQLITE_OK || rcauth==SQLITE_DENY || rcauth==SQLITE_IGNORE
        )
      pos:
        line_end: 97032
        line_start: 97032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nKey==1 )
      pos:
        line_end: 97226
        line_start: 97226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 97029
        line_start: 97029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97290
      start: 96949
    functionDepth: 13
    functionLinenumber: 96949
    functionLinenumberEnd: 97290
    functionName: sqlite3DeleteFrom
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsReadOnly
    - memset
    - sqlite3SrcListLookup
    - sqlite3VdbeAddOp0
    - sqlite3TableLock
    - sqlite3OpenTableAndIndices
    - sqlite3FkRequired
    - sqlite3AuthContextPush
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3WhereOkOnePass
    - sqlite3VdbeSetColName
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3IndexAffinityStr
    - sqlite3GenerateRowDelete
    - sqlite3DbFree
    - sqlite3SchemaToIndex
    - sqlite3VdbeAddOp4Int
    - IsVirtual
    - sqlite3GetVTable
    - sqlite3AuthContextPop
    - VdbeCoverage
    - sqlite3TriggersExist
    - HasRowid
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeToNoop
    - sqlite3WhereBegin
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp2
    - sqlite3DbMallocRaw
    - sqlite3PrimaryKeyIndex
    - sqlite3VtabMakeWritable
    - sqlite3AutoincrementEnd
    - sqlite3VdbeResolveLabel
    - sqlite3MayAbort
    - sqlite3VdbeSetNumCols
    - sqlite3ViewGetColumnNames
    - sqlite3ExprCodeGetColumn
    - sqlite3SrcListDelete
    - sqlite3MaterializeView
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeCountChanges
    - sqlite3WhereEnd
    - sqlite3VdbeMakeLabel
    - sqlite3ResolveExprNames
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3DeleteFrom(\n  Parse *pParse,         /* The
      parser context */\n  SrcList *pTabList,     /* The table from which we should
      delete things */\n  Expr *pWhere           /* The WHERE clause.  May be null
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97339,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97340,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97346,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97347,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97349,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97350,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97351,1
    - Dst: sqlite3FkRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97356,1
    - Dst: sqlite3TriggerColmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97363,1
    - Dst: sqlite3FkOldmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97366,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97372,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97374,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97375,1
    - Dst: MASKBIT32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97376,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97377,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97382,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97383,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97392,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97393,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97394,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97395,1
    - Dst: sqlite3FkCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97401,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97408,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97409,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97411,1
    - Dst: sqlite3FkActions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97418,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97421,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97428,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 10
    argNames:
    - pParse
    - pTab
    - pTrigger
    - iDataCur
    - iIdxCur
    - iPk
    - nPk
    - count
    - onconf
    - bNoSeek
    argTypes:
    - Parse*
    - Table*
    - Trigger*
    - int
    - int
    - int
    - i16
    - u8
    - u8
    - u8
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 97338
        line_start: 97338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97430
      start: 97321
    functionDepth: 12
    functionLinenumber: 97321
    functionLinenumberEnd: 97430
    functionName: sqlite3GenerateRowDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FkRequired
    - sqlite3CodeRowTrigger
    - sqlite3FkActions
    - sqlite3VdbeAddOp4Int
    - MASKBIT32
    - VdbeModuleComment
    - HasRowid
    - sqlite3TriggerColmask
    - sqlite3VdbeCurrentAddr
    - VdbeCoverageIf
    - assert
    - sqlite3GenerateRowIndexDelete
    - sqlite3FkCheck
    - sqlite3VdbeAddOp2
    - sqlite3FkOldmask
    - sqlite3VdbeChangeP4
    - sqlite3VdbeResolveLabel
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeMakeLabel
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateRowDelete(\n  Parse *pParse,     /*
      Parsing context */\n  Table *pTab,       /* Table containing the row to be deleted
      */\n  Trigger *pTrigger, /* List of triggers to (potentially) fire */\n  int
      iDataCur,      /* Cursor from which column data is extracted */\n  int iIdxCur,
      \      /* First index cursor */\n  int iPk,           /* First memory cell containing
      the PRIMARY KEY */\n  i16 nPk,           /* Number of PRIMARY KEY memory cells
      */\n  u8 count,          /* If non-zero, increment the row change counter */\n
      \ u8 onconf,         /* Default ON CONFLICT policy for triggers */\n  u8 bNoSeek
      \        /* iDataCur is already pointing to the row to delete */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97466,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97466,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97468,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97471,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97472,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97474,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - pParse
    - pTab
    - iDataCur
    - iIdxCur
    - aRegIdx
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( iIdxCur+i!=iDataCur || pPk==pIdx )
      pos:
        line_end: 97467
        line_start: 97467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97479
      start: 97450
    functionDepth: 8
    functionLinenumber: 97450
    functionLinenumberEnd: 97479
    functionName: sqlite3GenerateRowIndexDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3PrimaryKeyIndex
    - sqlite3ResolvePartIdxLabel
    - assert
    - VdbeModuleComment
    - sqlite3VdbeAddOp3
    - HasRowid
    - sqlite3GenerateIndexKey
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateRowIndexDelete(\n  Parse *pParse,     /*
      Parsing and code generating context */\n  Table *pTab,       /* Table containing
      the row to be deleted */\n  int iDataCur,      /* Cursor of table holding data.
      */\n  int iIdxCur,       /* First index cursor */\n  int *aRegIdx       /* Only
      delete if aRegIdx!=0 && aRegIdx[i]>0 */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97530,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97532,1
    - Dst: sqlite3ExprIfFalseDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97533,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97540,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97544,1
    - Dst: sqlite3VdbeDeletePriorOpcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97552,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97555,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 8
    argNames:
    - pParse
    - pIdx
    - iDataCur
    - regOut
    - prefixOnly
    - piPartIdxLabel
    - pPrior
    - regPrior
    argTypes:
    - Parse*
    - Index*
    - int
    - int
    - int
    - int*
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97559
      start: 97512
    functionDepth: 21
    functionLinenumber: 97512
    functionLinenumberEnd: 97559
    functionName: sqlite3GenerateIndexKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeDeletePriorOpcode
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempRange
    - sqlite3VdbeMakeLabel
    - sqlite3GetTempRange
    - sqlite3ExprIfFalseDup
    - sqlite3ExprCachePush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateIndexKey(\n  Parse *pParse,       /*
      Parsing context */\n  Index *pIdx,         /* The index for which to generate
      a key */\n  int iDataCur,        /* Cursor number from which to take column
      data */\n  int regOut,          /* Put the new key into this register if not
      0 */\n  int prefixOnly,      /* Compute only a unique prefix of the key */\n
      \ int *piPartIdxLabel, /* OUT: Jump to this label to skip partial index */\n
      \ Index *pPrior,       /* Previously generated index key */\n  int regPrior
      \        /* Register holding previous generated key */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97568,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - iLabel
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97571
      start: 97566
    functionDepth: 3
    functionLinenumber: 97566
    functionLinenumberEnd: 97571
    functionName: sqlite3ResolvePartIdxLabel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExprCachePop
    - sqlite3VdbeResolveLabel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResolvePartIdxLabel(Parse *pParse, int iLabel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97600,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97602,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( context->pVdbe!=0 )
      pos:
        line_end: 97599
        line_start: 97599
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ )
      pos:
        line_end: 97602
        line_start: 97602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->opcode==OP_CollSeq )
      pos:
        line_end: 97601
        line_start: 97601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97605
      start: 97598
    functionDepth: 0
    functionLinenumber: 97598
    functionLinenumberEnd: 97605
    functionName: sqlite3GetFuncCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: CollSeq
    signature: CollSeq *sqlite3GetFuncCollSeq(sqlite3_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97613
      start: 97611
    functionDepth: 0
    functionLinenumber: 97611
    functionLinenumberEnd: 97613
    functionName: sqlite3SkipAccumulatorLoad
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3SkipAccumulatorLoad(sqlite3_context *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97628,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97629,1
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97630,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97632,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97634,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97636,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97637,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97638,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc>1 )
      pos:
        line_end: 97627
        line_start: 97627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( mask==-1 || mask==0 )
      pos:
        line_end: 97631
        line_start: 97631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pColl )
      pos:
        line_end: 97630
        line_start: 97630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97643
      start: 97618
    functionDepth: 14
    functionLinenumber: 97618
    functionLinenumberEnd: 97643
    functionName: minmaxFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetFuncCollSeq
    - assert
    - sqlite3_user_data
    - sqlite3_result_value
    - sqlite3_value_type
    - testcase
    - sqlite3MemCompare
    linkageType: ''
    returnType: void
    signature: "void minmaxFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97654,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97655,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97663
      start: 97648
    functionDepth: 12
    functionLinenumber: 97648
    functionLinenumberEnd: 97663
    functionName: typeofFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: "void typeofFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97676,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97677,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97678,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97682,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97682,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97686,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97691,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97693,1
    - Dst: sqlite3_result_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 97675
        line_start: 97675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97701
      start: 97669
    functionDepth: 14
    functionLinenumber: 97669
    functionLinenumberEnd: 97701
    functionName: lengthFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_null
    - assert
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - SQLITE_SKIP_UTF8
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: "void lengthFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97710,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97711,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97712,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97714,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97720,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97725,1
    - Dst: sqlite3_result_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97730,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97739,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 97709
        line_start: 97709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97745
      start: 97709
    functionDepth: 11
    functionLinenumber: 97709
    functionLinenumberEnd: 97745
    functionName: absFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_null
    - assert
    - UNUSED_PARAMETER
    - sqlite3_value_double
    - sqlite3_value_type
    - sqlite3_result_error
    - sqlite3_result_int64
    - sqlite3_value_int64
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: void absFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97771,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97772,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97773,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97775,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97776,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97778,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97779,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97782,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97783,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97786,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97795
      start: 97758
    functionDepth: 14
    functionLinenumber: 97758
    functionLinenumberEnd: 97795
    functionName: instrFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sqlite3_result_int
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_value_blob
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: "void instrFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97809,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97811,1
    - Dst: sqlite3StrAccumInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97815,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97816,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97818,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97821
      start: 97800
    functionDepth: 12
    functionLinenumber: 97800
    functionLinenumberEnd: 97821
    functionName: printfFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - sqlite3_result_text
    - sqlite3_value_text
    - sqlite3XPrintf
    - sqlite3_context_db_handle
    - sqlite3StrAccumFinish
    linkageType: ''
    returnType: void
    signature: "void printfFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97847,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97848,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97849,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97853,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97854,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97856,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97859,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97859,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97861,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97866,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97879,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97885,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97906,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97909,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97913,1
    - Dst: sqlite3_result_text64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97915,1
    - Dst: sqlite3_result_blob64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97922,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==3 || argc==2 )
      pos:
        line_end: 97846
        line_start: 97846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( len==sqlite3_value_bytes(argv[0]) )
      pos:
        line_end: 97858
        line_start: 97858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p1>=0 && p2>=0 )
      pos:
        line_end: 97905
        line_start: 97905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97924
      start: 97835
    functionDepth: 14
    functionLinenumber: 97835
    functionLinenumberEnd: 97924
    functionName: substrFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - sqlite3_result_blob64
    - sqlite3_value_bytes
    - sqlite3_value_text
    - sqlite3_value_blob
    - SQLITE_SKIP_UTF8
    - sqlite3_value_type
    - sqlite3_result_text64
    - sqlite3_context_db_handle
    linkageType: ''
    returnType: void
    signature: "void substrFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97934,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97936,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97937,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97941,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97942,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97952,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97954,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97957,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97957,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97958,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 97933
        line_start: 97933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97961
      start: 97930
    functionDepth: 10
    functionLinenumber: 97930
    functionLinenumberEnd: 97961
    functionName: roundFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - sqlite3_result_error_nomem
    - sqlite3_free
    - sqlite3_mprintf
    - sqlite3_value_double
    - sqlite3AtoF
    - sqlite3Strlen30
    - sqlite3_value_type
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97974,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97975,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97976,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97978,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97981,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - nByte
    argTypes:
    - sqlite3_context*
    - i64
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 97973
        line_start: 97973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97987
      start: 97971
    functionDepth: 11
    functionLinenumber: 97971
    functionLinenumberEnd: 97987
    functionName: contextMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_result_error_toobig
    - sqlite3_result_error_nomem
    - sqlite3Malloc
    - sqlite3_context_db_handle
    - testcase
    linkageType: ''
    returnType: void
    signature: void *contextMalloc(sqlite3_context *context, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97996,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97997,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:97998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98000,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98000,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98002,1
    - Dst: sqlite3Toupper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98005,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z2==(char*)sqlite3_value_text(argv[0]) )
      pos:
        line_end: 97999
        line_start: 97999
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98010
      start: 97992
    functionDepth: 14
    functionLinenumber: 97992
    functionLinenumberEnd: 98010
    functionName: upperFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_bytes
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3Toupper
    - contextMalloc
    linkageType: ''
    returnType: void
    signature: void upperFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98015,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98016,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98019,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98019,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98021,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98024,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z2==(char*)sqlite3_value_text(argv[0]) )
      pos:
        line_end: 98018
        line_start: 98018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98029
      start: 98011
    functionDepth: 14
    functionLinenumber: 98011
    functionLinenumberEnd: 98029
    functionName: lowerFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_bytes
    - sqlite3Tolower
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - contextMalloc
    linkageType: ''
    returnType: void
    signature: void lowerFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98050,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98051,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98064
      start: 98044
    functionDepth: 11
    functionLinenumber: 98044
    functionLinenumberEnd: 98064
    functionName: randomFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_randomness
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: "void randomFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98077,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98078,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98079,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98083,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98085,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98076
        line_start: 98076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98088
      start: 98070
    functionDepth: 12
    functionLinenumber: 98070
    functionLinenumberEnd: 98088
    functionName: randomBlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - UNUSED_PARAMETER
    - sqlite3_randomness
    - sqlite3_result_blob
    - contextMalloc
    linkageType: ''
    returnType: void
    signature: "void randomBlob(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98099,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98100,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98104,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98105
      start: 98094
    functionDepth: 11
    functionLinenumber: 98094
    functionLinenumberEnd: 98105
    functionName: last_insert_rowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_last_insert_rowid
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: "void last_insert_rowid(\n  sqlite3_context *context, \n  int NotUsed,
      \n  sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98119,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98120,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98121,1
    - Dst: sqlite3_changes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98122
      start: 98114
    functionDepth: 11
    functionLinenumber: 98114
    functionLinenumberEnd: 98122
    functionName: changes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_result_int
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_changes
    linkageType: ''
    returnType: void
    signature: "void changes(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98133,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98134,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98137,1
    - Dst: sqlite3_total_changes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98138
      start: 98128
    functionDepth: 11
    functionLinenumber: 98128
    functionLinenumberEnd: 98138
    functionName: total_changes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_result_int
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_total_changes
    linkageType: ''
    returnType: void
    signature: "void total_changes(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98158
      start: 98157
    functionDepth: 0
    functionLinenumber: 98157
    functionLinenumberEnd: 98158
    functionName: sqlite3Utf8Read
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Utf8Read(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98159
      start: 98158
    functionDepth: 0
    functionLinenumber: 98158
    functionLinenumberEnd: 98159
    functionName: Utf8Read
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Utf8Read(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98161
      start: 98160
    functionDepth: 0
    functionLinenumber: 98160
    functionLinenumberEnd: 98161
    functionName: Utf8Read
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Utf8Read(A)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98226,1
    - Dst: Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98231,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98232,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98240,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98245,1
    - Dst: patternCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98247,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98248,1
    - Dst: sqlite3Toupper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98266,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98267,1
    - Dst: patternCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98273,1
    - Dst: Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98276,1
    - Dst: patternCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98278,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98285,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98292,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98294,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98297,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98301,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98305,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98314,1
    - Dst: Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98322,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98324,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98324,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 99
    argCount: 4
    argNames:
    - zPattern
    - zString
    - pInfo
    - esc
    argTypes:
    - u8*
    - u8*
    - struct compareInfo*
    - u32
    assertStmts:
    - condition: ( matchOther<0x80 )
      pos:
        line_end: 98244
        line_start: 98244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98331
      start: 98206
    functionDepth: 1
    functionLinenumber: 98206
    functionLinenumberEnd: 98331
    functionName: patternCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - patternCompare
    - assert
    - sqlite3Tolower
    - sqlite3Toupper
    - sqlite3Utf8Read
    - SQLITE_SKIP_UTF8
    - Utf8Read
    linkageType: ''
    returnType: int
    signature: "int patternCompare(\n  const u8 *zPattern,              /* The glob
      pattern */\n  const u8 *zString,               /* The string to compare against
      the glob */\n  const struct compareInfo *pInfo, /* Information about how to
      do the compare */\n  u32 esc                          /* The escape character
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patternCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zGlobPattern
    - zString
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98338
      start: 98336
    functionDepth: 2
    functionLinenumber: 98336
    functionLinenumberEnd: 98338
    functionName: sqlite3_strglob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - patternCompare
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_strglob(const char *zGlobPattern, const char *zString)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98370,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98372,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98373,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98378,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98379,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98380,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98382,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98385,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98385,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98391,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98393,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98394,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98398,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98401,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98406,1
    - Dst: patternCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( zB==sqlite3_value_text(argv[0]) )
      pos:
        line_end: 98384
        line_start: 98384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98408
      start: 98362
    functionDepth: 14
    functionLinenumber: 98362
    functionLinenumberEnd: 98408
    functionName: likeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - patternCompare
    - assert
    - sqlite3Utf8CharLen
    - sqlite3_user_data
    - sqlite3_value_bytes
    - sqlite3_value_text
    - sqlite3Utf8Read
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - testcase
    linkageType: ''
    returnType: void
    signature: "void likeFunc(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98420,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98421,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98422,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98425
      start: 98415
    functionDepth: 14
    functionLinenumber: 98415
    functionLinenumberEnd: 98425
    functionName: nullifFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetFuncCollSeq
    - sqlite3_result_value
    - UNUSED_PARAMETER
    - sqlite3MemCompare
    linkageType: ''
    returnType: void
    signature: "void nullifFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98436,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98439,1
    - Dst: sqlite3_libversion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98440
      start: 98431
    functionDepth: 12
    functionLinenumber: 98431
    functionLinenumberEnd: 98440
    functionName: versionFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion
    - UNUSED_PARAMETER2
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void versionFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98452,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98455,1
    - Dst: sqlite3_sourceid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98456
      start: 98447
    functionDepth: 12
    functionLinenumber: 98447
    functionLinenumberEnd: 98456
    functionName: sourceidFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_sourceid
    - UNUSED_PARAMETER2
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void sourceidFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98468,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98469,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98470,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98470,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98471
      start: 98463
    functionDepth: 8
    functionLinenumber: 98463
    functionLinenumberEnd: 98471
    functionName: errlogFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - sqlite3_log
    - UNUSED_PARAMETER
    - sqlite3_value_text
    linkageType: ''
    returnType: void
    signature: "void errlogFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98485,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98486,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98491,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98492,1
    - Dst: sqlite3_compileoption_used
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98484
        line_start: 98484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98494
      start: 98479
    functionDepth: 11
    functionLinenumber: 98479
    functionLinenumberEnd: 98494
    functionName: compileoptionusedFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - assert
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_compileoption_used
    linkageType: ''
    returnType: void
    signature: "void compileoptionusedFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98509,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98510,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98514,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98515,1
    - Dst: sqlite3_compileoption_get
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98508
        line_start: 98508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98516
      start: 98503
    functionDepth: 12
    functionLinenumber: 98503
    functionLinenumberEnd: 98516
    functionName: compileoptiongetFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_compileoption_get
    linkageType: ''
    returnType: void
    signature: "void compileoptiongetFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98534,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98535,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98536,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98540,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98541,1
    - Dst: sqlite3AtoF
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98542,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98544,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98546,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98550,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98555,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98556,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98557,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98557,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98558,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98569,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98570,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98577,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98582,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98593,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98598,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98598,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98599,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( sqlite3_value_type(argv[0])==SQLITE_NULL )
      pos:
        line_end: 98597
        line_start: 98597
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( argc==1 )
      pos:
        line_end: 98533
        line_start: 98533
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zBlob==sqlite3_value_blob(argv[0]) )
      pos:
        line_end: 98556
        line_start: 98556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98603
      start: 98533
    functionDepth: 14
    functionLinenumber: 98533
    functionLinenumberEnd: 98603
    functionName: quoteFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - sqlite3_value_bytes
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_value_double
    - sqlite3AtoF
    - sqlite3_result_value
    - sqlite3_value_blob
    - sqlite3_value_type
    - contextMalloc
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98614,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98616,1
    - Dst: sqlite3Utf8Read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98617
      start: 98609
    functionDepth: 11
    functionLinenumber: 98609
    functionLinenumberEnd: 98617
    functionName: unicodeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_value_text
    - sqlite3Utf8Read
    linkageType: ''
    returnType: void
    signature: "void unicodeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98631,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98633,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98639,1
    - Dst: sqlite3_result_text64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98659
      start: 98624
    functionDepth: 12
    functionLinenumber: 98624
    functionLinenumberEnd: 98659
    functionName: charFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text64
    - sqlite3_value_int64
    - sqlite3_malloc64
    - sqlite3_result_error_nomem
    linkageType: ''
    returnType: void
    signature: "void charFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98673,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98674,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98675,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98676,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98677,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98677,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98678,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98672
        line_start: 98672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBlob==sqlite3_value_blob(argv[0]) )
      pos:
        line_end: 98676
        line_start: 98676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98688
      start: 98665
    functionDepth: 14
    functionLinenumber: 98665
    functionLinenumberEnd: 98688
    functionName: hexFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_bytes
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_blob
    - contextMalloc
    linkageType: ''
    returnType: void
    signature: "void hexFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98700,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98701,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98702,1
    - Dst: sqlite3_result_zeroblob64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98704,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98699
        line_start: 98699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98708
      start: 98693
    functionDepth: 11
    functionLinenumber: 98693
    functionLinenumberEnd: 98708
    functionName: zeroblobFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_result_error_code
    - sqlite3_value_int64
    - sqlite3_result_zeroblob64
    linkageType: ''
    returnType: void
    signature: "void zeroblobFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98732,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98733,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98734,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98736,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98737,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98737,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98738,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98740,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98740,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98741,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98745,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98745,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98746,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98749,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98750,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98750,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98751,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98753,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98754,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98754,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98756,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98757,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98763,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98767,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98769,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98770,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98772,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98773,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98777,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98779,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98780,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98783,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98788,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98789,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98791,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98793,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( zStr==sqlite3_value_text(argv[0]) )
      pos:
        line_end: 98736
        line_start: 98736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3_value_type(argv[1])==SQLITE_NULL\n            || sqlite3_context_db_handle(context)->mallocFailed
        )"
      pos:
        line_end: 98740
        line_start: 98739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zRep==sqlite3_value_text(argv[2]) )
      pos:
        line_end: 98753
        line_start: 98753
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_value_type(argv[1])!=SQLITE_NULL )
      pos:
        line_end: 98744
        line_start: 98744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nOut<SQLITE_MAX_LENGTH )
      pos:
        line_end: 98755
        line_start: 98755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zPattern==sqlite3_value_text(argv[1]) )
      pos:
        line_end: 98749
        line_start: 98749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j+nStr-i+1==nOut )
      pos:
        line_end: 98787
        line_start: 98787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j<=nOut )
      pos:
        line_end: 98790
        line_start: 98790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( argc==3 )
      pos:
        line_end: 98731
        line_start: 98731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98794
      start: 98716
    functionDepth: 14
    functionLinenumber: 98716
    functionLinenumberEnd: 98794
    functionName: replaceFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - sqlite3_result_error_toobig
    - sqlite3_free
    - sqlite3_result_error_nomem
    - sqlite3_value_bytes
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3_realloc64
    - memcpy
    - sqlite3_result_value
    - sqlite3_value_type
    - sqlite3_context_db_handle
    - contextMalloc
    - testcase
    linkageType: ''
    returnType: void
    signature: "void replaceFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98814,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98817,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98819,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98820,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98820,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98828,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98833,1
    - Dst: contextMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98836,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98843,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98849,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98849,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98855,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98867,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98874,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98877,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( zIn==sqlite3_value_text(argv[0]) )
      pos:
        line_end: 98819
        line_start: 98819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98878
      start: 98800
    functionDepth: 14
    functionLinenumber: 98800
    functionLinenumberEnd: 98878
    functionName: trimFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - SQLITE_PTR_TO_INT
    - assert
    - sqlite3_user_data
    - sqlite3_free
    - sqlite3_value_bytes
    - sqlite3_result_text
    - sqlite3_value_text
    - SQLITE_SKIP_UTF8
    - sqlite3_value_type
    - contextMalloc
    linkageType: ''
    returnType: void
    signature: "void trimFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98910,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98911,1
    - Dst: sqlite3Isalpha
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98913,1
    - Dst: sqlite3Toupper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98916,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98932,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98936,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98909
        line_start: 98909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98938
      start: 98892
    functionDepth: 12
    functionLinenumber: 98892
    functionLinenumberEnd: 98938
    functionName: soundexFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isalpha
    - assert
    - sqlite3_result_text
    - sqlite3Toupper
    - sqlite3_value_text
    linkageType: ''
    returnType: void
    signature: "void soundexFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98946,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98948,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98952,1
    - Dst: sqlite3_load_extension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98956,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98957,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98960
      start: 98945
    functionDepth: 11
    functionLinenumber: 98945
    functionLinenumberEnd: 98960
    functionName: loadExt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_value_text
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - sqlite3_load_extension
    linkageType: ''
    returnType: void
    signature: void loadExt(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98990,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98991,1
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98992,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98993,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98997,1
    - Dst: sqlite3AddInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:98999,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 98989
        line_start: 98989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99007
      start: 98987
    functionDepth: 5
    functionLinenumber: 98987
    functionLinenumberEnd: 99007
    functionName: sumStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_numeric_type
    - assert
    - sqlite3AddInt64
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    - sqlite3_value_double
    - sqlite3_value_int64
    linkageType: ''
    returnType: void
    signature: void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99010,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99013,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99015,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99020
      start: 99008
    functionDepth: 11
    functionLinenumber: 99008
    functionLinenumberEnd: 99020
    functionName: sumFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int64
    - sqlite3_result_error
    - sqlite3_aggregate_context
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: void sumFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99023,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99027
      start: 99021
    functionDepth: 10
    functionLinenumber: 99021
    functionLinenumberEnd: 99027
    functionName: avgFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: void avgFinalize(sqlite3_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99030,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99033
      start: 99028
    functionDepth: 10
    functionLinenumber: 99028
    functionLinenumberEnd: 99033
    functionName: totalFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: void totalFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99049,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99050,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99059,1
    - Dst: sqlite3_aggregate_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: "( argc==1 || p==0 || p->n>0x7fffffff\n          || p->n==sqlite3_aggregate_count(context)
        )"
      pos:
        line_end: 99059
        line_start: 99058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99062
      start: 99047
    functionDepth: 1
    functionLinenumber: 99047
    functionLinenumberEnd: 99062
    functionName: countStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_type
    - sqlite3_aggregate_context
    - sqlite3_aggregate_count
    linkageType: ''
    returnType: void
    signature: void countStep(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99065,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99067
      start: 99063
    functionDepth: 11
    functionLinenumber: 99063
    functionLinenumberEnd: 99067
    functionName: countFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void countFinalize(sqlite3_context *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99079,1
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99081,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99084,1
    - Dst: sqlite3SkipAccumulatorLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99085,1
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99089,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99098,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99099,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99101,1
    - Dst: sqlite3SkipAccumulatorLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99103,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99106,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99109
      start: 99072
    functionDepth: 14
    functionLinenumber: 99072
    functionLinenumberEnd: 99109
    functionName: minmaxStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetFuncCollSeq
    - sqlite3SkipAccumulatorLoad
    - sqlite3_user_data
    - sqlite3VdbeMemCopy
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    - sqlite3_value_type
    - sqlite3_context_db_handle
    - sqlite3MemCompare
    linkageType: ''
    returnType: void
    signature: "void minmaxStep(\n  sqlite3_context *context, \n  int NotUsed, \n
      \ sqlite3_value **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99112,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99115,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99119
      start: 99110
    functionDepth: 11
    functionLinenumber: 99110
    functionLinenumberEnd: 99119
    functionName: minMaxFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3_result_value
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void minMaxFinalize(sqlite3_context *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99133,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99134,1
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99135,1
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99138,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99143,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99144,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99149,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99151,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99152,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 99132
        line_start: 99132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99155
      start: 99124
    functionDepth: 14
    functionLinenumber: 99124
    functionLinenumberEnd: 99155
    functionName: groupConcatStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumAppend
    - assert
    - sqlite3_value_bytes
    - sqlite3_aggregate_context
    - sqlite3_value_text
    - sqlite3_value_type
    - sqlite3_context_db_handle
    linkageType: ''
    returnType: void
    signature: "void groupConcatStep(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99158,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99161,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99163,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99165,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99169
      start: 99156
    functionDepth: 12
    functionLinenumber: 99156
    functionLinenumberEnd: 99169
    functionName: groupConcatFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_toobig
    - sqlite3_result_error_nomem
    - sqlite3_result_text
    - sqlite3_aggregate_context
    - sqlite3StrAccumFinish
    linkageType: ''
    returnType: void
    signature: void groupConcatFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99177,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( rc==SQLITE_NOMEM || rc==SQLITE_OK )
      pos:
        line_end: 99177
        line_start: 99177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99182
      start: 99176
    functionDepth: 1
    functionLinenumber: 99176
    functionLinenumberEnd: 99182
    functionName: sqlite3RegisterBuiltinFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_overload_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterBuiltinFunctions(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99189,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99189,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - db
    - zName
    - flagVal
    argTypes:
    - sqlite3*
    - char*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99194
      start: 99187
    functionDepth: 3
    functionLinenumber: 99187
    functionLinenumberEnd: 99194
    functionName: setLikeOptFlag
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindFunction
    - ALWAYS
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: void setLikeOptFlag(sqlite3 *db, const char *zName, u8 flagVal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99208,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99209,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99210,1
    - Dst: setLikeOptFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99212,1
    - Dst: setLikeOptFlag
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - caseSensitive
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99215
      start: 99201
    functionDepth: 4
    functionLinenumber: 99201
    functionLinenumberEnd: 99215
    functionName: sqlite3RegisterLikeFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3CreateFunc
    - setLikeOptFlag
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99237,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99237,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99238,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99239,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99241,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99249,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99250,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99251,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - db
    - pExpr
    - pIsNocase
    - aWc
    argTypes:
    - sqlite3*
    - Expr*
    - int*
    - char*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 99236
        line_start: 99236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (char*)&likeInfoAlt == (char*)&likeInfoAlt.matchAll )
      pos:
        line_end: 99249
        line_start: 99249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( &((char*)&likeInfoAlt)[1] == (char*)&likeInfoAlt.matchOne )
      pos:
        line_end: 99250
        line_start: 99250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( &((char*)&likeInfoAlt)[2] == (char*)&likeInfoAlt.matchSet )
      pos:
        line_end: 99251
        line_start: 99251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99255
      start: 99229
    functionDepth: 3
    functionLinenumber: 99229
    functionLinenumberEnd: 99255
    functionName: sqlite3IsLikeFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindFunction
    - NEVER
    - ExprHasProperty
    - assert
    - memcpy
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsLikeFunction(sqlite3 *db, Expr *pExpr, int
      *pIsNocase, char *aWc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99274,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99275,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99276,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99277,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99278,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99279,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99280,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99281,1
    - Dst: AGGREGATE2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99282,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99284,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99285,1
    - Dst: AGGREGATE2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99286,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99288,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99289,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99290,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99291,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99292,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99293,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99294,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99295,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99296,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99298,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99299,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99301,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99302,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99303,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99304,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99305,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99306,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99307,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99308,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99309,1
    - Dst: FUNCTION2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99310,1
    - Dst: VFUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99311,1
    - Dst: VFUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99312,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99313,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99314,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99315,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99316,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99318,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99321,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99322,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99324,1
    - Dst: VFUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99325,1
    - Dst: VFUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99326,1
    - Dst: VFUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99327,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99328,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99329,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99331,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99334,1
    - Dst: FUNCTION
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99335,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99337,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99338,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99339,1
    - Dst: AGGREGATE2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99340,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99342,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99343,1
    - Dst: AGGREGATE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99344,1
    - Dst: LIKEFUNC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99346,1
    - Dst: LIKEFUNC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99348,1
    - Dst: LIKEFUNC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99349,1
    - Dst: LIKEFUNC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99351,1
    - Dst: LIKEFUNC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99352,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99357,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99358,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99360,1
    - Dst: sqlite3FuncDefInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99361,1
    - Dst: sqlite3RegisterDateTimeFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99363,1
    - Dst: sqlite3AlterFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99365,1
    - Dst: sqlite3AnalyzeFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99370
      start: 99264
    functionDepth: 2
    functionLinenumber: 99264
    functionLinenumberEnd: 99370
    functionName: sqlite3RegisterGlobalFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - AGGREGATE
    - sqlite3FuncDefInsert
    - FUNCTION
    - VFUNCTION
    - sqlite3RegisterDateTimeFunctions
    - AGGREGATE2
    - GLOBAL
    - FUNCTION2
    - ArraySize
    - LIKEFUNC
    - sqlite3AnalyzeFunctions
    - sqlite3AlterFunctions
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterGlobalFunctions(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99571,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99594,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99595,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99601,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99610,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99635,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99639,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99653,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99657,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 5
    argNames:
    - pParse
    - pParent
    - pFKey
    - ppIdx
    - paiCol
    argTypes:
    - Parse*
    - Table*
    - FKey*
    - Index**
    - int**
    assertStmts:
    - condition: ( ppIdx && *ppIdx==0 )
      pos:
        line_end: 99568
        line_start: 99568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nCol>1 )
      pos:
        line_end: 99593
        line_start: 99593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse )
      pos:
        line_end: 99570
        line_start: 99570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !paiCol || *paiCol==0 )
      pos:
        line_end: 99569
        line_start: 99569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99663
      start: 99556
    functionDepth: 8
    functionLinenumber: 99556
    functionLinenumberEnd: 99663
    functionName: sqlite3FkLocateIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsPrimaryKeyIndex
    - sqlite3StrICmp
    - assert
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - IsUniqueIndex
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkLocateIndex(\n  Parse *pParse,                  /*
      Parse context to store any error in */\n  Table *pParent,                 /*
      Parent table of FK constraint pFKey */\n  FKey *pFKey,                    /*
      Foreign key to find index for */\n  Index **ppIdx,                  /* OUT:
      Unique index on parent table */\n  int **paiCol                    /* OUT: Map
      of index columns in pFKey */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99703,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99705,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99715,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99716,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99720,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99720,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99728,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99735,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99736,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99737,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99744,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99744,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99745,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99748,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99749,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99749,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99750,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99751,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99751,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99752,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99753,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99756,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99757,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99759,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99760,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99762,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99776,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99780,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99785,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99785,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99786,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99788,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99791,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99792,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99793,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99793,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99795,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99796,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99808,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99809,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99813,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99815,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99818,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99819,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 9
    argNames:
    - pParse
    - iDb
    - pTab
    - pIdx
    - pFKey
    - aiCol
    - regData
    - nIncr
    - isIgnore
    argTypes:
    - Parse*
    - int
    - Table*
    - Index*
    - FKey*
    - int*
    - int
    - int
    - int
    assertStmts:
    - condition: ( aiCol[i]!=pTab->iPKey )
      pos:
        line_end: 99779
        line_start: 99779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nIncr==1 )
      pos:
        line_end: 99807
        line_start: 99807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99820
      start: 99691
    functionDepth: 13
    functionLinenumber: 99691
    functionLinenumberEnd: 99820
    functionName: fkLookupParent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3IndexAffinityStr
    - sqlite3VdbeAddOp4Int
    - sqlite3OpenTable
    - VdbeCoverage
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempReg
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3MayAbort
    - sqlite3HaltConstraint
    - sqlite3VdbeMakeLabel
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void fkLookupParent(\n  Parse *pParse,        /* Parse context */\n
      \ int iDb,              /* Index of database housing pTab */\n  Table *pTab,
      \         /* Parent table of FK pFKey */\n  Index *pIdx,          /* Unique
      index on parent key columns in pTab */\n  FKey *pFKey,          /* Foreign key
      constraint */\n  int *aiCol,           /* Map from parent key columns to child
      table columns */\n  int regData,          /* Address of array containing child
      table row */\n  int nIncr,            /* Increment constraint counter by this
      */\n  int isIgnore          /* If true, pretend pTab contains all NULL values
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99842,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - pTab
    - regBase
    - iCol
    argTypes:
    - Parse*
    - Table*
    - int
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99857
      start: 99831
    functionDepth: 4
    functionLinenumber: 99831
    functionLinenumberEnd: 99857
    functionName: exprTableRegister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAddCollateString
    - sqlite3Expr
    linkageType: ''
    returnType: Expr
    signature: "Expr *exprTableRegister(\n  Parse *pParse,     /* Parsing and code
      generating context */\n  Table *pTab,       /* The table whose content is at
      r[regBase]... */\n  int regBase,       /* Contents of table pTab */\n  i16 iCol
      \          /* Which column of pTab is desired */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - db
    - pTab
    - iCursor
    - iCol
    argTypes:
    - sqlite3*
    - Table*
    - int
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99876
      start: 99863
    functionDepth: 4
    functionLinenumber: 99863
    functionLinenumberEnd: 99876
    functionName: exprTableColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Expr
    linkageType: ''
    returnType: Expr
    signature: "Expr *exprTableColumn(\n  sqlite3 *db,      /* The database connection
      */\n  Table *pTab,      /* The table whose column is desired */\n  int iCursor,
      \     /* The open cursor on the table */\n  i16 iCol          /* The column
      that is wanted */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99926,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99928,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99929,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99931,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99931,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99934,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99935,1
    - Dst: exprTableRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99956,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99958,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99959,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99960,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99978,1
    - Dst: exprTableRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99979,1
    - Dst: exprTableColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99980,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99981,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99984,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99985,1
    - Dst: exprTableRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99988,1
    - Dst: exprTableColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99989,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99990,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99991,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99993,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99995,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:99999,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100002,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100007,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100008,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100010,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100014,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100016,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - pTab
    - pIdx
    - pFKey
    - aiCol
    - regData
    - nIncr
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    - Index*
    - FKey*
    - int*
    - int
    - int
    assertStmts:
    - condition: ( pIdx!=0 || HasRowid(pTab) )
      pos:
        line_end: 99930
        line_start: 99930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx==0 || pIdx->nKeyCol==pFKey->nCol )
      pos:
        line_end: 99928
        line_start: 99928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx==0 || pIdx->pTable==pTab )
      pos:
        line_end: 99927
        line_start: 99927
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol>=0 )
      pos:
        line_end: 99955
        line_start: 99955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 99984
        line_start: 99984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx!=0 || pFKey->nCol==1 )
      pos:
        line_end: 99929
        line_start: 99929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100018
      start: 99910
    functionDepth: 10
    functionLinenumber: 99910
    functionLinenumberEnd: 100018
    functionName: fkScanChildren
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveExprNames
    - sqlite3PrimaryKeyIndex
    - memset
    - assert
    - sqlite3PExpr
    - exprTableColumn
    - sqlite3VdbeJumpHere
    - sqlite3ExprAnd
    - sqlite3Expr
    - sqlite3WhereBegin
    - VdbeCoverage
    - sqlite3VdbeAddOp2
    - exprTableRegister
    - sqlite3WhereEnd
    - HasRowid
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    linkageType: ''
    returnType: void
    signature: "void fkScanChildren(\n  Parse *pParse,                  /* Parse context
      */\n  SrcList *pSrc,                  /* The child table to be scanned */\n
      \ Table *pTab,                    /* The parent table */\n  Index *pIdx,                    /*
      Index on parent covering the foreign key */\n  FKey *pFKey,                    /*
      The foreign key linking pSrc to pTab */\n  int *aiCol,                     /*
      Map from pIdx cols to child table cols */\n  int regData,                    /*
      Parent row data starts here */\n  int nIncr                       /* Amount
      to increment deferred counter by */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100036
      start: 100034
    functionDepth: 3
    functionLinenumber: 100034
    functionLinenumberEnd: 100036
    functionName: sqlite3FkReferences
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3HashFind
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FkReferences(Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100049,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100050,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100051,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100052,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dbMem
    - p
    argTypes:
    - sqlite3*
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100055
      start: 100046
    functionDepth: 7
    functionLinenumber: 100046
    functionLinenumberEnd: 100055
    functionName: fkTriggerDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: void fkTriggerDelete(sqlite3 *dbMem, Trigger *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100076,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100078,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100080,1
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100081,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100092,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100093,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100093,1
    - Dst: sqlite3DeleteFrom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100097,1
    - Dst: sqlite3SrcListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100097,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100110,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100110,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100111,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100112,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - pParse
    - pName
    - pTab
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 100079
        line_start: 100079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100120
      start: 100074
    functionDepth: 14
    functionLinenumber: 100074
    functionLinenumberEnd: 100120
    functionName: sqlite3FkDropTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FkReferences
    - assert
    - IsVirtual
    - sqlite3VdbeResolveLabel
    - sqlite3HaltConstraint
    - VdbeCoverage
    - sqlite3DeleteFrom
    - sqlite3VdbeMakeLabel
    - sqlite3SrcListDup
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeCurrentAddr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table
      *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pTab
    - p
    - aChange
    - bChngRowid
    argTypes:
    - Table*
    - FKey*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100148
      start: 100135
    functionDepth: 0
    functionLinenumber: 100135
    functionLinenumberEnd: 100148
    functionName: fkChildIsModified
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fkChildIsModified(\n  Table *pTab,                    /* Table
      being updated */\n  FKey *p,                        /* Foreign key for which
      pTab is the child */\n  int *aChange,                   /* Array indicating
      modified columns */\n  int bChngRowid                  /* True if rowid is modified
      by this update */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - pTab
    - p
    - aChange
    - bChngRowid
    argTypes:
    - Table*
    - FKey*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100184
      start: 100162
    functionDepth: 0
    functionLinenumber: 100162
    functionLinenumberEnd: 100184
    functionName: fkParentIsModified
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int fkParentIsModified(\n  Table *pTab, \n  FKey *p, \n  int *aChange,
      \n  int bChngRowid\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - pFKey
    argTypes:
    - Parse*
    - FKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100202
      start: 100191
    functionDepth: 1
    functionLinenumber: 100191
    functionLinenumberEnd: 100202
    functionName: isSetNullAction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: int
    signature: int isSetNullAction(Parse *pParse, FKey *pFKey)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100239,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100244,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100259,1
    - Dst: fkChildIsModified
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100260,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100270,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100272,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100274,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100275,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100285,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100286,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100289,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100289,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100295,1
    - Dst: sqlite3AuthReadCol
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100314,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100323,1
    - Dst: fkLookupParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100330,1
    - Dst: isSetNullAction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100332,1
    - Dst: fkLookupParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100341,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100344,1
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100349,1
    - Dst: fkParentIsModified
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100354,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100361,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100367,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100371,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100375,1
    - Dst: fkScanChildren
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100384,1
    - Dst: fkScanChildren
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100388,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100407,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100411,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100413,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 88
    argCount: 6
    argNames:
    - pParse
    - pTab
    - regOld
    - regNew
    - aChange
    - bChngRowid
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int*
    - int
    assertStmts:
    - condition: ( pFKey->nCol==1 || (aiFree && pIdx) )
      pos:
        line_end: 100294
        line_start: 100294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( regOld==0 && regNew!=0 )
      pos:
        line_end: 100360
        line_start: 100360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aiCol || pFKey->nCol==1 )
      pos:
        line_end: 100370
        line_start: 100370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (regOld==0)!=(regNew==0) )
      pos:
        line_end: 100238
        line_start: 100238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isIgnoreErrors==0 || (regOld!=0 && regNew==0) )
      pos:
        line_end: 100274
        line_start: 100274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100415
      start: 100224
    functionDepth: 14
    functionLinenumber: 100224
    functionLinenumberEnd: 100415
    functionName: sqlite3FkCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FkReferences
    - fkChildIsModified
    - sqlite3TableLock
    - sqlite3SrcListAppend
    - sqlite3DbFree
    - sqlite3FkLocateIndex
    - sqlite3SchemaToIndex
    - fkScanChildren
    - VdbeCoverage
    - sqlite3FindTable
    - sqlite3VdbeCurrentAddr
    - sqlite3_stricmp
    - assert
    - sqlite3VdbeAddOp2
    - sqlite3AuthReadCol
    - isSetNullAction
    - sqlite3LocateTable
    - fkLookupParent
    - sqlite3MayAbort
    - sqlite3SrcListDelete
    - fkParentIsModified
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkCheck(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Row is being deleted
      from this table */ \n  int regOld,                     /* Previous row data
      is stored here */\n  int regNew,                     /* New row data is stored
      here */\n  int *aChange,                   /* Array indicating UPDATEd columns
      (or 0) */\n  int bChngRowid                  /* True if rowid is UPDATEd */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100418
      start: 100417
    functionDepth: 0
    functionLinenumber: 100417
    functionLinenumberEnd: 100418
    functionName: COLUMN_MASK
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_MASK(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COLUMN_MASK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100432,1
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100434,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100436,1
    - Dst: COLUMN_MASK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100443
      start: 100423
    functionDepth: 9
    functionLinenumber: 100423
    functionLinenumberEnd: 100443
    functionName: sqlite3FkOldmask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FkReferences
    - sqlite3FkLocateIndex
    - COLUMN_MASK
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkOldmask(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab                     /* Table being modified
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100471,1
    - Dst: fkChildIsModified
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100479,1
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100483,1
    - Dst: fkParentIsModified
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - pParse
    - pTab
    - aChange
    - chngRowid
    argTypes:
    - Parse*
    - Table*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100489
      start: 100460
    functionDepth: 4
    functionLinenumber: 100460
    functionLinenumberEnd: 100489
    functionName: sqlite3FkRequired
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - fkChildIsModified
    - sqlite3FkReferences
    - fkParentIsModified
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkRequired(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Table being modified
      */\n  int *aChange,                   /* Non-NULL for UPDATE operations */\n
      \ int chngRowid                   /* True for UPDATE that affects rowid */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100547,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100548,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100559,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100560,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100564,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100565,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100571,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100572,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100573,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100574,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100576,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100578,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100586,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100587,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100588,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100589,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100591,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100592,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100593,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100596,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100602,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100603,1
    - Dst: sqlite3ExprAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100604,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100609,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100611,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100614,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100616,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100617,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100620,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100623,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100631,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100635,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100636,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100637,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100648,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100656,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100658,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100659,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100660,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100662,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100663,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100670,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100671,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100672,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100673,1
    - Dst: fkTriggerDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100675,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100678,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 95
    argCount: 4
    argNames:
    - pParse
    - pTab
    - pFKey
    - pChanges
    argTypes:
    - Parse*
    - Table*
    - FKey*
    - ExprList*
    assertStmts:
    - condition: ( iFromCol>=0 )
      pos:
        line_end: 100558
        line_start: 100558
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aiCol || pFKey->nCol==1 )
      pos:
        line_end: 100547
        line_start: 100547
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) )
      pos:
        line_end: 100559
        line_start: 100559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pStep!=0 )
      pos:
        line_end: 100677
        line_start: 100677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100700
      start: 100520
    functionDepth: 10
    functionLinenumber: 100520
    functionLinenumberEnd: 100700
    functionName: fkActionTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListSetName
    - sqlite3SelectNew
    - sqlite3SrcListAppend
    - sqlite3ExprListDup
    - sqlite3ExprAlloc
    - sqlite3Strlen30
    - sqlite3DbFree
    - sqlite3FkLocateIndex
    - sqlite3ExprAnd
    - sqlite3Expr
    - sqlite3SelectDelete
    - memcpy
    - fkTriggerDelete
    - sqlite3ExprListDelete
    - assert
    - sqlite3ExprListAppend
    - sqlite3ExprDup
    - sqlite3PExpr
    - sqlite3SelectDup
    - sqlite3DbMallocZero
    - sqlite3ExprDelete
    linkageType: ''
    returnType: Trigger
    signature: "Trigger *fkActionTrigger(\n  Parse *pParse,                  /* Parse
      context */\n  Table *pTab,                    /* Table being updated or deleted
      from */\n  FKey *pFKey,                    /* Foreign key to get action for
      */\n  ExprList *pChanges              /* Change-list for UPDATE, NULL for DELETE
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkReferences
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100720,1
    - Dst: fkParentIsModified
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100721,1
    - Dst: fkActionTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100722,1
    - Dst: sqlite3CodeRowTriggerDirect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 6
    argNames:
    - pParse
    - pTab
    - pChanges
    - regOld
    - aChange
    - bChngRowid
    argTypes:
    - Parse*
    - Table*
    - ExprList*
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100729
      start: 100706
    functionDepth: 11
    functionLinenumber: 100706
    functionLinenumberEnd: 100729
    functionName: sqlite3FkActions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fkActionTrigger
    - sqlite3FkReferences
    - fkParentIsModified
    - sqlite3CodeRowTriggerDirect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkActions(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Table being updated or
      deleted from */\n  ExprList *pChanges,             /* Change-list for UPDATE,
      NULL for DELETE */\n  int regOld,                     /* Address of array containing
      old row */\n  int *aChange,                   /* Array indicating UPDATEd columns
      (or 0) */\n  int bChngRowid                  /* True if rowid is UPDATEd */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100742,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100742,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100752,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100762,1
    - Dst: fkTriggerDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100766,1
    - Dst: fkTriggerDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100767,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - db
    - pTab
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( db==0 || sqlite3SchemaMutexHeld(db, 0, pTab->pSchema) )
      pos:
        line_end: 100741
        line_start: 100741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFKey->isDeferred==0 || pFKey->isDeferred==1 )
      pos:
        line_end: 100761
        line_start: 100761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100773
      start: 100738
    functionDepth: 8
    functionLinenumber: 100738
    functionLinenumberEnd: 100773
    functionName: sqlite3FkDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3SchemaMutexHeld
    - fkTriggerDelete
    - sqlite3HashInsert
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FkDelete(sqlite3 *db, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100811,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100811,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100812,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100813,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100814,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100816,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100817,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100818,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100820,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100822,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100823,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100824,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - pParse
    - iCur
    - iDb
    - pTab
    - opcode
    argTypes:
    - Parse*
    - int
    - int
    - Table*
    - int
    assertStmts:
    - condition: ( !IsVirtual(pTab) )
      pos:
        line_end: 100810
        line_start: 100810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( opcode==OP_OpenWrite || opcode==OP_OpenRead )
      pos:
        line_end: 100812
        line_start: 100812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 100820
        line_start: 100820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk->tnum==pTab->tnum )
      pos:
        line_end: 100821
        line_start: 100821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100827
      start: 100803
    functionDepth: 13
    functionLinenumber: 100803
    functionLinenumberEnd: 100827
    functionName: sqlite3OpenTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp4Int
    - assert
    - IsVirtual
    - sqlite3TableLock
    - sqlite3VdbeAddOp3
    - VdbeComment
    - HasRowid
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OpenTable(\n  Parse *pParse,  /* Generate code
      into this VDBE */\n  int iCur,       /* The cursor number of the table */\n
      \ int iDb,        /* The database index in sqlite3.aDb[] */\n  Table *pTab,
      \   /* The table to be opened */\n  int opcode      /* OP_OpenRead or OP_OpenWrite
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100861,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - v
    - pIdx
    argTypes:
    - Vdbe*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100875
      start: 100849
    functionDepth: 5
    functionLinenumber: 100849
    functionLinenumberEnd: 100875
    functionName: sqlite3IndexAffinityStr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeDb
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100901,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100902,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100916,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100919,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100921,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - v
    - pTab
    - iReg
    argTypes:
    - Vdbe*
    - Table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100924
      start: 100897
    functionDepth: 12
    functionLinenumber: 100897
    functionLinenumberEnd: 100924
    functionName: sqlite3TableAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeChangeP4
    - sqlite3VdbeDb
    - sqlite3Strlen30
    - sqlite3DbMallocRaw
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100933,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100935,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100937,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100937,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100942,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100957,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100958,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - p
    - iDb
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts:
    - condition: ( pOp!=0 )
      pos:
        line_end: 100941
        line_start: 100941
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4.pVtab!=0 )
      pos:
        line_end: 100956
        line_start: 100956
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp->p4type==P4_VTAB )
      pos:
        line_end: 100957
        line_start: 100957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100964
      start: 100932
    functionDepth: 1
    functionLinenumber: 100932
    functionLinenumberEnd: 100964
    functionName: readsTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - IsVirtual
    - sqlite3VdbeGetOp
    - sqlite3GetVTable
    - sqlite3GetVdbe
    - sqlite3VdbeCurrentAddr
    linkageType: ''
    returnType: int
    signature: int readsTable(Parse *p, int iDb, Table *pTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:100994,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - pParse
    - iDb
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101013
      start: 100987
    functionDepth: 5
    functionLinenumber: 100987
    functionLinenumberEnd: 101013
    functionName: autoIncBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParseToplevel
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: "int autoIncBegin(\n  Parse *pParse,      /* Parsing context */\n  int
      iDb,            /* Index of the database holding pTab */\n  Table *pTab         /*
      The table we are writing to */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101030,1
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101030,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101032,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101036,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101036,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101037,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101038,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101039,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101040,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101041,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101041,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101042,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101043,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101043,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101044,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101045,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101046,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101047,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101048,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101048,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101049,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 101031
        line_start: 101031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse==sqlite3ParseToplevel(pParse) )
      pos:
        line_end: 101029
        line_start: 101029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pTriggerTab==0 )
      pos:
        line_end: 101028
        line_start: 101028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) )
      pos:
        line_end: 101035
        line_start: 101035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101052
      start: 101019
    functionDepth: 14
    functionLinenumber: 101019
    functionLinenumberEnd: 101052
    functionName: sqlite3AutoincrementBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VdbeAddOp0
    - sqlite3OpenTable
    - sqlite3ParseToplevel
    - VdbeCoverage
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoincrementBegin(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - memId
    - regRowid
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101066
      start: 101062
    functionDepth: 9
    functionLinenumber: 101062
    functionLinenumberEnd: 101066
    functionName: autoIncStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: void autoIncStep(Parse *pParse, int memId, int regRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101080,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101087,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101088,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101088,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101089,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101090,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101090,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101091,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101092,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101093,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101094,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101095,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101096,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 101079
        line_start: 101079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) )
      pos:
        line_end: 101087
        line_start: 101087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101099
      start: 101075
    functionDepth: 14
    functionLinenumber: 101075
    functionLinenumberEnd: 101099
    functionName: sqlite3AutoincrementEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VdbeAddOp0
    - sqlite3OpenTable
    - sqlite3VdbeJumpHere
    - sqlite3ReleaseTempReg
    - sqlite3GetTempReg
    - sqlite3SchemaMutexHeld
    - VdbeCoverage
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoincrementEnd(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101106
      start: 101105
    functionDepth: 0
    functionLinenumber: 101105
    functionLinenumberEnd: 101106
    functionName: autoIncBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: autoIncBegin(A,B,C)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101264,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101276,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101282,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101284,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101285,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101289,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101290,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101293,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101296,1
    - Dst: sqlite3TriggersExist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101302,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101313,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101318,1
    - Dst: sqlite3IsReadOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101324,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101330,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101332,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101333,1
    - Dst: xferOptimization
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101345,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101346,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101347,1
    - Dst: autoIncBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101355,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101362,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101386,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101390,1
    - Dst: sqlite3IsRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101396,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101400,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101422,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101423,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101424,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101427,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101430,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101432,1
    - Dst: readsTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101444,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101464,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101465,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101466,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101467,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101467,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101468,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101469,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101470,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101471,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101472,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101473,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101474,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101481,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101484,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101487,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101504,1
    - Dst: IsHiddenColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101506,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101510,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101516,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101524,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101530,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101532,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101552,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101552,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101553,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101563,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101564,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101569,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101571,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101580,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101583,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101585,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101587,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101588,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101590,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101590,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101591,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101592,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101593,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101593,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101599,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101599,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101612,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101614,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101616,1
    - Dst: sqlite3ExprCodeAndCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101617,1
    - Dst: sqlite3TableAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101627,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101631,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101634,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101641,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101643,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101647,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101649,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101652,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101653,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101654,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101654,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101667,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101668,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101668,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101669,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101670,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101672,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101673,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101673,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101675,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101675,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101677,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101678,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101680,1
    - Dst: autoIncStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101683,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101697,1
    - Dst: IsHiddenColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101701,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101702,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101702,1
    - Dst: sqlite3ExprCodeFactorable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101714,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101716,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101719,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101722,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101730,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101731,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101732,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101733,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101734,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101735,1
    - Dst: sqlite3GenerateConstraintChecks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101740,1
    - Dst: sqlite3FkCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101743,1
    - Dst: sqlite3CompleteInsertion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101744,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101752,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101757,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101764,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101766,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101766,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101767,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101768,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101770,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101771,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101774,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101776,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101778,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101788,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101797,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101798,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101799,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101803,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101804,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101805,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101806,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101807,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 358
    argCount: 5
    argNames:
    - pParse
    - pTabList
    - pSelect
    - pColumn
    - onError
    argTypes:
    - Parse*
    - SrcList*
    - Select*
    - IdList*
    - int
    assertStmts:
    - condition: ( (pTrigger && tmask) || (pTrigger==0 && tmask==0) )
      pos:
        line_end: 101312
        line_start: 101312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList==0 )
      pos:
        line_end: 101346
        line_start: 101346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 101281
        line_start: 101281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !withoutRowid )
      pos:
        line_end: 101582
        line_start: 101582
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSelect==0 )
      pos:
        line_end: 101615
        line_start: 101615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 101289
        line_start: 101289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pTrigger )
      pos:
        line_end: 101345
        line_start: 101345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !withoutRowid )
      pos:
        line_end: 101389
        line_start: 101389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( useTempTable==0 )
      pos:
        line_end: 101483
        line_start: 101483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 101701
        line_start: 101701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !IsVirtual(pTab) )
      pos:
        line_end: 101598
        line_start: 101598
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSelect->pEList )
      pos:
        line_end: 101431
        line_start: 101431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSelect==0 )
      pos:
        line_end: 101586
        line_start: 101586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101808
      start: 101216
    functionDepth: 18
    functionLinenumber: 101216
    functionLinenumberEnd: 101808
    functionName: sqlite3Insert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsReadOnly
    - IsHiddenColumn
    - memset
    - sqlite3ExprCodeAndCache
    - sqlite3SrcListLookup
    - sqlite3CompleteInsertion
    - sqlite3OpenTableAndIndices
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3VdbeSetColName
    - sqlite3ErrorMsg
    - sqlite3CodeRowTrigger
    - sqlite3DbFree
    - NEVER
    - sqlite3SchemaToIndex
    - autoIncStep
    - sqlite3StrICmp
    - IsVirtual
    - sqlite3SelectDestInit
    - sqlite3SelectDelete
    - sqlite3GetVTable
    - sqlite3Select
    - VdbeCoverage
    - sqlite3GenerateConstraintChecks
    - sqlite3IdListDelete
    - sqlite3TriggersExist
    - HasRowid
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprListDelete
    - sqlite3BeginWriteOperation
    - xferOptimization
    - assert
    - sqlite3ExprCodeFactorable
    - sqlite3VdbeJumpHere
    - ALWAYS
    - sqlite3GetTempReg
    - sqlite3AuthCheck
    - sqlite3ReleaseTempRange
    - sqlite3FkCheck
    - sqlite3VdbeAddOp2
    - sqlite3IsRowid
    - sqlite3VtabMakeWritable
    - autoIncBegin
    - sqlite3AutoincrementEnd
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeGetOp
    - sqlite3MayAbort
    - sqlite3ViewGetColumnNames
    - sqlite3TableAffinity
    - sqlite3VdbeAddOp4
    - sqlite3VdbeSetNumCols
    - sqlite3SrcListDelete
    - sqlite3VdbeCountChanges
    - sqlite3VdbeMakeLabel
    - readsTable
    - sqlite3ResolveExprNames
    - sqlite3GetVdbe
    - sqlite3ExprCode
    - sqlite3VdbeChangeP5
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Insert(\n  Parse *pParse,        /* Parser context
      */\n  SrcList *pTabList,    /* Name of table into which we are inserting */\n
      \ Select *pSelect,      /* A SELECT statement to use as the data source */\n
      \ IdList *pColumn,      /* Column names corresponding to IDLIST. */\n  int onError
      \          /* How to handle constraint errors */\n)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101938,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101940,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101947,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101951,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101956,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101975,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101979,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101983,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101985,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101987,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101988,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101992,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101997,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101998,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101998,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:101999,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102000,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102014,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102015,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102017,1
    - Dst: sqlite3HaltConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102022,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102026,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102035,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102049,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102050,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102051,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102062,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102070,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102071,1
    - Dst: sqlite3RowidConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102082,1
    - Dst: sqlite3TriggersExist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102110,1
    - Dst: sqlite3FkRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102112,1
    - Dst: sqlite3MultiWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102113,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102114,1
    - Dst: sqlite3MultiWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102117,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102118,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102125,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102129,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102131,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102132,1
    - Dst: sqlite3TableAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102151,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102155,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102159,1
    - Dst: sqlite3ExprIfFalseDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102161,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102169,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102180,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102181,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102183,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102184,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102185,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102192,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102199,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102200,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102210,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102211,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102214,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102216,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102217,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102221,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102222,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102223,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102231,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102232,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102233,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102245,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102247,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102250,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102256,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102259,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102260,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102261,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102268,1
    - Dst: sqlite3UniqueConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102274,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102278,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102283,1
    - Dst: sqlite3MultiWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102284,1
    - Dst: sqlite3TriggersExist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102286,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102288,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102294,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102295,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102296,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102299,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102300,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102304,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 248
    argCount: 11
    argNames:
    - pParse
    - pTab
    - aRegIdx
    - iDataCur
    - iIdxCur
    - regNewData
    - regOldData
    - pkChng
    - overrideError
    - ignoreDest
    - pbMayReplace
    argTypes:
    - Parse*
    - Table*
    - int*
    - int
    - int
    - int
    - int
    - u8
    - u8
    - int
    - int*
    assertStmts:
    - condition: "( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail\n
        \       || onError==OE_Ignore || onError==OE_Replace )"
      pos:
        line_end: 101975
        line_start: 101974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( onError==OE_Replace )
      pos:
        line_end: 102282
        line_start: 102282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 101939
        line_start: 101939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( onError==OE_Replace )
      pos:
        line_end: 101996
        line_start: 101996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail\n
        \       || onError==OE_Ignore || onError==OE_Replace )"
      pos:
        line_end: 102268
        line_start: 102267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 101938
        line_start: 101938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102305
      start: 101906
    functionDepth: 21
    functionLinenumber: 101906
    functionLinenumberEnd: 102305
    functionName: sqlite3GenerateConstraintChecks
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp0
    - sqlite3FkRequired
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3GenerateRowDelete
    - sqlite3ExprIfFalseDup
    - sqlite3VdbeAddOp4Int
    - IsPrimaryKeyIndex
    - VdbeCoverage
    - sqlite3ExprIfTrue
    - VdbeModuleComment
    - VdbeComment
    - sqlite3TriggersExist
    - HasRowid
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - VdbeCoverageIf
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3MultiWrite
    - sqlite3ReleaseTempRange
    - sqlite3GenerateRowIndexDelete
    - sqlite3VdbeAddOp2
    - sqlite3PrimaryKeyIndex
    - sqlite3UniqueConstraint
    - sqlite3LocateCollSeq
    - sqlite3VdbeResolveLabel
    - sqlite3MayAbort
    - sqlite3MPrintf
    - sqlite3RowidConstraint
    - sqlite3TableAffinity
    - sqlite3HaltConstraint
    - sqlite3VdbeMakeLabel
    - sqlite3GetVdbe
    - sqlite3ExprCode
    - sqlite3ColumnOfIndex
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateConstraintChecks(\n  Parse *pParse,
      \      /* The parser context */\n  Table *pTab,         /* The table being inserted
      or updated */\n  int *aRegIdx,        /* Use register aRegIdx[i] for index i.
      \ 0 for unused */\n  int iDataCur,        /* Canonical data cursor (main table
      or PK index) */\n  int iIdxCur,         /* First index cursor */\n  int regNewData,
      \     /* First register in a range holding values to insert */\n  int regOldData,
      \     /* Previous content.  0 for INSERTs */\n  u8 pkChng,           /* Non-zero
      if the rowid or PRIMARY KEY changed */\n  u8 overrideError,    /* Override onError
      to this if not OE_Default */\n  int ignoreDest,      /* Jump to this label on
      an OE_Ignore resolution */\n  int *pbMayReplace    /* OUT: Set to true if constraint
      may cause a replace */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102337,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102342,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102342,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102343,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102345,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102348,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102348,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102349,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102352,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102354,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102356,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102357,1
    - Dst: sqlite3TableAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102358,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102359,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102372,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102374,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102376,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 9
    argNames:
    - pParse
    - pTab
    - iDataCur
    - iIdxCur
    - regNewData
    - aRegIdx
    - isUpdate
    - appendBias
    - useSeekResult
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int
    - int*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pParse->nested==0 )
      pos:
        line_end: 102348
        line_start: 102348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 102335
        line_start: 102335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 102336
        line_start: 102336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102377
      start: 102316
    functionDepth: 13
    functionLinenumber: 102316
    functionLinenumberEnd: 102377
    functionName: sqlite3CompleteInsertion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeChangeP4
    - IsPrimaryKeyIndex
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3TableAffinity
    - VdbeCoverage
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp3
    - HasRowid
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CompleteInsertion(\n  Parse *pParse,      /*
      The parser context */\n  Table *pTab,        /* the table into which we are
      inserting */\n  int iDataCur,       /* Cursor of the canonical data source */\n
      \ int iIdxCur,        /* First index cursor */\n  int regNewData,     /* Range
      of content */\n  int *aRegIdx,       /* Register used by each index.  0 for
      unused indices */\n  int isUpdate,       /* True for UPDATE, False for INSERT
      */\n  int appendBias,     /* True if this is likely to be an append */\n  int
      useSeekResult   /* True to set the USESEEKRESULT flag on OP_[Idx]Insert */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102415,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102416,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102422,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102423,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102424,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102428,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102429,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102436,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102437,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102437,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102441,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102442,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102443,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - pParse
    - pTab
    - op
    - iBase
    - aToOpen
    - piDataCur
    - piIdxCur
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - u8*
    - int*
    - int*
    assertStmts:
    - condition: ( op==OP_OpenRead || op==OP_OpenWrite )
      pos:
        line_end: 102414
        line_start: 102414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 102423
        line_start: 102423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 102435
        line_start: 102435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102448
      start: 102400
    functionDepth: 14
    functionLinenumber: 102400
    functionLinenumberEnd: 102448
    functionName: sqlite3OpenTableAndIndices
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SchemaToIndex
    - IsPrimaryKeyIndex
    - assert
    - IsVirtual
    - sqlite3OpenTable
    - sqlite3TableLock
    - sqlite3VdbeAddOp3
    - VdbeComment
    - HasRowid
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OpenTableAndIndices(\n  Parse *pParse,   /*
      Parsing context */\n  Table *pTab,     /* Table to be opened */\n  int op,          /*
      OP_OpenRead or OP_OpenWrite */\n  int iBase,       /* Use this for the table
      cursor, if there is one */\n  u8 *aToOpen,     /* If not NULL: boolean for each
      table and index */\n  int *piDataCur,  /* Write the database source cursor number
      here */\n  int *piIdxCur    /* Write the first index cursor number here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - z1
    - z2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102474
      start: 102466
    functionDepth: 0
    functionLinenumber: 102466
    functionLinenumberEnd: 102474
    functionName: xferCompatibleCollation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int xferCompatibleCollation(const char *z1, const char *z2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102490,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102491,1
    - Dst: xferCompatibleCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102505,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - Index*
    - Index*
    assertStmts:
    - condition: ( pDest && pSrc )
      pos:
        line_end: 102489
        line_start: 102489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDest->pTable!=pSrc->pTable )
      pos:
        line_end: 102490
        line_start: 102490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102515
      start: 102488
    functionDepth: 2
    functionLinenumber: 102488
    functionLinenumberEnd: 102515
    functionName: xferCompatibleIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xferCompatibleCollation
    - sqlite3ExprCompare
    - assert
    linkageType: ''
    returnType: int
    signature: int xferCompatibleIndex(Index *pDest, Index *pSrc)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TriggerList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102574,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102586,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102607,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102619,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102629,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102636,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102636,1
    - Dst: xferCompatibleCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102659,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102668,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102674,1
    - Dst: xferCompatibleIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102678,1
    - Dst: sqlite3ExprListCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102685,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102712,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102713,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102714,1
    - Dst: autoIncBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102717,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102718,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102719,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102720,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102721,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102721,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102744,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102744,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102745,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102746,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102748,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102749,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102750,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102750,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102752,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102753,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102754,1
    - Dst: sqlite3RowidConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102755,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102756,1
    - Dst: autoIncStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102757,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102759,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102762,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102764,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102765,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102766,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102767,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102768,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102768,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102769,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102770,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102772,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102773,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102777,1
    - Dst: xferCompatibleIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102780,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102781,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102782,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102783,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102784,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102785,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102786,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102787,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102788,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102788,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102789,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102807,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102808,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102812,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102815,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102818,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102819,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102820,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102820,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102821,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102822,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102823,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102825,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102826,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102827,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102829,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102830,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102831,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 209
    argCount: 5
    argNames:
    - pParse
    - pDest
    - pSelect
    - onError
    - iDbDest
    argTypes:
    - Parse*
    - Table*
    - Select*
    - int
    - int
    assertStmts:
    - condition: (pSelect->pSrc)
      pos:
        line_end: 102585
        line_start: 102585
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pDest->tabFlags & TF_Autoincrement)==0 )
      pos:
        line_end: 102761
        line_start: 102761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zColl!=0 )
      pos:
        line_end: 102806
        line_start: 102806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 102614
        line_start: 102614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEList->a[0].pExpr )
      pos:
        line_end: 102618
        line_start: 102618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( HasRowid(pDest) || destHasUniqueIdx )
      pos:
        line_end: 102720
        line_start: 102720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSelect->pOffset==0 )
      pos:
        line_end: 102606
        line_start: 102606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrcIdx )
      pos:
        line_end: 102779
        line_start: 102779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102836
      start: 102542
    functionDepth: 14
    functionLinenumber: 102542
    functionLinenumberEnd: 102836
    functionName: xferOptimization
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TableLock
    - xferCompatibleCollation
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3ExprListCompare
    - sqlite3VdbeSetP4KeyInfo
    - IsUniqueIndex
    - sqlite3SchemaToIndex
    - autoIncStep
    - sqlite3CodeVerifySchema
    - sqlite3OpenTable
    - sqlite3TriggerList
    - VdbeCoverage
    - VdbeComment
    - HasRowid
    - sqlite3_stricmp
    - assert
    - sqlite3VdbeJumpHere
    - ALWAYS
    - sqlite3LocateTableItem
    - sqlite3GetTempReg
    - strcmp
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP4
    - autoIncBegin
    - xferCompatibleIndex
    - sqlite3RowidConstraint
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: int
    signature: "int xferOptimization(\n  Parse *pParse,        /* Parser context */\n
      \ Table *pDest,         /* The table we are inserting into */\n  Select *pSelect,
      \     /* A SELECT statement to use as the data source */\n  int onError,          /*
      How to handle constraint errors */\n  int iDbDest           /* The database
      of pDest */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102883,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102886,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102887,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102893,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102894,1
    - Dst: sqlite3_column_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102905,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102909,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102916,1
    - Dst: sqlite3_column_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102921,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102924,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102931,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102932,1
    - Dst: xCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102938,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102943,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102945,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102951,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102954,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102959,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102964,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102965,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102967,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102969,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102969,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102970,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102972,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102972,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102981,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:102982,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 88
    argCount: 5
    argNames:
    - db
    - zSql
    - xCallback
    - pArg
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_callback
    - void*
    - char**
    assertStmts:
    - condition: ( (rc&db->errMask)==rc )
      pos:
        line_end: 102980
        line_start: 102980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pStmt==0 )
      pos:
        line_end: 102893
        line_start: 102893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( azCols[i]!=0 )
      pos:
        line_end: 102923
        line_start: 102923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102984
      start: 102870
    functionDepth: 26
    functionLinenumber: 102870
    functionLinenumberEnd: 102984
    functionName: sqlite3_exec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Malloc
    - sqlite3Error
    - sqlite3Strlen30
    - sqlite3DbFree
    - sqlite3_column_count
    - sqlite3SafetyCheckOk
    - sqlite3_column_text
    - memcpy
    - sqlite3_prepare_v2
    - sqlite3Isspace
    - sqlite3_mutex_leave
    - sqlite3_errmsg
    - sqlite3_column_type
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3_step
    - sqlite3_column_name
    - sqlite3VdbeFinalize
    - sqlite3DbMallocZero
    - xCallback
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_exec(\n  sqlite3 *db,                /* The database
      on which the SQL executes */\n  const char *zSql,           /* The SQL to be
      executed */\n  sqlite3_callback xCallback, /* Invoke this callback routine */\n
      \ void *pArg,                 /* First argument to xCallback() */\n  char **pzErrMsg
      \            /* Write error messages here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103524
      start: 103523
    functionDepth: 0
    functionLinenumber: 103523
    functionLinenumberEnd: 103524
    functionName: SQLITE_EXTENSION_INIT2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_EXTENSION_INIT2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103531
      start: 103530
    functionDepth: 0
    functionLinenumber: 103530
    functionLinenumberEnd: 103531
    functionName: SQLITE_EXTENSION_INIT2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_EXTENSION_INIT2(v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103956,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103981,1
    - Dst: sqlite3OsDlOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103988,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103990,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103991,1
    - Dst: sqlite3OsDlOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103993,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103994,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:103999,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104001,1
    - Dst: sqlite3OsDlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104003,1
    - Dst: sqlite3OsDlSym
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104009,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104024,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104025,1
    - Dst: sqlite3OsDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104027,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104030,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104033,1
    - Dst: sqlite3Isalpha
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104035,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104039,1
    - Dst: sqlite3OsDlSym
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104042,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104046,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104047,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104049,1
    - Dst: sqlite3OsDlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104051,1
    - Dst: sqlite3OsDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104054,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104055,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104058,1
    - Dst: xInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104059,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104061,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104063,1
    - Dst: sqlite3OsDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104064,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104069,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104074,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104076,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 4
    argNames:
    - db
    - zFile
    - zProc
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104081
      start: 103943
    functionDepth: 5
    functionLinenumber: 103943
    functionLinenumberEnd: 104081
    functionName: sqlite3LoadExtension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDlSym
    - sqlite3OsDlClose
    - sqlite3Isalpha
    - sqlite3_free
    - sqlite3OsDlOpen
    - sqlite3_strnicmp
    - sqlite3_malloc64
    - sqlite3_mprintf
    - sqlite3DbMallocZero
    - memcpy
    - ArraySize
    - sqlite3OsDlError
    - sqlite3Strlen30
    - xInit
    - sqlite3DbFree
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int sqlite3LoadExtension(\n  sqlite3 *db,          /* Load the extension
      into this database connection */\n  const char *zFile,    /* Name of the shared
      library containing extension */\n  const char *zProc,    /* Entry point.  Use
      \"sqlite3_extension_init\" if 0 */\n  char **pzErrMsg       /* Put error message
      here if not 0 */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104089,1
    - Dst: sqlite3LoadExtension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104090,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104091,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - zFile
    - zProc
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104094
      start: 104082
    functionDepth: 6
    functionLinenumber: 104082
    functionLinenumberEnd: 104094
    functionName: sqlite3_load_extension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3LoadExtension
    - sqlite3_mutex_leave
    - sqlite3ApiExit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_load_extension(\n  sqlite3 *db,          /* Load
      the extension into this database connection */\n  const char *zFile,    /* Name
      of the shared library containing extension */\n  const char *zProc,    /* Entry
      point.  Use \"sqlite3_extension_init\" if 0 */\n  char **pzErrMsg       /* Put
      error message here if not 0 */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104102,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104102,1
    - Dst: sqlite3OsDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104104,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 104101
        line_start: 104101
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104107
      start: 104100
    functionDepth: 5
    functionLinenumber: 104100
    functionLinenumberEnd: 104107
    functionName: sqlite3CloseExtensions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3OsDlClose
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CloseExtensions(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104114,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - onoff
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104122
      start: 104113
    functionDepth: 1
    functionLinenumber: 104113
    functionLinenumberEnd: 104122
    functionName: sqlite3_enable_load_extension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_enable_load_extension(sqlite3 *db, int onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104148
      start: 104145
    functionDepth: 0
    functionLinenumber: 104145
    functionLinenumberEnd: 104148
    functionName: sqlite3AutoExtList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3AutoExtList
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104173,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104181,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104184,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104191,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104200,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( (rc&0xff)==rc )
      pos:
        line_end: 104200
        line_start: 104200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104204
      start: 104170
    functionDepth: 1
    functionLinenumber: 104170
    functionLinenumberEnd: 104204
    functionName: sqlite3_auto_extension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - assert
    - sqlite3MutexAlloc
    - sqlite3_realloc64
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_auto_extension(void (*xInit)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104217,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104222,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104233
      start: 104215
    functionDepth: 1
    functionLinenumber: 104215
    functionLinenumberEnd: 104233
    functionName: sqlite3_cancel_auto_extension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_cancel_auto_extension(void (*xInit)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104240,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104244,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104247,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104248,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104253
      start: 104238
    functionDepth: 3
    functionLinenumber: 104238
    functionLinenumberEnd: 104253
    functionName: sqlite3_reset_auto_extension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3_mutex_enter
    - sqlite3_free
    - sqlite3MutexAlloc
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_reset_auto_extension(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104274,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104276,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104284,1
    - Dst: xInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104286,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104287,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104293
      start: 104260
    functionDepth: 8
    functionLinenumber: 104260
    functionLinenumberEnd: 104293
    functionName: sqlite3AutoLoadExtensions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_free
    - sqlite3MutexAlloc
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    - xInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoLoadExtensions(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104814,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104815,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104817,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104818,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - z
    - omitFull
    - dflt
    argTypes:
    - char*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104824
      start: 104807
    functionDepth: 3
    functionLinenumber: 104807
    functionLinenumberEnd: 104824
    functionName: getSafetyLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrNICmp
    - ArraySize
    - sqlite3Isdigit
    - sqlite3Strlen30
    - sqlite3Atoi
    linkageType: ''
    returnType: u8
    signature: u8 getSafetyLevel(const char *z, int omitFull, u8 dflt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSafetyLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - z
    - dflt
    argTypes:
    - char*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104831
      start: 104829
    functionDepth: 4
    functionLinenumber: 104829
    functionLinenumberEnd: 104831
    functionName: sqlite3GetBoolean
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - getSafetyLevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetBoolean(const char *z, u8 dflt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104844,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104848
      start: 104842
    functionDepth: 0
    functionLinenumber: 104842
    functionLinenumberEnd: 104848
    functionName: getLockingMode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getLockingMode(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104859,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104860,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104861,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104864
      start: 104857
    functionDepth: 3
    functionLinenumber: 104857
    functionLinenumberEnd: 104864
    functionName: getAutoVacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getAutoVacuum(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104876,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104878,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104883
      start: 104873
    functionDepth: 0
    functionLinenumber: 104873
    functionLinenumberEnd: 104883
    functionName: getTempStore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getTempStore(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104894,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104895,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104899,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104904
      start: 104891
    functionDepth: 9
    functionLinenumber: 104891
    functionLinenumberEnd: 104904
    functionName: invalidateTempStorage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3ErrorMsg
    - sqlite3BtreeIsInReadTrans
    - sqlite3BtreeClose
    linkageType: ''
    returnType: int
    signature: int invalidateTempStorage(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getTempStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104914,1
    - Dst: invalidateTempStorage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - zStorageType
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104922
      start: 104913
    functionDepth: 10
    functionLinenumber: 104913
    functionLinenumberEnd: 104922
    functionName: changeTempStorage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - getTempStore
    - invalidateTempStorage
    linkageType: ''
    returnType: int
    signature: int changeTempStorage(Parse *pParse, const char *zStorageType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104929,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104931,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104933,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104935,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104936,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104937,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - zLabel
    - value
    argTypes:
    - Parse*
    - char*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104939
      start: 104928
    functionDepth: 11
    functionLinenumber: 104928
    functionLinenumberEnd: 104939
    functionName: returnSingleInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSetNumCols
    - memcpy
    - sqlite3VdbeSetColName
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3DbMallocRaw
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void returnSingleInt(Parse *pParse, const char *zLabel, i64 value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104953,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104956,1
    - Dst: sqlite3BtreeSetPagerFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( SQLITE_FullFSync==PAGER_FULLFSYNC )
      pos:
        line_end: 104950
        line_start: 104950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_CacheSpill==PAGER_CACHESPILL )
      pos:
        line_end: 104952
        line_start: 104952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pDb->safety_level & PAGER_SYNCHRONOUS_MASK)==pDb->safety_level
        )
      pos:
        line_end: 104955
        line_start: 104955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (PAGER_FULLFSYNC | PAGER_CKPT_FULLFSYNC | PAGER_CACHESPILL)\n
        \            ==  PAGER_FLAGS_MASK )"
      pos:
        line_end: 104954
        line_start: 104953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_CkptFullFSync==PAGER_CKPT_FULLFSYNC )
      pos:
        line_end: 104951
        line_start: 104951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104965
      start: 104947
    functionDepth: 3
    functionLinenumber: 104947
    functionLinenumberEnd: 104965
    functionName: setAllPagerFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeSetPagerFlags
    - assert
    linkageType: ''
    returnType: void
    signature: void setAllPagerFlags(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:104983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - action
    argTypes:
    - u8
    assertStmts:
    - condition: ( action==OE_None )
      pos:
        line_end: 104982
        line_start: 104982
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104986
      start: 104975
    functionDepth: 0
    functionLinenumber: 104975
    functionLinenumberEnd: 104986
    functionName: actionName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *actionName(u8 action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105003,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105004,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105005,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105006,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105007,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105008,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105008,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - eMode
    argTypes:
    - int
    assertStmts:
    - condition: ( PAGER_JOURNALMODE_DELETE==0 )
      pos:
        line_end: 105001
        line_start: 105001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_PERSIST==1 )
      pos:
        line_end: 105002
        line_start: 105002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_MEMORY==4 )
      pos:
        line_end: 105005
        line_start: 105005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_TRUNCATE==3 )
      pos:
        line_end: 105004
        line_start: 105004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_OFF==2 )
      pos:
        line_end: 105003
        line_start: 105003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_WAL==5 )
      pos:
        line_end: 105006
        line_start: 105006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eMode>=0 && eMode<=ArraySize(azModeName) )
      pos:
        line_end: 105007
        line_start: 105007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105012
      start: 104995
    functionDepth: 1
    functionLinenumber: 104995
    functionLinenumberEnd: 105012
    functionName: sqlite3JournalModename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3JournalModename(int eMode)
  - BBCount: 181
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105046,1
    - Dst: sqlite3VdbeRunOnlyOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105050,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105055,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105062,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105066,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105069,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105071,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105074,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105076,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105100,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105104,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105105,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105106,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105107,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105108,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105114,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105115,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105124,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105127,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105140,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105164,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105177,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105179,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105180,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105182,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105182,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105183,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105184,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105185,1
    - Dst: sqlite3AbsInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105187,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105187,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105188,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105189,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105190,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105191,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105191,1
    - Dst: sqlite3BtreeSetCacheSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105211,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105213,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105213,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105214,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105219,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105238,1
    - Dst: sqlite3GetBoolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105240,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105245,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105248,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105249,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105272,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105274,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105275,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105277,1
    - Dst: sqlite3AbsInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105278,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105278,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105280,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105281,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105282,1
    - Dst: getLockingMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105292,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105312,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105314,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105315,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105319,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105320,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105323,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105328,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105329,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105330,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105331,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105344,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105345,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105353,1
    - Dst: sqlite3JournalModename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105354,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105355,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105370,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105371,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105374,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105385,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105388,1
    - Dst: sqlite3PagerJournalSizeLimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105391,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105392,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105408,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105410,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105410,1
    - Dst: getAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105413,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105420,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105427,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105437,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105437,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105438,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105439,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105440,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105441,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105442,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105443,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105458,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105461,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105462,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105463,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105463,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105464,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105465,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105466,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105466,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105467,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105485,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105485,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105487,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105488,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105490,1
    - Dst: sqlite3BtreeSetCacheSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105492,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105493,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105515,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105515,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105518,1
    - Dst: sqlite3BtreeSetMmapLimit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105523,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105528,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105534,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105555,1
    - Dst: changeTempStorage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105557,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105575,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105576,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105578,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105579,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105585,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105587,1
    - Dst: invalidateTempStorage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105595,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105597,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105599,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105625,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105626,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105628,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105629,1
    - Dst: sqlite3OsAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105635,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105637,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105641,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105643,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105664,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105666,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105667,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105671,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105672,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105674,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105675,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105678,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105679,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105682,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105685,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105689,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105708,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105711,1
    - Dst: getSafetyLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105714,1
    - Dst: setAllPagerFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105717,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105727,1
    - Dst: sqlite3GetBoolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105742,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105753,1
    - Dst: setAllPagerFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105754,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105775,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105780,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105781,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105783,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105784,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105785,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105786,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105787,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105788,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105789,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105790,1
    - Dst: IsHiddenColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105792,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105796,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105797,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105798,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105800,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105802,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105804,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105813,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105814,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105823,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105824,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105826,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105827,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105828,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105829,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105830,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105831,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105831,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105832,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105833,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105834,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105835,1
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105836,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105837,1
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105838,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105839,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105841,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105842,1
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105843,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105844,1
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105845,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105846,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105855,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105869,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105870,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105871,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105872,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105873,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105875,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105876,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105877,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105881,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105882,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105884,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105886,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105889,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105890,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105891,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105893,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105903,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105905,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105906,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105908,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105909,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105910,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105911,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105912,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105913,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105916,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105917,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105918,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105918,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105919,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105920,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105921,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105929,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105931,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105932,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105933,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105936,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105937,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105938,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105939,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105940,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105941,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105949,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105951,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105952,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105953,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105953,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105954,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105955,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105956,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105957,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105967,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105969,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105973,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105975,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105976,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105977,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105978,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105979,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105980,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105981,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105982,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105983,1
    - Dst: actionName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105988,1
    - Dst: actionName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105989,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105990,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105991,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105992,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105993,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105995,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105996,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105997,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105998,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:105999,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106032,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106033,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106034,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106035,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106036,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106037,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106038,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106039,1
    - Dst: sqlite3LocateTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106042,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106045,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106046,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106049,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106051,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106052,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106055,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106058,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106059,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106062,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106064,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106065,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106072,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106075,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106075,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106077,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106081,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106082,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106084,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106087,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106089,1
    - Dst: sqlite3ColumnDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106090,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106091,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106091,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106092,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106093,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106093,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106095,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106097,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106097,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106098,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106099,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106099,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106102,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106104,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106104,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106107,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106108,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106109,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106110,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106113,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106114,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106116,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106117,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106118,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106119,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106121,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106121,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106122,1
    - Dst: sqlite3GetBoolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106132,1
    - Dst: sqlite3ParserTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106133,1
    - Dst: sqlite3ParserTrace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106135,1
    - Dst: sqlite3RegisterLikeFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106147,1
    - Dst: sqlite3GetBoolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106147,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106168,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106175,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106187,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106192,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106193,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106198,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106203,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106214,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106215,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106216,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106217,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106225,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106225,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106227,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106227,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106228,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106230,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106231,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106232,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106236,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106237,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106243,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106246,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106247,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106248,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106248,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106249,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106250,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106252,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106253,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106254,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106255,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106259,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106259,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106260,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106268,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106268,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106269,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106270,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106271,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106272,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106273,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106274,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106276,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106278,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106280,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106281,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106281,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106282,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106289,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106290,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106291,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106291,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106292,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106293,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106295,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106296,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106297,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106297,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106298,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106299,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106300,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106305,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106307,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106310,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106312,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106313,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106314,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106315,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106316,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106317,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106319,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106320,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106322,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106323,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106324,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106324,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106325,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106326,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106330,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106336,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106338,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106339,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106341,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106341,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106342,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106343,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106344,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106345,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106346,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106347,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106349,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106350,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106352,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106353,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106355,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106355,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106356,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106358,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106362,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106363,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106363,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106364,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106365,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106366,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106366,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106367,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106368,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106369,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106370,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106371,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106376,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106376,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106377,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106378,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106379,1
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106424,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106425,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106426,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106427,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106428,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106430,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106431,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106431,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106432,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106440,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106441,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106444,1
    - Dst: SCHEMA_ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106445,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106445,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106451,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106492,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106500,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106500,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106501,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106502,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106502,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106503,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106504,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106512,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106512,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106513,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106514,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106515,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106516,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106517,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106533,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106535,1
    - Dst: sqlite3_compileoption_get
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106536,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106537,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106538,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106554,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106556,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106558,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106562,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106564,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106565,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106566,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106568,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106569,1
    - Dst: sqlite3_wal_autocheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106583,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106583,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106585,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106587,1
    - Dst: sqlite3_db_release_memory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106600,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106614,1
    - Dst: sqlite3_busy_timeout
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106616,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106616,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106618,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106635,1
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106636,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106638,1
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106638,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106652,1
    - Dst: sqlite3_limit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106655,1
    - Dst: returnSingleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106657,1
    - Dst: sqlite3_limit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106658,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106671,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106673,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106674,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106680,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106682,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106684,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106688,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106689,1
    - Dst: sqlite3_key_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106697,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106697,1
    - Dst: sqlite3_rekey_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106701,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106701,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106709,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106710,1
    - Dst: sqlite3_key_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106714,1
    - Dst: sqlite3_rekey_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106716,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106725,1
    - Dst: sqlite3_activate_see
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106726,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106730,1
    - Dst: sqlite3_activate_cerod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106731,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106741,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106742,1
    CyclomaticComplexity: 283
    EdgeCount: 283
    ICount: 1041
    argCount: 5
    argNames:
    - pParse
    - pId1
    - pId2
    - pValue
    - minusFlag
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - int
    assertStmts:
    - condition: ( iDb==0 || pId2->z )
      pos:
        line_end: 106186
        line_start: 106186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( x==0 )
      pos:
        line_end: 106081
        line_start: 106081
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( encnames[SQLITE_UTF8].enc==SQLITE_UTF8 )
      pos:
        line_end: 106427
        line_start: 106427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 105514
        line_start: 105514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 105484
        line_start: 105484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pDb==&db->aDb[0])
      pos:
        line_end: 105311
        line_start: 105311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 105407
        line_start: 105407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->nErr>0 || pFK==0 )
      pos:
        line_end: 106071
        line_start: 106071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol>=0 && iCol<pTab->nCol )
      pos:
        line_end: 106335
        line_start: 106335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( eMode==PAGER_LOCKINGMODE_NORMAL\n            || eMode==PAGER_LOCKINGMODE_EXCLUSIVE
        )"
      pos:
        line_end: 105323
        line_start: 105322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eAuto>=0 && eAuto<=2 )
      pos:
        line_end: 105412
        line_start: 105412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( encnames[SQLITE_UTF16BE].enc==SQLITE_UTF16BE )
      pos:
        line_end: 106429
        line_start: 106429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb[i].zName!=0 )
      pos:
        line_end: 105935
        line_start: 105935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 105237
        line_start: 105237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pId2 )
      pos:
        line_end: 105073
        line_start: 105073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, i, 0) )
      pos:
        line_end: 106224
        line_start: 106224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPragma->ePragTyp==PragTyp_BUSY_TIMEOUT )
      pos:
        line_end: 106613
        line_start: 106613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iKey>=0 && iKey<pTab->nCol )
      pos:
        line_end: 106086
        line_start: 106086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 106185
        line_start: 106185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 105190
        line_start: 105190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( encnames[SQLITE_UTF16LE].enc==SQLITE_UTF16LE )
      pos:
        line_end: 106428
        line_start: 106428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 105210
        line_start: 105210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106743
      start: 105029
    functionDepth: 22
    functionLinenumber: 105029
    functionLinenumberEnd: 106743
    functionName: sqlite3Pragma
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file_control
    - sqlite3TableLock
    - sqlite3ErrorMsg
    - sqlite3ParserTrace
    - sqlite3VdbeAddOp4Int
    - sqlite3CodeVerifySchema
    - returnSingleInt
    - sqlite3LogEstToInt
    - HasRowid
    - sqlite3ReadSchema
    - sqlite3VdbeCurrentAddr
    - sqlite3Isxdigit
    - sqlite3_db_release_memory
    - ALWAYS
    - sqlite3_limit
    - sqlite3OpenTempDatabase
    - sqlite3NameFromToken
    - sqlite3MPrintf
    - sqlite3ViewGetColumnNames
    - sqlite3_mprintf
    - sqlite3VdbeChangeP3
    - sqlite3_activate_cerod
    - sqlite3GetVdbe
    - IsHiddenColumn
    - VDBE_OFFSET_LINENO
    - MAX
    - sqlite3_soft_heap_limit64
    - getAutoVacuum
    - sqlite3RegisterLikeFunctions
    - invalidateTempStorage
    - sqlite3PagerJournalSizeLimit
    - sqlite3_key_v2
    - VdbeComment
    - sqlite3_stricmp
    - assert
    - sqlite3JournalModename
    - sqlite3FindIndex
    - sqlite3ColumnDefault
    - sqlite3VdbeAddOp2
    - sqlite3BtreeGetAutoVacuum
    - sqlite3BtreeGetFilename
    - sqlite3OsFileControlHint
    - SQLITE_PTR_TO_INT
    - sqlite3PagerLockingMode
    - sqlite3VdbeResolveLabel
    - sqliteHashFirst
    - sqlite3_rekey_v2
    - sqlite3BtreeSetCacheSize
    - DbHasProperty
    - sqlite3OsAccess
    - sqlite3BtreePager
    - sqlite3DecOrHexToI64
    - sqlite3ResolvePartIdxLabel
    - sqlite3TwoPartName
    - sqlite3OpenTableAndIndices
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqliteHashData
    - sqlite3VdbeSetColName
    - sqlite3VdbeSetP4KeyInfo
    - actionName
    - sqlite3IndexAffinityStr
    - sqlite3DbFree
    - sqlite3VdbeAddOpList
    - sqlite3VdbeRunOnlyOnce
    - setAllPagerFlags
    - sqlite3OpenTable
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeChangeP1
    - sqlite3BtreeSetMmapLimit
    - sqlite3_compileoption_get
    - sqliteHashNext
    - sqlite3StrNICmp
    - sqlite3AuthCheck
    - sqlite3BtreeSetPageSize
    - sqlite3PagerFile
    - sqlite3VdbeChangeP2
    - sqlite3BtreeSetAutoVacuum
    - sqlite3OsFileControl
    - sqlite3BtreeSecureDelete
    - changeTempStorage
    - sqlite3VdbeAddOp0
    - ENC
    - sqlite3Strlen30
    - IsUniqueIndex
    - sqlite3FkLocateIndex
    - sqlite3HexToInt
    - sqlite3GetInt32
    - sqlite3_free
    - sqlite3StrICmp
    - sqlite3Tolower
    - sqlite3AbsInt32
    - VdbeCoverage
    - sqlite3FindTable
    - getSafetyLevel
    - SCHEMA_ENC
    - getLockingMode
    - sqlite3BeginWriteOperation
    - sqlite3VdbeJumpHere
    - sqlite3BtreeGetPageSize
    - sqlite3_wal_autocheckpoint
    - sqlite3GenerateIndexKey
    - sqlite3Atoi
    - sqlite3PrimaryKeyIndex
    - sqlite3LocateTable
    - sqlite3VdbeChangeP4
    - sqlite3VdbeSetNumCols
    - ArraySize
    - sqlite3GetBoolean
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeMakeLabel
    - sqlite3_activate_see
    - sqlite3_busy_timeout
    - sqlite3ExprCacheClear
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Pragma(\n  Parse *pParse, \n  Token *pId1,        /*
      First part of [database.]id field */\n  Token *pId2,        /* Second part of
      [database.]id field, or NULL */\n  Token *pValue,      /* Token for <value>,
      or NULL */\n  int minusFlag       /* True if a '-' sign preceded <value> */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106779,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106780,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - pData
    - zObj
    - zExtra
    argTypes:
    - InitData*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106786
      start: 106770
    functionDepth: 5
    functionLinenumber: 106770
    functionLinenumberEnd: 106786
    functionName: corruptSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: "void corruptSchema(\n  InitData *pData,     /* Initialization context
      */\n  const char *zObj,    /* Object being parsed at the point of error */\n
      \ const char *zExtra   /* Error information */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106805,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106806,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106807,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106807,1
    - Dst: DbClearProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106808,1
    - Dst: corruptSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106814,1
    - Dst: corruptSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106817,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106818,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106828,1
    - Dst: sqlite3Atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106830,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106832,1
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106834,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106838,1
    - Dst: corruptSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106844,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106844,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106848,1
    - Dst: corruptSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106850,1
    - Dst: sqlite3FindIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106859,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106867,1
    - Dst: corruptSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:106868,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - pInit
    - argc
    - argv
    - NotUsed
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( iDb==1 )
      pos:
        line_end: 106837
        line_start: 106837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->init.busy )
      pos:
        line_end: 106827
        line_start: 106827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (rc&0xFF)==(rcp&0xFF) )
      pos:
        line_end: 106833
        line_start: 106833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 106806
        line_start: 106806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( argc==3 )
      pos:
        line_end: 106804
        line_start: 106804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 106813
        line_start: 106813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106872
      start: 106800
    functionDepth: 25
    functionLinenumber: 106800
    functionLinenumberEnd: 106872
    functionName: sqlite3InitCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_errmsg
    - sqlite3_finalize
    - sqlite3_prepare
    - sqlite3GetInt32
    - assert
    - DbClearProperty
    - sqlite3_strnicmp
    - UNUSED_PARAMETER2
    - TESTONLY
    - sqlite3FindIndex
    - sqlite3Atoi
    - corruptSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3InitCallback(void *pInit, int argc, char **argv,
      char **NotUsed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107144,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107145,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107145,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107146,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107149,1
    - Dst: SCHEMA_ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107149,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107151,1
    - Dst: sqlite3InitOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107152,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107154,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107163,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107164,1
    - Dst: sqlite3InitOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107165,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107167,1
    - Dst: sqlite3CommitInternalChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - db
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char**
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107143
        line_start: 107143
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(db->aDb[0].pBt) )
      pos:
        line_end: 107144
        line_start: 107144
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 107145
        line_start: 107145
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->nDb>1 )
      pos:
        line_end: 107162
        line_start: 107162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107178
      start: 107140
    functionDepth: 2
    functionLinenumber: 107140
    functionLinenumberEnd: 107178
    functionName: sqlite3Init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3CommitInternalChanges
    - ENC
    - sqlite3InitOne
    - sqlite3BtreeHoldsMutex
    - SCHEMA_ENC
    - DbHasProperty
    - sqlite3ResetOneSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Init(sqlite3 *db, char **pzErrMsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107187,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107187,1
    - Dst: sqlite3Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107186
        line_start: 107186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107196
      start: 107184
    functionDepth: 3
    functionLinenumber: 107184
    functionLinenumberEnd: 107196
    functionName: sqlite3ReadSchema
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 8
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3Init
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReadSchema(Parse *pParse)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107210,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107211,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107211,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107220,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107221,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107232,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107233,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107233,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107235,1
    - Dst: sqlite3BtreeCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->checkSchema )
      pos:
        line_end: 107209
        line_start: 107209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107210
        line_start: 107210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 107232
        line_start: 107232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107244
      start: 107204
    functionDepth: 21
    functionLinenumber: 107204
    functionLinenumberEnd: 107244
    functionName: schemaIsValid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3BtreeIsInReadTrans
    - assert
    - sqlite3BtreeBeginTrans
    - sqlite3SchemaMutexHeld
    - sqlite3BtreeGetMeta
    - sqlite3BtreeCommit
    - sqlite3ResetOneSchema
    linkageType: ''
    returnType: void
    signature: void schemaIsValid(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107266,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107266,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pSchema
    argTypes:
    - sqlite3*
    - Schema*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107265
        line_start: 107265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=0 && i<db->nDb )
      pos:
        line_end: 107272
        line_start: 107272
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107276
      start: 107253
    functionDepth: 1
    functionLinenumber: 107253
    functionLinenumberEnd: 107276
    functionName: sqlite3SchemaToIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 25
    functionsReached:
    - sqlite3_mutex_held
    - ALWAYS
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107284,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107287
      start: 107281
    functionDepth: 7
    functionLinenumber: 107281
    functionLinenumberEnd: 107287
    functionName: sqlite3ParserReset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserReset(Parse *pParse)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StackAllocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107307,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107314,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107315,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107343,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107343,1
    - Dst: sqlite3BtreeSchemaLocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107344,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107347,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107348,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107354,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107361,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107362,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107364,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107365,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107368,1
    - Dst: sqlite3RunParser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107370,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107371,1
    - Dst: sqlite3RunParser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107377,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107379,1
    - Dst: schemaIsValid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107386,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107404,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107408,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107413,1
    - Dst: sqlite3VdbeSetSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107421,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107425,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107431,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107432,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107434,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107441,1
    - Dst: sqlite3ParserReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107446,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107447,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107448,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107449,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 7
    argNames:
    - db
    - zSql
    - nBytes
    - saveSqlFlag
    - pReprepare
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - Vdbe*
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107314
        line_start: 107314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ppStmt && *ppStmt==0 )
      pos:
        line_end: 107312
        line_start: 107312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (!(*ppStmt))
      pos:
        line_end: 107424
        line_start: 107424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (rc&db->errMask)==rc )
      pos:
        line_end: 107448
        line_start: 107448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 107313
        line_start: 107313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==pParse->nQueryLoop )
      pos:
        line_end: 107378
        line_start: 107378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(pBt) )
      pos:
        line_end: 107342
        line_start: 107342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107451
      start: 107292
    functionDepth: 24
    functionLinenumber: 107292
    functionLinenumberEnd: 107451
    functionName: sqlite3Prepare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Error
    - sqlite3RunParser
    - sqlite3VdbeSetColName
    - sqlite3VdbeSetSql
    - sqlite3DbFree
    - sqlite3_mutex_held
    - sqlite3BtreeSchemaLocked
    - sqlite3ParserReset
    - sqlite3VtabUnlockList
    - sqlite3ApiExit
    - sqlite3StackFree
    - assert
    - sqlite3ErrorWithMsg
    - sqlite3BtreeHoldsMutex
    - testcase
    - sqlite3VdbeFinalize
    - sqlite3VdbeSetNumCols
    - schemaIsValid
    - sqlite3StackAllocZero
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: int
    signature: "int sqlite3Prepare(\n  sqlite3 *db,              /* Database handle.
      */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n  int nBytes,
      \              /* Length of zSql in bytes. */\n  int saveSqlFlag,          /*
      True to copy SQL text into the sqlite3_stmt */\n  Vdbe *pReprepare,         /*
      VM being reprepared */\n  sqlite3_stmt **ppStmt,    /* OUT: A pointer to the
      prepared statement */\n  const char **pzTail       /* OUT: End of parsed string
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107467,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107470,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107471,1
    - Dst: sqlite3Prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107472,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107474,1
    - Dst: sqlite3Prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107475,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107477,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107478,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - db
    - zSql
    - nBytes
    - saveSqlFlag
    - pOld
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - Vdbe*
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || *ppStmt==0 )
      pos:
        line_end: 107478
        line_start: 107478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107481
      start: 107452
    functionDepth: 25
    functionLinenumber: 107452
    functionLinenumberEnd: 107481
    functionName: sqlite3LockAndPrepare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_mutex_enter
    - assert
    - sqlite3SafetyCheckOk
    - sqlite3Prepare
    - sqlite3_mutex_leave
    - sqlite3BtreeLeaveAll
    - sqlite3BtreeEnterAll
    linkageType: ''
    returnType: int
    signature: "int sqlite3LockAndPrepare(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  int saveSqlFlag,
      \         /* True to copy SQL text into the sqlite3_stmt */\n  Vdbe *pOld,               /*
      VM being reprepared */\n  sqlite3_stmt **ppStmt,    /* OUT: A pointer to the
      prepared statement */\n  const char **pzTail       /* OUT: End of parsed string
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107497,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107497,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107497,1
    - Dst: sqlite3_sql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107498,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107499,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107500,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107501,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107501,1
    - Dst: sqlite3LockAndPrepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107502,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107507,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107510,1
    - Dst: sqlite3VdbeSwap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107512,1
    - Dst: sqlite3TransferBindings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107513,1
    - Dst: sqlite3VdbeResetStepResult
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107514,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( sqlite3_mutex_held(sqlite3VdbeDb(p)->mutex) )
      pos:
        line_end: 107496
        line_start: 107496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zSql!=0 )
      pos:
        line_end: 107498
        line_start: 107498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 107500
        line_start: 107500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew==0 )
      pos:
        line_end: 107506
        line_start: 107506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew!=0 )
      pos:
        line_end: 107509
        line_start: 107509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107517
      start: 107491
    functionDepth: 26
    functionLinenumber: 107491
    functionLinenumberEnd: 107517
    functionName: sqlite3Reprepare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3VdbeResetStepResult
    - assert
    - sqlite3VdbeFinalize
    - sqlite3VdbeDb
    - sqlite3_sql
    - sqlite3TransferBindings
    - sqlite3LockAndPrepare
    - sqlite3VdbeSwap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Reprepare(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LockAndPrepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107536,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 107536
        line_start: 107536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107539
      start: 107528
    functionDepth: 26
    functionLinenumber: 107528
    functionLinenumberEnd: 107539
    functionName: sqlite3_prepare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3LockAndPrepare
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const char **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LockAndPrepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107548,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 107548
        line_start: 107548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107551
      start: 107540
    functionDepth: 26
    functionLinenumber: 107540
    functionLinenumberEnd: 107551
    functionName: sqlite3_prepare_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3LockAndPrepare
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare_v2(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const char **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107578,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107587,1
    - Dst: sqlite3Utf16to8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107588,1
    - Dst: sqlite3LockAndPrepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107590,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107599,1
    - Dst: sqlite3Utf16ByteLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107600,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107602,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107603,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107604,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - db
    - zSql
    - nBytes
    - saveSqlFlag
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    - sqlite3_stmt**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107606
      start: 107558
    functionDepth: 26
    functionLinenumber: 107558
    functionLinenumberEnd: 107606
    functionName: sqlite3Prepare16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Utf16to8
    - sqlite3ApiExit
    - sqlite3Utf8CharLen
    - sqlite3SafetyCheckOk
    - sqlite3Utf16ByteLen
    - sqlite3LockAndPrepare
    - sqlite3_mutex_leave
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: "int sqlite3Prepare16(\n  sqlite3 *db,              /* Database handle.
      */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n  int
      nBytes,               /* Length of zSql in bytes. */\n  int saveSqlFlag,          /*
      True to save SQL text into the sqlite3_stmt */\n  sqlite3_stmt **ppStmt,    /*
      OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Prepare16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107624,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - sqlite3_stmt**
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 107624
        line_start: 107624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107627
      start: 107616
    functionDepth: 27
    functionLinenumber: 107616
    functionLinenumberEnd: 107627
    functionName: sqlite3_prepare16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Prepare16
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare16(\n  sqlite3 *db,              /* Database
      handle. */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Prepare16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107636,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - sqlite3_stmt**
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 107636
        line_start: 107636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107639
      start: 107628
    functionDepth: 27
    functionLinenumber: 107628
    functionLinenumberEnd: 107639
    functionName: sqlite3_prepare16_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Prepare16
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare16_v2(\n  sqlite3 *db,              /* Database
      handle. */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - K
    - ','
    - P
    - ','
    - S
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107671
      start: 107666
    functionDepth: 0
    functionLinenumber: 107666
    functionLinenumberEnd: 107671
    functionName: SELECTTRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECTTRACE(K,P,S,X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107712,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107713,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107714,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107715,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107716,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107717,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107718,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107719,1
    - Dst: sqlite3WithDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107720,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - db
    - p
    - bFree
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107725
      start: 107709
    functionDepth: 8
    functionLinenumber: 107709
    functionLinenumberEnd: 107725
    functionName: clearSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SrcListDelete
    - sqlite3WithDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: void clearSelect(sqlite3 *db, Select *p, int bFree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pDest
    - eDest
    - iParm
    argTypes:
    - SelectDest*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107736
      start: 107730
    functionDepth: 0
    functionLinenumber: 107730
    functionLinenumberEnd: 107736
    functionName: sqlite3SelectDestInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectDestInit(SelectDest *pDest, int eDest,
      int iParm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107758,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107760,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107762,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107765,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107765,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107778,1
    - Dst: clearSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107785,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 10
    argNames:
    - pParse
    - pEList
    - pSrc
    - pWhere
    - pGroupBy
    - pHaving
    - pOrderBy
    - selFlags
    - pLimit
    - pOffset
    argTypes:
    - Parse*
    - ExprList*
    - SrcList*
    - Expr*
    - ExprList*
    - Expr*
    - ExprList*
    - u16
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( db->mallocFailed )
      pos:
        line_end: 107759
        line_start: 107759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOffset==0 || pLimit!=0 || pParse->nErr>0 || db->mallocFailed!=0
        )
      pos:
        line_end: 107777
        line_start: 107777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->pSrc!=0 || pParse->nErr>0 )
      pos:
        line_end: 107784
        line_start: 107784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew!=&standin )
      pos:
        line_end: 107786
        line_start: 107786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107789
      start: 107743
    functionDepth: 9
    functionLinenumber: 107743
    functionLinenumberEnd: 107789
    functionName: sqlite3SelectNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - memset
    - sqlite3ExprListAppend
    - assert
    - sqlite3Expr
    - sqlite3DbMallocZero
    - clearSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SelectNew(\n  Parse *pParse,        /* Parsing
      context */\n  ExprList *pEList,     /* which columns to include in the result
      */\n  SrcList *pSrc,        /* the FROM clause -- which tables to scan */\n
      \ Expr *pWhere,         /* the WHERE clause */\n  ExprList *pGroupBy,   /* the
      GROUP BY clause */\n  Expr *pHaving,        /* the HAVING clause */\n  ExprList
      *pOrderBy,   /* the ORDER BY clause */\n  u16 selFlags,         /* Flag parameters,
      such as SF_Distinct */\n  Expr *pLimit,         /* LIMIT value.  NULL means
      not used */\n  Expr *pOffset         /* OFFSET value.  NULL means no offset
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - Select*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107799
      start: 107795
    functionDepth: 0
    functionLinenumber: 107795
    functionLinenumberEnd: 107799
    functionName: sqlite3SelectSetName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectSetName(Select *p, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clearSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107808
      start: 107806
    functionDepth: 9
    functionLinenumber: 107806
    functionLinenumberEnd: 107808
    functionName: sqlite3SelectDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 13
    functionsReached:
    - clearSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectDelete(sqlite3 *db, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107816
      start: 107813
    functionDepth: 0
    functionLinenumber: 107813
    functionLinenumberEnd: 107816
    functionName: findRightmost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Select
    signature: Select *findRightmost(Select *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107860,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107862,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107867,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107868,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107878,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107880,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107885,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 4
    argNames:
    - pParse
    - pA
    - pB
    - pC
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pB!=0 )
      pos:
        line_end: 107877
        line_start: 107877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107890
      start: 107835
    functionDepth: 8
    functionLinenumber: 107835
    functionLinenumberEnd: 107890
    functionName: sqlite3JoinType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3StrNICmp
    - ArraySize
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JoinType(Parse *pParse, Token *pA, Token *pB,
      Token *pC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pTab
    - zCol
    argTypes:
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107902
      start: 107896
    functionDepth: 0
    functionLinenumber: 107896
    functionLinenumberEnd: 107902
    functionName: columnIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int columnIndex(Table *pTab, const char *zCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107923,1
    - Dst: columnIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - pSrc
    - N
    - zCol
    - piTab
    - piCol
    argTypes:
    - SrcList*
    - int
    - char*
    - int*
    - int*
    assertStmts:
    - condition: ( (piTab==0)==(piCol==0) )
      pos:
        line_end: 107922
        line_start: 107922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107935
      start: 107913
    functionDepth: 1
    functionLinenumber: 107913
    functionLinenumberEnd: 107935
    functionName: tableAndColumnIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnIndex
    - assert
    linkageType: ''
    returnType: int
    signature: "int tableAndColumnIndex(\n  SrcList *pSrc,       /* Array of tables
      to search */\n  int N,               /* Number of tables in pSrc->a[] to search
      */\n  const char *zCol,    /* Name of the column we are looking for */\n  int
      *piTab,          /* Write index of pSrc->a[] here */\n  int *piCol           /*
      Write index of pSrc->a[*piTab].pTab->aCol[] here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107963,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107964,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107965,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107966,1
    - Dst: sqlite3CreateColumnExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107968,1
    - Dst: sqlite3CreateColumnExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107969,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107971,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107974,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107974,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107975,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:107978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - iLeft
    - iColLeft
    - iRight
    - iColRight
    - isOuterJoin
    - ppWhere
    argTypes:
    - Parse*
    - SrcList*
    - int
    - int
    - int
    - int
    - int
    - Expr**
    assertStmts:
    - condition: ( iLeft<iRight )
      pos:
        line_end: 107962
        line_start: 107962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc->a[iRight].pTab )
      pos:
        line_end: 107965
        line_start: 107965
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc->a[iLeft].pTab )
      pos:
        line_end: 107964
        line_start: 107964
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc->nSrc>iRight )
      pos:
        line_end: 107963
        line_start: 107963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pEq, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 107973
        line_start: 107973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107979
      start: 107948
    functionDepth: 10
    functionLinenumber: 107948
    functionLinenumberEnd: 107979
    functionName: addWhereTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - ExprHasProperty
    - sqlite3PExpr
    - assert
    - sqlite3ExprAnd
    - sqlite3CreateColumnExpr
    - ExprSetVVAProperty
    linkageType: ''
    returnType: void
    signature: "void addWhereTerm(\n  Parse *pParse,                  /* Parsing context
      */\n  SrcList *pSrc,                  /* List of tables in FROM clause */\n
      \ int iLeft,                      /* Index of first table to join in pSrc */\n
      \ int iColLeft,                   /* Index of column in first table */\n  int
      iRight,                     /* Index of second table in pSrc */\n  int iColRight,
      \                 /* Index of column in second table */\n  int isOuterJoin,
      \               /* True if this is an OUTER join */\n  Expr **ppWhere                  /*
      IN/OUT: The WHERE clause to add to */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108010,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108010,1
    - Dst: ExprSetVVAProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108011,1
    - Dst: setJoinExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108016,1
    - Dst: setJoinExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - iTable
    argTypes:
    - Expr*
    - int
    assertStmts:
    - condition: ( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 108009
        line_start: 108009
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108022
      start: 108007
    functionDepth: 1
    functionLinenumber: 108007
    functionLinenumberEnd: 108022
    functionName: setJoinExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprSetProperty
    - ExprHasProperty
    - assert
    - setJoinExpr
    - ExprSetVVAProperty
    linkageType: ''
    returnType: void
    signature: void setJoinExpr(Expr *p, int iTable)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108052,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108060,1
    - Dst: tableAndColumnIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108070,1
    - Dst: addWhereTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108071,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108080,1
    - Dst: setJoinExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108089,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108090,1
    - Dst: columnIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108110,1
    - Dst: tableAndColumnIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108112,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108114,1
    - Dst: addWhereTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108118,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108124
      start: 108038
    functionDepth: 11
    functionLinenumber: 108038
    functionLinenumberEnd: 108124
    functionName: sqliteProcessJoin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3ExprAnd
    - setJoinExpr
    - tableAndColumnIndex
    - addWhereTerm
    - columnIndex
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: int sqliteProcessJoin(Parse *pParse, Select *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108155,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108157,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108163,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108165,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108168,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108171,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108184,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108186,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108188,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108189,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108190,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108194,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108195,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108196,1
    - Dst: keyInfoFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108197,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108199,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108200,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108200,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108201,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108203,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108204,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108205,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108206,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108207,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108214,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108223,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108223,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108224,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108225,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 66
    argCount: 6
    argNames:
    - pParse
    - pSort
    - pSelect
    - regData
    - nData
    - nPrefixReg
    argTypes:
    - Parse*
    - SortCtx*
    - Select*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nPrefixReg==nExpr+bSeq )
      pos:
        line_end: 108156
        line_start: 108156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bSeq==0 || bSeq==1 )
      pos:
        line_end: 108154
        line_start: 108154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108228
      start: 108138
    functionDepth: 17
    functionLinenumber: 108138
    functionLinenumberEnd: 108228
    functionName: pushOntoSorter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3VdbeChangeP4
    - sqlite3ExprCodeMove
    - assert
    - sqlite3VdbeGetOp
    - sqlite3VdbeJumpHere
    - keyInfoFromExprList
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCodeExprList
    - sqlite3VdbeAddOp2
    - testcase
    - sqlite3VdbeCurrentAddr
    linkageType: ''
    returnType: void
    signature: "void pushOntoSorter(\n  Parse *pParse,         /* Parser context */\n
      \ SortCtx *pSort,        /* Information about the ORDER BY clause */\n  Select
      *pSelect,       /* The whole SELECT statement */\n  int regData,           /*
      First register holding data to be sorted */\n  int nData,             /* Number
      of elements in the data array */\n  int nPrefixReg         /* No. of reg prior
      to regData available for use */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108240,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108240,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108241,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108242,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - v
    - iOffset
    - iContinue
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108245
      start: 108233
    functionDepth: 9
    functionLinenumber: 108233
    functionLinenumberEnd: 108245
    functionName: codeOffset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeJumpHere
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: "void codeOffset(\n  Vdbe *v,          /* Generate code into this VM
      */\n  int iOffset,      /* Register holding the offset counter */\n  int iContinue
      \    /* Jump here to skip the current record */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108267,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108268,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108268,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108269,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108270,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - pParse
    - iTab
    - addrRepeat
    - N
    - iMem
    argTypes:
    - Parse*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108272
      start: 108256
    functionDepth: 9
    functionLinenumber: 108256
    functionLinenumberEnd: 108272
    functionName: codeDistinct
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4Int
    - sqlite3ReleaseTempReg
    - VdbeCoverage
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: "void codeDistinct(\n  Parse *pParse,     /* Parsing and code generating
      context */\n  int iTab,          /* A sorting index used to test for distinctness
      */\n  int addrRepeat,    /* Jump to here if not distinct */\n  int N,             /*
      Number of elements */\n  int iMem           /* First element */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - pDest
    - nExpr
    argTypes:
    - Parse*
    - SelectDest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108295
      start: 108282
    functionDepth: 8
    functionLinenumber: 108282
    functionLinenumberEnd: 108295
    functionName: checkForMultiColumnSelectError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: "int checkForMultiColumnSelectError(\n  Parse *pParse,       /* Parse
      context. */\n  SelectDest *pDest,   /* Destination of SELECT results */\n  int
      nExpr            /* Number of result columns returned by SELECT */\n)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108327,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108328,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108332,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108333,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108360,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108361,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108373,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108397,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108398,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108403,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108405,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108407,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108408,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108410,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108411,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108413,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108414,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108416,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108416,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108417,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108422,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108427,1
    - Dst: codeDistinct
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108428,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108434,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108445,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108446,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108447,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108448,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108457,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108468,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108469,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108470,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108471,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108472,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108473,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108481,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108482,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108483,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108484,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108485,1
    - Dst: pushOntoSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108489,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108491,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108492,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108493,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108494,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108495,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108497,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108507,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108509,1
    - Dst: pushOntoSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108515,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108517,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108518,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108519,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108520,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108521,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108529,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108539,1
    - Dst: pushOntoSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108541,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108543,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108552,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108553,1
    - Dst: pushOntoSorter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108555,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108557,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108559,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108579,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108581,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108582,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108588,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108590,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108592,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108594,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108595,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108598,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108602,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108603,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108604,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108605,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108606,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108607,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108621,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108632,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108632,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 197
    argCount: 9
    argNames:
    - pParse
    - p
    - pEList
    - srcTab
    - pSort
    - pDistinct
    - pDest
    - iContinue
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - ExprList*
    - int
    - SortCtx*
    - DistinctCtx*
    - SelectDest*
    - int
    - int
    assertStmts:
    - condition: ( regResult==iParm )
      pos:
        line_end: 108542
        line_start: 108542
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3VdbeCurrentAddr(v)==iJump || pParse->db->mallocFailed )
      pos:
        line_end: 108415
        line_start: 108415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 108327
        line_start: 108327
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSort==0 )
      pos:
        line_end: 108484
        line_start: 108484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nResultCol==1 )
      pos:
        line_end: 108506
        line_start: 108506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nResultCol==1 )
      pos:
        line_end: 108538
        line_start: 108538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDistinct->eTnctType==WHERE_DISTINCT_UNORDERED )
      pos:
        line_end: 108426
        line_start: 108426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eDest==SRT_Discard )
      pos:
        line_end: 108620
        line_start: 108620
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 108326
        line_start: 108326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSO )
      pos:
        line_end: 108578
        line_start: 108578
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iContinue!=0 )
      pos:
        line_end: 108331
        line_start: 108331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108634
      start: 108307
    functionDepth: 18
    functionLinenumber: 108307
    functionLinenumberEnd: 108634
    functionName: selectInnerLoop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3ExprCollSeq
    - sqlite3VdbeAddOp1
    - codeDistinct
    - sqlite3VdbeAddOp4Int
    - sqlite3CompareAffinity
    - VdbeCoverage
    - VdbeComment
    - codeOffset
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeToNoop
    - sqlite3GetTempReg
    - sqlite3ReleaseTempRange
    - sqlite3ExprCodeExprList
    - sqlite3VdbeAddOp2
    - pushOntoSorter
    - sqlite3VdbeChangeP4
    - sqlite3VdbeGetOp
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void selectInnerLoop(\n  Parse *pParse,          /* The parser context
      */\n  Select *p,              /* The complete select statement being coded */\n
      \ ExprList *pEList,       /* List of values being extracted */\n  int srcTab,
      \            /* Pull data from this table */\n  SortCtx *pSort,         /* If
      not NULL, info on how to process ORDER BY */\n  DistinctCtx *pDistinct, /* If
      not NULL, info on how to process DISTINCT */\n  SelectDest *pDest,      /* How
      to dispose of the results */\n  int iContinue,          /* Jump here to continue
      with next row */\n  int iBreak              /* Jump here to break out of the
      inner loop */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108641,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - db
    - N
    - X
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108654
      start: 108640
    functionDepth: 2
    functionLinenumber: 108640
    functionLinenumberEnd: 108654
    functionName: sqlite3KeyInfoAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbMallocZero
    - ENC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoAlloc(sqlite3 *db, int N, int X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108661,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 108660
        line_start: 108660
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108665
      start: 108659
    functionDepth: 5
    functionLinenumber: 108659
    functionLinenumberEnd: 108665
    functionName: sqlite3KeyInfoUnref
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeyInfoUnref(KeyInfo *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 108671
        line_start: 108671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108676
      start: 108670
    functionDepth: 0
    functionLinenumber: 108670
    functionLinenumberEnd: 108676
    functionName: sqlite3KeyInfoRef
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoRef(KeyInfo *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108685
      start: 108685
    functionDepth: 0
    functionLinenumber: 108685
    functionLinenumberEnd: 108685
    functionName: sqlite3KeyInfoIsWriteable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeyInfoIsWriteable(KeyInfo *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108715,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108717,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108717,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pParse
    - pList
    - iStart
    - nExtra
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pInfo) )
      pos:
        line_end: 108716
        line_start: 108716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108727
      start: 108702
    functionDepth: 3
    functionLinenumber: 108702
    functionLinenumberEnd: 108727
    functionName: keyInfoFromExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCollSeq
    - sqlite3KeyInfoAlloc
    - assert
    - sqlite3KeyInfoIsWriteable
    linkageType: ''
    returnType: KeyInfo
    signature: "KeyInfo *keyInfoFromExprList(\n  Parse *pParse,       /* Parsing context
      */\n  ExprList *pList,     /* Form the KeyInfo object from this ExprList */\n
      \ int iStart,          /* Begin with this column of pList */\n  int nExtra           /*
      Add this many extra columns to the end */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108741
      start: 108732
    functionDepth: 0
    functionLinenumber: 108732
    functionLinenumberEnd: 108741
    functionName: selectOpName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *selectOpName(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108757,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - zUsage
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108760
      start: 108754
    functionDepth: 9
    functionLinenumber: 108754
    functionLinenumberEnd: 108760
    functionName: explainTempTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void explainTempTable(Parse *pParse, const char *zUsage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108770
      start: 108769
    functionDepth: 0
    functionLinenumber: 108769
    functionLinenumberEnd: 108770
    functionName: explainSetInteger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: explainSetInteger(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108799,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108802,1
    - Dst: selectOpName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108804,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 5
    argNames:
    - pParse
    - op
    - iSub1
    - iSub2
    - bUseTmp
    argTypes:
    - Parse*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( op==TK_UNION || op==TK_EXCEPT || op==TK_INTERSECT || op==TK_ALL
        )
      pos:
        line_end: 108798
        line_start: 108798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108808
      start: 108792
    functionDepth: 9
    functionLinenumber: 108792
    functionLinenumberEnd: 108808
    functionName: explainComposite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3VdbeAddOp4
    - assert
    - selectOpName
    linkageType: ''
    returnType: void
    signature: "void explainComposite(\n  Parse *pParse,                  /* Parse
      context */\n  int op,                         /* One of TK_UNION, TK_EXCEPT
      etc. */\n  int iSub1,                      /* Subquery id 1 */\n  int iSub2,
      \                     /* Subquery id 2 */\n  int bUseTmp                     /*
      True if a temp table was used */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108828,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108829,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108848,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108849,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108850,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108858,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108859,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108867,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108867,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108869,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108870,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108871,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108872,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108873,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108874,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108877,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108877,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108878,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108883,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108884,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108888,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108889,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108890,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108895,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108896,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108898,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108899,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108903,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108904,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108910,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108911,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108912,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108914,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108915,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108917,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108923,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108924,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108928,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108930,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108930,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108932,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108932,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108934,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108935,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 5
    argNames:
    - pParse
    - p
    - pSort
    - nColumn
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SortCtx*
    - int
    - SelectDest*
    assertStmts:
    - condition: ( nColumn==1 )
      pos:
        line_end: 108902
        line_start: 108902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eDest==SRT_Output || eDest==SRT_Coroutine )
      pos:
        line_end: 108909
        line_start: 108909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nColumn==1 )
      pos:
        line_end: 108894
        line_start: 108894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108936
      start: 108820
    functionDepth: 10
    functionLinenumber: 108820
    functionLinenumberEnd: 108936
    functionName: generateSortTail
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCacheAffinityChange
    - sqlite3ExprCodeMove
    - assert
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeJumpHere
    - sqlite3ReleaseTempReg
    - sqlite3GetTempReg
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3CodeOnce
    - sqlite3VdbeMakeLabel
    - codeOffset
    - VdbeComment
    - sqlite3VdbeAddOp2
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void generateSortTail(\n  Parse *pParse,    /* Parsing context */\n
      \ Select *p,        /* The SELECT statement */\n  SortCtx *pSort,   /* Information
      on the ORDER BY clause */\n  int nColumn,      /* Number of columns of data
      */\n  SelectDest *pDest /* Write the sorted results here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108964
      start: 108963
    functionDepth: 0
    functionLinenumber: 108963
    functionLinenumberEnd: 108964
    functionName: columnType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: columnType(A,B,C,D,E,F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108966
      start: 108965
    functionDepth: 0
    functionLinenumber: 108965
    functionLinenumberEnd: 108966
    functionName: columnType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: columnType(A,B,C,D,E,F)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108986,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108997,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:108998,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109031,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109037,1
    - Dst: columnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109050,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109054,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109056,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109068,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109091,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109091,1
    - Dst: columnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109103,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 6
    argNames:
    - pNC
    - pExpr
    - pzOrigDb
    - pzOrigTab
    - pzOrigCol
    - pEstWidth
    argTypes:
    - NameContext*
    - Expr*
    - SQLITE_ENABLE_COLUMN_METADATA**
    - char**
    - char**
    - u8*
    assertStmts:
    - condition: ( pTab && pExpr->pTab==pTab )
      pos:
        line_end: 109030
        line_start: 109030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pS )
      pos:
        line_end: 109053
        line_start: 109053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol==-1 || (iCol>=0 && iCol<pTab->nCol) )
      pos:
        line_end: 109055
        line_start: 109055
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 109090
        line_start: 109090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pzOrigTab && pzOrigCol )
      pos:
        line_end: 109102
        line_start: 109102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109111
      start: 108967
    functionDepth: 2
    functionLinenumber: 108967
    functionLinenumberEnd: 109111
    functionName: columnTypeImpl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3SchemaToIndex
    - ExprHasProperty
    - columnType
    - assert
    - ALWAYS
    - testcase
    linkageType: ''
    returnType: char
    signature: "char *columnTypeImpl(\n  NameContext *pNC, \n  Expr *pExpr,\n#ifdef
      SQLITE_ENABLE_COLUMN_METADATA\n  const char **pzOrigDb,\n  const char **pzOrigTab,\n
      \ const char **pzOrigCol,\n#endif\n  u8 *pEstWidth\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109135,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109141,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109142,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109143,1
    - Dst: columnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109145,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pTabList
    - pEList
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109150
      start: 109117
    functionDepth: 11
    functionLinenumber: 109117
    functionLinenumberEnd: 109150
    functionName: generateColumnTypes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnType
    - sqlite3VdbeSetColName
    linkageType: ''
    returnType: void
    signature: "void generateColumnTypes(\n  Parse *pParse,      /* Parser context
      */\n  SrcList *pTabList,  /* List of tables */\n  ExprList *pEList    /* Expressions
      defining the result set */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109174,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109178,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109182,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109185,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109190,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109196,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109203,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109204,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109207,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109208,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109210,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109214,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109214,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109215,1
    - Dst: generateColumnTypes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109218,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 3
    argNames:
    - pParse
    - pTabList
    - pEList
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    assertStmts:
    - condition: ( j<pTabList->nSrc )
      pos:
        line_end: 109192
        line_start: 109192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol==-1 || (iCol>=0 && iCol<pTab->nCol) )
      pos:
        line_end: 109195
        line_start: 109195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109219
      start: 109157
    functionDepth: 12
    functionLinenumber: 109157
    functionLinenumberEnd: 109219
    functionName: generateColumnNames
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - sqlite3MPrintf
    - sqlite3VdbeSetNumCols
    - ALWAYS
    - sqlite3DbStrDup
    - generateColumnTypes
    - sqlite3VdbeSetColName
    linkageType: ''
    returnType: void
    signature: "void generateColumnNames(\n  Parse *pParse,      /* Parser context
      */\n  SrcList *pTabList,  /* List of tables */\n  ExprList *pEList    /* Expressions
      defining the result set */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109251,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109252,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109263,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109266,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109272,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109274,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109279,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109282,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109282,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109283,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109286,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109290,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109297,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109299,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109302,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109305,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109306,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109316,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109318,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 4
    argNames:
    - pParse
    - pEList
    - pnCol
    - paCol
    argTypes:
    - Parse*
    - ExprList*
    - i16*
    - Column**
    assertStmts:
    - condition: ( !ExprHasProperty(pColExpr, EP_IntValue) )
      pos:
        line_end: 109281
        line_start: 109281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pColExpr!=0 )
      pos:
        line_end: 109271
        line_start: 109271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109324
      start: 109234
    functionDepth: 8
    functionLinenumber: 109234
    functionLinenumberEnd: 109324
    functionName: selectColumnsFromExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3StrICmp
    - assert
    - sqlite3MPrintf
    - ALWAYS
    - sqlite3DbMallocZero
    - sqlite3DbStrDup
    - sqlite3Isdigit
    - sqlite3Strlen30
    - testcase
    - sqlite3DbFree
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int selectColumnsFromExprList(\n  Parse *pParse,          /* Parsing
      context */\n  ExprList *pEList,       /* Expr list from which to derive column
      names */\n  i16 *pnCol,             /* Write the number of columns here */\n
      \ Column **paCol          /* Write the new column list here */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109351,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109352,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109353,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109355,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109361,1
    - Dst: columnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109362,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109365,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109367,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109369,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pSelect
    argTypes:
    - Parse*
    - Table*
    - Select*
    assertStmts:
    - condition: ( pSelect!=0 )
      pos:
        line_end: 109350
        line_start: 109350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->nCol==pSelect->pEList->nExpr || db->mallocFailed )
      pos:
        line_end: 109352
        line_start: 109352
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pSelect->selFlags & SF_Resolved)!=0 )
      pos:
        line_end: 109351
        line_start: 109351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109373
      start: 109337
    functionDepth: 6
    functionLinenumber: 109337
    functionLinenumberEnd: 109373
    functionName: selectAddColumnTypeAndCollation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - columnType
    - assert
    - sqlite3DbStrDup
    - sqlite3ExprCollSeq
    - sqlite3ExprAffinity
    - sqlite3LogEst
    linkageType: ''
    returnType: void
    signature: "void selectAddColumnTypeAndCollation(\n  Parse *pParse,        /*
      Parsing contexts */\n  Table *pTab,          /* Add column type information
      to this table */\n  Select *pSelect       /* SELECT used to determine types
      and collations */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectPrep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109387,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109391,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109397,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109400,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109400,1
    - Dst: selectColumnsFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109401,1
    - Dst: selectAddColumnTypeAndCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109402,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts:
    - condition: ( db->lookaside.bEnabled==0 )
      pos:
        line_end: 109396
        line_start: 109396
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 109399
        line_start: 109399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109409
      start: 109379
    functionDepth: 9
    functionLinenumber: 109379
    functionLinenumberEnd: 109409
    functionName: sqlite3ResultSetOfSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3SelectPrep
    - sqlite3DbMallocZero
    - sqlite3DeleteTable
    - selectColumnsFromExprList
    - selectAddColumnTypeAndCollation
    - sqlite3LogEst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109418,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109419,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109428
      start: 109415
    functionDepth: 9
    functionLinenumber: 109415
    functionLinenumberEnd: 109428
    functionName: sqlite3GetVdbe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 42
    functionsReached:
    - sqlite3VdbeCreate
    - OptimizationEnabled
    - sqlite3VdbeAddOp0
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3GetVdbe(Parse *pParse)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109467,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109468,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109472,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109473,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109474,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109475,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109477,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109482,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109483,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109483,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109484,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109485,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109485,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109490,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109491,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109491,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109492,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109493,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109493,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109494,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109495,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109496,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109497,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109498,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109498,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109499,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 3
    argNames:
    - pParse
    - p
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( p->pOffset==0 || p->pLimit!=0 )
      pos:
        line_end: 109467
        line_start: 109467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 109471
        line_start: 109471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109503
      start: 109454
    functionDepth: 17
    functionLinenumber: 109454
    functionLinenumberEnd: 109503
    functionName: computeLimitRegisters
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprIsInteger
    - sqlite3VdbeJumpHere
    - VdbeCoverage
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3ExprCacheClear
    - sqlite3ExprCode
    linkageType: ''
    returnType: void
    signature: void computeLimitRegisters(Parse *pParse, Select *p, int iBreak)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multiSelectCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109517,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109521,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109525,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - p
    - iCol
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( iCol>=0 )
      pos:
        line_end: 109520
        line_start: 109520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109529
      start: 109514
    functionDepth: 2
    functionLinenumber: 109514
    functionLinenumberEnd: 109529
    functionName: multiSelectCollSeq
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCollSeq
    - ALWAYS
    - assert
    - multiSelectCollSeq
    linkageType: ''
    returnType: CollSeq
    signature: CollSeq *multiSelectCollSeq(Parse *pParse, Select *p, int iCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109544,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109553,1
    - Dst: multiSelectCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109555,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109558,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109560,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pParse
    - p
    - nExtra
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pRet) )
      pos:
        line_end: 109559
        line_start: 109559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109567
      start: 109540
    functionDepth: 3
    functionLinenumber: 109540
    functionLinenumberEnd: 109567
    functionName: multiSelectOrderByKeyInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAddCollateString
    - assert
    - sqlite3KeyInfoIsWriteable
    - multiSelectCollSeq
    - sqlite3ExprCollSeq
    - sqlite3KeyInfoAlloc
    linkageType: ''
    returnType: KeyInfo
    signature: KeyInfo *multiSelectOrderByKeyInfo(Parse *pParse, Select *p, int nExtra)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109630,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109633,1
    - Dst: computeLimitRegisters
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109634,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109644,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109661,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109665,1
    - Dst: multiSelectOrderByKeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109667,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109668,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109672,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109674,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109676,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109685,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109690,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109690,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109693,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109695,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109697,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109699,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109702,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109703,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109704,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109707,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109708,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109710,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109716,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109719,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109720,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109725,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109726,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109729,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 80
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->pPrior==0 )
      pos:
        line_end: 109719
        line_start: 109719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109734
      start: 109606
    functionDepth: 19
    functionLinenumber: 109606
    functionLinenumberEnd: 109734
    functionName: generateWithRecursiveQuery
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - computeLimitRegisters
    - sqlite3ErrorMsg
    - sqlite3SelectDestInit
    - sqlite3Select
    - VdbeCoverage
    - VdbeComment
    - selectInnerLoop
    - codeOffset
    - sqlite3ExprListDelete
    - assert
    - ALWAYS
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - multiSelectOrderByKeyInfo
    - sqlite3VdbeMakeLabel
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void generateWithRecursiveQuery(\n  Parse *pParse,        /* Parsing
      context */\n  Select *p,            /* The recursive SELECT to be coded */\n
      \ SelectDest *pDest     /* What to do with query results */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109763,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109765,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109769,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109771,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109778,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->selFlags & SF_MultiValue )
      pos:
        line_end: 109762
        line_start: 109762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->selFlags & SF_Values )
      pos:
        line_end: 109764
        line_start: 109764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pLimit==0 )
      pos:
        line_end: 109766
        line_start: 109766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->op==TK_ALL || (p->op==TK_SELECT && p->pPrior==0) )
      pos:
        line_end: 109765
        line_start: 109765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOffset==0 )
      pos:
        line_end: 109767
        line_start: 109767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pNext==0 || p->pEList->nExpr==p->pNext->pEList->nExpr )
      pos:
        line_end: 109768
        line_start: 109768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPrior->pNext==p )
      pos:
        line_end: 109770
        line_start: 109770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109785
      start: 109755
    functionDepth: 1
    functionLinenumber: 109755
    functionLinenumberEnd: 109785
    functionName: multiSelectValues
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Select
    - assert
    linkageType: ''
    returnType: int
    signature: "int multiSelectValues(\n  Parse *pParse,        /* Parsing context
      */\n  Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109837,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109838,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109843,1
    - Dst: selectOpName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109844,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109849,1
    - Dst: selectOpName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109850,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109861,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109862,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109863,1
    - Dst: multiSelectValues
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109870,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109877,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109878,1
    - Dst: generateWithRecursiveQuery
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109882,1
    - Dst: multiSelectOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109889,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109898,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109903,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109904,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109914,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109914,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109915,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109917,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109918,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109919,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109924,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109930,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109943,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109944,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109950,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109951,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109958,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109959,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109960,1
    - Dst: findRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109962,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109963,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109968,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109969,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109970,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109971,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109981,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109990,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109991,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109992,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:109995,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110000,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110012,1
    - Dst: generateColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110016,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110018,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110019,1
    - Dst: computeLimitRegisters
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110020,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110021,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110021,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110022,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110023,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110025,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110026,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110026,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110027,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110028,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110032,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110046,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110048,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110049,1
    - Dst: findRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110051,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110052,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110056,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110057,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110058,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110065,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110066,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110074,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110075,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110076,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110087,1
    - Dst: generateColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110091,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110093,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110094,1
    - Dst: computeLimitRegisters
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110095,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110096,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110096,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110097,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110098,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110099,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110099,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110100,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110101,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110103,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110104,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110104,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110105,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110106,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110107,1
    - Dst: explainComposite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110112,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110130,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110132,1
    - Dst: multiSelectCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110138,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110150,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110153,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110154,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110154,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110159,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110165,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 248
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->pEList )
      pos:
        line_end: 109962
        line_start: 109962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 110011
        line_start: 110011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->addrOpenEphm[1] == -1 )
      pos:
        line_end: 110065
        line_start: 110065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->op==TK_UNION )
      pos:
        line_end: 109980
        line_start: 109980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLoop->addrOpenEphm[1]<0 )
      pos:
        line_end: 110149
        line_start: 110149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 109860
        line_start: 109860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( unionTab==dest.iSDParm || dest.eDest!=priorOp )
      pos:
        line_end: 110008
        line_start: 110008
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->op==TK_INTERSECT )
      pos:
        line_end: 110031
        line_start: 110031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy==0 )
      pos:
        line_end: 110045
        line_start: 110045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOffset==0 )
      pos:
        line_end: 109950
        line_start: 109950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (p->selFlags & SF_Recursive)==0 || p->op==TK_ALL || p->op==TK_UNION
        )
      pos:
        line_end: 109837
        line_start: 109837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList && pPrior->pEList )
      pos:
        line_end: 109876
        line_start: 109876
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pPrior->pOrderBy )
      pos:
        line_end: 109967
        line_start: 109967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 110086
        line_start: 110086
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy==0 )
      pos:
        line_end: 109957
        line_start: 109957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pLimit==0 )
      pos:
        line_end: 109949
        line_start: 109949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pPrior->pLimit )
      pos:
        line_end: 109897
        line_start: 109897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pNext==0 )
      pos:
        line_end: 110129
        line_start: 110129
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList->nExpr==pPrior->pEList->nExpr )
      pos:
        line_end: 109877
        line_start: 109877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 109855
        line_start: 109855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->addrOpenEphm[0] == -1 )
      pos:
        line_end: 109959
        line_start: 109959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->addrOpenEphm[0] == -1 )
      pos:
        line_end: 110048
        line_start: 110048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 110051
        line_start: 110051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p && p->pPrior )
      pos:
        line_end: 109836
        line_start: 109836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110167
      start: 109818
    functionDepth: 20
    functionLinenumber: 109818
    functionLinenumberEnd: 110167
    functionName: multiSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - explainComposite
    - sqlite3ReleaseTempReg
    - multiSelectValues
    - sqlite3VdbeAddOp1
    - sqlite3KeyInfoAlloc
    - computeLimitRegisters
    - sqlite3KeyInfoUnref
    - sqlite3ErrorMsg
    - sqlite3VdbeAddOp4Int
    - sqlite3SelectDestInit
    - sqlite3SelectDelete
    - findRightmost
    - sqlite3Select
    - VdbeCoverage
    - VdbeComment
    - selectInnerLoop
    - explainSetInteger
    - sqlite3ExprListDelete
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3ExprIsInteger
    - sqlite3VdbeJumpHere
    - multiSelectOrderBy
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp2
    - sqlite3KeyInfoRef
    - sqlite3VdbeChangeP4
    - selectOpName
    - sqlite3VdbeResolveLabel
    - generateColumnNames
    - sqlite3VdbeChangeP2
    - multiSelectCollSeq
    - sqlite3VdbeMakeLabel
    - generateWithRecursiveQuery
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    - testcase
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: int
    signature: "int multiSelect(\n  Parse *pParse,        /* Parsing context */\n
      \ Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110176,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110178,1
    - Dst: selectOpName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110181
      start: 110174
    functionDepth: 8
    functionLinenumber: 110174
    functionLinenumberEnd: 110181
    functionName: sqlite3SelectWrongNumTermsError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - selectOpName
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectWrongNumTermsError(Parse *pParse, Select
      *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110217,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110218,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110224,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110224,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110225,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110226,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110227,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110227,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110228,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110229,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110230,1
    - Dst: codeOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110238,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110239,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110244,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110245,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110246,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110247,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110248,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110249,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110250,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110251,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110262,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110264,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110265,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110266,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110267,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110268,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110278,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110278,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110279,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110290,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110293,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110294,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110307,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110308,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110309,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110317,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110317,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110322,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110323,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 8
    argNames:
    - pParse
    - p
    - pIn
    - pDest
    - regReturn
    - regPrev
    - pKeyInfo
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    - SelectDest*
    - int
    - int
    - KeyInfo*
    - int
    assertStmts:
    - condition: ( pDest->eDest!=SRT_Exists )
      pos:
        line_end: 110237
        line_start: 110237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn->nSdst==1 || pParse->nErr>0 )
      pos:
        line_end: 110261
        line_start: 110261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDest->eDest!=SRT_Table )
      pos:
        line_end: 110238
        line_start: 110238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIn->nSdst==1 || pParse->nErr>0 )
      pos:
        line_end: 110277
        line_start: 110277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pDest->eDest==SRT_Output )
      pos:
        line_end: 110306
        line_start: 110306
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110326
      start: 110203
    functionDepth: 10
    functionLinenumber: 110203
    functionLinenumberEnd: 110326
    functionName: generateOutputSubroutine
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3ExprCodeMove
    - sqlite3CompareAffinity
    - VdbeCoverage
    - codeOffset
    - sqlite3GetTempRange
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp2
    - sqlite3KeyInfoRef
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeMakeLabel
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: int
    signature: "int generateOutputSubroutine(\n  Parse *pParse,          /* Parsing
      context */\n  Select *p,              /* The SELECT statement */\n  SelectDest
      *pIn,        /* Coroutine supplying data */\n  SelectDest *pDest,      /* Where
      to send the data */\n  int regReturn,          /* The return address register
      */\n  int regPrev,            /* Previous result register.  No uniqueness if
      0 */\n  KeyInfo *pKeyInfo,      /* For comparing with previous entry */\n  int
      iBreak              /* Jump here if we hit the LIMIT */\n)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110458,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110459,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110462,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110463,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110464,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110471,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110473,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110484,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110488,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110492,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110505,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110509,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110510,1
    - Dst: multiSelectOrderByKeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110513,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110521,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110531,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110534,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110535,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110537,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110537,1
    - Dst: multiSelectCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110539,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110549,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110551,1
    - Dst: computeLimitRegisters
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110555,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110559,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110561,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110565,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110567,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110574,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110575,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110580,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110581,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110582,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110584,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110585,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110586,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110587,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110592,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110593,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110594,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110599,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110600,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110603,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110608,1
    - Dst: generateOutputSubroutine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110609,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110617,1
    - Dst: generateOutputSubroutine
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110618,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110622,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110630,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110631,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110632,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110633,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110634,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110645,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110646,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110647,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110647,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110648,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110653,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110654,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110655,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110655,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110656,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110666,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110668,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110668,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110669,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110674,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110675,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110677,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110679,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110679,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110680,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110684,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110685,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110685,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110686,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110686,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110690,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110691,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110692,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110694,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110695,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110695,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110699,1
    - Dst: generateColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110706,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110712,1
    - Dst: explainComposite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110719,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 183
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 110461
        line_start: 110461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol>0 )
      pos:
        line_end: 110508
        line_start: 110508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pKeyDup==0 )
      pos:
        line_end: 110458
        line_start: 110458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol>0 )
      pos:
        line_end: 110483
        line_start: 110483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nOrderBy>=nExpr || db->mallocFailed )
      pos:
        line_end: 110530
        line_start: 110530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrderBy )
      pos:
        line_end: 110472
        line_start: 110472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol<=p->pEList->nExpr )
      pos:
        line_end: 110509
        line_start: 110509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy!=0 )
      pos:
        line_end: 110457
        line_start: 110457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPrior->pOrderBy==0 )
      pos:
        line_end: 110470
        line_start: 110470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyDup) )
      pos:
        line_end: 110536
        line_start: 110536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110721
      start: 110414
    functionDepth: 18
    functionLinenumber: 110414
    functionLinenumberEnd: 110721
    functionName: multiSelectOrderBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - explainComposite
    - sqlite3KeyInfoIsWriteable
    - generateOutputSubroutine
    - sqlite3ExprListDup
    - sqlite3VdbeAddOp3
    - sqlite3KeyInfoAlloc
    - sqlite3VdbeAddOp1
    - computeLimitRegisters
    - sqlite3KeyInfoUnref
    - sqlite3SelectDestInit
    - sqlite3SelectDelete
    - sqlite3Expr
    - sqlite3Select
    - VdbeCoverage
    - VdbeComment
    - explainSetInteger
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3VdbeJumpHere
    - VdbeNoopComment
    - sqlite3VdbeAddOp2
    - sqlite3ExprListAppend
    - sqlite3VdbeResolveLabel
    - multiSelectOrderByKeyInfo
    - sqlite3VdbeAddOp4
    - generateColumnNames
    - multiSelectCollSeq
    - sqlite3ResolveOrderGroupBy
    - sqlite3VdbeMakeLabel
    - sqlite3ExprDelete
    - sqlite3VdbeChangeP5
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: "int multiSelectOrderBy(\n  Parse *pParse,        /* Parsing context
      */\n  Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110754,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110755,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110756,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110757,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110761,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110762,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110763,1
    - Dst: substSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110764,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - db
    - pExpr
    - iTable
    - pEList
    argTypes:
    - sqlite3*
    - Expr*
    - int
    - ExprList*
    assertStmts:
    - condition: ( pEList!=0 && pExpr->iColumn<pEList->nExpr )
      pos:
        line_end: 110753
        line_start: 110753
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->pLeft==0 && pExpr->pRight==0 )
      pos:
        line_end: 110754
        line_start: 110754
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110770
      start: 110742
    functionDepth: 7
    functionLinenumber: 110742
    functionLinenumberEnd: 110770
    functionName: substExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - substSelect
    - ExprHasProperty
    - sqlite3ExprDup
    - assert
    - substExpr
    - sqlite3ExprDelete
    - substExprList
    linkageType: ''
    returnType: Expr
    signature: "Expr *substExpr(\n  sqlite3 *db,        /* Report malloc errors to
      this connection */\n  Expr *pExpr,        /* Expr in which substitution occurs
      */\n  int iTable,         /* Table to be substituted */\n  ExprList *pEList
      \   /* Substitute expressions */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - db
    - pList
    - iTable
    - pEList
    argTypes:
    - sqlite3*
    - ExprList*
    - int
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110782
      start: 110771
    functionDepth: 8
    functionLinenumber: 110771
    functionLinenumberEnd: 110782
    functionName: substExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - substExpr
    linkageType: ''
    returnType: void
    signature: "void substExprList(\n  sqlite3 *db,         /* Report malloc errors
      here */\n  ExprList *pList,     /* List to scan and in which to make substitutes
      */\n  int iTable,          /* Table to be substituted */\n  ExprList *pEList
      \    /* Substitute values */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110793,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110794,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110795,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110796,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110797,1
    - Dst: substSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110798,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110800,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110801,1
    - Dst: substSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - db
    - p
    - iTable
    - pEList
    argTypes:
    - sqlite3*
    - Select*
    - int
    - ExprList*
    assertStmts:
    - condition: ( pSrc )
      pos:
        line_end: 110799
        line_start: 110799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110806
      start: 110783
    functionDepth: 9
    functionLinenumber: 110783
    functionLinenumberEnd: 110806
    functionName: substSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - substSelect
    - assert
    - ALWAYS
    - substExpr
    - substExprList
    linkageType: ''
    returnType: void
    signature: "void substSelect(\n  sqlite3 *db,         /* Report malloc errors
      here */\n  Select *p,           /* SELECT statement in which to make substitutions
      */\n  int iTable,          /* Table to be replaced */\n  ExprList *pEList     /*
      Substitute values */\n)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110971,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110972,1
    - Dst: OptimizationDisabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110975,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110979,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110983,1
    - Dst: sqlite3ExprListFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110984,1
    - Dst: sqlite3ExprListFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110985,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:110992,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111019,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111020,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111077,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111078,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111079,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111080,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111087,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111100,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111105,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111105,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111106,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111153,1
    - Dst: sqlite3SelectSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111154,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111167,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111182,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111183,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111184,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111197,1
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111200,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111233,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111234,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111236,1
    - Dst: sqlite3SrcListEnlarge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111257,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111267,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111269,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111288,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111289,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111293,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111295,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111296,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111313,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111314,1
    - Dst: substExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111318,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111326,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111329,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111330,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111331,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111332,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111333,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111335,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111336,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111359,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111363,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111364,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 212
    argCount: 5
    argNames:
    - pParse
    - p
    - iFrom
    - isAgg
    - subqueryIsAgg
    argTypes:
    - Parse*
    - Select*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pParent!=p )
      pos:
        line_end: 111232
        line_start: 111232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 110970
        line_start: 110970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSrc && iFrom>=0 && iFrom<pSrc->nSrc )
      pos:
        line_end: 110974
        line_start: 110974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 111235
        line_start: 111235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->pGroupBy==0 )
      pos:
        line_end: 111331
        line_start: 111331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pPrior==0 )
      pos:
        line_end: 110971
        line_start: 110971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSub->pSrc!=0 )
      pos:
        line_end: 111078
        line_start: 111078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent==p )
      pos:
        line_end: 111229
        line_start: 111229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->pOrderBy==0 )
      pos:
        line_end: 111312
        line_start: 111312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSub->pPrior==0 )
      pos:
        line_end: 111313
        line_start: 111313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->pHaving==0 )
      pos:
        line_end: 111325
        line_start: 111325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSub!=0 )
      pos:
        line_end: 110978
        line_start: 110978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSubSrc )
      pos:
        line_end: 110991
        line_start: 110991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSub->pEList->nExpr==pSub1->pEList->nExpr )
      pos:
        line_end: 111079
        line_start: 111079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111369
      start: 110949
    functionDepth: 10
    functionLinenumber: 110949
    functionLinenumberEnd: 111369
    functionName: flattenSubquery
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ExprHasProperty
    - TESTONLY
    - sqlite3SrcListAppend
    - sqlite3ExprListDup
    - substExpr
    - SELECTTRACE
    - sqlite3DbFree
    - sqlite3Dequote
    - sqlite3SrcListEnlarge
    - sqlite3ExprAnd
    - sqlite3SelectDelete
    - sqlite3DbStrDup
    - sqlite3IdListDelete
    - substExprList
    - sqlite3TreeViewSelect
    - assert
    - ALWAYS
    - sqlite3AuthCheck
    - sqlite3SelectSetName
    - sqlite3ExprDup
    - sqlite3ParseToplevel
    - sqlite3SelectDup
    - OptimizationDisabled
    - testcase
    - sqlite3ExprListFlags
    linkageType: ''
    returnType: int
    signature: "int flattenSubquery(\n  Parse *pParse,       /* Parsing context */\n
      \ Select *p,           /* The parent or outer SELECT statement */\n  int iFrom,
      \          /* Index in p->pSrc->a[] of the inner subquery */\n  int isAgg,           /*
      True if outer SELECT uses aggregate functions */\n  int subqueryIsAgg    /*
      True if the subquery uses aggregate functions */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pushDownWhereTerms
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111423,1
    - Dst: sqlite3ExprIsTableConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111426,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111429,1
    - Dst: substExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111430,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - db
    - pSubq
    - pWhere
    - iCursor
    argTypes:
    - sqlite3*
    - Select*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111436
      start: 111407
    functionDepth: 8
    functionLinenumber: 111407
    functionLinenumberEnd: 111436
    functionName: pushDownWhereTerms
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprAnd
    - substExpr
    - pushDownWhereTerms
    - sqlite3ExprIsTableConstant
    linkageType: ''
    returnType: int
    signature: "int pushDownWhereTerms(\n  sqlite3 *db,          /* The database connection
      (for malloc()) */\n  Select *pSubq,        /* The subquery whose WHERE clause
      is to be augmented */\n  Expr *pWhere,         /* The WHERE clause of the outer
      query */\n  int iCursor           /* Cursor number of the subquery */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111462,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111465,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111468,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - pAggInfo
    - ppMinMax
    argTypes:
    - AggInfo*
    - ExprList**
    assertStmts:
    - condition: ( pExpr->op==TK_AGG_FUNCTION )
      pos:
        line_end: 111461
        line_start: 111461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *ppMinMax==0 || (*ppMinMax)->nExpr==1 )
      pos:
        line_end: 111474
        line_start: 111474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111477
      start: 111454
    functionDepth: 0
    functionLinenumber: 111454
    functionLinenumberEnd: 111477
    functionName: minMaxQuery
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    linkageType: ''
    returnType: u8
    signature: u8 minMaxQuery(AggInfo *pAggInfo, ExprList **ppMinMax)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111494,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111503,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111505,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111507,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pAggInfo
    argTypes:
    - Select*
    - AggInfo*
    assertStmts:
    - condition: ( !p->pGroupBy )
      pos:
        line_end: 111493
        line_start: 111493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab && !pTab->pSelect && pExpr )
      pos:
        line_end: 111502
        line_start: 111502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111512
      start: 111490
    functionDepth: 1
    functionLinenumber: 111490
    functionLinenumberEnd: 111512
    functionName: isSimpleCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - IsVirtual
    linkageType: ''
    returnType: Table
    signature: Table *isSimpleCount(Select *p, AggInfo *pAggInfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111527,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pFrom
    argTypes:
    - Parse*
    - struct SrcList_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111538
      start: 111521
    functionDepth: 8
    functionLinenumber: 111521
    functionLinenumberEnd: 111538
    functionName: sqlite3IndexedByLookup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexedByLookup(Parse *pParse, struct SrcList_item
      *pFrom)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111584,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111586,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111587,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111591,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111601,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111603,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( (p->selFlags & SF_Converted)==0 )
      pos:
        line_end: 111600
        line_start: 111600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->pPrior!=0 )
      pos:
        line_end: 111602
        line_start: 111602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111608
      start: 111560
    functionDepth: 9
    functionLinenumber: 111560
    functionLinenumberEnd: 111608
    functionName: convertCompoundSelectToSubquery
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3ExprListAppend
    - assert
    - sqlite3Expr
    - sqlite3DbMallocZero
    - sqlite3SrcListAppendFromTerm
    linkageType: ''
    returnType: int
    signature: int convertCompoundSelectToSubquery(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - pWith
    - pItem
    - ppContext
    argTypes:
    - With*
    - struct SrcList_item*
    - With**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111640
      start: 111621
    functionDepth: 0
    functionLinenumber: 111621
    functionLinenumberEnd: 111640
    functionName: searchWith
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: struct Cte
    signature: "struct Cte *searchWith(\n  With *pWith,                    /* Current
      outermost WITH clause */\n  struct SrcList_item *pItem,     /* FROM clause element
      to resolve */\n  With **ppContext                /* OUT: WITH clause return
      value belongs to */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - pWith
    - bFree
    argTypes:
    - Parse*
    - With*
    - u8
    assertStmts:
    - condition: ( bFree==0 || pParse->pWith==0 )
      pos:
        line_end: 111652
        line_start: 111652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111659
      start: 111652
    functionDepth: 0
    functionLinenumber: 111652
    functionLinenumberEnd: 111659
    functionName: sqlite3WithPush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WithPush(Parse *pParse, With *pWith, u8 bFree)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111685,1
    - Dst: searchWith
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111687,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111701,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111705,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111706,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111711,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111711,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111713,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111715,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111727,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111739,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111744,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111749,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111755,1
    - Dst: selectColumnsFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111764,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111771,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - pWalker
    - pFrom
    argTypes:
    - Walker*
    - struct SrcList_item*
    assertStmts:
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 111684
        line_start: 111684
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 111704
        line_start: 111704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 111710
        line_start: 111710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->pSelect )
      pos:
        line_end: 111714
        line_start: 111714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->nRef==1 || ((pSel->selFlags&SF_Recursive) && pTab->nRef==2
        ))
      pos:
        line_end: 111743
        line_start: 111743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111778
      start: 111676
    functionDepth: 9
    functionLinenumber: 111676
    functionLinenumberEnd: 111778
    functionName: withExpand
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    - searchWith
    - sqlite3SelectDup
    - sqlite3DbMallocZero
    - sqlite3DbStrDup
    - sqlite3WalkSelect
    - selectColumnsFromExprList
    - sqlite3ErrorMsg
    - sqlite3LogEst
    linkageType: ''
    returnType: int
    signature: "int withExpand(\n  Walker *pWalker, \n  struct SrcList_item *pFrom\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111792,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pParse->pWith==pWith )
      pos:
        line_end: 111793
        line_start: 111793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111797
      start: 111790
    functionDepth: 1
    functionLinenumber: 111790
    functionLinenumberEnd: 111797
    functionName: selectPopWith
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - findRightmost
    - assert
    linkageType: ''
    returnType: void
    signature: void selectPopWith(Walker *pWalker, Select *p)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111840,1
    - Dst: sqlite3WithPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111846,1
    - Dst: findRightmost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111846,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111860,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111865,1
    - Dst: selectPopWith
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111867,1
    - Dst: withExpand
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111872,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111879,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111880,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111881,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111882,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111885,1
    - Dst: selectColumnsFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111887,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111889,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111889,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111894,1
    - Dst: sqlite3LocateTableItem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111895,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111898,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111905,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111907,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111908,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111909,1
    - Dst: sqlite3SelectSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111910,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111911,1
    - Dst: sqlite3IndexedByLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111917,1
    - Dst: sqliteProcessJoin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111924,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111942,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111960,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111964,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111978,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111979,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111979,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111994,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:111997,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112006,1
    - Dst: sqlite3MatchSpanName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112008,1
    - Dst: IsHiddenColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112018,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112018,1
    - Dst: tableAndColumnIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112025,1
    - Dst: sqlite3IdListIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112031,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112037,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112042,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112043,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112045,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112046,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112049,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112055,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112057,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112058,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112062,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112063,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112065,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112067,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112071,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112076,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112078,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112083,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112088,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 183
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pFrom->isRecursive==0 || pFrom->pTab )
      pos:
        line_end: 111859
        line_start: 111859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 111888
        line_start: 111888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE->op!=TK_DOT || pRight!=0 )
      pos:
        line_end: 111959
        line_start: 111959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE->pLeft!=0 )
      pos:
        line_end: 111977
        line_start: 111977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i==0 )
      pos:
        line_end: 111864
        line_start: 111864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 111879
        line_start: 111879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 111893
        line_start: 111893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFrom->pSelect==0 )
      pos:
        line_end: 111907
        line_start: 111907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE->op!=TK_DOT || (pE->pLeft!=0 && pE->pLeft->op==TK_ID) )
      pos:
        line_end: 111941
        line_start: 111941
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE->op!=TK_DOT || pE->pRight!=0 )
      pos:
        line_end: 111940
        line_start: 111940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (IsVirtual(pTab))
      pos:
        line_end: 112017
        line_start: 112017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSel!=0 )
      pos:
        line_end: 111878
        line_start: 111878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zName )
      pos:
        line_end: 112005
        line_start: 112005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pE->pLeft, EP_IntValue) )
      pos:
        line_end: 111978
        line_start: 111978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112092
      start: 111826
    functionDepth: 12
    functionLinenumber: 111826
    functionLinenumberEnd: 112092
    functionName: selectExpander
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsHiddenColumn
    - ExprHasProperty
    - sqlite3ExprListSetName
    - withExpand
    - sqlite3MatchSpanName
    - tableAndColumnIndex
    - sqliteProcessJoin
    - sqlite3Strlen30
    - sqlite3SrcListAssignCursors
    - sqlite3WithPush
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - NEVER
    - sqlite3SchemaToIndex
    - sqlite3StrICmp
    - IsVirtual
    - findRightmost
    - sqlite3Expr
    - sqlite3DbStrDup
    - sqlite3WalkSelect
    - sqlite3ExprListDelete
    - assert
    - sqlite3IndexedByLookup
    - sqlite3IdListIndex
    - sqlite3LocateTableItem
    - sqlite3SelectSetName
    - sqlite3LogEst
    - sqlite3ExprListAppend
    - sqlite3PExpr
    - sqlite3MPrintf
    - sqlite3ViewGetColumnNames
    - sqlite3SelectDup
    - sqlite3DbMallocZero
    - selectColumnsFromExprList
    - selectPopWith
    - testcase
    linkageType: ''
    returnType: int
    signature: int selectExpander(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112106
      start: 112103
    functionDepth: 1
    functionLinenumber: 112103
    functionLinenumberEnd: 112106
    functionName: exprWalkNoop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int exprWalkNoop(Walker *NotUsed, Expr *NotUsed2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112123,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112128,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112135
      start: 112121
    functionDepth: 5
    functionLinenumber: 112121
    functionLinenumberEnd: 112135
    functionName: sqlite3SelectExpand
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void sqlite3SelectExpand(Parse *pParse, Select *pSelect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112158,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112165,1
    - Dst: selectAddColumnTypeAndCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( p->selFlags & SF_Resolved )
      pos:
        line_end: 112157
        line_start: 112157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112175
      start: 112152
    functionDepth: 7
    functionLinenumber: 112152
    functionLinenumberEnd: 112175
    functionName: selectAddSubqueryTypeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - selectAddColumnTypeAndCollation
    - ALWAYS
    - assert
    linkageType: ''
    returnType: void
    signature: void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112189,1
    - Dst: sqlite3WalkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112195
      start: 112186
    functionDepth: 5
    functionLinenumber: 112186
    functionLinenumberEnd: 112195
    functionName: sqlite3SelectAddTypeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void sqlite3SelectAddTypeInfo(Parse *pParse, Select *pSelect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112216,1
    - Dst: sqlite3SelectExpand
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112220,1
    - Dst: sqlite3ResolveSelectNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112222,1
    - Dst: sqlite3SelectAddTypeInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - pParse
    - p
    - pOuterNC
    argTypes:
    - Parse*
    - Select*
    - NameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112225
      start: 112210
    functionDepth: 6
    functionLinenumber: 112210
    functionLinenumberEnd: 112225
    functionName: sqlite3SelectPrep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - NEVER
    - sqlite3SelectExpand
    - sqlite3ResolveSelectNames
    - sqlite3SelectAddTypeInfo
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3SelectPrep(\n  Parse *pParse,         /* The
      parser context */\n  Select *p,             /* The SELECT statement being coded.
      */\n  NameContext *pOuterNC  /* Name context for container */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112246,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112250,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112258,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112258,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112260,1
    - Dst: keyInfoFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112264,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - pParse
    - pAggInfo
    argTypes:
    - Parse*
    - AggInfo*
    assertStmts:
    - condition: ( nReg==pAggInfo->mxReg-pAggInfo->mnReg+1 )
      pos:
        line_end: 112243
        line_start: 112243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pAggInfo->aCol[i].iMem>=pAggInfo->mnReg\n         && pAggInfo->aCol[i].iMem<=pAggInfo->mxReg
        )"
      pos:
        line_end: 112246
        line_start: 112245
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pE, EP_xIsSelect) )
      pos:
        line_end: 112257
        line_start: 112257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pAggInfo->aFunc[i].iMem>=pAggInfo->mnReg\n         && pAggInfo->aFunc[i].iMem<=pAggInfo->mxReg
        )"
      pos:
        line_end: 112250
        line_start: 112249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112270
      start: 112235
    functionDepth: 9
    functionLinenumber: 112235
    functionLinenumberEnd: 112270
    functionName: resetAccumulator
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - keyInfoFromExprList
    - sqlite3VdbeAddOp3
    - sqlite3ErrorMsg
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void resetAccumulator(Parse *pParse, AggInfo *pAggInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112282,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112282,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - pAggInfo
    argTypes:
    - Parse*
    - AggInfo*
    assertStmts:
    - condition: ( !ExprHasProperty(pF->pExpr, EP_xIsSelect) )
      pos:
        line_end: 112281
        line_start: 112281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112286
      start: 112276
    functionDepth: 9
    functionLinenumber: 112276
    functionLinenumberEnd: 112286
    functionName: finalizeAggFunctions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - assert
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112306,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112306,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112309,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112310,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112316,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112317,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112318,1
    - Dst: codeDistinct
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112319,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112325,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112327,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112333,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112335,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112337,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112338,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112339,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112341,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112342,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112357,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112357,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112359,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112361,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112364,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112366,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - pParse
    - pAggInfo
    argTypes:
    - Parse*
    - AggInfo*
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 112324
        line_start: 112324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pF->pExpr, EP_xIsSelect) )
      pos:
        line_end: 112305
        line_start: 112305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112368
      start: 112292
    functionDepth: 17
    functionLinenumber: 112292
    functionLinenumberEnd: 112368
    functionName: updateAccumulator
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeDistinct
    - ExprHasProperty
    - sqlite3ExprCacheAffinityChange
    - assert
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeJumpHere
    - sqlite3ExprCode
    - VdbeCoverage
    - sqlite3ExprCollSeq
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp1
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCodeExprList
    - sqlite3GetTempRange
    - sqlite3ExprCacheClear
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void updateAccumulator(Parse *pParse, AggInfo *pAggInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112381,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112381,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112382,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pIdx
    argTypes:
    - Parse*
    - Table*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112391
      start: 112375
    functionDepth: 9
    functionLinenumber: 112375
    functionLinenumberEnd: 112391
    functionName: explainSimpleCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - IsPrimaryKeyIndex
    - sqlite3MPrintf
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void explainSimpleCount(\n  Parse *pParse,                  /* Parse
      context */\n  Table *pTab,                    /* Table being queried */\n  Index
      *pIdx                     /* Index used to optimize scan, or NULL */\n)"
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112439,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112440,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112443,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112449,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112450,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112451,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112452,1
    - Dst: IgnorableOrderby
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112453,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112454,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112460,1
    - Dst: sqlite3SelectPrep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112464,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112465,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112471,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112475,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112476,1
    - Dst: checkForMultiColumnSelectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112485,1
    - Dst: flattenSubquery
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112499,1
    - Dst: IgnorableOrderby
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112509,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112517,1
    - Dst: multiSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112525,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112526,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112528,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112552,1
    - Dst: sqlite3SelectExprHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112564,1
    - Dst: pushDownWhereTerms
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112570,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112574,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112575,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112584,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112589,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112591,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112592,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112594,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112595,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112596,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112597,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112600,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112601,1
    - Dst: sqlite3ClearTempRegCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112602,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112612,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112614,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112620,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112620,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112621,1
    - Dst: VdbeNoopComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112623,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112625,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112626,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112627,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112628,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112629,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112630,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112631,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112632,1
    - Dst: sqlite3ClearTempRegCache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112633,1
    - Dst: sqlite3SelectExprHeight
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112636,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112650,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112651,1
    - Dst: sqlite3ExprListCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112671,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112674,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112678,1
    - Dst: keyInfoFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112691,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112694,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112705,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112710,1
    - Dst: computeLimitRegisters
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112712,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112714,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112722,1
    - Dst: keyInfoFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112724,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112726,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112737,1
    - Dst: sqlite3WhereOutputRowCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112740,1
    - Dst: sqlite3WhereOutputRowCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112741,1
    - Dst: sqlite3WhereIsDistinct
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112743,1
    - Dst: sqlite3WhereIsDistinct
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112744,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112747,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112758,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112762,1
    - Dst: sqlite3WhereContinueLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112763,1
    - Dst: sqlite3WhereBreakLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112764,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112768,1
    - Dst: sqlite3ExprListCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112811,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112816,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112822,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112829,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112830,1
    - Dst: sqlite3ExprAnalyzeAggregates
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112836,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112836,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112838,1
    - Dst: keyInfoFromExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112864,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112865,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112874,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112876,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112881,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112882,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112883,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112884,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112885,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112892,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112893,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112897,1
    - Dst: explainTempTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112914,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112928,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112929,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112930,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112938,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112941,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112946,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112947,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112948,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112949,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112950,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112951,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112953,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112954,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112955,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112956,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112956,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112958,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112969,1
    - Dst: sqlite3WhereIsSorted
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112970,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112973,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112981,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112982,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112984,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112989,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112992,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112995,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112996,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112997,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112998,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:112998,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113009,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113010,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113011,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113012,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113012,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113013,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113014,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113015,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113020,1
    - Dst: updateAccumulator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113021,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113022,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113023,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113028,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113029,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113031,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113032,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113037,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113038,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113042,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113051,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113052,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113053,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113054,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113055,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113056,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113057,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113058,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113059,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113060,1
    - Dst: finalizeAggFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113061,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113062,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113063,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113066,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113067,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113071,1
    - Dst: resetAccumulator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113072,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113073,1
    - Dst: isSimpleCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113080,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113094,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113101,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113102,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113113,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113113,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113125,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113129,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113131,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113133,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113134,1
    - Dst: explainSimpleCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113168,1
    - Dst: minMaxQuery
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113170,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113172,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113175,1
    - Dst: resetAccumulator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113187,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113188,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113190,1
    - Dst: updateAccumulator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113193,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113194,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113195,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113196,1
    - Dst: sqlite3WhereBreakLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113196,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113197,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113200,1
    - Dst: finalizeAggFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113201,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113205,1
    - Dst: selectInnerLoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113206,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113208,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113210,1
    - Dst: explainTempTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113215,1
    - Dst: explainTempTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113222,1
    - Dst: generateSortTail
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113224,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113229,1
    - Dst: explainSetInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113239,1
    - Dst: generateColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113244,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113247,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113248,1
    - Dst: SELECTTRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113250,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 438
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_DistFifo )
      pos:
        line_end: 112448
        line_start: 112448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sDistinct.isTnct )
      pos:
        line_end: 112677
        line_start: 112677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pGroupBy==0 )
      pos:
        line_end: 113166
        line_start: 113166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_DistQueue )
      pos:
        line_end: 112450
        line_start: 112450
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( flag==0 || (pMinMax!=0 && pMinMax->nExpr==1) )
      pos:
        line_end: 113171
        line_start: 113171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pMinMax==0 || pMinMax->nExpr==1 )
      pos:
        line_end: 113193
        line_start: 113193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_Fifo )
      pos:
        line_end: 112449
        line_start: 112449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "(pDest->eDest==SRT_Exists || pDest->eDest==SRT_Union || \n           pDest->eDest==SRT_Except
        || pDest->eDest==SRT_Discard ||\n           pDest->eDest==SRT_Queue  || pDest->eDest==SRT_DistFifo
        ||\n           pDest->eDest==SRT_DistQueue || pDest->eDest==SRT_Fifo)"
      pos:
        line_end: 112456
        line_start: 112453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pItem->addrFillSub==0 )
      pos:
        line_end: 112611
        line_start: 112611
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pEList!=0 )
      pos:
        line_end: 112470
        line_start: 112470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_Queue )
      pos:
        line_end: 112451
        line_start: 112451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(sAggInfo.aFunc[i].pExpr, EP_xIsSelect) )
      pos:
        line_end: 112835
        line_start: 112835
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( flag==0 )
      pos:
        line_end: 113167
        line_start: 113167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113254
      start: 112409
    functionDepth: 21
    functionLinenumber: 112409
    functionLinenumberEnd: 113254
    functionName: sqlite3Select
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 9
    functionsReached:
    - ExprHasProperty
    - sqlite3TableLock
    - sqlite3VdbeAddOp4Int
    - sqlite3CodeVerifySchema
    - sqlite3SelectPrep
    - generateSortTail
    - selectInnerLoop
    - HasRowid
    - sqlite3KeyInfoOfIndex
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprListDelete
    - sqlite3TreeViewSelect
    - sqlite3ExprCodeExprList
    - sqlite3VdbeGetOp
    - flattenSubquery
    - isSimpleCount
    - sqlite3GetVdbe
    - sqlite3ExprAnalyzeAggregates
    - sqlite3ExprListCompare
    - sqlite3WhereIsOrdered
    - finalizeAggFunctions
    - VdbeComment
    - updateAccumulator
    - OptimizationEnabled
    - explainSetInteger
    - multiSelect
    - checkForMultiColumnSelectError
    - assert
    - explainTempTable
    - sqlite3VdbeChangeToNoop
    - keyInfoFromExprList
    - sqlite3WhereBegin
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp2
    - sqlite3LogEst
    - sqlite3VdbeResolveLabel
    - generateColumnNames
    - sqlite3WhereEnd
    - sqlite3WhereOutputRowCount
    - sqlite3ExprCode
    - memset
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3CodeOnce
    - computeLimitRegisters
    - minMaxQuery
    - sqlite3DbFree
    - sqlite3ExprCodeMove
    - sqlite3SelectDestInit
    - IgnorableOrderby
    - sqlite3SelectExprHeight
    - sqlite3GetTempRange
    - sqlite3VdbeChangeP1
    - sqlite3GetTempReg
    - sqlite3AuthCheck
    - sqlite3ClearTempRegCache
    - sqlite3ExprCodeGetColumn
    - resetAccumulator
    - sqlite3WhereContinueLabel
    - sqlite3ReleaseTempReg
    - sqlite3ExprListDup
    - pushDownWhereTerms
    - SELECTTRACE
    - sqlite3ExprAnalyzeAggList
    - sqlite3SchemaToIndex
    - explainSimpleCount
    - sqlite3WhereIsSorted
    - sqlite3Select
    - VdbeCoverage
    - sqlite3ExprIfFalse
    - sqlite3VdbeJumpHere
    - sqlite3WhereIsDistinct
    - VdbeNoopComment
    - sqlite3KeyInfoRef
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeChangeP4
    - sqlite3WhereBreakLabel
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCacheClear
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Select(\n  Parse *pParse,         /* The parser
      context */\n  Select *p,             /* The SELECT statement being coded. */\n
      \ SelectDest *pDest      /* What to do with the query results */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113318,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113329,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113334,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113335,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113349,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113350,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113352,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - pArg
    - nCol
    - argv
    - colv
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113363
      start: 113301
    functionDepth: 3
    functionLinenumber: 113301
    functionLinenumberEnd: 113363
    functionName: sqlite3_get_table_cb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_malloc64
    - sqlite3_mprintf
    - sqlite3_realloc64
    - memcpy
    - sqlite3Strlen30
    linkageType: ''
    returnType: int
    signature: int sqlite3_get_table_cb(void *pArg, int nCol, char **argv, char **colv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113387,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113399,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113405,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113406,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113407,1
    - Dst: sqlite3_free_table
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113409,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113412,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113413,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113415,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113420,1
    - Dst: sqlite3_free_table
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113422,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113427,1
    - Dst: sqlite3_free_table
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113429,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 6
    argNames:
    - db
    - zSql
    - pazResult
    - pnRow
    - pnColumn
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char***
    - int*
    - int*
    - char**
    assertStmts:
    - condition: ( sizeof(res.azResult[0])>= sizeof(res.nData) )
      pos:
        line_end: 113405
        line_start: 113405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113439
      start: 113375
    functionDepth: 27
    functionLinenumber: 113375
    functionLinenumberEnd: 113439
    functionName: sqlite3_get_table
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - sqlite3SafetyCheckOk
    - sqlite3_malloc64
    - sqlite3_mprintf
    - sqlite3_realloc64
    - sqlite3_exec
    - sqlite3_free_table
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_get_table(\n  sqlite3 *db,                /* The
      database on which the SQL executes */\n  const char *zSql,           /* The
      SQL to be executed */\n  char ***pazResult,          /* Write the result table
      here */\n  int *pnRow,                 /* Write the number of rows in the result
      here */\n  int *pnColumn,              /* Write the number of columns of result
      here */\n  char **pzErrMsg             /* Write error messages here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113450,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113451,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113452,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - azResult
    argTypes:
    - char**
    assertStmts:
    - condition: ( azResult!=0 )
      pos:
        line_end: 113449
        line_start: 113449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113455
      start: 113444
    functionDepth: 3
    functionLinenumber: 113444
    functionLinenumberEnd: 113455
    functionName: sqlite3_free_table
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_free
    - SQLITE_PTR_TO_INT
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_free_table(\n  char **azResult            /* Result
      returned from sqlite3_get_table() */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113484,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113485,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113486,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113487,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pTriggerStep
    argTypes:
    - sqlite3*
    - TriggerStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113491
      start: 113479
    functionDepth: 10
    functionLinenumber: 113479
    functionLinenumberEnd: 113491
    functionName: sqlite3DeleteTriggerStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3IdListDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteTriggerStep(sqlite3 *db, TriggerStep *pTriggerStep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113517,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113517,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113518,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113518,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113519,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(pParse->db, 0, pTmpSchema) )
      pos:
        line_end: 113516
        line_start: 113516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113530
      start: 113507
    functionDepth: 1
    functionLinenumber: 113507
    functionLinenumberEnd: 113530
    functionName: sqlite3TriggerList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqliteHashNext
    - sqlite3StrICmp
    - assert
    - sqliteHashFirst
    - sqlite3SchemaMutexHeld
    - sqliteHashData
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3TriggerList(Parse *pParse, Table *pTab)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113561,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113562,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113564,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113568,1
    - Dst: sqlite3TwoPartName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113575,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113593,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113602,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113610,1
    - Dst: sqlite3FixInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113611,1
    - Dst: sqlite3FixSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113612,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113615,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113631,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113632,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113638,1
    - Dst: sqlite3CheckObjectName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113642,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113642,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113643,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113645,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113647,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113648,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113654,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113655,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113663,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113668,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113672,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113680,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113683,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113683,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113699,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113703,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113708,1
    - Dst: sqlite3IdListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113710,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113714,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113715,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113716,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113717,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113719,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113721,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 10
    argNames:
    - pParse
    - pName1
    - pName2
    - tr_tm
    - op
    - pColumns
    - pTableName
    - pWhen
    - isTemp
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - int
    - int
    - IdList*
    - SrcList*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( pName1!=0 )
      pos:
        line_end: 113560
        line_start: 113560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pName2!=0 )
      pos:
        line_end: 113561
        line_start: 113561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op==TK_INSERT || op==TK_UPDATE || op==TK_DELETE )
      pos:
        line_end: 113562
        line_start: 113562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pNewTrigger==0 )
      pos:
        line_end: 113709
        line_start: 113709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op>0 && op<0xff )
      pos:
        line_end: 113563
        line_start: 113563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTableName->nSrc==1 )
      pos:
        line_end: 113609
        line_start: 113609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 113641
        line_start: 113641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->init.busy )
      pos:
        line_end: 113646
        line_start: 113646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pNewTrigger==pTrigger )
      pos:
        line_end: 113720
        line_start: 113720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113723
      start: 113540
    functionDepth: 11
    functionLinenumber: 113540
    functionLinenumberEnd: 113723
    functionName: sqlite3BeginTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SrcListLookup
    - sqlite3TwoPartName
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3DeleteTrigger
    - sqlite3SchemaToIndex
    - IsVirtual
    - sqlite3FixSrcList
    - sqlite3CodeVerifySchema
    - sqlite3DbStrDup
    - sqlite3SchemaMutexHeld
    - sqlite3IdListDelete
    - sqlite3IdListDup
    - assert
    - sqlite3StrNICmp
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - sqlite3FixInit
    - sqlite3NameFromToken
    - sqlite3ExprDup
    - sqlite3CheckObjectName
    - sqlite3SrcListDelete
    - sqlite3DbMallocZero
    - sqlite3HashFind
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BeginTrigger(\n  Parse *pParse,      /* The
      parse context of the CREATE TRIGGER statement */\n  Token *pName1,      /* The
      name of the trigger */\n  Token *pName2,      /* The name of the trigger */\n
      \ int tr_tm,          /* One of TK_BEFORE, TK_AFTER, TK_INSTEAD */\n  int op,
      \            /* One of TK_INSERT, TK_UPDATE, TK_DELETE */\n  IdList *pColumns,
      \  /* column list if this is an UPDATE OF trigger */\n  SrcList *pTableName,/*
      The name of the table/view the trigger applies to */\n  Expr *pWhen,        /*
      WHEN clause */\n  int isTemp,         /* True if the TEMPORARY keyword is present
      */\n  int noErr           /* Suppress errors if the trigger already exists */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113742,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113744,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113751,1
    - Dst: sqlite3FixInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113752,1
    - Dst: sqlite3FixTriggerStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113753,1
    - Dst: sqlite3FixExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113754,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113767,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113769,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113770,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113771,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113773,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113775,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113776,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113777,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113778,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113784,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113784,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113785,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113790,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113791,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113798,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113799,1
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113800,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - pParse
    - pStepList
    - pAll
    argTypes:
    - Parse*
    - TriggerStep*
    - Token*
    assertStmts:
    - condition: ( !pParse->pNewTrigger )
      pos:
        line_end: 113798
        line_start: 113798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 113783
        line_start: 113783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 113790
        line_start: 113790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113801
      start: 113729
    functionDepth: 13
    functionLinenumber: 113729
    functionLinenumberEnd: 113801
    functionName: sqlite3FinishTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FixExpr
    - sqlite3NestedParse
    - sqlite3Strlen30
    - sqlite3DbFree
    - sqlite3ChangeCookie
    - sqlite3DeleteTrigger
    - NEVER
    - sqlite3SchemaToIndex
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3SchemaMutexHeld
    - sqlite3DeleteTriggerStep
    - sqlite3FixTriggerStep
    - sqlite3BeginWriteOperation
    - assert
    - SCHEMA_TABLE
    - sqlite3FixInit
    - sqlite3HashInsert
    - sqlite3MPrintf
    - sqlite3HashFind
    - sqlite3GetVdbe
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FinishTrigger(\n  Parse *pParse,          /*
      Parser context */\n  TriggerStep *pStepList, /* The triggered program */\n  Token
      *pAll             /* Token that describes the complete CREATE TRIGGER */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113811,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113820
      start: 113810
    functionDepth: 10
    functionLinenumber: 113810
    functionLinenumberEnd: 113820
    functionName: TriggerStep *sqlite3TriggerSelectStep(sqlite3 *db, Select *pSelect)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE TriggerStep *sqlite3TriggerSelectStep(sqlite3 *db, Select
      *pSelect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113835,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113838,1
    - Dst: sqlite3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - op
    - pName
    argTypes:
    - sqlite3*
    - u8
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113844
      start: 113828
    functionDepth: 2
    functionLinenumber: 113828
    functionLinenumberEnd: 113844
    functionName: triggerStepAllocate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Dequote
    - sqlite3DbMallocZero
    - memcpy
    linkageType: ''
    returnType: TriggerStep
    signature: "TriggerStep *triggerStepAllocate(\n  sqlite3 *db,                /*
      Database connection */\n  u8 op,                      /* Trigger opcode */\n
      \ Token *pName                /* The target name */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113862,1
    - Dst: triggerStepAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113864,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113866,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113870,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pSelect != 0 || db->mallocFailed)
      pos:
        line_end: 113861
        line_start: 113861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113875
      start: 113853
    functionDepth: 10
    functionLinenumber: 113853
    functionLinenumberEnd: 113875
    functionName: "TriggerStep *sqlite3TriggerInsertStep(\n  sqlite3 *db,        /*
      The database connection */\n  Token *pTableName,  /* Name of the table into
      which we insert */\n  IdList *pColumn,    /* List of columns in pTableName to
      insert into */\n  Select *pSelect,    /* A SELECT statement that supplies values
      */\n  u8 orconf           /* The conflict algorithm (OE_Abort, OE_Replace, etc.)
      */\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - triggerStepAllocate
    - assert
    - sqlite3SelectDelete
    - sqlite3SelectDup
    - sqlite3IdListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep(\n  sqlite3 *db,
      \       /* The database connection */\n  Token *pTableName,  /* Name of the
      table into which we insert */\n  IdList *pColumn,    /* List of columns in pTableName
      to insert into */\n  Select *pSelect,    /* A SELECT statement that supplies
      values */\n  u8 orconf           /* The conflict algorithm (OE_Abort, OE_Replace,
      etc.) */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: triggerStepAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113891,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113893,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113894,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113897,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113900
      start: 113882
    functionDepth: 8
    functionLinenumber: 113882
    functionLinenumberEnd: 113900
    functionName: "TriggerStep *sqlite3TriggerUpdateStep(\n  sqlite3 *db,         /*
      The database connection */\n  Token *pTableName,   /* Name of the table to be
      updated */\n  ExprList *pEList,    /* The SET clause: list of column and new
      values */\n  Expr *pWhere,        /* The WHERE clause */\n  u8 orconf            /*
      The conflict algorithm. (OE_Abort, OE_Ignore, etc) */\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - triggerStepAllocate
    - sqlite3ExprDup
    - sqlite3ExprListDup
    - sqlite3ExprDelete
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep(\n  sqlite3 *db,
      \        /* The database connection */\n  Token *pTableName,   /* Name of the
      table to be updated */\n  ExprList *pEList,    /* The SET clause: list of column
      and new values */\n  Expr *pWhere,        /* The WHERE clause */\n  u8 orconf
      \           /* The conflict algorithm. (OE_Abort, OE_Ignore, etc) */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: triggerStepAllocate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113914,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113916,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113921
      start: 113907
    functionDepth: 7
    functionLinenumber: 113907
    functionLinenumberEnd: 113921
    functionName: "TriggerStep *sqlite3TriggerDeleteStep(\n  sqlite3 *db,            /*
      Database connection */\n  Token *pTableName,      /* The table from which rows
      are deleted */\n  Expr *pWhere            /* The WHERE clause */\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    - triggerStepAllocate
    - sqlite3ExprDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerDeleteStep(\n  sqlite3 *db,
      \           /* Database connection */\n  Token *pTableName,      /* The table
      from which rows are deleted */\n  Expr *pWhere            /* The WHERE clause
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113928,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113929,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113930,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113931,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113932,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pTrigger
    argTypes:
    - sqlite3*
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113934
      start: 113926
    functionDepth: 11
    functionLinenumber: 113926
    functionLinenumberEnd: 113934
    functionName: sqlite3DeleteTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3DeleteTriggerStep
    - sqlite3ExprDelete
    - sqlite3IdListDelete
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113956,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113959,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113959,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113962,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113963,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113963,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113964,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113969,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113971,1
    - Dst: sqlite3DropTriggerPtr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113976,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113979,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - pParse
    - pName
    - noErr
    argTypes:
    - Parse*
    - SrcList*
    - int
    assertStmts:
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 113955
        line_start: 113955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 113958
        line_start: 113958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 113962
        line_start: 113962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113980
      start: 113944
    functionDepth: 12
    functionLinenumber: 113944
    functionLinenumberEnd: 113980
    functionName: sqlite3DropTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - assert
    - sqlite3CodeVerifyNamedSchema
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3SrcListDelete
    - sqlite3SchemaMutexHeld
    - sqlite3DropTriggerPtr
    - sqlite3HashFind
    - sqlite3ErrorMsg
    - sqlite3ReadSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTrigger(Parse *pParse, SrcList *pName, int
      noErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:113987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pTrigger
    argTypes:
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113988
      start: 113986
    functionDepth: 3
    functionLinenumber: 113986
    functionLinenumberEnd: 113988
    functionName: tableOfTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HashFind
    linkageType: ''
    returnType: Table
    signature: Table *tableOfTrigger(Trigger *pTrigger)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114000,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114001,1
    - Dst: tableOfTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114003,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114004,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114009,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114011,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114012,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114020,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114021,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114023,1
    - Dst: ADDR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114025,1
    - Dst: ADDR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114028,1
    - Dst: ADDR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114031,1
    - Dst: ADDR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114033,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114036,1
    - Dst: sqlite3OpenMasterTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114037,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114038,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114038,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114039,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114040,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114041,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114042,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114043,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - pParse
    - pTrigger
    argTypes:
    - Parse*
    - Trigger*
    assertStmts:
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 114000
        line_start: 114000
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable->pSchema==pTrigger->pSchema || iDb==1 )
      pos:
        line_end: 114003
        line_start: 114003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable )
      pos:
        line_end: 114002
        line_start: 114002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTable!=0 )
      pos:
        line_end: 114019
        line_start: 114019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114048
      start: 113994
    functionDepth: 12
    functionLinenumber: 113994
    functionLinenumberEnd: 114048
    functionName: sqlite3DropTriggerPtr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - sqlite3VdbeChangeP4
    - VDBE_OFFSET_LINENO
    - assert
    - sqlite3OpenMasterTable
    - sqlite3VdbeAddOp4
    - tableOfTrigger
    - ArraySize
    - sqlite3AuthCheck
    - SCHEMA_TABLE
    - ADDR
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3ChangeCookie
    - sqlite3VdbeAddOpList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114057,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114057,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114059,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114060,1
    - Dst: tableOfTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114062,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - iDb
    - zName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 114056
        line_start: 114056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114070
      start: 114053
    functionDepth: 12
    functionLinenumber: 114053
    functionLinenumberEnd: 114070
    functionName: sqlite3UnlinkAndDeleteTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ALWAYS
    - tableOfTrigger
    - sqlite3SchemaMutexHeld
    - sqlite3HashInsert
    - sqlite3DeleteTrigger
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb,
      const char *zName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114083,1
    - Dst: sqlite3IdListIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114085,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pIdList
    - pEList
    argTypes:
    - IdList*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114088
      start: 114081
    functionDepth: 1
    functionLinenumber: 114081
    functionLinenumberEnd: 114088
    functionName: checkColumnOverlap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3IdListIndex
    linkageType: ''
    returnType: int
    signature: int checkColumnOverlap(IdList *pIdList, ExprList *pEList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TriggerList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114108,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114110,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114110,1
    - Dst: checkColumnOverlap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - pParse
    - pTab
    - op
    - pChanges
    - pMask
    argTypes:
    - Parse*
    - Table*
    - int
    - ExprList*
    - int*
    assertStmts:
    - condition: ( pList==0 || IsVirtual(pTab)==0 )
      pos:
        line_end: 114109
        line_start: 114109
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114120
      start: 114096
    functionDepth: 2
    functionLinenumber: 114096
    functionLinenumberEnd: 114120
    functionName: sqlite3TriggersExist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - checkColumnOverlap
    - sqlite3TriggerList
    - assert
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3TriggersExist(\n  Parse *pParse,          /*
      Parse context */\n  Table *pTab,            /* The table the contains the triggers
      */\n  int op,                 /* one of TK_DELETE, TK_INSERT, TK_UPDATE */\n
      \ ExprList *pChanges,     /* Columns that change in an UPDATE statement */\n
      \ int *pMask              /* OUT: Mask of TRIGGER_BEFORE|TRIGGER_AFTER */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114140,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114142,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114143,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114146,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pStep
    argTypes:
    - Parse*
    - TriggerStep*
    assertStmts:
    - condition: ( pSrc->nSrc>0 )
      pos:
        line_end: 114141
        line_start: 114141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 114145
        line_start: 114145
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114151
      start: 114132
    functionDepth: 8
    functionLinenumber: 114132
    functionLinenumberEnd: 114151
    functionName: targetSrcList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SrcListAppend
    - sqlite3SchemaToIndex
    - assert
    - sqlite3DbStrDup
    linkageType: ''
    returnType: SrcList
    signature: "SrcList *targetSrcList(\n  Parse *pParse,       /* The parsing context
      */\n  TriggerStep *pStep   /* The trigger containing the target token */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114166,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114168,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114184,1
    - Dst: sqlite3Update
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114188,1
    - Dst: targetSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114189,1
    - Dst: sqlite3ExprListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114190,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114191,1
    - Dst: sqlite3Insert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114197,1
    - Dst: targetSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114198,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114199,1
    - Dst: sqlite3IdListDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114200,1
    - Dst: sqlite3DeleteFrom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114206,1
    - Dst: targetSrcList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114207,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114208,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114212,1
    - Dst: sqlite3SelectDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114214,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114215,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114216,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114217,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - pParse
    - pStepList
    - orconf
    argTypes:
    - Parse*
    - TriggerStep*
    - int
    assertStmts:
    - condition: ( pParse->pTriggerTab && pParse->pToplevel )
      pos:
        line_end: 114165
        line_start: 114165
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 114167
        line_start: 114167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->okConstFactor==0 )
      pos:
        line_end: 114183
        line_start: 114183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pStepList )
      pos:
        line_end: 114166
        line_start: 114166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pStep->op==TK_SELECT )
      pos:
        line_end: 114211
        line_start: 114211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114227
      start: 114157
    functionDepth: 22
    functionLinenumber: 114157
    functionLinenumberEnd: 114227
    functionName: codeTriggerProgram
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDup
    - sqlite3Update
    - sqlite3ExprDup
    - assert
    - sqlite3VdbeAddOp0
    - sqlite3SelectDestInit
    - sqlite3SelectDup
    - sqlite3SelectDelete
    - sqlite3Select
    - sqlite3ExprListDup
    - targetSrcList
    - sqlite3DeleteFrom
    - sqlite3Insert
    linkageType: ''
    returnType: int
    signature: "int codeTriggerProgram(\n  Parse *pParse,            /* The parser
      context */\n  TriggerStep *pStepList,   /* List of statements inside the trigger
      body */\n  int orconf                /* Conflict algorithm. (OE_Abort, etc)
      */  \n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - onError
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114244
      start: 114234
    functionDepth: 0
    functionLinenumber: 114234
    functionLinenumberEnd: 114244
    functionName: onErrorText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *onErrorText(int onError)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114253,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114254,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Parse*
    - Parse*
    assertStmts:
    - condition: ( pFrom->zErrMsg==0 || pFrom->nErr )
      pos:
        line_end: 114252
        line_start: 114252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTo->zErrMsg==0 || pTo->nErr )
      pos:
        line_end: 114253
        line_start: 114253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114262
      start: 114252
    functionDepth: 5
    functionLinenumber: 114252
    functionLinenumberEnd: 114262
    functionName: transferParseError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: void
    signature: void transferParseError(Parse *pTo, Parse *pFrom)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114274,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114284,1
    - Dst: tableOfTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114284,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114285,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114290,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114294,1
    - Dst: sqlite3VdbeLinkSubProgram
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114296,1
    - Dst: sqlite3StackAllocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114304,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114306,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114315,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114317,1
    - Dst: onErrorText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114318,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114326,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114327,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114335,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114336,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114339,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114340,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114342,1
    - Dst: codeTriggerProgram
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114346,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114350,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114352,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114353,1
    - Dst: onErrorText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114353,1
    - Dst: transferParseError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114355,1
    - Dst: sqlite3VdbeTakeOpArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114357,1
    - Dst: sqlite3VdbeDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114365,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114368,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114369,1
    - Dst: sqlite3ParserReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114370,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114371,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 4
    argNames:
    - pParse
    - pTrigger
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    assertStmts:
    - condition: ( pTop->pVdbe )
      pos:
        line_end: 114284
        line_start: 114284
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pSubParse->pTriggerPrg && !pSubParse->nMaxArg )
      pos:
        line_end: 114368
        line_start: 114368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) )
      pos:
        line_end: 114283
        line_start: 114283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pSubParse->pAinc       && !pSubParse->pZombieTab )
      pos:
        line_end: 114367
        line_start: 114367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114374
      start: 114268
    functionDepth: 23
    functionLinenumber: 114268
    functionLinenumberEnd: 114374
    functionName: codeRowTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3VdbeLinkSubProgram
    - sqlite3VdbeAddOp0
    - tableOfTrigger
    - VdbeComment
    - sqlite3VdbeTakeOpArray
    - sqlite3ParserReset
    - sqlite3StackFree
    - assert
    - sqlite3ExprIfFalse
    - transferParseError
    - sqlite3VdbeDelete
    - onErrorText
    - sqlite3VdbeChangeP4
    - sqlite3ExprDup
    - sqlite3VdbeResolveLabel
    - sqlite3MPrintf
    - sqlite3ParseToplevel
    - sqlite3DbMallocZero
    - sqlite3VdbeMakeLabel
    - sqlite3ResolveExprNames
    - sqlite3StackAllocZero
    - sqlite3GetVdbe
    - sqlite3ExprDelete
    - codeTriggerProgram
    linkageType: ''
    returnType: TriggerPrg
    signature: "TriggerPrg *codeRowTrigger(\n  Parse *pParse,       /* Current parse
      context */\n  Trigger *pTrigger,   /* Trigger to code */\n  Table *pTab,         /*
      The table pTrigger is attached to */\n  int orconf           /* ON CONFLICT
      policy to code trigger program with */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114388,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114391,1
    - Dst: tableOfTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114391,1
    - Dst: codeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - pParse
    - pTrigger
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    assertStmts:
    - condition: ( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) )
      pos:
        line_end: 114390
        line_start: 114390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114408
      start: 114382
    functionDepth: 24
    functionLinenumber: 114382
    functionLinenumberEnd: 114408
    functionName: getRowTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - tableOfTrigger
    - sqlite3ParseToplevel
    - codeRowTrigger
    - assert
    linkageType: ''
    returnType: TriggerPrg
    signature: "TriggerPrg *getRowTrigger(\n  Parse *pParse,       /* Current parse
      context */\n  Trigger *pTrigger,   /* Trigger to code */\n  Table *pTab,         /*
      The table trigger pTrigger is attached to */\n  int orconf           /* ON CONFLICT
      algorithm. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114424,1
    - Dst: getRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114426,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114427,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114434,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114435,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114436,1
    - Dst: onErrorText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114437,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - pParse
    - p
    - pTab
    - reg
    - orconf
    - ignoreJump
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pPrg || pParse->nErr || pParse->db->mallocFailed )
      pos:
        line_end: 114426
        line_start: 114426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114446
      start: 114416
    functionDepth: 25
    functionLinenumber: 114416
    functionLinenumberEnd: 114446
    functionName: sqlite3CodeRowTriggerDirect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - onErrorText
    - sqlite3VdbeChangeP4
    - getRowTrigger
    - assert
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3GetVdbe
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeRowTriggerDirect(\n  Parse *pParse,       /*
      Parse context */\n  Trigger *p,          /* Trigger to code */\n  Table *pTab,
      \        /* The table to code triggers from */\n  int reg,             /* Reg
      array containing OLD.* and NEW.* values */\n  int orconf,          /* ON CONFLICT
      policy */\n  int ignoreJump       /* Instruction to jump to for RAISE(IGNORE)
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114502,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114503,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114512,1
    - Dst: checkColumnOverlap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114518,1
    - Dst: sqlite3CodeRowTriggerDirect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 9
    argNames:
    - pParse
    - pTrigger
    - op
    - pChanges
    - tr_tm
    - pTab
    - reg
    - orconf
    - ignoreJump
    argTypes:
    - Parse*
    - Trigger*
    - int
    - ExprList*
    - int
    - Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( op==TK_UPDATE || op==TK_INSERT || op==TK_DELETE )
      pos:
        line_end: 114500
        line_start: 114500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSchema!=0 )
      pos:
        line_end: 114509
        line_start: 114509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( tr_tm==TRIGGER_BEFORE || tr_tm==TRIGGER_AFTER )
      pos:
        line_end: 114501
        line_start: 114501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pTabSchema!=0 )
      pos:
        line_end: 114510
        line_start: 114510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (op==TK_UPDATE)==(pChanges!=0) )
      pos:
        line_end: 114502
        line_start: 114502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( p->pSchema==p->pTabSchema \n         || p->pSchema==pParse->db->aDb[1].pSchema
        )"
      pos:
        line_end: 114512
        line_start: 114511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114523
      start: 114488
    functionDepth: 26
    functionLinenumber: 114488
    functionLinenumberEnd: 114523
    functionName: sqlite3CodeRowTrigger
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - checkColumnOverlap
    - sqlite3CodeRowTriggerDirect
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeRowTrigger(\n  Parse *pParse,       /* Parse
      context */\n  Trigger *pTrigger,   /* List of triggers on table pTab */\n  int
      op,              /* One of TK_UPDATE, TK_INSERT, TK_DELETE */\n  ExprList *pChanges,
      \ /* Changes list for any UPDATE OF triggers */\n  int tr_tm,           /* One
      of TRIGGER_BEFORE, TRIGGER_AFTER */\n  Table *pTab,         /* The table to
      code triggers from */\n  int reg,             /* The first in an array of registers
      (see above) */\n  int orconf,          /* ON CONFLICT policy */\n  int ignoreJump
      \      /* Instruction to jump to for RAISE(IGNORE) */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114563,1
    - Dst: checkColumnOverlap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114566,1
    - Dst: getRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 7
    argNames:
    - pParse
    - pTrigger
    - pChanges
    - isNew
    - tr_tm
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - ExprList*
    - int
    - int
    - Table*
    - int
    assertStmts:
    - condition: ( isNew==1 || isNew==0 )
      pos:
        line_end: 114562
        line_start: 114562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114577
      start: 114550
    functionDepth: 25
    functionLinenumber: 114550
    functionLinenumberEnd: 114577
    functionName: sqlite3TriggerColmask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - checkColumnOverlap
    - getRowTrigger
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TriggerColmask(\n  Parse *pParse,       /* Parse
      context */\n  Trigger *pTrigger,   /* List of triggers on table pTab */\n  ExprList
      *pChanges,  /* Changes list for any UPDATE OF triggers */\n  int isNew,           /*
      1 for new.* ref mask, 0 for old.* ref mask */\n  int tr_tm,           /* Mask
      of TRIGGER_BEFORE|TRIGGER_AFTER */\n  Table *pTab,         /* The table to code
      triggers from */\n  int orconf           /* Default ON CONFLICT policy for trigger
      steps */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114644,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114647,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114647,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114649,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114650,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114651,1
    - Dst: sqlite3VdbeDb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114651,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114654,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - v
    - pTab
    - i
    - iReg
    argTypes:
    - Vdbe*
    - Table*
    - int
    - int
    assertStmts:
    - condition: ( pTab!=0 )
      pos:
        line_end: 114643
        line_start: 114643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<pTab->nCol )
      pos:
        line_end: 114649
        line_start: 114649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114662
      start: 114643
    functionDepth: 12
    functionLinenumber: 114643
    functionLinenumberEnd: 114662
    functionName: sqlite3ColumnDefault
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeChangeP4
    - assert
    - sqlite3VdbeDb
    - ENC
    - sqlite3VdbeAddOp1
    - VdbeComment
    - sqlite3ValueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int
      iReg)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114726,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114731,1
    - Dst: sqlite3SrcListLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114735,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114737,1
    - Dst: sqlite3TriggersExist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114743,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114745,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114756,1
    - Dst: sqlite3IsReadOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114759,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114770,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114770,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114772,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114782,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114786,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114791,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114803,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114807,1
    - Dst: sqlite3IsRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114819,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114824,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114843,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114844,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114845,1
    - Dst: sqlite3FkRequired
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114853,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114877,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114879,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114880,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114884,1
    - Dst: updateVirtualTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114885,1
    - Dst: sqlite3AuthContextPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114908,1
    - Dst: sqlite3MaterializeView
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114916,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114923,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114929,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114930,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114931,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114935,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114939,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114941,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114946,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114952,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114958,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114959,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114960,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114961,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114964,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114966,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114970,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114974,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114975,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114976,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114978,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114985,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114988,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:114997,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115001,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115010,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115017,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115018,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115019,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115022,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115023,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115024,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115026,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115027,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115027,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115028,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115029,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115030,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115032,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115034,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115035,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115036,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115043,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115045,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115046,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115046,1
    - Dst: sqlite3FkOldmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115052,1
    - Dst: sqlite3TriggerColmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115053,1
    - Dst: MASKBIT32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115058,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115061,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115062,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115064,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115068,1
    - Dst: sqlite3TriggerColmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115085,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115091,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115095,1
    - Dst: MASKBIT32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115096,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115102,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115103,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115104,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115106,1
    - Dst: sqlite3TableAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115115,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115116,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115126,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115127,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115129,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115130,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115140,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115150,1
    - Dst: sqlite3GenerateConstraintChecks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115151,1
    - Dst: sqlite3FkCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115156,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115162,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115164,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115166,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115168,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115172,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115175,1
    - Dst: sqlite3FkCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115179,1
    - Dst: sqlite3CompleteInsertion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115183,1
    - Dst: sqlite3FkActions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115190,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115197,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115200,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115209,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115210,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115210,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115212,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115214,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115218,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115220,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115223,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115230,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115239,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115240,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115241,1
    - Dst: sqlite3AuthContextPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115245,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115246,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115247,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115248,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115249,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 354
    argCount: 5
    argNames:
    - pParse
    - pTabList
    - pChanges
    - pWhere
    - onError
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    - Expr*
    - int
    assertStmts:
    - condition: ( chngRowid==0 || chngRowid==1 )
      pos:
        line_end: 114843
        line_start: 114843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 114951
        line_start: 114951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 114730
        line_start: 114730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( regOldRowid>0 )
      pos:
        line_end: 115149
        line_start: 115149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aRegIdx )
      pos:
        line_end: 115217
        line_start: 115217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( chngPk==0 || chngPk==1 )
      pos:
        line_end: 114844
        line_start: 114844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPk )
      pos:
        line_end: 115016
        line_start: 115016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (chngRowid & chngPk)==0 )
      pos:
        line_end: 114842
        line_start: 114842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTrigger || tmask==0 )
      pos:
        line_end: 114744
        line_start: 114744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( chngKey || pTrigger || hasFK || regOldRowid==regNewRowid )
      pos:
        line_end: 115042
        line_start: 115042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115251
      start: 114671
    functionDepth: 27
    functionLinenumber: 114671
    functionLinenumberEnd: 115251
    functionName: sqlite3Update
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3IsReadOnly
    - memset
    - sqlite3SrcListLookup
    - sqlite3CompleteInsertion
    - sqlite3OpenTableAndIndices
    - sqlite3ExprDelete
    - sqlite3FkRequired
    - sqlite3AuthContextPush
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3WhereOkOnePass
    - sqlite3VdbeSetColName
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3IndexAffinityStr
    - sqlite3ErrorMsg
    - sqlite3CodeRowTrigger
    - sqlite3DbFree
    - VdbeCoverageNeverTaken
    - sqlite3SchemaToIndex
    - sqlite3FkActions
    - IsPrimaryKeyIndex
    - sqlite3StrICmp
    - sqlite3VdbeAddOp4Int
    - IsVirtual
    - sqlite3AuthContextPop
    - VdbeCoverage
    - MASKBIT32
    - sqlite3GenerateConstraintChecks
    - sqlite3TriggersExist
    - HasRowid
    - sqlite3TriggerColmask
    - VdbeCoverageIf
    - sqlite3ExprListDelete
    - sqlite3BeginWriteOperation
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeToNoop
    - sqlite3WhereBegin
    - sqlite3AuthCheck
    - sqlite3GenerateRowIndexDelete
    - sqlite3FkCheck
    - sqlite3VdbeAddOp2
    - sqlite3IsRowid
    - sqlite3FkOldmask
    - sqlite3PrimaryKeyIndex
    - sqlite3AutoincrementEnd
    - updateVirtualTable
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeSetNumCols
    - sqlite3ViewGetColumnNames
    - sqlite3VdbeAddOp4
    - sqlite3TableAffinity
    - sqlite3MaterializeView
    - sqlite3SrcListDelete
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3VdbeCountChanges
    - sqlite3WhereEnd
    - sqlite3VdbeMakeLabel
    - sqlite3ResolveExprNames
    - sqlite3GetVdbe
    - sqlite3ExprCode
    - testcase
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Update(\n  Parse *pParse,         /* The parser
      context */\n  SrcList *pTabList,     /* The table in which we should change
      things */\n  ExprList *pChanges,    /* Things to be changed */\n  Expr *pWhere,
      \         /* The WHERE clause.  May be null */\n  int onError            /*
      How to handle constraint errors */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115301,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115307,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115307,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115309,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115312,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115315,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115317,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115319,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115326,1
    - Dst: sqlite3SelectDestInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115331,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115332,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115337,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115337,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115338,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115339,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115341,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115343,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115344,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115345,1
    - Dst: sqlite3MayAbort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115346,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115347,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115347,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115348,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115349,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - pTab
    - pChanges
    - pRowid
    - aXRef
    - pWhere
    - onError
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    - ExprList*
    - Expr*
    - int*
    - Expr*
    - int
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 115325
        line_start: 115325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->iPKey<0 )
      pos:
        line_end: 115311
        line_start: 115311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115353
      start: 115282
    functionDepth: 22
    functionLinenumber: 115282
    functionLinenumberEnd: 115353
    functionName: updateVirtualTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VtabMakeWritable
    - sqlite3ExprListAppend
    - sqlite3ExprDup
    - assert
    - sqlite3SelectDestInit
    - sqlite3SelectNew
    - sqlite3MayAbort
    - sqlite3Expr
    - sqlite3GetVTable
    - sqlite3Select
    - sqlite3VdbeJumpHere
    - VdbeCoverage
    - sqlite3SelectDelete
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: "void updateVirtualTable(\n  Parse *pParse,       /* The parsing context
      */\n  SrcList *pSrc,       /* The virtual table to be modified */\n  Table *pTab,
      \        /* The virtual table */\n  ExprList *pChanges,  /* The columns to change
      in the UPDATE statement */\n  Expr *pRowid,        /* Expression used to recompute
      the rowid */\n  int *aXRef,          /* Mapping from columns of pTab to entries
      in pChanges */\n  Expr *pWhere,        /* WHERE clause of the UPDATE statement
      */\n  int onError          /* ON CONFLICT strategy */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115384,1
    - Dst: sqlite3SetString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115386,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - pStmt
    - pzErrMsg
    argTypes:
    - sqlite3*
    - sqlite3_stmt*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115389
      start: 115382
    functionDepth: 24
    functionLinenumber: 115382
    functionLinenumberEnd: 115389
    functionName: vacuumFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SetString
    - sqlite3_errmsg
    - sqlite3VdbeFinalize
    linkageType: ''
    returnType: int
    signature: int vacuumFinalize(sqlite3 *db, sqlite3_stmt *pStmt, char **pzErrMsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115400,1
    - Dst: sqlite3SetString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115401,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115401,1
    - Dst: sqlite3_errcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115402,1
    - Dst: VVA_ONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115404,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115404,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115405,1
    - Dst: vacuumFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - zSql
    argTypes:
    - sqlite3*
    - char**
    - char*
    assertStmts:
    - condition: ( rc!=SQLITE_ROW || (db->flags&SQLITE_CountRows) )
      pos:
        line_end: 115404
        line_start: 115404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115407
      start: 115394
    functionDepth: 27
    functionLinenumber: 115394
    functionLinenumberEnd: 115407
    functionName: execSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_prepare
    - assert
    - VVA_ONLY
    - sqlite3_step
    - sqlite3SetString
    - vacuumFinalize
    - sqlite3_errcode
    linkageType: ''
    returnType: int
    signature: int execSql(sqlite3 *db, char **pzErrMsg, const char *zSql)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115417,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115420,1
    - Dst: execSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115421,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115421,1
    - Dst: vacuumFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115423,1
    - Dst: vacuumFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - zSql
    argTypes:
    - sqlite3*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115429
      start: 115413
    functionDepth: 28
    functionLinenumber: 115413
    functionLinenumberEnd: 115429
    functionName: execExecSql
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - execSql
    - sqlite3_prepare
    - sqlite3_step
    - sqlite3_column_text
    - vacuumFinalize
    linkageType: ''
    returnType: int
    signature: int execExecSql(sqlite3 *db, char **pzErrMsg, const char *zSql)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115462,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115464,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115468
      start: 115461
    functionDepth: 10
    functionLinenumber: 115461
    functionLinenumberEnd: 115468
    functionName: sqlite3Vacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Vacuum(Parse *pParse)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SetString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115488,1
    - Dst: sqlite3SetString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115492,1
    - Dst: sqlite3PagerIsMemdb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115508,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115508,1
    - Dst: sqlite3TempInMemory
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115525,1
    - Dst: execSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115530,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115533,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115533,1
    - Dst: sqlite3BtreeCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115542,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115544,1
    - Dst: sqlite3CodecGetKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115552,1
    - Dst: execSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115557,1
    - Dst: execSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115564,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115566,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115570,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115570,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115575,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115575,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115576,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115577,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115584,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115585,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115591,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115597,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115601,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115610,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115612,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115619,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115625,1
    - Dst: execExecSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115630,1
    - Dst: execSql
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115643,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115676,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115676,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115677,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115677,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115680,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115683,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115684,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115685,1
    - Dst: sqlite3BtreeCopyFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115688,1
    - Dst: sqlite3BtreeCommit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115690,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115693,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115693,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115697,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115698,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115698,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115706,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115718,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115725,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 129
    argCount: 2
    argNames:
    - pzErrMsg
    - db
    argTypes:
    - char**
    - sqlite3*
    assertStmts:
    - condition: ( strcmp(pDb->zName,"vacuum_db")==0 )
      pos:
        line_end: 115532
        line_start: 115532
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (db->flags & SQLITE_Vacuum)!=0 )
      pos:
        line_end: 115618
        line_start: 115618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 115696
        line_start: 115696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 1==sqlite3BtreeIsInTrans(pMain) )
      pos:
        line_end: 115676
        line_start: 115676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (db->flags & SQLITE_Vacuum)==0 )
      pos:
        line_end: 115609
        line_start: 115609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 1==sqlite3BtreeIsInTrans(pTemp) )
      pos:
        line_end: 115675
        line_start: 115675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115728
      start: 115473
    functionDepth: 29
    functionLinenumber: 115473
    functionLinenumberEnd: 115728
    functionName: sqlite3RunVacuum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreePager
    - sqlite3PagerIsMemdb
    - execExecSql
    - sqlite3CodecGetKey
    - NEVER
    - execSql
    - sqlite3SetString
    - sqlite3BtreeClose
    - sqlite3BtreeGetOptimalReserve
    - sqlite3BtreeIsInTrans
    - assert
    - strcmp
    - sqlite3BtreeGetPageSize
    - sqlite3BtreeGetMeta
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3BtreeGetAutoVacuum
    - sqlite3BtreeUpdateMeta
    - sqlite3TempInMemory
    - sqlite3PagerGetJournalMode
    - sqlite3BtreeSetPageSize
    - ArraySize
    - sqlite3BtreeBeginTrans
    - sqlite3BtreeSetAutoVacuum
    - sqlite3BtreeCopyFile
    - sqlite3BtreeCommit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115779,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115780,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115781,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115785,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115789,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115794,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115795,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115798,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115802,1
    - Dst: xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115803,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts:
    - condition: ( pDel==0 || pDel==pMod )
      pos:
        line_end: 115794
        line_start: 115794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115807
      start: 115769
    functionDepth: 6
    functionLinenumber: 115769
    functionLinenumberEnd: 115807
    functionName: createModule
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3ApiExit
    - assert
    - memcpy
    - sqlite3Strlen30
    - xDestroy
    - sqlite3HashFind
    - sqlite3HashInsert
    - sqlite3DbFree
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: "int createModule(\n  sqlite3 *db,                    /* Database in
      which module is registered */\n  const char *zName,              /* Name assigned
      to this module */\n  const sqlite3_module *pModule,  /* The definition of the
      module */\n  void *pAux,                     /* Context pointer for xCreate/xConnect
      */\n  void (*xDestroy)(void *)        /* Module destructor function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115820,1
    - Dst: createModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115823
      start: 115813
    functionDepth: 10
    functionLinenumber: 115813
    functionLinenumberEnd: 115823
    functionName: sqlite3_create_module
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - createModule
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_module(\n  sqlite3 *db,                    /*
      Database in which module is registered */\n  const char *zName,              /*
      Name assigned to this module */\n  const sqlite3_module *pModule,  /* The definition
      of the module */\n  void *pAux                      /* Context pointer for xCreate/xConnect
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115836,1
    - Dst: createModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115839
      start: 115828
    functionDepth: 10
    functionLinenumber: 115828
    functionLinenumberEnd: 115839
    functionName: sqlite3_create_module_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - createModule
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_module_v2(\n  sqlite3 *db,                    /*
      Database in which module is registered */\n  const char *zName,              /*
      Name assigned to this module */\n  const sqlite3_module *pModule,  /* The definition
      of the module */\n  void *pAux,                     /* Context pointer for xCreate/xConnect
      */\n  void (*xDestroy)(void *)        /* Module destructor function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115851
      start: 115849
    functionDepth: 0
    functionLinenumber: 115849
    functionLinenumberEnd: 115851
    functionName: sqlite3VtabLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabLock(VTable *pVTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115861,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pTab
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 115860
        line_start: 115860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115864
      start: 115859
    functionDepth: 1
    functionLinenumber: 115859
    functionLinenumberEnd: 115864
    functionName: sqlite3GetVTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 8
    functionsReached:
    - assert
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3GetVTable(sqlite3 *db, Table *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115873,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115874,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115875,1
    - Dst: sqlite3_vtab*::pModule::xDisconnect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115881,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - VTable*
    assertStmts:
    - condition: ( db )
      pos:
        line_end: 115872
        line_start: 115872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVTab->nRef>0 )
      pos:
        line_end: 115873
        line_start: 115873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->magic==SQLITE_MAGIC_OPEN || db->magic==SQLITE_MAGIC_ZOMBIE
        )
      pos:
        line_end: 115874
        line_start: 115874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115885
      start: 115870
    functionDepth: 5
    functionLinenumber: 115870
    functionLinenumberEnd: 115885
    functionName: sqlite3VtabUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_vtab*::pModule::xDisconnect
    - sqlite3DbFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabUnlock(VTable *pVTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115905,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115905,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115910,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( db==0 || sqlite3SchemaMutexHeld(db, 0, p->pSchema) )
      pos:
        line_end: 115904
        line_start: 115904
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db || pRet )
      pos:
        line_end: 115921
        line_start: 115921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db2 )
      pos:
        line_end: 115909
        line_start: 115909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115924
      start: 115894
    functionDepth: 1
    functionLinenumber: 115894
    functionLinenumberEnd: 115924
    functionName: vtabDisconnectAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaMutexHeld
    - assert
    linkageType: ''
    returnType: VTable
    signature: VTable *vtabDisconnectAll(sqlite3 *db, Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115937,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115937,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115938,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115938,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115939,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115939,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(p) )
      pos:
        line_end: 115936
        line_start: 115936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 115938
        line_start: 115938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 115937
        line_start: 115937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115949
      start: 115934
    functionDepth: 6
    functionLinenumber: 115934
    functionLinenumberEnd: 115949
    functionName: sqlite3VtabDisconnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - IsVirtual
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3VtabUnlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabDisconnect(sqlite3 *db, Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115976,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115976,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115977,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115977,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115980,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:115983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 115975
        line_start: 115975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 115976
        line_start: 115976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115987
      start: 115972
    functionDepth: 6
    functionLinenumber: 115972
    functionLinenumberEnd: 115987
    functionName: sqlite3VtabUnlockList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3ExpirePreparedStatements
    - sqlite3VtabUnlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabUnlockList(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtabDisconnectAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116004,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116008,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116012
      start: 116003
    functionDepth: 5
    functionLinenumber: 116003
    functionLinenumberEnd: 116012
    functionName: sqlite3VtabClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - vtabDisconnectAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabClear(sqlite3 *db, Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116024,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116028,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116030,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - db
    - pTable
    - zArg
    argTypes:
    - sqlite3*
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116038
      start: 116020
    functionDepth: 6
    functionLinenumber: 116020
    functionLinenumberEnd: 116038
    functionName: addModuleArgument
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbRealloc
    linkageType: ''
    returnType: void
    signature: void addModuleArgument(sqlite3 *db, Table *pTable, char *zArg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StartTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116056,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116059,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116062,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116063,1
    - Dst: addModuleArgument
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116067,1
    - Dst: sqlite3NameFromToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116067,1
    - Dst: addModuleArgument
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116068,1
    - Dst: addModuleArgument
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116069,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116069,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116070,1
    - Dst: sqlite3AuthCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - pParse
    - pName1
    - pName2
    - pModuleName
    - ifNotExists
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - int
    assertStmts:
    - condition: ( iDb>=0 )
      pos:
        line_end: 116062
        line_start: 116062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0==pTable->pIndex )
      pos:
        line_end: 116058
        line_start: 116058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pParse->sNameToken.z==pName2->z && pName2->z!=0)\n       || (pParse->sNameToken.z==pName1->z
        && pName2->z==0)\n  )"
      pos:
        line_end: 116071
        line_start: 116069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116088
      start: 116045
    functionDepth: 11
    functionLinenumber: 116045
    functionLinenumberEnd: 116088
    functionName: sqlite3VtabBeginParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - assert
    - sqlite3DbStrDup
    - sqlite3StartTable
    - sqlite3AuthCheck
    - addModuleArgument
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VtabBeginParse(\n  Parse *pParse,        /*
      Parsing context */\n  Token *pName1,        /* Name of new table, or database
      name */\n  Token *pName2,        /* Name of new table or NULL */\n  Token *pModuleName,
      \  /* Name of the module for the virtual table */\n  int ifNotExists       /*
      No error if the table already exists */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addModuleArgument
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116100,1
    - Dst: sqlite3DbStrNDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116102
      start: 116095
    functionDepth: 7
    functionLinenumber: 116095
    functionLinenumberEnd: 116102
    functionName: addArgumentToVtab
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - addModuleArgument
    linkageType: ''
    returnType: void
    signature: void addArgumentToVtab(Parse *pParse)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: addArgumentToVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116113,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116134,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116144,1
    - Dst: sqlite3NestedParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116145,1
    - Dst: SCHEMA_TABLE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116149,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116155,1
    - Dst: sqlite3GetVdbe
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116156,1
    - Dst: sqlite3ChangeCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116157,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116159,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116160,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116161,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116164,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116165,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116177,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116177,1
    - Dst: sqlite3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - pParse
    - pEnd
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pSchema) )
      pos:
        line_end: 116176
        line_start: 116176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab==pOld )
      pos:
        line_end: 116180
        line_start: 116180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116186
      start: 116108
    functionDepth: 10
    functionLinenumber: 116108
    functionLinenumberEnd: 116186
    functionName: sqlite3VtabFinishParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - assert
    - sqlite3MPrintf
    - sqlite3NestedParse
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3SchemaMutexHeld
    - SCHEMA_TABLE
    - addArgumentToVtab
    - sqlite3VdbeAddOp2
    - sqlite3HashInsert
    - sqlite3GetVdbe
    - sqlite3DbFree
    - sqlite3ChangeCookie
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabFinishParse(Parse *pParse, Token *pEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addArgumentToVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116196
      start: 116192
    functionDepth: 8
    functionLinenumber: 116192
    functionLinenumberEnd: 116196
    functionName: sqlite3VtabArgInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - addArgumentToVtab
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabArgInit(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: (pArg->z <= p->z)
      pos:
        line_end: 116207
        line_start: 116207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116211
      start: 116202
    functionDepth: 0
    functionLinenumber: 116202
    functionLinenumberEnd: 116211
    functionName: sqlite3VtabArgExtend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabArgExtend(Parse *pParse, Token *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116238,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116245,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116250,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116252,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116258,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116262,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116263,1
    - Dst: xConstruct
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116272,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116276,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116278,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116279,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116281,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116282,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116285,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116290,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116291,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116312,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116313,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116330,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116342,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 4
    argNames:
    - db
    - pTab
    - pMod
    - pzErr
    argTypes:
    - sqlite3*
    - Table*
    - Module*
    - char**
    assertStmts:
    - condition: ( xConstruct )
      pos:
        line_end: 116262
        line_start: 116262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( &db->pVtabCtx )
      pos:
        line_end: 116261
        line_start: 116261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sCtx.pTab==pTab )
      pos:
        line_end: 116271
        line_start: 116271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (zType[i-1]==' ')
      pos:
        line_end: 116329
        line_start: 116329
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116344
      start: 116218
    functionDepth: 8
    functionLinenumber: 116218
    functionLinenumberEnd: 116344
    functionName: vtabCallConstructor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SchemaToIndex
    - memset
    - assert
    - sqlite3_free
    - sqlite3MPrintf
    - ALWAYS
    - sqlite3DbMallocZero
    - sqlite3StrNICmp
    - sqlite3Strlen30
    - xConstruct
    - sqlite3VtabUnlock
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: "int vtabCallConstructor(\n  sqlite3 *db, \n  Table *pTab,\n  Module
      *pMod,\n  int (*xConstruct)(sqlite3*,void*,int,const char*const*,sqlite3_vtab**,char**),\n
      \ char **pzErr\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116359,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116360,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116366,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116370,1
    - Dst: vtabCallConstructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116374,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116376,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pTab )
      pos:
        line_end: 116358
        line_start: 116358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116382
      start: 116353
    functionDepth: 9
    functionLinenumber: 116353
    functionLinenumberEnd: 116382
    functionName: sqlite3VtabCallConnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - vtabCallConstructor
    - sqlite3GetVTable
    - sqlite3HashFind
    - sqlite3ErrorMsg
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallConnect(Parse *pParse, Table *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116394,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116403
      start: 116387
    functionDepth: 6
    functionLinenumber: 116387
    functionLinenumberEnd: 116403
    functionName: growVTrans
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbRealloc
    linkageType: ''
    returnType: int
    signature: int growVTrans(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VtabLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pVTab
    argTypes:
    - sqlite3*
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116413
      start: 116409
    functionDepth: 1
    functionLinenumber: 116409
    functionLinenumberEnd: 116413
    functionName: addToVTrans
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabLock
    linkageType: ''
    returnType: void
    signature: void addToVTrans(sqlite3 *db, VTable *pVTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116430,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116434,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116441,1
    - Dst: vtabCallConstructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116444,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116449,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116449,1
    - Dst: growVTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116450,1
    - Dst: addToVTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116452,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - db
    - iDb
    - zTab
    - pzErr
    argTypes:
    - sqlite3*
    - int
    - char*
    - char**
    assertStmts:
    - condition: ( pTab && (pTab->tabFlags & TF_Virtual)!=0 && !pTab->pVTable )
      pos:
        line_end: 116429
        line_start: 116429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116457
      start: 116423
    functionDepth: 9
    functionLinenumber: 116423
    functionLinenumberEnd: 116457
    functionName: sqlite3VtabCallCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - vtabCallConstructor
    - sqlite3MPrintf
    - ALWAYS
    - sqlite3GetVTable
    - addToVTrans
    - growVTrans
    - sqlite3FindTable
    - sqlite3HashFind
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallCreate(sqlite3 *db, int iDb, const char
      *zTab, char **pzErr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116472,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116476,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116479,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116480,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116484,1
    - Dst: sqlite3StackAllocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116486,1
    - Dst: sqlite3RunParser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116494,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116508,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116509,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116515,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116517,1
    - Dst: sqlite3ParserReset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116518,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116519,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116522,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116523,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116524,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - db
    - zCreateTable
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( (pTab->tabFlags & TF_Virtual)!=0 )
      pos:
        line_end: 116483
        line_start: 116483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (rc&0xff)==rc )
      pos:
        line_end: 116521
        line_start: 116521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116526
      start: 116464
    functionDepth: 24
    functionLinenumber: 116464
    functionLinenumberEnd: 116526
    functionName: sqlite3_declare_vtab
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3VdbeFinalize
    - sqlite3SafetyCheckOk
    - sqlite3Error
    - sqlite3RunParser
    - sqlite3DeleteTable
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    - sqlite3DbFree
    - sqlite3StackFree
    - sqlite3StackAllocZero
    - sqlite3ParserReset
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116539,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116540,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116543,1
    - Dst: vtabDisconnectAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116548,1
    - Dst: VTable*::pMod::pModule::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116549,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116552,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - db
    - iDb
    - zTab
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( p->pVtab )
      pos:
        line_end: 116542
        line_start: 116542
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab->pVTable==p && p->pNext==0 )
      pos:
        line_end: 116551
        line_start: 116551
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116560
      start: 116535
    functionDepth: 6
    functionLinenumber: 116535
    functionLinenumberEnd: 116560
    functionName: sqlite3VtabCallDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VtabUnlock
    - ALWAYS
    - vtabDisconnectAll
    - sqlite3FindTable
    - VTable*::pMod::pModule::xDestroy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char
      *zTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116581,1
    - Dst: sqlite3VtabUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116584,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - db
    - offset
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116589
      start: 116570
    functionDepth: 6
    functionLinenumber: 116570
    functionLinenumberEnd: 116589
    functionName: callFinaliser
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabUnlock
    - sqlite3DbFree
    - x
    linkageType: ''
    returnType: void
    signature: void callFinaliser(sqlite3 *db, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116608,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116614
      start: 116598
    functionDepth: 7
    functionLinenumber: 116598
    functionLinenumberEnd: 116614
    functionName: sqlite3VtabSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VtabImportErrmsg
    - x
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabSync(sqlite3 *db, Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callFinaliser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116623
      start: 116620
    functionDepth: 7
    functionLinenumber: 116620
    functionLinenumberEnd: 116623
    functionName: sqlite3VtabRollback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - callFinaliser
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabRollback(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callFinaliser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116632
      start: 116629
    functionDepth: 7
    functionLinenumber: 116629
    functionLinenumberEnd: 116632
    functionName: sqlite3VtabCommit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - callFinaliser
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCommit(sqlite3 *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VtabInSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116651,1
    - Dst: growVTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116671,1
    - Dst: sqlite3_module*::xBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116673,1
    - Dst: addToVTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - db
    - pVTab
    argTypes:
    - sqlite3*
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116680
      start: 116642
    functionDepth: 7
    functionLinenumber: 116642
    functionLinenumberEnd: 116680
    functionName: sqlite3VtabBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - growVTrans
    - sqlite3VtabInSync
    - sqlite3_module*::xBegin
    - addToVTrans
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabBegin(sqlite3 *db, VTable *pVTab)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116700,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116701,1
    - Dst: xMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116722,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - db
    - op
    - iSavepoint
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE||op==SAVEPOINT_ROLLBACK||op==SAVEPOINT_BEGIN
        )
      pos:
        line_end: 116699
        line_start: 116699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iSavepoint>=-1 )
      pos:
        line_end: 116700
        line_start: 116700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116728
      start: 116697
    functionDepth: 0
    functionLinenumber: 116697
    functionLinenumberEnd: 116728
    functionName: sqlite3VtabSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - xMethod
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabSavepoint(sqlite3 *db, int op, int iSavepoint)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116761,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116764,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116766,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116768,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116775,1
    - Dst: sqlite3_module*::xFindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116780,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116781,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116789,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116790,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116796,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - db
    - pDef
    - nArg
    - pExpr
    argTypes:
    - sqlite3*
    - FuncDef*
    - int
    - Expr*
    assertStmts:
    - condition: ( pVtab->pModule!=0 )
      pos:
        line_end: 116767
        line_start: 116767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVtab!=0 )
      pos:
        line_end: 116766
        line_start: 116766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116801
      start: 116743
    functionDepth: 6
    functionLinenumber: 116743
    functionLinenumberEnd: 116801
    functionName: sqlite3VtabOverloadFunction
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - sqlite3_module*::xFindFunction
    - assert
    - sqlite3GetVTable
    - sqlite3DbMallocZero
    - sqlite3DbStrDup
    - memcpy
    - sqlite3Strlen30
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VtabOverloadFunction(\n  sqlite3 *db,    /*
      Database connection for reporting malloc problems */\n  FuncDef *pDef,  /* Function
      to possibly overload */\n  int nArg,       /* Number of arguments to the function
      */\n  Expr *pExpr     /* First argument to the function */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116814,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116814,1
    - Dst: sqlite3_realloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 116813
        line_start: 116813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116826
      start: 116809
    functionDepth: 1
    functionLinenumber: 116809
    functionLinenumberEnd: 116826
    functionName: sqlite3VtabMakeWritable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3ParseToplevel
    - sqlite3_realloc64
    - assert
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabMakeWritable(Parse *pParse, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116840,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116842,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116843,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( OE_Ignore==4 && OE_Replace==5 )
      pos:
        line_end: 116842
        line_start: 116842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( OE_Rollback==1 && OE_Abort==2 && OE_Fail==3 )
      pos:
        line_end: 116841
        line_start: 116841
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->vtabOnConflict>=1 && db->vtabOnConflict<=5 )
      pos:
        line_end: 116843
        line_start: 116843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116846
      start: 116835
    functionDepth: 10
    functionLinenumber: 116835
    functionLinenumberEnd: 116846
    functionName: sqlite3_vtab_on_conflict
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vtab_on_conflict(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116858,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116860,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116861,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116868,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116869,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116877,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116879,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:116880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - db
    - op
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( p->pTab==0 || (p->pTab->tabFlags & TF_Virtual)!=0 )
      pos:
        line_end: 116867
        line_start: 116867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116882
      start: 116853
    functionDepth: 10
    functionLinenumber: 116853
    functionLinenumberEnd: 116882
    functionName: sqlite3_vtab_config
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - va_arg
    - assert
    - sqlite3SafetyCheckOk
    - va_start
    - sqlite3Error
    - sqlite3_mutex_leave
    - va_end
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vtab_config(sqlite3 *db, int op, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116936
      start: 116935
    functionDepth: 0
    functionLinenumber: 116935
    functionLinenumberEnd: 116936
    functionName: WHERETRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHERETRACE(K,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117284
      start: 117283
    functionDepth: 0
    functionLinenumber: 117283
    functionLinenumberEnd: 117284
    functionName: initMaskSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: initMaskSet(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117363
      start: 117362
    functionDepth: 0
    functionLinenumber: 117362
    functionLinenumberEnd: 117363
    functionName: sqlite3WhereExplainOneScan
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WhereExplainOneScan(u,v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117373
      start: 117372
    functionDepth: 0
    functionLinenumber: 117372
    functionLinenumberEnd: 117373
    functionName: sqlite3WhereAddScanStatus
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WhereAddScanStatus(a, b, c, d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117458,1
    - Dst: sqlite3StrAccumAppendAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117459,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117460,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pStr
    - iTerm
    - zColumn
    - zOp
    argTypes:
    - StrAccum*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117462
      start: 117452
    functionDepth: 2
    functionLinenumber: 117452
    functionLinenumberEnd: 117462
    functionName: explainAppendTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumAppendAll
    - sqlite3StrAccumAppend
    linkageType: ''
    returnType: void
    signature: "void explainAppendTerm(\n  StrAccum *pStr,             /* The text
      expression being built */\n  int iTerm,                  /* Index of this term.
      \ First is zero */\n  const char *zColumn,        /* Name of the column */\n
      \ const char *zOp             /* Name of the operator */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117487,1
    - Dst: explainAppendTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117491,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117493,1
    - Dst: sqlite3XPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117494,1
    - Dst: explainAppendTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117501,1
    - Dst: explainAppendTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117505,1
    - Dst: sqlite3StrAccumAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117507,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - pStr
    - pLoop
    - pTab
    argTypes:
    - StrAccum*
    - WhereLoop*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117508
      start: 117478
    functionDepth: 6
    functionLinenumber: 117478
    functionLinenumberEnd: 117508
    functionName: explainIndexRange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3XPrintf
    - explainAppendTerm
    - sqlite3StrAccumAppend
    linkageType: ''
    returnType: void
    signature: void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeScanStatus
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - v
    - pSrclist
    - pLvl
    - addrExplain
    argTypes:
    - Vdbe*
    - SrcList*
    - WhereLevel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117648
      start: 117632
    functionDepth: 7
    functionLinenumber: 117632
    functionLinenumberEnd: 117648
    functionName: sqlite3WhereAddScanStatus
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeScanStatus
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereAddScanStatus(\n  Vdbe *v,                        /*
      Vdbe to add scanstatus entry to */\n  SrcList *pSrclist,              /* FROM
      clause pLvl reads data from */\n  WhereLevel *pLvl,               /* Level to
      add scanstatus() entry for */\n  int addrExplain                 /* Address
      of OP_Explain (or 0) */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117698,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - pLevel
    - pTerm
    argTypes:
    - WhereLevel*
    - WhereTerm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117712
      start: 117694
    functionDepth: 1
    functionLinenumber: 117694
    functionLinenumberEnd: 117712
    functionName: disableTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117728,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117731,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117747,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117748,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pParse
    - base
    - n
    - zAff
    argTypes:
    - Parse*
    - int
    - int
    - char*
    assertStmts:
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 117727
        line_start: 117727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 117730
        line_start: 117730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117751
      start: 117725
    functionDepth: 12
    functionLinenumber: 117725
    functionLinenumberEnd: 117751
    functionName: codeApplyAffinity
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeChangeP4
    - sqlite3ExprCacheAffinityChange
    - assert
    linkageType: ''
    returnType: void
    signature: void codeApplyAffinity(Parse *pParse, int base, int n, char *zAff)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117777,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117779,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117782,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117794,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117795,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117798,1
    - Dst: sqlite3FindInIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117800,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117802,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117806,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117807,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117809,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117812,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117816,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117823,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117825,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117828,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117828,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 6
    argNames:
    - pParse
    - pTerm
    - pLevel
    - iEq
    - bRev
    - iTarget
    argTypes:
    - Parse*
    - WhereTerm*
    - WhereLevel*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pX->op==TK_IN )
      pos:
        line_end: 117797
        line_start: 117797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iTarget>0 )
      pos:
        line_end: 117776
        line_start: 117776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pLoop->wsFlags & WHERE_MULTI_OR)==0 )
      pos:
        line_end: 117808
        line_start: 117808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117836
      start: 117765
    functionDepth: 16
    functionLinenumber: 117765
    functionLinenumberEnd: 117836
    functionName: codeEqualityTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - disableTerm
    - sqlite3ExprCodeTarget
    - sqlite3FindInIndex
    - sqlite3DbReallocOrFree
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3VdbeMakeLabel
    - sqlite3VdbeAddOp2
    - testcase
    - VdbeCoverageIf
    linkageType: ''
    returnType: int
    signature: "int codeEqualityTerm(\n  Parse *pParse,      /* The parsing context
      */\n  WhereTerm *pTerm,   /* The term of the WHERE clause to be coded */\n  WhereLevel
      *pLevel, /* The level of the FROM clause we are working on */\n  int iEq,            /*
      Index of the equality term within this level */\n  int bRev,           /* True
      for reverse-order IN operations */\n  int iTarget         /* Attempt to leave
      results in this register */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117903,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117907,1
    - Dst: sqlite3DbStrDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117915,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117915,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117922,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117923,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117924,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117925,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117926,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117927,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117929,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117930,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117931,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117933,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117934,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117935,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117941,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117941,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117945,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117948,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117949,1
    - Dst: codeEqualityTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117950,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117953,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117956,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117959,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117960,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117963,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117964,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117965,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117968,1
    - Dst: sqlite3ExprNeedsNoAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:117971,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 5
    argNames:
    - pParse
    - pLevel
    - bRev
    - nExtraReg
    - pzAff
    argTypes:
    - Parse*
    - WhereLevel*
    - int
    - int
    - char**
    assertStmts:
    - condition: ( zAff==0 || (int)strlen(zAff)>=nEq )
      pos:
        line_end: 117940
        line_start: 117940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 117906
        line_start: 117906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->aiColumn[j]>=0 )
      pos:
        line_end: 117933
        line_start: 117933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 )
      pos:
        line_end: 117902
        line_start: 117902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm!=0 )
      pos:
        line_end: 117944
        line_start: 117944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117979
      start: 117883
    functionDepth: 17
    functionLinenumber: 117883
    functionLinenumberEnd: 117979
    functionName: codeAllEqualityTerms
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp0
    - sqlite3ReleaseTempReg
    - codeEqualityTerm
    - sqlite3VdbeAddOp1
    - sqlite3VdbeAddOp3
    - sqlite3IndexAffinityStr
    - strlen
    - sqlite3VdbeAddOp4Int
    - sqlite3CompareAffinity
    - sqlite3DbStrDup
    - VdbeCoverage
    - VdbeComment
    - VdbeCoverageIf
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3ExprNeedsNoAffinityChange
    - sqlite3VdbeAddOp2
    - sqlite3ExprCanBeNull
    - testcase
    linkageType: ''
    returnType: int
    signature: "int codeAllEqualityTerms(\n  Parse *pParse,        /* Parsing context
      */\n  WhereLevel *pLevel,   /* Which nested loop of the FROM we are coding */\n
      \ int bRev,             /* Reverse the order of IN operators */\n  int nExtraReg,
      \       /* Number of extra registers to allocate */\n  char **pzAff          /*
      OUT: Set to point to affinity string */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118000,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118001,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v
    - pLevel
    - pTerm
    argTypes:
    - Vdbe*
    - WhereLevel*
    - WhereTerm*
    assertStmts:
    - condition: ( pLevel->iLikeRepCntr>0 )
      pos:
        line_end: 117999
        line_start: 117999
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOp!=0 )
      pos:
        line_end: 118001
        line_start: 118001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pOp->opcode==OP_String8 \n            || pTerm->pWC->pWInfo->pParse->db->mallocFailed
        )"
      pos:
        line_end: 118003
        line_start: 118002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118008
      start: 117993
    functionDepth: 1
    functionLinenumber: 117993
    functionLinenumberEnd: 118008
    functionName: whereLikeOptimizationStringFixup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    - assert
    linkageType: ''
    returnType: void
    signature: "void whereLikeOptimizationStringFixup(\n  Vdbe *v,                /*
      prepared statement under construction */\n  WhereLevel *pLevel,     /* The loop
      that contains the LIKE operator */\n  WhereTerm *pTerm        /* The upper or
      lower bound just coded */\n)"
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118046,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118050,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118062,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118063,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118071,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118072,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118078,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118079,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118080,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118081,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118094,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118095,1
    - Dst: codeEqualityTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118102,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118105,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118108,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118109,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118110,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118113,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118117,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118122,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118123,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118136,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118138,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118139,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118140,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118141,1
    - Dst: codeEqualityTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118143,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118144,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118146,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118146,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118147,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118148,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118149,1
    - Dst: sqlite3ExprCacheStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118150,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118151,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118163,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118168,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118188,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118189,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118191,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118192,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118194,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118195,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118196,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118197,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118198,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118199,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118200,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118201,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118202,1
    - Dst: sqlite3ExprCacheAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118203,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118204,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118205,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118207,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118208,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118209,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118214,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118215,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118216,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118217,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118219,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118225,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118231,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118234,1
    - Dst: sqlite3ExprCacheStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118235,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118236,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118237,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118238,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118239,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118240,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118241,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118320,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118327,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118340,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118347,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118348,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118350,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118351,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118352,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118355,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118356,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118365,1
    - Dst: codeAllEqualityTerms
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118371,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118372,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118372,1
    - Dst: SWAP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118384,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118387,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118388,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118389,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118390,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118399,1
    - Dst: whereLikeOptimizationStringFixup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118400,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118402,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118404,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118405,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118408,1
    - Dst: sqlite3ExprNeedsNoAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118414,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118419,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118421,1
    - Dst: codeApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118426,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118428,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118429,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118430,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118431,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118431,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118432,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118432,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118433,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118433,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118434,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118434,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118435,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118435,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118436,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118436,1
    - Dst: sqlite3ExprCacheRemove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118444,1
    - Dst: sqlite3ExprCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118445,1
    - Dst: whereLikeOptimizationStringFixup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118446,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118448,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118450,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118451,1
    - Dst: sqlite3CompareAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118453,1
    - Dst: sqlite3ExprNeedsNoAffinityChange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118454,1
    - Dst: codeApplyAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118456,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118459,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118461,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118465,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118468,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118473,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118474,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118474,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118475,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118475,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118476,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118476,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118477,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118477,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118481,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118482,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118485,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118487,1
    - Dst: sqlite3ExprCacheStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118488,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118489,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118491,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118492,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118494,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118495,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118497,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118498,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118516,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118573,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118582,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118583,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118584,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118597,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118602,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118605,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118624,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118626,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118628,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118630,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118631,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118635,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118656,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118659,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118660,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118661,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118664,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118682,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118687,1
    - Dst: sqlite3WhereBegin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118688,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118690,1
    - Dst: sqlite3WhereExplainOneScan
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118693,1
    - Dst: sqlite3WhereAddScanStatus
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118696,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118706,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118707,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118708,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118709,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118711,1
    - Dst: sqlite3GetTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118716,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118720,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118722,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118738,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118739,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118742,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118743,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118744,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118748,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118753,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118779,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118782,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118782,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118784,1
    - Dst: sqlite3WhereEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118792,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118800,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118802,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118802,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118803,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118804,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118806,1
    - Dst: disableTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118807,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118817,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118825,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118826,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118827,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118833,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118842,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118843,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118846,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118852,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118853,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118857,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118858,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118859,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118861,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118862,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118883,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118883,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118884,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118885,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118889,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118890,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118891,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118892,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118893,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118897,1
    - Dst: sqlite3StackFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118898,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118906,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118907,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118908,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118909,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118911,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118912,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118915,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118918,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118919,1
    CyclomaticComplexity: 152
    EdgeCount: 152
    ICount: 523
    argCount: 3
    argNames:
    - pWInfo
    - iLevel
    - notReady
    argTypes:
    - WhereInfo*
    - int
    - Bitmask
    assertStmts:
    - condition: ( pTerm!=0 )
      pos:
        line_end: 118137
        line_start: 118137
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLevel->iLikeRepCntr>0 )
      pos:
        line_end: 118856
        line_start: 118856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( bRev==0 || bRev==1 )
      pos:
        line_end: 118816
        line_start: 118816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( omitTable==0 )
      pos:
        line_end: 118162
        line_start: 118162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (pRangeStart->wtFlags & TERM_LIKEOPT)==0 || \n              (pLoop->wsFlags
        & WHERE_TOP_LIMIT)!=0 )"
      pos:
        line_end: 118340
        line_start: 118339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRangeEnd==0 || (pRangeEnd->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 118364
        line_start: 118364
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLoop->u.btree.nEq==1 )
      pos:
        line_end: 118135
        line_start: 118135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pTerm->wtFlags & TERM_ORINFO)!=0 )
      pos:
        line_end: 118583
        line_start: 118583
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pWInfo->pOrderBy==0\n         || pWInfo->pOrderBy->nExpr==1\n
        \        || (pWInfo->wctrlFlags&WHERE_ORDERBY_MIN)==0 )"
      pos:
        line_end: 118321
        line_start: 118319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSubWInfo->a[0].iIdxCur==iCovCur )
      pos:
        line_end: 118783
        line_start: 118783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pE, EP_FromJoin) )
      pos:
        line_end: 118882
        line_start: 118882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE!=0 )
      pos:
        line_end: 118851
        line_start: 118851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pEnd->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 118214
        line_start: 118214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pStart->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 118190
        line_start: 118190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm!=0 )
      pos:
        line_end: 118581
        line_start: 118581
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pSubWInfo || pParse->nErr || db->mallocFailed )
      pos:
        line_end: 118689
        line_start: 118689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pTerm->prereqRight & pLevel->notReady)!=0 )
      pos:
        line_end: 118883
        line_start: 118883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRangeStart!=0 )
      pos:
        line_end: 118346
        line_start: 118346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( omitTable==0 )
      pos:
        line_end: 118139
        line_start: 118139
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pStart!=0 || pEnd!=0 )
      pos:
        line_end: 118167
        line_start: 118167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LT==TK_GT+2 )
      pos:
        line_end: 118187
        line_start: 118187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLoop->nSkip==0 )
      pos:
        line_end: 118326
        line_start: 118326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=0 )
      pos:
        line_end: 118427
        line_start: 118427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm->pExpr )
      pos:
        line_end: 118917
        line_start: 118917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWInfo->untestedTerms )
      pos:
        line_end: 118914
        line_start: 118914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm->pExpr!=0 )
      pos:
        line_end: 118138
        line_start: 118138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRangeStart->wtFlags & TERM_LIKEOPT )
      pos:
        line_end: 118347
        line_start: 118347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLevel->p5==0 )
      pos:
        line_end: 118515
        line_start: 118515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm->eOperator & WO_OR )
      pos:
        line_end: 118582
        line_start: 118582
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pSubLoop->wsFlags & WHERE_AUTO_INDEX)==0 )
      pos:
        line_end: 118778
        line_start: 118778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LE==TK_GT+1 )
      pos:
        line_end: 118186
        line_start: 118186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nEq>=pLoop->nSkip )
      pos:
        line_end: 118309
        line_start: 118309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLevel->p5==0 )
      pos:
        line_end: 118230
        line_start: 118230
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zStartAff==0 || sqlite3Strlen30(zStartAff)>=nEq )
      pos:
        line_end: 118371
        line_start: 118371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pX!=0 )
      pos:
        line_end: 118193
        line_start: 118193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pX!=0 )
      pos:
        line_end: 118213
        line_start: 118213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_GE==TK_GT+3 )
      pos:
        line_end: 118188
        line_start: 118188
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118925
      start: 118015
    functionDepth: 20
    functionLinenumber: 118015
    functionLinenumberEnd: 118925
    functionName: sqlite3WhereCodeOneLoopStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ReleaseTempReg
    - codeApplyAffinity
    - sqlite3ExprDelete
    - codeEqualityTerm
    - sqlite3VdbeAddOp3
    - sqlite3Strlen30
    - sqlite3VdbeAddOp1
    - sqlite3WhereExplainOneScan
    - whereLikeOptimizationStringFixup
    - sqlite3VdbeSetP4KeyInfo
    - codeAllEqualityTerms
    - sqlite3DbFree
    - sqlite3VdbeAddOp4Int
    - IsPrimaryKeyIndex
    - sqlite3CompareAffinity
    - sqlite3ExprCacheRemove
    - sqlite3ExprAnd
    - memcpy
    - VdbeCoverage
    - sqlite3WhereAddScanStatus
    - VdbeModuleComment
    - VdbeComment
    - HasRowid
    - sqlite3GetTempRange
    - sqlite3VdbeChangeP1
    - sqlite3ExprCachePush
    - sqlite3VdbeCurrentAddr
    - VdbeCoverageIf
    - sqlite3ExprCacheStore
    - sqlite3ExprCacheAffinityChange
    - sqlite3StackFree
    - assert
    - WHERETRACE
    - sqlite3VdbeJumpHere
    - sqlite3ExprIfFalse
    - sqlite3ExprNeedsNoAffinityChange
    - sqlite3ExprCacheClear
    - sqlite3ExprCodeTemp
    - sqlite3StackAllocRaw
    - sqlite3WhereGetMask
    - sqlite3WhereBegin
    - sqlite3WhereFindTerm
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3PrimaryKeyIndex
    - sqlite3ExprDup
    - sqlite3PExpr
    - sqlite3VdbeResolveLabel
    - disableTerm
    - sqlite3ExprCodeGetColumn
    - sqlite3ExprCanBeNull
    - sqlite3WhereEnd
    - sqlite3ColumnOfIndex
    - sqlite3VdbeMakeLabel
    - SWAP
    - sqlite3ExprCode
    - testcase
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereCodeOneLoopStart(\n  WhereInfo *pWInfo,
      \  /* Complete information about the WHERE clause */\n  int iLevel,          /*
      Which level of pWInfo->a[] should be coded */\n  Bitmask notReady     /* Which
      tables are currently available */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereClauseClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118957,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereOrInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118959
      start: 118956
    functionDepth: 5
    functionLinenumber: 118956
    functionLinenumberEnd: 118959
    functionName: whereOrInfoDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereOrInfoDelete(sqlite3 *db, WhereOrInfo *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereClauseClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118965,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereAndInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118967
      start: 118964
    functionDepth: 5
    functionLinenumber: 118964
    functionLinenumberEnd: 118967
    functionName: whereAndInfoDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereAndInfoDelete(sqlite3 *db, WhereAndInfo *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118991,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118995,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:118998,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119003,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119005,1
    - Dst: sqlite3DbMallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119007,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119008,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119011,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119012,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119016,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - pWC
    - p
    - wtFlags
    argTypes:
    - WhereClause*
    - Expr*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119021
      start: 118988
    functionDepth: 6
    functionLinenumber: 118988
    functionLinenumberEnd: 119021
    functionName: whereClauseInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ExprHasProperty
    - sqlite3DbMallocSize
    - memcpy
    - sqlite3ExprSkipCollate
    - sqlite3ExprDelete
    - testcase
    - sqlite3DbFree
    - sqlite3LogEst
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119030,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119032,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( TK_GT>TK_EQ && TK_GT<TK_GE )
      pos:
        line_end: 119028
        line_start: 119028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LE>TK_EQ && TK_LE<TK_GE )
      pos:
        line_end: 119030
        line_start: 119030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_GE==TK_EQ+4 )
      pos:
        line_end: 119031
        line_start: 119031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LT>TK_EQ && TK_LT<TK_GE )
      pos:
        line_end: 119029
        line_start: 119029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119034
      start: 119028
    functionDepth: 0
    functionLinenumber: 119028
    functionLinenumberEnd: 119034
    functionName: allowedOp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int allowedOp(int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119051,1
    - Dst: allowedOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119051,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119058,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119067,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119068,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119069,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119071,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( allowedOp(pExpr->op) && pExpr->op!=TK_IN )
      pos:
        line_end: 119050
        line_start: 119050
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_GE==TK_LE+2 )
      pos:
        line_end: 119067
        line_start: 119067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_LT==TK_GT+2 )
      pos:
        line_end: 119066
        line_start: 119066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_GT>TK_EQ )
      pos:
        line_end: 119068
        line_start: 119068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( TK_GT<TK_LE )
      pos:
        line_end: 119069
        line_start: 119069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op>=TK_GT && pExpr->op<=TK_GE )
      pos:
        line_end: 119070
        line_start: 119070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119074
      start: 119048
    functionDepth: 2
    functionLinenumber: 119048
    functionLinenumberEnd: 119074
    functionName: exprCommute
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - allowedOp
    - sqlite3ExprCollSeq
    - assert
    linkageType: ''
    returnType: void
    signature: void exprCommute(Parse *pParse, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119081,1
    - Dst: allowedOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119081,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119089,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119093,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119094,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119096,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119097,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119099,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( allowedOp(op) )
      pos:
        line_end: 119080
        line_start: 119080
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_ISNULL || c==WO_ISNULL )
      pos:
        line_end: 119091
        line_start: 119091
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (WO_EQ<<(op-TK_EQ)) < 0x7fff )
      pos:
        line_end: 119088
        line_start: 119088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_IN || c==WO_IN )
      pos:
        line_end: 119092
        line_start: 119092
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_EQ || c==WO_EQ )
      pos:
        line_end: 119093
        line_start: 119093
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_LT || c==WO_LT )
      pos:
        line_end: 119094
        line_start: 119094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_LE || c==WO_LE )
      pos:
        line_end: 119095
        line_start: 119095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_GT || c==WO_GT )
      pos:
        line_end: 119096
        line_start: 119096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_GE || c==WO_GE )
      pos:
        line_end: 119097
        line_start: 119097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op!=TK_IS || c==WO_IS )
      pos:
        line_end: 119098
        line_start: 119098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119101
      start: 119079
    functionDepth: 1
    functionLinenumber: 119079
    functionLinenumberEnd: 119101
    functionName: operatorMask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - allowedOp
    - assert
    linkageType: ''
    returnType: u16
    signature: u16 operatorMask(int op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IsLikeFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119134,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119143,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119150,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119152,1
    - Dst: sqlite3VdbeGetBoundValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119157,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119158,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119159,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119161,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119162,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119174,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119179,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119187,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119188,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119189,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119189,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119190,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119198,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - ppPrefix
    - pisComplete
    - pnoCase
    argTypes:
    - Parse*
    - Expr*
    - Expr**
    - int*
    - int*
    assertStmts:
    - condition: ( pLeft->iColumn!=(-1) )
      pos:
        line_end: 119149
        line_start: 119149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRight->op==TK_VARIABLE || pRight->op==TK_REGISTER )
      pos:
        line_end: 119161
        line_start: 119161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119200
      start: 119117
    functionDepth: 16
    functionLinenumber: 119117
    functionLinenumberEnd: 119200
    functionName: isLikeOrGlob
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    - sqlite3VdbeSetVarmask
    - assert
    - IsVirtual
    - sqlite3ReleaseTempReg
    - sqlite3Expr
    - sqlite3VdbeGetBoundValue
    - sqlite3IsLikeFunction
    - sqlite3_value_text
    - sqlite3GetTempReg
    - sqlite3ExprCodeTarget
    - sqlite3VdbeChangeP3
    - sqlite3_value_type
    - sqlite3ExprAffinity
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int isLikeOrGlob(\n  Parse *pParse,    /* Parsing and code generating
      context */\n  Expr *pExpr,      /* Test this expression */\n  Expr **ppPrefix,
      \ /* Pointer to TK_STRING expression with pattern prefix */\n  int *pisComplete,
      /* True if the only wildcard is % in the last character */\n  int *pnoCase      /*
      True if uppercase is equivalent to lowercase */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119231
      start: 119212
    functionDepth: 0
    functionLinenumber: 119212
    functionLinenumberEnd: 119231
    functionName: isMatchOfColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int isMatchOfColumn(\n  Expr *pExpr      /* Test this expression */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pDerived
    - pBase
    argTypes:
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119243
      start: 119238
    functionDepth: 0
    functionLinenumber: 119238
    functionLinenumberEnd: 119243
    functionName: transferJoinMarkings
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void transferJoinMarkings(Expr *pDerived, Expr *pBase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pWC
    - iChild
    - iParent
    argTypes:
    - WhereClause*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119252
      start: 119248
    functionDepth: 0
    functionLinenumber: 119248
    functionLinenumberEnd: 119252
    functionName: markTermAsChild
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void markTermAsChild(WhereClause *pWC, int iChild, int iParent)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pTerm
    - N
    argTypes:
    - WhereTerm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119267
      start: 119259
    functionDepth: 0
    functionLinenumber: 119259
    functionLinenumberEnd: 119267
    functionName: whereNthSubterm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhereTerm
    signature: WhereTerm *whereNthSubterm(WhereTerm *pTerm, int N)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119305,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119306,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119307,1
    - Dst: sqlite3ExprCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119308,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119314,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119319,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119321,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119323,1
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119324,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - pSrc
    - pWC
    - pOne
    - pTwo
    argTypes:
    - SrcList*
    - WhereClause*
    - WhereTerm*
    - WhereTerm*
    assertStmts:
    - condition: ( pOne->pExpr->pLeft!=0 && pOne->pExpr->pRight!=0 )
      pos:
        line_end: 119304
        line_start: 119304
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eOp & (WO_GT|WO_GE) )
      pos:
        line_end: 119313
        line_start: 119313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTwo->pExpr->pLeft!=0 && pTwo->pExpr->pRight!=0 )
      pos:
        line_end: 119305
        line_start: 119305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( op<TK_GE )
      pos:
        line_end: 119320
        line_start: 119320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119325
      start: 119289
    functionDepth: 7
    functionLinenumber: 119289
    functionLinenumberEnd: 119325
    functionName: whereCombineDisjuncts
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompare
    - sqlite3ExprDup
    - assert
    - whereClauseInsert
    - exprAnalyze
    linkageType: ''
    returnType: void
    signature: "void whereCombineDisjuncts(\n  SrcList *pSrc,         /* the FROM
      clause */\n  WhereClause *pWC,      /* The complete WHERE clause */\n  WhereTerm
      *pOne,       /* First disjunct */\n  WhereTerm *pTwo        /* Second disjunct
      */\n)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119437,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119438,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119439,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119443,1
    - Dst: sqlite3WhereSplit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119444,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119445,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119447,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119457,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119459,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119469,1
    - Dst: sqlite3WhereSplit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119470,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119471,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119473,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119476,1
    - Dst: allowedOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119477,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119478,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119489,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119492,1
    - Dst: whereNthSubterm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119515,1
    - Dst: whereNthSubterm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119518,1
    - Dst: whereCombineDisjuncts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119519,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119565,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119568,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119574,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119575,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119576,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119586,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119587,1
    - Dst: IsPowerOfTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119587,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119588,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119588,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119597,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119608,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119609,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119632,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119633,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119634,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119635,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119638,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119639,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119640,1
    - Dst: transferJoinMarkings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119643,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119644,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119644,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119646,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119647,1
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119648,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119650,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119652,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 140
    argCount: 3
    argNames:
    - pSrc
    - pWC
    - idxTerm
    argTypes:
    - SrcList*
    - WhereClause*
    - int
    assertStmts:
    - condition: ( IsPowerOfTwo(chngToIN) )
      pos:
        line_end: 119586
        line_start: 119586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->leftCursor==iCursor )
      pos:
        line_end: 119631
        line_start: 119631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !ExprHasProperty(pNew, EP_xIsSelect) )
      pos:
        line_end: 119643
        line_start: 119643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pOrTerm->wtFlags & (TERM_ANDINFO|TERM_ORINFO))==0 )
      pos:
        line_end: 119456
        line_start: 119456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 119559
        line_start: 119559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j==1 )
      pos:
        line_end: 119564
        line_start: 119564
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->wtFlags & (TERM_COPIED|TERM_VIRTUAL) )
      pos:
        line_end: 119575
        line_start: 119575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 119630
        line_start: 119630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( chngToIN==sqlite3WhereGetMask(&pWInfo->sMaskSet, iCursor) )
      pos:
        line_end: 119587
        line_start: 119587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pTerm->wtFlags & (TERM_DYNAMIC|TERM_ORINFO|TERM_ANDINFO))==0 )
      pos:
        line_end: 119436
        line_start: 119436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrWc->nTerm>=2 )
      pos:
        line_end: 119446
        line_start: 119446
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( j==1 )
      pos:
        line_end: 119585
        line_start: 119585
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 119596
        line_start: 119596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrTerm->u.leftColumn==iColumn )
      pos:
        line_end: 119632
        line_start: 119632
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op==TK_OR )
      pos:
        line_end: 119437
        line_start: 119437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pAndTerm->pExpr )
      pos:
        line_end: 119475
        line_start: 119475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLeft!=0 )
      pos:
        line_end: 119637
        line_start: 119637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119657
      start: 119415
    functionDepth: 10
    functionLinenumber: 119415
    functionLinenumberEnd: 119657
    functionName: exprAnalyzeOrTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - IsPowerOfTwo
    - markTermAsChild
    - exprAnalyze
    - transferJoinMarkings
    - sqlite3ExprListDelete
    - assert
    - sqlite3WhereSplit
    - sqlite3WhereGetMask
    - sqlite3WhereClauseInit
    - allowedOp
    - sqlite3ExprListAppend
    - sqlite3ExprDup
    - sqlite3PExpr
    - whereClauseInsert
    - sqlite3DbMallocZero
    - whereNthSubterm
    - whereCombineDisjuncts
    - sqlite3WhereExprAnalyze
    - sqlite3ExprAffinity
    - testcase
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: void
    signature: "void exprAnalyzeOrTerm(\n  SrcList *pSrc,            /* the FROM clause
      */\n  WhereClause *pWC,         /* the complete WHERE clause */\n  int idxTerm
      \              /* Index of the OR-term to be analyzed */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119679,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119681,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119682,1
    - Dst: sqlite3ExprAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119683,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119685,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119685,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119689,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119690,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119691,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119694,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119695,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119696,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119698
      start: 119675
    functionDepth: 3
    functionLinenumber: 119675
    functionLinenumberEnd: 119698
    functionName: termIsEquivalence
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3StrICmp
    - ALWAYS
    - sqlite3IsNumericAffinity
    - sqlite3ExprCollSeq
    - sqlite3ExprAffinity
    - OptimizationEnabled
    - sqlite3BinaryCompareCollSeq
    linkageType: ''
    returnType: int
    signature: int termIsEquivalence(Parse *pParse, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119709,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119710,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119711,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119712,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119713,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119714,1
    - Dst: exprSelectUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119717,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pMaskSet
    - pS
    argTypes:
    - WhereMaskSet*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119724
      start: 119705
    functionDepth: 1
    functionLinenumber: 119705
    functionLinenumberEnd: 119724
    functionName: exprSelectUsage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WhereExprListUsage
    - sqlite3WhereExprUsage
    - ALWAYS
    - exprSelectUsage
    linkageType: ''
    returnType: Bitmask
    signature: Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119769,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119773,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119774,1
    - Dst: exprSelectUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119775,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119777,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119782,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119784,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119785,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119786,1
    - Dst: allowedOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119795,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119796,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119797,1
    - Dst: operatorMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119802,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119811,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119813,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119816,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119819,1
    - Dst: termIsEquivalence
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119824,1
    - Dst: exprCommute
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119832,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119833,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119836,1
    - Dst: operatorMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119839,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119864,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119868,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119869,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119870,1
    - Dst: transferJoinMarkings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119871,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119872,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119873,1
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119874,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119876,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119886,1
    - Dst: exprAnalyzeOrTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119887,1
    - Dst: isLikeOrGlob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119907,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119919,1
    - Dst: sqlite3Toupper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119930,1
    - Dst: sqlite3Tolower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119931,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119937,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119952,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119953,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119954,1
    - Dst: transferJoinMarkings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119956,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119957,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119958,1
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119959,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119960,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119961,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119962,1
    - Dst: transferJoinMarkings
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119964,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119965,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119966,1
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119967,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119970,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119971,1
    - Dst: isMatchOfColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119983,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119991,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119992,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119995,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119996,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119997,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:119998,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120004,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120023,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120030,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120031,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120032,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120034,1
    - Dst: markTermAsChild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120042,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 165
    argCount: 3
    argNames:
    - pSrc
    - pWC
    - idxTerm
    argTypes:
    - SrcList*
    - WhereClause*
    - int
    assertStmts:
    - condition: ( pExpr->pRight==0 )
      pos:
        line_end: 119772
        line_start: 119772
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWC->op==TK_AND )
      pos:
        line_end: 119885
        line_start: 119885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList!=0 )
      pos:
        line_end: 119862
        line_start: 119862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->op!=TK_AS && pExpr->op!=TK_COLLATE )
      pos:
        line_end: 119768
        line_start: 119768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pList->nExpr==2 )
      pos:
        line_end: 119863
        line_start: 119863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120054
      start: 119744
    functionDepth: 17
    functionLinenumber: 119744
    functionLinenumberEnd: 120054
    functionName: exprAnalyze
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - ExprHasProperty
    - exprCommute
    - sqlite3Strlen30
    - markTermAsChild
    - isMatchOfColumn
    - sqlite3WhereExprUsage
    - sqlite3ExprSkipCollate
    - sqlite3Tolower
    - transferJoinMarkings
    - isLikeOrGlob
    - sqlite3Toupper
    - OptimizationEnabled
    - sqlite3ExprAddCollateString
    - assert
    - operatorMask
    - sqlite3WhereGetMask
    - exprSelectUsage
    - termIsEquivalence
    - allowedOp
    - sqlite3ExprDup
    - sqlite3PExpr
    - whereClauseInsert
    - exprAnalyzeOrTerm
    - sqlite3WhereExprListUsage
    - sqlite3ExprDelete
    - testcase
    - exprAnalyze
    linkageType: ''
    returnType: void
    signature: "void exprAnalyze(\n  SrcList *pSrc,            /* the FROM clause
      */\n  WhereClause *pWC,         /* the WHERE clause */\n  int idxTerm               /*
      Index of the term to be analyzed */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120079,1
    - Dst: whereClauseInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120083,1
    - Dst: sqlite3WhereSplit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120085,1
    - Dst: sqlite3WhereSplit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pWC
    - pExpr
    - op
    argTypes:
    - WhereClause*
    - Expr*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120088
      start: 120078
    functionDepth: 7
    functionLinenumber: 120078
    functionLinenumberEnd: 120088
    functionName: sqlite3WhereSplit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3WhereSplit
    - whereClauseInsert
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereSplit(WhereClause *pWC, Expr *pExpr, u8
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pWC
    - pWInfo
    argTypes:
    - WhereClause*
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120102
      start: 120093
    functionDepth: 1
    functionLinenumber: 120093
    functionLinenumberEnd: 120102
    functionName: sqlite3WhereClauseInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereClauseInit(\n  WhereClause *pWC,        /*
      The WhereClause to be initialized */\n  WhereInfo *pWInfo        /* The WHERE
      processing context */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120114,1
    - Dst: whereOrInfoDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120117,1
    - Dst: whereAndInfoDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120119,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pWC
    argTypes:
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120125
      start: 120108
    functionDepth: 6
    functionLinenumber: 120108
    functionLinenumberEnd: 120125
    functionName: sqlite3WhereClauseClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - whereOrInfoDelete
    - sqlite3ExprDelete
    - sqlite3DbFree
    - whereAndInfoDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereClauseClear(WhereClause *pWC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120137,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120140,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120141,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120142,1
    - Dst: exprSelectUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120143,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pMaskSet
    - p
    argTypes:
    - WhereMaskSet*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120148
      start: 120133
    functionDepth: 2
    functionLinenumber: 120133
    functionLinenumberEnd: 120148
    functionName: sqlite3WhereExprUsage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - ExprHasProperty
    - sqlite3WhereGetMask
    - exprSelectUsage
    - sqlite3WhereExprListUsage
    - sqlite3WhereExprUsage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pMaskSet
    - pList
    argTypes:
    - WhereMaskSet*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120158
      start: 120149
    functionDepth: 3
    functionLinenumber: 120149
    functionLinenumberEnd: 120158
    functionName: sqlite3WhereExprListUsage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3WhereExprUsage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereExprListUsage(WhereMaskSet *pMaskSet, ExprList
      *pList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pTabList
    - pWC
    argTypes:
    - SrcList*
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120177
      start: 120169
    functionDepth: 18
    functionLinenumber: 120169
    functionLinenumberEnd: 120177
    functionName: sqlite3WhereExprAnalyze
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - exprAnalyze
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereExprAnalyze(\n  SrcList *pTabList,       /*
      the FROM clause */\n  WhereClause *pWC         /* the WHERE clause to be analyzed
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120216
      start: 120214
    functionDepth: 1
    functionLinenumber: 120214
    functionLinenumberEnd: 120216
    functionName: sqlite3WhereOutputRowCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3LogEstToInt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereOutputRowCount(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120224
      start: 120222
    functionDepth: 0
    functionLinenumber: 120222
    functionLinenumberEnd: 120224
    functionName: sqlite3WhereIsDistinct
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsDistinct(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120232
      start: 120230
    functionDepth: 0
    functionLinenumber: 120230
    functionLinenumberEnd: 120232
    functionName: sqlite3WhereIsOrdered
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsOrdered(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo->iContinue!=0 )
      pos:
        line_end: 120238
        line_start: 120238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120241
      start: 120238
    functionDepth: 0
    functionLinenumber: 120238
    functionLinenumberEnd: 120241
    functionName: sqlite3WhereContinueLabel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereContinueLabel(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120249
      start: 120247
    functionDepth: 0
    functionLinenumber: 120247
    functionLinenumberEnd: 120249
    functionName: sqlite3WhereBreakLabel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereBreakLabel(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pWInfo
    - aiCur
    argTypes:
    - WhereInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120269
      start: 120266
    functionDepth: 0
    functionLinenumber: 120266
    functionLinenumberEnd: 120269
    functionName: sqlite3WhereOkOnePass
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereOkOnePass(WhereInfo *pWInfo, int *aiCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - WhereOrSet*
    - WhereOrSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120277
      start: 120274
    functionDepth: 0
    functionLinenumber: 120274
    functionLinenumberEnd: 120277
    functionName: whereOrMove
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void whereOrMove(WhereOrSet *pDest, WhereOrSet *pSrc)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - pSet
    - prereq
    - rRun
    - nOut
    argTypes:
    - WhereOrSet*
    - Bitmask
    - LogEst
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120317
      start: 120286
    functionDepth: 0
    functionLinenumber: 120286
    functionLinenumberEnd: 120317
    functionName: whereOrInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int whereOrInsert(\n  WhereOrSet *pSet,      /* The WhereOrSet to
      be updated */\n  Bitmask prereq,        /* Prerequisites of the new entry */\n
      \ LogEst rRun,           /* Run-cost of the new entry */\n  LogEst nOut            /*
      Number of outputs for the new entry */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120325,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pMaskSet
    - iCursor
    argTypes:
    - WhereMaskSet*
    - int
    assertStmts:
    - condition: ( pMaskSet->n<=(int)sizeof(Bitmask)*8 )
      pos:
        line_end: 120324
        line_start: 120324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120332
      start: 120323
    functionDepth: 1
    functionLinenumber: 120323
    functionLinenumberEnd: 120332
    functionName: sqlite3WhereGetMask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - MASKBIT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereGetMask(WhereMaskSet *pMaskSet, int iCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120343,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pMaskSet
    - iCursor
    argTypes:
    - WhereMaskSet*
    - int
    assertStmts:
    - condition: ( pMaskSet->n < ArraySize(pMaskSet->ix) )
      pos:
        line_end: 120342
        line_start: 120342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120345
      start: 120342
    functionDepth: 1
    functionLinenumber: 120342
    functionLinenumberEnd: 120345
    functionName: createMask
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ArraySize
    linkageType: ''
    returnType: void
    signature: void createMask(WhereMaskSet *pMaskSet, int iCursor)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120367,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120370,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120373,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120374,1
    - Dst: sqlite3IndexAffinityOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120393,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120396,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120397,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120400,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120409,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 1
    argNames:
    - pScan
    argTypes:
    - WhereScan*
    assertStmts:
    - condition: ( pX->op==TK_COLUMN )
      pos:
        line_end: 120373
        line_start: 120373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (pX->pLeft)
      pos:
        line_end: 120395
        line_start: 120395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120425
      start: 120352
    functionDepth: 5
    functionLinenumber: 120352
    functionLinenumberEnd: 120425
    functionName: whereScanNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3IndexAffinityOk
    - sqlite3StrICmp
    - assert
    - ArraySize
    - testcase
    - sqlite3BinaryCompareCollSeq
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: WhereTerm
    signature: WhereTerm *whereScanNext(WhereScan *pScan)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120459,1
    - Dst: whereScanNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - pScan
    - pWC
    - iCur
    - iColumn
    - opMask
    - pIdx
    argTypes:
    - WhereScan*
    - WhereClause*
    - int
    - int
    - u32
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120473
      start: 120443
    functionDepth: 6
    functionLinenumber: 120443
    functionLinenumberEnd: 120473
    functionName: whereScanInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - whereScanNext
    linkageType: ''
    returnType: WhereTerm
    signature: "WhereTerm *whereScanInit(\n  WhereScan *pScan,       /* The WhereScan
      object being initialized */\n  WhereClause *pWC,       /* The WHERE clause to
      be scanned */\n  int iCur,               /* Cursor to scan for */\n  int iColumn,
      \           /* Column to scan for */\n  u32 opMask,             /* Operator(s)
      to scan for */\n  Index *pIdx             /* Must be compatible with this index
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: whereScanInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120510,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120515,1
    - Dst: whereScanNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - pWC
    - iCur
    - iColumn
    - notReady
    - op
    - pIdx
    argTypes:
    - WhereClause*
    - int
    - int
    - Bitmask
    - u32
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120523
      start: 120498
    functionDepth: 7
    functionLinenumber: 120498
    functionLinenumberEnd: 120523
    functionName: sqlite3WhereFindTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - whereScanNext
    - whereScanInit
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WhereFindTerm(\n  WhereClause *pWC,     /*
      The WHERE clause to be searched */\n  int iCur,             /* Cursor number
      of LHS */\n  int iColumn,          /* Column number of LHS */\n  Bitmask notReady,
      \    /* RHS must not overlap with this mask */\n  u32 op,               /* Mask
      of WO_xx values describing operator */\n  Index *pIdx           /* Must be compatible
      with this index, if not NULL */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120543,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120548,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - pParse
    - pList
    - iBase
    - pIdx
    - iCol
    argTypes:
    - Parse*
    - ExprList*
    - int
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120556
      start: 120532
    functionDepth: 2
    functionLinenumber: 120532
    functionLinenumberEnd: 120556
    functionName: findIndexCol
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCollSeq
    - sqlite3StrICmp
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int findIndexCol(\n  Parse *pParse,                  /* Parse context
      */\n  ExprList *pList,                /* Expression list to search */\n  int
      iBase,                      /* Cursor for table associated with pIdx */\n  Index
      *pIdx,                    /* Index to match column of */\n  int iCol                        /*
      Column of index to match */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120588,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120606,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120609,1
    - Dst: findIndexCol
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120610,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - pParse
    - pTabList
    - pWC
    - pDistinct
    argTypes:
    - Parse*
    - SrcList*
    - WhereClause*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120623
      start: 120565
    functionDepth: 8
    functionLinenumber: 120565
    functionLinenumberEnd: 120623
    functionName: isDistinctRedundant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - findIndexCol
    - IsUniqueIndex
    - sqlite3WhereFindTerm
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int isDistinctRedundant(\n  Parse *pParse,            /* Parsing context
      */\n  SrcList *pTabList,        /* The FROM clause */\n  WhereClause *pWC,         /*
      The WHERE clause */\n  ExprList *pDistinct       /* The result set that needs
      to be DISTINCT */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - N
    argTypes:
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120631
      start: 120629
    functionDepth: 1
    functionLinenumber: 120629
    functionLinenumberEnd: 120631
    functionName: estLog
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    linkageType: ''
    returnType: LogEst
    signature: LogEst estLog(LogEst N)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120646,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - v
    - iStart
    - iTabCur
    - iRegister
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120661
      start: 120640
    functionDepth: 1
    functionLinenumber: 120640
    functionLinenumberEnd: 120661
    functionName: translateColumnToCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    - sqlite3VdbeCurrentAddr
    linkageType: ''
    returnType: void
    signature: "void translateColumnToCopy(\n  Vdbe *v,            /* The VDBE containing
      code to translate */\n  int iStart,         /* Translate from this opcode to
      the end */\n  int iTabCur,        /* OP_Column/OP_Rowid references to this table
      */\n  int iRegister       /* The first column is in this register */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120674,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120687
      start: 120670
    functionDepth: 7
    functionLinenumber: 120670
    functionLinenumberEnd: 120687
    functionName: TRACE_IDX_INPUTS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: void
    signature: void TRACE_IDX_INPUTS(sqlite3_index_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120692,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120697,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120698,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120699,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120700,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120702
      start: 120688
    functionDepth: 7
    functionLinenumber: 120688
    functionLinenumberEnd: 120702
    functionName: TRACE_IDX_OUTPUTS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: void
    signature: void TRACE_IDX_OUTPUTS(sqlite3_index_info *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IndexAffinityOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120725,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - pTerm
    - pSrc
    - notReady
    argTypes:
    - WhereTerm*
    - struct SrcList_item*
    - Bitmask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120728
      start: 120714
    functionDepth: 5
    functionLinenumber: 120714
    functionLinenumberEnd: 120728
    functionName: termCanDriveIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3IndexAffinityOk
    linkageType: ''
    returnType: int
    signature: "int termCanDriveIndex(\n  WhereTerm *pTerm,              /* WHERE
      clause term to check */\n  struct SrcList_item *pSrc,     /* Table we are trying
      to access */\n  Bitmask notReady               /* Tables in outer loops of the
      join */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120770,1
    - Dst: sqlite3CodeOnce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120771,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120771,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120782,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120782,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120787,1
    - Dst: sqlite3ExprIsTableConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120788,1
    - Dst: sqlite3ExprAnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120789,1
    - Dst: sqlite3ExprDup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120790,1
    - Dst: termCanDriveIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120792,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120794,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120794,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120795,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120796,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120798,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120804,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120812,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120825,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120826,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120827,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120828,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120830,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120832,1
    - Dst: sqlite3AllocateIndexObject
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120837,1
    - Dst: termCanDriveIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120845,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120847,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120847,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120848,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120849,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120860,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120865,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120871,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120883,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120885,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120886,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120887,1
    - Dst: sqlite3ExprCachePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120890,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120894,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120895,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120896,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120897,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120899,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120899,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120902,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120903,1
    - Dst: sqlite3GetTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120906,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120907,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120908,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120909,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120910,1
    - Dst: translateColumnToCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120912,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120913,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120916,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120916,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120918,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120919,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120920,1
    - Dst: sqlite3ExprCachePop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120921,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120924,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120927,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 129
    argCount: 5
    argNames:
    - pParse
    - pWC
    - pSrc
    - notReady
    - pLevel
    argTypes:
    - Parse*
    - WhereClause*
    - struct SrcList_item*
    - Bitmask
    - WhereLevel*
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 120769
        line_start: 120769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( !ExprHasProperty(pExpr, EP_FromJoin)    /* prereq always non-zero
        */\n         || pExpr->iRightJoinTable!=pSrc->iCursor   /*   for the right-hand
        \  */\n         || pLoop->prereq!=0 )"
      pos:
        line_end: 120783
        line_start: 120781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nKeyCol>0 )
      pos:
        line_end: 120811
        line_start: 120811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (u32)n==pLoop->u.btree.nEq )
      pos:
        line_end: 120859
        line_start: 120859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n==nKeyCol )
      pos:
        line_end: 120877
        line_start: 120877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLevel->iIdxCur>=0 )
      pos:
        line_end: 120882
        line_start: 120882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120928
      start: 120738
    functionDepth: 22
    functionLinenumber: 120738
    functionLinenumberEnd: 120928
    functionName: constructAutomaticIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3AllocateIndexObject
    - sqlite3_log
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - sqlite3CodeOnce
    - sqlite3VdbeSetP4KeyInfo
    - translateColumnToCopy
    - sqlite3ExprAnd
    - VdbeCoverage
    - VdbeComment
    - whereLoopResize
    - sqlite3ExprCachePush
    - MIN
    - assert
    - sqlite3ExprIfFalse
    - sqlite3VdbeJumpHere
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp2
    - sqlite3ExprCachePop
    - sqlite3GenerateIndexKey
    - sqlite3BinaryCompareCollSeq
    - termCanDriveIndex
    - sqlite3ExprDup
    - MASKBIT
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeMakeLabel
    - sqlite3ExprIsTableConstant
    - sqlite3ExprDelete
    - testcase
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: "void constructAutomaticIndex(\n  Parse *pParse,              /* The
      parsing context */\n  WhereClause *pWC,           /* The WHERE clause */\n  struct
      SrcList_item *pSrc,  /* The FROM clause term to get the next index */\n  Bitmask
      notReady,           /* Mask of cursors that are not available */\n  WhereLevel
      *pLevel          /* Write new index here */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120958,1
    - Dst: IsPowerOfTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120958,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120959,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120960,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120961,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120962,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120986,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:120990,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121013,1
    - Dst: IsPowerOfTwo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121013,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121014,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121015,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121016,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121017,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121028,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121029,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121030,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121032,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121033,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121034,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 5
    argNames:
    - pParse
    - pWC
    - mUnusable
    - pSrc
    - pOrderBy
    argTypes:
    - Parse*
    - WhereClause*
    - Bitmask
    - struct SrcList_item*
    - ExprList*
    assertStmts:
    - condition: ( WO_LE==SQLITE_INDEX_CONSTRAINT_LE )
      pos:
        line_end: 121029
        line_start: 121029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsPowerOfTwo(pTerm->eOperator & ~WO_EQUIV) )
      pos:
        line_end: 120957
        line_start: 120957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsPowerOfTwo(pTerm->eOperator & ~WO_EQUIV) )
      pos:
        line_end: 121012
        line_start: 121012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WO_GT==SQLITE_INDEX_CONSTRAINT_GT )
      pos:
        line_end: 121030
        line_start: 121030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WO_GE==SQLITE_INDEX_CONSTRAINT_GE )
      pos:
        line_end: 121031
        line_start: 121031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTerm->eOperator & (WO_IN|WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE|WO_MATCH)
        )
      pos:
        line_end: 121033
        line_start: 121033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WO_EQ==SQLITE_INDEX_CONSTRAINT_EQ )
      pos:
        line_end: 121027
        line_start: 121027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WO_LT==SQLITE_INDEX_CONSTRAINT_LT )
      pos:
        line_end: 121028
        line_start: 121028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( WO_MATCH==SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 121032
        line_start: 121032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121044
      start: 120937
    functionDepth: 8
    functionLinenumber: 120937
    functionLinenumberEnd: 121044
    functionName: allocateIndexInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocZero
    - IsPowerOfTwo
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: sqlite3_index_info
    signature: "sqlite3_index_info *allocateIndexInfo(\n  Parse *pParse,\n  WhereClause
      *pWC,\n  Bitmask mUnusable,              /* Ignore terms with these prereqs
      */\n  struct SrcList_item *pSrc,\n  ExprList *pOrderBy\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121061,1
    - Dst: TRACE_IDX_INPUTS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121065,1
    - Dst: sqlite3_vtab*::pModule::xBestIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121066,1
    - Dst: TRACE_IDX_OUTPUTS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121067,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121073,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121073,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121075,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121078,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - pParse
    - pTab
    - p
    argTypes:
    - Parse*
    - Table*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121089
      start: 121060
    functionDepth: 8
    functionLinenumber: 121060
    functionLinenumberEnd: 121089
    functionName: vtabBestIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrStr
    - sqlite3_free
    - TRACE_IDX_OUTPUTS
    - sqlite3GetVTable
    - sqlite3_vtab*::pModule::xBestIndex
    - sqlite3ErrorMsg
    - TRACE_IDX_INPUTS
    linkageType: ''
    returnType: int
    signature: int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121124,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121126,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121127,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121128,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121195,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121217,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121220,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121220,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121227,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121229,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121230,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121239,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121239,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121244,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121253,1
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121262,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 5
    argNames:
    - pParse
    - pIdx
    - pRec
    - roundUp
    - aStat
    argTypes:
    - Parse*
    - Index*
    - UnpackedRecord*
    - int
    - tRowcnt*
    assertStmts:
    - condition: ( pRec!=0 )
      pos:
        line_end: 121125
        line_start: 121125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->nSample>0 )
      pos:
        line_end: 121126
        line_start: 121126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol )
      pos:
        line_end: 121127
        line_start: 121127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<pIdx->nSample )
      pos:
        line_end: 121216
        line_start: 121216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol==nField-1 )
      pos:
        line_end: 121217
        line_start: 121217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
        \n           || pParse->db->mallocFailed \n      )"
      pos:
        line_end: 121221
        line_start: 121219
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<=pIdx->nSample && i>=0 )
      pos:
        line_end: 121226
        line_start: 121226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0\n
        \            || pParse->db->mallocFailed )"
      pos:
        line_end: 121239
        line_start: 121238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( i==pIdx->nSample \n           || sqlite3VdbeRecordCompare(aSample[i].n,
        aSample[i].p, pRec)>0\n           || pParse->db->mallocFailed )"
      pos:
        line_end: 121230
        line_start: 121228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0\n
        \            || pParse->db->mallocFailed )"
      pos:
        line_end: 121244
        line_start: 121243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol==nField-1 )
      pos:
        line_end: 121252
        line_start: 121252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121284
      start: 121106
    functionDepth: 15
    functionLinenumber: 121106
    functionLinenumberEnd: 121284
    functionName: whereKeyStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEstToInt
    - sqlite3VdbeRecordCompare
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: "int whereKeyStats(\n  Parse *pParse,              /* Database connection
      */\n  Index *pIdx,                /* Index to consider domain of */\n  UnpackedRecord
      *pRec,       /* Vector of values to consider */\n  int roundUp,                /*
      Round up if true.  Round down if false */\n  tRowcnt *aStat              /*
      OUT: stats written here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121304,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pTerm
    - nNew
    argTypes:
    - WhereTerm*
    - LogEst
    assertStmts:
    - condition: ( 20==sqlite3LogEst(4) )
      pos:
        line_end: 121303
        line_start: 121303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121308
      start: 121298
    functionDepth: 1
    functionLinenumber: 121298
    functionLinenumberEnd: 121308
    functionName: whereRangeAdjust
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    - assert
    linkageType: ''
    returnType: LogEst
    signature: LogEst whereRangeAdjust(WhereTerm *pTerm, LogEst nNew)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LocateCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121367,1
    - Dst: sqlite3Stat4ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121369,1
    - Dst: sqlite3Stat4ValueFromExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121373,1
    - Dst: sqlite3Stat4Column
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121381,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121383,1
    - Dst: sqlite3MemCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121387,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121400,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121400,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121403,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121408,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121411,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121412,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121413,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 5
    argNames:
    - pParse
    - pLower
    - pUpper
    - pLoop
    - pbDone
    argTypes:
    - Parse*
    - WhereTerm*
    - WhereTerm*
    - WhereLoop*
    - int*
    assertStmts:
    - condition: ( *pbDone==0 )
      pos:
        line_end: 121407
        line_start: 121407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121416
      start: 121346
    functionDepth: 14
    functionLinenumber: 121346
    functionLinenumberEnd: 121416
    functionName: whereRangeSkipScanEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    - sqlite3LocateCollSeq
    - WHERETRACE
    - sqlite3Stat4Column
    - assert
    - sqlite3Stat4ValueFromExpr
    - sqlite3LogEst
    - sqlite3MemCompare
    linkageType: ''
    returnType: int
    signature: "int whereRangeSkipScanEst(\n  Parse *pParse,       /* Parsing & code
      generating context */\n  WhereTerm *pLower,   /* Lower bound on the range. ex:
      \"x>123\" Might be NULL */\n  WhereTerm *pUpper,   /* Upper bound on the range.
      ex: \"x<455\" Might be NULL */\n  WhereLoop *pLoop,    /* Update the .nOut value
      of this loop */\n  int *pbDone          /* Set to true if at least one expr.
      value extracted */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121505,1
    - Dst: whereKeyStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121520,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121525,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121526,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121527,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121537,1
    - Dst: whereKeyStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121540,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121552,1
    - Dst: whereKeyStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121555,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121566,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121571,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121571,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121573,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121573,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121578,1
    - Dst: whereRangeSkipScanEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121583,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121588,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121589,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121590,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121592,1
    - Dst: whereRangeAdjust
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121593,1
    - Dst: whereRangeAdjust
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121594,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121611,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 5
    argNames:
    - pParse
    - pBuilder
    - pLower
    - pUpper
    - pLoop
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - WhereTerm*
    - WhereTerm*
    - WhereLoop*
    assertStmts:
    - condition: ( pLower || pUpper )
      pos:
        line_end: 121589
        line_start: 121589
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pUpper==0 || (pUpper->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 121591
        line_start: 121591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pUpper==0 || (pUpper->eOperator & (WO_LT|WO_LE))!=0 )
      pos:
        line_end: 121525
        line_start: 121525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLower==0 || (pLower->eOperator & (WO_GT|WO_GE))!=0 )
      pos:
        line_end: 121524
        line_start: 121524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 20==sqlite3LogEst(4) )
      pos:
        line_end: 121570
        line_start: 121570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aSortOrder!=0 )
      pos:
        line_end: 121526
        line_start: 121526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 10==sqlite3LogEst(2) )
      pos:
        line_end: 121572
        line_start: 121572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121617
      start: 121459
    functionDepth: 16
    functionLinenumber: 121459
    functionLinenumberEnd: 121617
    functionName: whereRangeScanEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereRangeSkipScanEst
    - whereRangeAdjust
    - assert
    - WHERETRACE
    - UNUSED_PARAMETER
    - sqlite3Stat4ProbeSetValue
    - testcase
    - sqlite3LogEst
    - whereKeyStats
    linkageType: ''
    returnType: int
    signature: "int whereRangeScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  WhereTerm *pLower,   /* Lower bound
      on the range. ex: \"x>123\" Might be NULL */\n  WhereTerm *pUpper,   /* Upper
      bound on the range. ex: \"x<455\" Might be NULL */\n  WhereLoop *pLoop     /*
      Modify the .nOut and maybe .rRun fields */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121651,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121652,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121653,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121654,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121655,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121671,1
    - Dst: whereKeyStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121677,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - pParse
    - pBuilder
    - pExpr
    - pnRow
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - Expr*
    - tRowcnt*
    assertStmts:
    - condition: ( nEq>=1 )
      pos:
        line_end: 121650
        line_start: 121650
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nSample>0 )
      pos:
        line_end: 121653
        line_start: 121653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pBuilder->nRecValid<nEq )
      pos:
        line_end: 121654
        line_start: 121654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aSample!=0 )
      pos:
        line_end: 121652
        line_start: 121652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nEq<=p->nColumn )
      pos:
        line_end: 121651
        line_start: 121651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121682
      start: 121637
    functionDepth: 16
    functionLinenumber: 121637
    functionLinenumberEnd: 121682
    functionName: whereEqualScanEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Stat4ProbeSetValue
    - WHERETRACE
    - assert
    - whereKeyStats
    linkageType: ''
    returnType: int
    signature: "int whereEqualScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  Expr *pExpr,         /* Expression
      for VALUE in the x=VALUE constraint */\n  tRowcnt *pnRow       /* Write the
      revised row estimate here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEstToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121716,1
    - Dst: whereEqualScanEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121719,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121727,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pParse
    - pBuilder
    - pList
    - pnRow
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - ExprList*
    - tRowcnt*
    assertStmts:
    - condition: ( pBuilder->nRecValid==nRecValid )
      pos:
        line_end: 121728
        line_start: 121728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aSample!=0 )
      pos:
        line_end: 121715
        line_start: 121715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121731
      start: 121702
    functionDepth: 17
    functionLinenumber: 121702
    functionLinenumberEnd: 121731
    functionName: whereInScanEst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEstToInt
    - whereEqualScanEst
    - WHERETRACE
    - assert
    linkageType: ''
    returnType: int
    signature: "int whereInScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  ExprList *pList,     /* The value
      list on the RHS of \"x IN (v1,v2,v3,...)\" */\n  tRowcnt *pnRow       /* Write
      the revised row estimate here */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121741,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121744,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121747,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121748,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pTerm
    - iTerm
    argTypes:
    - WhereTerm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121754
      start: 121739
    functionDepth: 10
    functionLinenumber: 121739
    functionLinenumberEnd: 121754
    functionName: whereTermPrint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ExprHasProperty
    - sqlite3TreeViewExpr
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: void
    signature: void whereTermPrint(WhereTerm *pTerm, int iTerm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121766,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121768,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121773,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121774,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121778,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121780,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121785,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121788,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121790,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121791,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121794,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121796,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121798,1
    - Dst: whereTermPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121802,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pWC
    argTypes:
    - WhereLoop*
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121805
      start: 121761
    functionDepth: 11
    functionLinenumber: 121761
    functionLinenumberEnd: 121805
    functionName: whereLoopPrint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    - sqlite3_free
    - whereTermPrint
    - sqlite3_mprintf
    - sqlite3DebugPrintf
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: void whereLoopPrint(WhereLoop *p, WhereClause *pWC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121817
      start: 121812
    functionDepth: 1
    functionLinenumber: 121812
    functionLinenumberEnd: 121817
    functionName: whereLoopInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: void
    signature: void whereLoopInit(WhereLoop *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121825,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121829,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121834
      start: 121822
    functionDepth: 5
    functionLinenumber: 121822
    functionLinenumberEnd: 121834
    functionName: whereLoopClearUnion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void whereLoopClearUnion(sqlite3 *db, WhereLoop *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121840,1
    - Dst: whereLoopClearUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121841,1
    - Dst: whereLoopInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121843
      start: 121839
    functionDepth: 6
    functionLinenumber: 121839
    functionLinenumberEnd: 121843
    functionName: whereLoopClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopInit
    - sqlite3DbFree
    - whereLoopClearUnion
    linkageType: ''
    returnType: void
    signature: void whereLoopClear(sqlite3 *db, WhereLoop *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121852,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121854,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - WhereLoop*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121859
      start: 121848
    functionDepth: 5
    functionLinenumber: 121848
    functionLinenumberEnd: 121859
    functionName: whereLoopResize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - memcpy
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: int whereLoopResize(sqlite3 *db, WhereLoop *p, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopClearUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121865,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121866,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121867,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121870,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - db
    - pTo
    - pFrom
    argTypes:
    - sqlite3*
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121878
      start: 121864
    functionDepth: 6
    functionLinenumber: 121864
    functionLinenumberEnd: 121878
    functionName: whereLoopXfer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - whereLoopResize
    - memset
    - whereLoopClearUnion
    linkageType: ''
    returnType: int
    signature: int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121884,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121886
      start: 121883
    functionDepth: 7
    functionLinenumber: 121883
    functionLinenumberEnd: 121886
    functionName: whereLoopDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopClear
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void whereLoopDelete(sqlite3 *db, WhereLoop *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121892,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121897,1
    - Dst: sqlite3WhereClauseClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121900,1
    - Dst: whereLoopDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121904,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - db
    - pWInfo
    argTypes:
    - sqlite3*
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121908
      start: 121891
    functionDepth: 8
    functionLinenumber: 121891
    functionLinenumberEnd: 121908
    functionName: whereInfoFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopDelete
    - ALWAYS
    - sqlite3DbFree
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - pX
    - pY
    argTypes:
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121948
      start: 121927
    functionDepth: 0
    functionLinenumber: 121927
    functionLinenumberEnd: 121948
    functionName: whereLoopCheaperProperSubset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int whereLoopCheaperProperSubset(\n  const WhereLoop *pX,       /*
      First WhereLoop to compare */\n  const WhereLoop *pY        /* Compare against
      this WhereLoop */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopCheaperProperSubset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121969,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121972,1
    - Dst: whereLoopCheaperProperSubset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121976,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:121979,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pTemplate
    argTypes:
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121985
      start: 121964
    functionDepth: 1
    functionLinenumber: 121964
    functionLinenumberEnd: 121985
    functionName: whereLoopAdjustCost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopCheaperProperSubset
    - WHERETRACE
    linkageType: ''
    returnType: void
    signature: void whereLoopAdjustCost(const WhereLoop *p, WhereLoop *pTemplate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122015,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122021,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122057,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( p->rSetup==0 || pTemplate->rSetup==0 \n                 || p->rSetup==pTemplate->rSetup
        )"
      pos:
        line_end: 122015
        line_start: 122014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rSetup>=pTemplate->rSetup )
      pos:
        line_end: 122020
        line_start: 122020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rSetup>=pTemplate->rSetup )
      pos:
        line_end: 122056
        line_start: 122056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 122062
      start: 122000
    functionDepth: 0
    functionLinenumber: 122000
    functionLinenumberEnd: 122062
    functionName: whereLoopFindLesser
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WhereLoop
    signature: "WhereLoop **whereLoopFindLesser(\n  WhereLoop **ppPrev,\n  const WhereLoop
      *pTemplate\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: whereOrInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122101,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122105,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122106,1
    - Dst: whereLoopAdjustCost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122114,1
    - Dst: whereLoopFindLesser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122115,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122122,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122123,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122138,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122139,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122141,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122142,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122147,1
    - Dst: whereLoopInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122149,1
    - Dst: whereLoopFindLesser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122158,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122165,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122166,1
    - Dst: whereLoopDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122169,1
    - Dst: whereLoopXfer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122172,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 2
    argNames:
    - pBuilder
    - pTemplate
    argTypes:
    - WhereLoopBuilder*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122180
      start: 122088
    functionDepth: 12
    functionLinenumber: 122088
    functionLinenumberEnd: 122180
    functionName: whereLoopInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopDelete
    - whereOrInsert
    - whereLoopInit
    - sqlite3DebugPrintf
    - whereLoopXfer
    - whereLoopAdjustCost
    - whereLoopFindLesser
    - whereLoopPrint
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: int
    signature: int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122221,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122243,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122244,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 38
    argCount: 3
    argNames:
    - pWC
    - pLoop
    - nRow
    argTypes:
    - WhereClause*
    - WhereLoop*
    - LogEst
    assertStmts:
    - condition: ( (pLoop->wsFlags & WHERE_AUTO_INDEX)==0 )
      pos:
        line_end: 122220
        line_start: 122220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 122255
      start: 122211
    functionDepth: 3
    functionLinenumber: 122211
    functionLinenumberEnd: 122255
    functionName: whereLoopOutputAdjust
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - assert
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: void
    signature: "void whereLoopOutputAdjust(\n  WhereClause *pWC,      /* The WHERE
      clause */\n  WhereLoop *pLoop,      /* The loop to adjust downward */\n  LogEst
      nRow            /* Number of rows in the entire table */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122263
      start: 122262
    functionDepth: 0
    functionLinenumber: 122262
    functionLinenumberEnd: 122263
    functionName: ApplyCostMultiplier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ApplyCostMultiplier(C,T)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122307,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122308,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122318,1
    - Dst: whereScanInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122321,1
    - Dst: estLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122331,1
    - Dst: whereScanNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122332,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122354,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122358,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122367,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122369,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122369,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122370,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122372,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122374,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122389,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122398,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122399,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122400,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122401,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122406,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122407,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122408,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122420,1
    - Dst: whereRangeScanEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122424,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122427,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122431,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122432,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122441,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122445,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122446,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122447,1
    - Dst: whereEqualScanEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122448,1
    - Dst: whereInScanEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122450,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122455,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122479,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122481,1
    - Dst: ApplyCostMultiplier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122483,1
    - Dst: whereLoopOutputAdjust
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122488,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122489,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122500,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122524,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122524,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122529,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122541,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 177
    argCount: 4
    argNames:
    - pBuilder
    - pSrc
    - pProbe
    - nInMul
    argTypes:
    - WhereLoopBuilder*
    - struct SrcList_item*
    - Index*
    - LogEst
    assertStmts:
    - condition: ( pNew->u.btree.nEq<pProbe->nColumn )
      pos:
        line_end: 122317
        line_start: 122317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 46==sqlite3LogEst(25) )
      pos:
        line_end: 122368
        line_start: 122368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTop->eOperator==WO_LT )
      pos:
        line_end: 122399
        line_start: 122399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->nOut==saved_nOut )
      pos:
        line_end: 122419
        line_start: 122419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eOp & (WO_ISNULL|WO_EQ|WO_IN|WO_IS) )
      pos:
        line_end: 122426
        line_start: 122426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (eOp & WO_IN) || nIn==0 )
      pos:
        line_end: 122430
        line_start: 122430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 )
      pos:
        line_end: 122306
        line_start: 122306
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eOp & (WO_LT|WO_LE) )
      pos:
        line_end: 122405
        line_start: 122405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 )
      pos:
        line_end: 122307
        line_start: 122307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( nInMul==0\n        || (pNew->wsFlags & WHERE_COLUMN_NULL)!=0 \n
        \       || (pNew->wsFlags & WHERE_COLUMN_IN)!=0 \n        || (pNew->wsFlags
        & WHERE_SKIPSCAN)!=0 \n    )"
      pos:
        line_end: 122361
        line_start: 122357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pTop-(pTerm->pWC->a))<pTerm->pWC->nTerm )
      pos:
        line_end: 122397
        line_start: 122397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nIn>0 )
      pos:
        line_end: 122373
        line_start: 122373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTop->wtFlags & TERM_LIKEOPT )
      pos:
        line_end: 122398
        line_start: 122398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->nOut==saved_nOut )
      pos:
        line_end: 122428
        line_start: 122428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 42==sqlite3LogEst(18) )
      pos:
        line_end: 122523
        line_start: 122523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 122549
      start: 122279
    functionDepth: 18
    functionLinenumber: 122279
    functionLinenumberEnd: 122549
    functionName: whereLoopAddBtreeIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - whereScanNext
    - whereScanInit
    - ExprHasProperty
    - ApplyCostMultiplier
    - assert
    - whereLoopInsert
    - estLog
    - whereEqualScanEst
    - sqlite3LogEstAdd
    - ALWAYS
    - whereLoopAddBtreeIndex
    - whereRangeScanEst
    - whereLoopOutputAdjust
    - whereLoopResize
    - whereInScanEst
    - testcase
    - sqlite3LogEst
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddBtreeIndex(\n  WhereLoopBuilder *pBuilder,     /*
      The WhereLoop factory */\n  struct SrcList_item *pSrc,      /* FROM clause term
      being analyzed */\n  Index *pProbe,                  /* An index on pSrc */\n
      \ LogEst nInMul                   /* log(Number of iterations due to IN) */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - pBuilder
    - pIndex
    - iCursor
    argTypes:
    - WhereLoopBuilder*
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122580
      start: 122559
    functionDepth: 2
    functionLinenumber: 122559
    functionLinenumberEnd: 122580
    functionName: indexMightHelpWithOrderBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int indexMightHelpWithOrderBy(\n  WhereLoopBuilder *pBuilder,\n  Index
      *pIndex,\n  int iCursor\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122592,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122593,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122598
      start: 122586
    functionDepth: 1
    functionLinenumber: 122586
    functionLinenumberEnd: 122598
    functionName: columnsInIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - MASKBIT
    linkageType: ''
    returnType: Bitmask
    signature: Bitmask columnsInIndex(Index *pIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122608,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - iTab
    - pWC
    - pWhere
    argTypes:
    - int
    - WhereClause*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122615
      start: 122603
    functionDepth: 3
    functionLinenumber: 122603
    functionLinenumberEnd: 122615
    functionName: whereUsablePartialIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ExprImpliesExpr
    linkageType: ''
    returnType: int
    signature: int whereUsablePartialIndex(int iTab, WhereClause *pWC, Expr *pWhere)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122679,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122679,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122684,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122692,1
    - Dst: estLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122711,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122720,1
    - Dst: termCanDriveIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122729,1
    - Dst: ApplyCostMultiplier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122747,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122752,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122752,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122753,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122756,1
    - Dst: whereUsablePartialIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122766,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122767,1
    - Dst: indexMightHelpWithOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122779,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122781,1
    - Dst: ApplyCostMultiplier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122790,1
    - Dst: whereLoopOutputAdjust
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122791,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122792,1
    - Dst: columnsInIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122801,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122807,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122813,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122824,1
    - Dst: ApplyCostMultiplier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122826,1
    - Dst: whereLoopOutputAdjust
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122827,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122828,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122834,1
    - Dst: sqlite3Stat4ProbeFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122836,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 112
    argCount: 2
    argNames:
    - pBuilder
    - mExtra
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    assertStmts:
    - condition: ( (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || b==0 )
      pos:
        line_end: 122780
        line_start: 122780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 43==sqlite3LogEst(20) )
      pos:
        line_end: 122751
        line_start: 122751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !IsVirtual(pSrc->pTab) )
      pos:
        line_end: 122678
        line_start: 122678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 122846
      start: 122653
    functionDepth: 19
    functionLinenumber: 122653
    functionLinenumberEnd: 122846
    functionName: whereLoopAddBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Stat4ProbeFree
    - memset
    - termCanDriveIndex
    - ApplyCostMultiplier
    - assert
    - IsVirtual
    - estLog
    - whereLoopInsert
    - sqlite3LogEstAdd
    - whereLoopAddBtreeIndex
    - columnsInIndex
    - indexMightHelpWithOrderBy
    - whereUsablePartialIndex
    - whereLoopOutputAdjust
    - HasRowid
    - OptimizationEnabled
    - testcase
    - sqlite3LogEst
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddBtree(\n  WhereLoopBuilder *pBuilder, /* WHERE clause
      information */\n  Bitmask mExtra              /* Extra prerequesites for using
      this table */\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122898,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122906,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122906,1
    - Dst: allocateIndexInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122907,1
    - Dst: whereLoopResize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122916,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122917,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122944,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122948,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122952,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122957,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122958,1
    - Dst: vtabBestIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122965,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122970,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122982,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122985,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122986,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122987,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122990,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122993,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:122994,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123015,1
    - Dst: sqlite3LogEstFromDouble
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123023,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123024,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123025,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123027,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123034,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123035,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 137
    argCount: 3
    argNames:
    - pBuilder
    - mExtra
    - mUnusable
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    - Bitmask
    assertStmts:
    - condition: ( seenIn )
      pos:
        line_end: 122943
        line_start: 122943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( seenVar && seenIn )
      pos:
        line_end: 122951
        line_start: 122951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->nLTerm<=pNew->nLSlot )
      pos:
        line_end: 123014
        line_start: 123014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( seenVar )
      pos:
        line_end: 122947
        line_start: 122947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iTerm<pNew->nLSlot )
      pos:
        line_end: 122989
        line_start: 122989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (mExtra & mUnusable)==0 )
      pos:
        line_end: 122897
        line_start: 122897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 122905
        line_start: 122905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNew->nLSlot>=nConstraint )
      pos:
        line_end: 122969
        line_start: 122969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123037
      start: 122874
    functionDepth: 13
    functionLinenumber: 122874
    functionLinenumberEnd: 123037
    functionName: whereLoopAddVirtual
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3LogEstFromDouble
    - assert
    - IsVirtual
    - sqlite3_free
    - whereLoopInsert
    - vtabBestIndex
    - allocateIndexInfo
    - whereLoopResize
    - sqlite3ErrorMsg
    - testcase
    - sqlite3DbFree
    - sqlite3LogEst
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddVirtual(\n  WhereLoopBuilder *pBuilder,  /* WHERE
      clause information */\n  Bitmask mExtra,              /* Tables that must be
      scanned before this one */\n  Bitmask mUnusable            /* Tables that must
      be scanned after this one */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123063,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123081,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123097,1
    - Dst: whereTermPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123101,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123106,1
    - Dst: whereLoopAddVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123107,1
    - Dst: whereLoopAddBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123111,1
    - Dst: whereLoopAddOr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123114,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123116,1
    - Dst: whereOrMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123121,1
    - Dst: whereOrMove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123125,1
    - Dst: whereOrInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123129,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123130,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123131,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123141,1
    - Dst: whereLoopInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123158,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123160,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 3
    argNames:
    - pBuilder
    - mExtra
    - mUnusable
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    - Bitmask
    assertStmts:
    - condition: ( rc==SQLITE_OK || sCur.n==0 )
      pos:
        line_end: 123115
        line_start: 123115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123164
      start: 123044
    functionDepth: 20
    functionLinenumber: 123044
    functionLinenumberEnd: 123164
    functionName: whereLoopAddOr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - whereOrInsert
    - assert
    - IsVirtual
    - whereTermPrint
    - whereLoopInsert
    - whereOrMove
    - sqlite3LogEstAdd
    - whereLoopAddOr
    - whereLoopAddBtree
    - whereLoopAddVirtual
    - WHERETRACE
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddOr(\n  WhereLoopBuilder *pBuilder, \n  Bitmask mExtra,
      \n  Bitmask mUnusable\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123184,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123188,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123195,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123199,1
    - Dst: whereLoopAddVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123202,1
    - Dst: whereLoopAddBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123204,1
    - Dst: whereLoopAddOr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123207,1
    - Dst: whereLoopClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - pBuilder
    argTypes:
    - WhereLoopBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123215
      start: 123169
    functionDepth: 21
    functionLinenumber: 123169
    functionLinenumberEnd: 123215
    functionName: whereLoopAddAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsVirtual
    - whereLoopInit
    - sqlite3WhereGetMask
    - whereLoopClear
    - whereLoopAddOr
    - whereLoopAddBtree
    - whereLoopAddVirtual
    linkageType: ''
    returnType: int
    signature: int whereLoopAddAll(WhereLoopBuilder *pBuilder)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123289,1
    - Dst: OptimizationDisabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123290,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123293,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123296,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123314,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123315,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123318,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123323,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123326,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123329,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123330,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123332,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123345,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123345,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123346,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123346,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123347,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123364,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123399,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123400,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123401,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123402,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123408,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123410,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123422,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123428,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123431,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123435,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123442,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123453,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123455,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123456,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123458,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123466,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 166
    argCount: 7
    argNames:
    - pWInfo
    - pOrderBy
    - pPath
    - wctrlFlags
    - nLoop
    - pLast
    - pRevMask
    argTypes:
    - WhereInfo*
    - ExprList*
    - WherePath*
    - u16
    - u16
    - WhereLoop*
    - Bitmask*
    assertStmts:
    - condition: ( nColumn==nKeyCol+1 || !HasRowid(pIndex->pTable) )
      pos:
        line_end: 123344
        line_start: 123344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIndex->aiColumn[nColumn-1]==(-1) || !HasRowid(pIndex->pTable))
      pos:
        line_end: 123345
        line_start: 123345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pOrderBy!=0 )
      pos:
        line_end: 123288
        line_start: 123288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123472
      start: 123234
    functionDepth: 8
    functionLinenumber: 123234
    functionLinenumberEnd: 123472
    functionName: wherePathSatisfiesOrderBy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3StrICmp
    - assert
    - MASKBIT
    - OptimizationDisabled
    - sqlite3WhereFindTerm
    - sqlite3ExprIsConstant
    - sqlite3ExprCollSeq
    - HasRowid
    - sqlite3WhereExprUsage
    - testcase
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: i8
    signature: "i8 wherePathSatisfiesOrderBy(\n  WhereInfo *pWInfo,    /* The WHERE
      clause */\n  ExprList *pOrderBy,   /* ORDER BY or GROUP BY or DISTINCT clause
      to check */\n  WherePath *pPath,     /* The WherePath to check */\n  u16 wctrlFlags,
      \      /* Might contain WHERE_GROUPBY or WHERE_DISTINCTBY */\n  u16 nLoop,            /*
      Number of entries in pPath->aLoop[] */\n  WhereLoop *pLast,     /* Add this
      WhereLoop to the end of pPath->aLoop[] */\n  Bitmask *pRevMask     /* OUT: Mask
      of WhereLoops to run in reverse order */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123499,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo->wctrlFlags & WHERE_GROUPBY )
      pos:
        line_end: 123498
        line_start: 123498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWInfo->wctrlFlags & WHERE_SORTBYGROUP )
      pos:
        line_end: 123499
        line_start: 123499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123502
      start: 123498
    functionDepth: 0
    functionLinenumber: 123498
    functionLinenumberEnd: 123502
    functionName: sqlite3WhereIsSorted
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsSorted(WhereInfo *pWInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pPath
    - nLoop
    - pLast
    argTypes:
    - WherePath*
    - int
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123513
      start: 123506
    functionDepth: 0
    functionLinenumber: 123506
    functionLinenumberEnd: 123513
    functionName: wherePathName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wherePathName(WherePath *pPath, int nLoop, WhereLoop *pLast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123541,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123541,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123542,1
    - Dst: estLog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pWInfo
    - nRow
    - nOrderBy
    - nSorted
    argTypes:
    - WhereInfo*
    - LogEst
    - int
    - int
    assertStmts:
    - condition: ( nOrderBy>0 && 66==sqlite3LogEst(100) )
      pos:
        line_end: 123540
        line_start: 123540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123553
      start: 123521
    functionDepth: 2
    functionLinenumber: 123521
    functionLinenumberEnd: 123553
    functionName: whereSortingCost
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - estLog
    - sqlite3LogEst
    - assert
    linkageType: ''
    returnType: LogEst
    signature: "LogEst whereSortingCost(\n  WhereInfo *pWInfo,\n  LogEst nRow,\n  int
      nOrderBy,\n  int nSorted\n)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123596,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123597,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123613,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123617,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123630,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123632,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123633,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123640,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123640,1
    - Dst: sqlite3LogEst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123640,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123642,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123671,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123672,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123676,1
    - Dst: whereSortingCost
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123684,1
    - Dst: sqlite3LogEstAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123688,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123690,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123713,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123727,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123728,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123746,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123747,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123759,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123761,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123763,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123764,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123769,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123772,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123777,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123779,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123781,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123782,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123794,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123815,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123817,1
    - Dst: wherePathName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123818,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123821,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123823,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123837,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123838,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123847,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123861,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123881,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123884,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123896,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 181
    argCount: 2
    argNames:
    - pWInfo
    - nRowEst
    argTypes:
    - WhereInfo*
    - LogEst
    assertStmts:
    - condition: ( aSortCost!=0 || &pSpace[nSpace]==(char*)pX )
      pos:
        line_end: 123632
        line_start: 123632
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWInfo->nLevel==nLoop )
      pos:
        line_end: 123846
        line_start: 123846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWInfo->sorted==0 )
      pos:
        line_end: 123883
        line_start: 123883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nLoop<=pWInfo->pTabList->nSrc )
      pos:
        line_end: 123595
        line_start: 123595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 48==sqlite3LogEst(28) )
      pos:
        line_end: 123639
        line_start: 123639
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aSortCost==0 || &pSpace[nSpace]==(char*)&aSortCost[nOrderBy] )
      pos:
        line_end: 123631
        line_start: 123631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aFrom[0].isOrdered==0 )
      pos:
        line_end: 123641
        line_start: 123641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123898
      start: 123567
    functionDepth: 9
    functionLinenumber: 123567
    functionLinenumberEnd: 123898
    functionName: wherePathSolver
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereSortingCost
    - memset
    - testcase
    - assert
    - sqlite3LogEstAdd
    - sqlite3DebugPrintf
    - memcpy
    - wherePathName
    - wherePathSatisfiesOrderBy
    - sqlite3DbFree
    - sqlite3ErrorMsg
    - sqlite3DbMallocRaw
    - sqlite3LogEst
    - WHERETRACE
    - MIN
    linkageType: ''
    returnType: int
    signature: int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123924,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123927,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123934,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123936,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123946,1
    - Dst: IsUniqueIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123947,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123949,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123953,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123955,1
    - Dst: columnsInIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123960,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:123974,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - pBuilder
    argTypes:
    - WhereLoopBuilder*
    assertStmts:
    - condition: ( pWInfo->pTabList->nSrc>=1 )
      pos:
        line_end: 123923
        line_start: 123923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLoop->aLTermSpace==pLoop->aLTerm )
      pos:
        line_end: 123945
        line_start: 123945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123987
      start: 123911
    functionDepth: 8
    functionLinenumber: 123911
    functionLinenumberEnd: 123987
    functionName: whereShortCut
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - IsVirtual
    - sqlite3WhereFindTerm
    - sqlite3WhereGetMask
    - ArraySize
    - columnsInIndex
    - testcase
    - IsUniqueIndex
    linkageType: ''
    returnType: int
    signature: int whereShortCut(WhereLoopBuilder *pBuilder)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124102,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124105,1
    - Dst: OptimizationDisabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124111,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124118,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124120,1
    - Dst: ROUND8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124138,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124139,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124141,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124151,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124158,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124158,1
    - Dst: whereLoopInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124159,1
    - Dst: initMaskSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124167,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124168,1
    - Dst: sqlite3WhereSplit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124169,1
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124175,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124176,1
    - Dst: createMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124208,1
    - Dst: sqlite3WhereGetMask
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124214,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124215,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124222,1
    - Dst: isDistinctRedundant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124226,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124237,1
    - Dst: whereTermPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124242,1
    - Dst: whereShortCut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124247,1
    - Dst: whereLoopAddAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124248,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124259,1
    - Dst: wherePathSolver
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124264,1
    - Dst: wherePathSolver
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124267,1
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124274,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124279,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124281,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124285,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124289,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124293,1
    - Dst: sqlite3DebugPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124297,1
    - Dst: whereLoopPrint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124299,1
    - Dst: OptimizationEnabled
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124306,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124308,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124310,1
    - Dst: ExprHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124325,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124331,1
    - Dst: WHERETRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124344,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124348,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124363,1
    - Dst: sqlite3GetVTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124370,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124372,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124373,1
    - Dst: sqlite3OpenTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124384,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124385,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124386,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124387,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124388,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124392,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124392,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124393,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124394,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124397,1
    - Dst: sqlite3TableLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124401,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124408,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124409,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124409,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124419,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124420,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124434,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124436,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124437,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124442,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124444,1
    - Dst: MASKBIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124453,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124456,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124462,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124464,1
    - Dst: constructAutomaticIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124479,1
    - Dst: sqlite3WhereExplainOneScan
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124484,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124487,1
    - Dst: sqlite3WhereCodeOneLoopStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124488,1
    - Dst: sqlite3WhereAddScanStatus
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124491,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124496,1
    - Dst: whereInfoFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124503,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 284
    argCount: 7
    argNames:
    - pParse
    - pTabList
    - pWhere
    - pOrderBy
    - pResultSet
    - wctrlFlags
    - iIdxCur
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    - ExprList*
    - ExprList*
    - u16
    - int
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(sWLB.pNew) )
      pos:
        line_end: 124157
        line_start: 124157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIdxCur!=0 || (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 )
      pos:
        line_end: 124407
        line_start: 124407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( n<=pTab->nCol )
      pos:
        line_end: 124393
        line_start: 124393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (m-1)==toTheLeft )
      pos:
        line_end: 124214
        line_start: 124214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( wctrlFlags & WHERE_ONEPASS_DESIRED )
      pos:
        line_end: 124418
        line_start: 124418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || pWInfo->nLevel==1 )
      pos:
        line_end: 124343
        line_start: 124343
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTabItem->iCursor==pLevel->iTabCur )
      pos:
        line_end: 124384
        line_start: 124384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIx->pSchema==pTab->pSchema )
      pos:
        line_end: 124432
        line_start: 124432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIndexCur>=0 )
      pos:
        line_end: 124433
        line_start: 124433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124506
      start: 124077
    functionDepth: 23
    functionLinenumber: 124077
    functionLinenumberEnd: 124506
    functionName: sqlite3WhereBegin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - memset
    - ExprHasProperty
    - whereTermPrint
    - createMask
    - sqlite3TableLock
    - whereShortCut
    - sqlite3DebugPrintf
    - sqlite3VdbeAddOp3
    - whereInfoFree
    - sqlite3WhereExplainOneScan
    - sqlite3VdbeChangeP5
    - ROUND8
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - NEVER
    - sqlite3SchemaToIndex
    - IsPrimaryKeyIndex
    - IsVirtual
    - sqlite3OpenTable
    - sqlite3CodeVerifySchema
    - whereLoopInit
    - whereLoopAddAll
    - sqlite3GetVTable
    - sqlite3WhereAddScanStatus
    - VdbeModuleComment
    - VdbeComment
    - sqlite3WhereCodeOneLoopStart
    - isDistinctRedundant
    - HasRowid
    - OptimizationEnabled
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3ExprIfFalse
    - sqlite3WhereSplit
    - SQLITE_INT_TO_PTR
    - ALWAYS
    - sqlite3WhereGetMask
    - sqlite3VdbeAddOp4Dup8
    - sqlite3WhereClauseInit
    - constructAutomaticIndex
    - wherePathSolver
    - whereLoopPrint
    - initMaskSet
    - sqlite3VdbeChangeP4
    - MASKBIT
    - OptimizationDisabled
    - sqlite3DbMallocZero
    - sqlite3ExprIsConstantNotJoin
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3VdbeMakeLabel
    - sqlite3WhereExprAnalyze
    - sqlite3WhereExprListUsage
    - testcase
    - WHERETRACE
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WhereBegin(\n  Parse *pParse,        /* The
      parser context */\n  SrcList *pTabList,    /* FROM clause: A list of all tables
      to be scanned */\n  Expr *pWhere,         /* The WHERE clause */\n  ExprList
      *pOrderBy,   /* An ORDER BY (or GROUP BY) clause, or NULL */\n  ExprList *pResultSet,
      /* Result set of the query */\n  u16 wctrlFlags,       /* One of the WHERE_*
      flags defined in sqliteInt.h */\n  int iIdxCur           /* If WHERE_ONETABLE_ONLY
      is set, index cursor number */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124523,1
    - Dst: sqlite3ExprCacheClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124524,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124529,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124531,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124532,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124533,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124534,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124535,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124536,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124541,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124543,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124544,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124545,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124546,1
    - Dst: VdbeCoverageIf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124547,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124548,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124551,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124553,1
    - Dst: VdbeComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124554,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124555,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124556,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124560,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124565,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124566,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124569,1
    - Dst: VdbeCoverage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124570,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124573,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124576,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124579,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124581,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124583,1
    - Dst: VdbeModuleComment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124585,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124592,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124594,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124601,1
    - Dst: translateColumnToCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124609,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124625,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124631,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124652,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124654,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124659,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124660,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124661,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124664,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124669,1
    - Dst: whereInfoFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124681,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 113
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: "( (pLoop->wsFlags & WHERE_IDX_ONLY)==0\n           || (pLoop->wsFlags
        & WHERE_INDEXED)!=0 )"
      pos:
        line_end: 124570
        line_start: 124569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 124600
        line_start: 124600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIdx->pTable==pTab )
      pos:
        line_end: 124658
        line_start: 124658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWInfo->nLevel<=pTabList->nSrc )
      pos:
        line_end: 124593
        line_start: 124593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 || x>=0 )
      pos:
        line_end: 124668
        line_start: 124668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124683
      start: 124512
    functionDepth: 9
    functionLinenumber: 124512
    functionLinenumberEnd: 124683
    functionName: sqlite3WhereEnd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3VdbeAddOp3
    - sqlite3VdbeAddOp1
    - whereInfoFree
    - translateColumnToCopy
    - VdbeCoverage
    - VdbeModuleComment
    - VdbeComment
    - HasRowid
    - sqlite3VdbeCurrentAddr
    - VdbeCoverageIf
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddOp2
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeGetOp
    - sqlite3ExprCacheClear
    - sqlite3ColumnOfIndex
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereEnd(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124712
      start: 124711
    functionDepth: 0
    functionLinenumber: 124711
    functionLinenumberEnd: 124712
    functionName: yytestcase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yytestcase(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124768
      start: 124753
    functionDepth: 8
    functionLinenumber: 124753
    functionLinenumberEnd: 124768
    functionName: parserDoubleLinkSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void parserDoubleLinkSelect(Parse *pParse, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pOut
    - pStart
    - pEnd
    argTypes:
    - ExprSpan*
    - Token*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124777
      start: 124774
    functionDepth: 0
    functionLinenumber: 124774
    functionLinenumberEnd: 124777
    functionName: spanSet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void spanSet(ExprSpan *pOut, Token *pStart, Token *pEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pOut
    - pParse
    - op
    - pValue
    argTypes:
    - ExprSpan*
    - Parse*
    - int
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124787
      start: 124783
    functionDepth: 10
    functionLinenumber: 124783
    functionLinenumberEnd: 124787
    functionName: spanExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PExpr
    linkageType: ''
    returnType: void
    signature: void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token *pValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pOut
    - pParse
    - op
    - pLeft
    - pRight
    argTypes:
    - ExprSpan*
    - Parse*
    - int
    - ExprSpan*
    - ExprSpan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124802
      start: 124792
    functionDepth: 10
    functionLinenumber: 124792
    functionLinenumberEnd: 124802
    functionName: spanBinaryExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PExpr
    linkageType: ''
    returnType: void
    signature: "void spanBinaryExpr(\n    ExprSpan *pOut,     /* Write the result
      here */\n    Parse *pParse,      /* The parsing context.  Errors accumulate
      here */\n    int op,             /* The binary operation */\n    ExprSpan *pLeft,
      \   /* The left operand */\n    ExprSpan *pRight    /* The right operand */\n
      \ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pOut
    - pParse
    - op
    - pOperand
    - pPostOp
    argTypes:
    - ExprSpan*
    - Parse*
    - int
    - ExprSpan*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124816
      start: 124806
    functionDepth: 10
    functionLinenumber: 124806
    functionLinenumberEnd: 124816
    functionName: spanUnaryPostfix
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PExpr
    linkageType: ''
    returnType: void
    signature: "void spanUnaryPostfix(\n    ExprSpan *pOut,        /* Write the new
      expression node here */\n    Parse *pParse,         /* Parsing context to record
      errors */\n    int op,                /* The operator */\n    ExprSpan *pOperand,
      \   /* The operand */\n    Token *pPostOp         /* The operand token for setting
      the span */\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - pParse
    - pY
    - pA
    - op
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124827
      start: 124820
    functionDepth: 6
    functionLinenumber: 124820
    functionLinenumberEnd: 124827
    functionName: binaryToUnaryIfNull
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    linkageType: ''
    returnType: void
    signature: void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:124838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pOut
    - pParse
    - op
    - pOperand
    - pPreOp
    argTypes:
    - ExprSpan*
    - Parse*
    - int
    - ExprSpan*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124841
      start: 124831
    functionDepth: 10
    functionLinenumber: 124831
    functionLinenumberEnd: 124841
    functionName: spanUnaryPrefix
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PExpr
    linkageType: ''
    returnType: void
    signature: "void spanUnaryPrefix(\n    ExprSpan *pOut,        /* Write the new
      expression node here */\n    Parse *pParse,         /* Parsing context to record
      errors */\n    int op,                /* The operator */\n    ExprSpan *pOperand,
      \   /* The operand */\n    Token *pPreOp         /* The operand token for setting
      the span */\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - TraceFILE
    - zTracePrompt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125605
      start: 125600
    functionDepth: 0
    functionLinenumber: 125600
    functionLinenumberEnd: 125605
    functionName: sqlite3ParserTrace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserTrace(FILE *TraceFILE, char *zTracePrompt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126023,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126034
      start: 126018
    functionDepth: 0
    functionLinenumber: 126018
    functionLinenumberEnd: 126034
    functionName: yyGrowStack
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - realloc
    linkageType: ''
    returnType: void
    signature: void yyGrowStack(yyParser *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyGrowStack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - (*mallocProc)(u64)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126064
      start: 126049
    functionDepth: 1
    functionLinenumber: 126049
    functionLinenumberEnd: 126064
    functionName: sqlite3ParserAlloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - yyGrowStack
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ParserAlloc(void *(*mallocProc)(u64))
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126093,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126099,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126114,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126122,1
    - Dst: sqlite3WithDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126128,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126139,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126146,1
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126152,1
    - Dst: sqlite3IdListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 3
    argNames:
    - yypParser
    - yymajor
    - yypminor
    argTypes:
    - yyParser*
    - YYCODETYPE
    - YYMINORTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126162
      start: 126071
    functionDepth: 11
    functionLinenumber: 126071
    functionLinenumberEnd: 126162
    functionName: yy_destructor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3SrcListDelete
    - sqlite3DeleteTriggerStep
    - sqlite3IdListDelete
    - sqlite3WithDelete
    - sqlite3ExprDelete
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: "void yy_destructor(\n  yyParser *yypParser,    /* The parser */\n
      \ YYCODETYPE yymajor,     /* Type code for object to destroy */\n  YYMINORTYPE
      *yypminor   /* The object to be destroyed */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126178,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126181,1
    - Dst: yy_destructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pParser
    argTypes:
    - yyParser*
    assertStmts:
    - condition: ( pParser->yyidx>=0 )
      pos:
        line_end: 126177
        line_start: 126177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126190
      start: 126172
    functionDepth: 12
    functionLinenumber: 126172
    functionLinenumberEnd: 126190
    functionName: yy_pop_parser_stack
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - yy_destructor
    - assert
    linkageType: ''
    returnType: int
    signature: int yy_pop_parser_stack(yyParser *pParser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126211,1
    - Dst: yy_pop_parser_stack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126212,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126217
      start: 126204
    functionDepth: 13
    functionLinenumber: 126204
    functionLinenumberEnd: 126217
    functionName: sqlite3ParserFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - free
    - yy_pop_parser_stack
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ParserFree(\n  void *p,                    /*
      The parser to be deleted */\n  void (*freeProc)(void*)     /* Function used
      to reclaim memory */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126226
      start: 126223
    functionDepth: 0
    functionLinenumber: 126223
    functionLinenumberEnd: 126226
    functionName: sqlite3ParserStackPeak
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserStackPeak(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126315,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126323,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - stateno
    - iLookAhead
    argTypes:
    - int
    - YYCODETYPE
    assertStmts:
    - condition: ( stateno<=YY_REDUCE_COUNT )
      pos:
        line_end: 126311
        line_start: 126311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=0 && i<YY_ACTTAB_COUNT )
      pos:
        line_end: 126322
        line_start: 126322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i!=YY_REDUCE_USE_DFLT )
      pos:
        line_end: 126314
        line_start: 126314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLookAhead!=YYNOCODE )
      pos:
        line_end: 126315
        line_start: 126315
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( yy_lookahead[i]==iLookAhead )
      pos:
        line_end: 126323
        line_start: 126323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126327
      start: 126302
    functionDepth: 0
    functionLinenumber: 126302
    functionLinenumberEnd: 126327
    functionName: yy_find_reduce_action
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int yy_find_reduce_action(\n  int stateno,              /* Current
      state number */\n  YYCODETYPE iLookAhead     /* The look-ahead token */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126337,1
    - Dst: yy_pop_parser_stack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126340,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126344,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - yypParser
    - yypMinor
    argTypes:
    - yyParser*
    - YYMINORTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126347
      start: 126332
    functionDepth: 13
    functionLinenumber: 126332
    functionLinenumberEnd: 126347
    functionName: yyStackOverflow
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - yy_pop_parser_stack
    - UNUSED_PARAMETER
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yyStackOverflow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126367,1
    - Dst: yyGrowStack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126372,1
    - Dst: yyStackOverflow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126374,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126386,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126387,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126389,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - yypParser
    - yyNewState
    - yyMajor
    - yypMinor
    argTypes:
    - yyParser*
    - int
    - int
    - YYMINORTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126393
      start: 126352
    functionDepth: 14
    functionLinenumber: 126352
    functionLinenumberEnd: 126393
    functionName: yy_shift
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - yyStackOverflow
    - yyGrowStack
    linkageType: ''
    returnType: void
    signature: "void yy_shift(\n  yyParser *yypParser,          /* The parser to be
      shifted */\n  int yyNewState,               /* The new state to shift in */\n
      \ int yyMajor,                  /* The major token to shift in */\n  YYMINORTYPE
      *yypMinor         /* Pointer to the minor token to shift in */\n)"
  - BBCount: 341
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126751,1
    - Dst: sqlite3BeginParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126784,1
    - Dst: sqlite3BeginParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126787,1
    - Dst: sqlite3BeginParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126790,1
    - Dst: sqlite3FinishCoding
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126793,1
    - Dst: sqlite3BeginTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126796,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126802,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126803,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126804,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126805,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126809,1
    - Dst: sqlite3CommitTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126810,1
    - Dst: sqlite3RollbackTransaction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126813,1
    - Dst: sqlite3Savepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126817,1
    - Dst: sqlite3Savepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126822,1
    - Dst: sqlite3Savepoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126827,1
    - Dst: sqlite3StartTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126832,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126842,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126843,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126844,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126845,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126846,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126847,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126848,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126849,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126850,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126854,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126855,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126856,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126857,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126858,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126859,1
    - Dst: sqlite3EndTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126864,1
    - Dst: sqlite3EndTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126869,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126870,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126878,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126882,1
    - Dst: sqlite3AddColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126894,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126900,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126901,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126902,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126903,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126904,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126905,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126906,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126907,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126908,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126909,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126910,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126911,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126912,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126913,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126914,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126915,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126916,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126917,1
    - Dst: sqlite3AddColumnType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126921,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126939,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126943,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126944,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126947,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126952,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126955,1
    - Dst: spanExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126961,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126962,1
    - Dst: sqlite3AddNotNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126966,1
    - Dst: sqlite3AddPrimaryKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126969,1
    - Dst: sqlite3CreateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126972,1
    - Dst: sqlite3AddCheckConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126975,1
    - Dst: sqlite3CreateForeignKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126978,1
    - Dst: sqlite3DeferForeignKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126981,1
    - Dst: sqlite3AddCollateType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126984,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:126993,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127018,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127019,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127020,1
    - Dst: sqlite3AddPrimaryKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127033,1
    - Dst: sqlite3CreateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127036,1
    - Dst: sqlite3AddCheckConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127039,1
    - Dst: sqlite3CreateForeignKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127043,1
    - Dst: sqlite3DeferForeignKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127044,1
    - Dst: sqlite3DropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127064,1
    - Dst: sqlite3CreateView
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127069,1
    - Dst: sqlite3DropTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127074,1
    - Dst: sqlite3Select
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127080,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127081,1
    - Dst: parserDoubleLinkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127089,1
    - Dst: sqlite3WithDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127091,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127097,1
    - Dst: parserDoubleLinkSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127108,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127109,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127110,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127115,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127119,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127129,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127143,1
    - Dst: sqlite3Isalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127149,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127150,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127158,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127164,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127165,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127186,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127190,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127191,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127192,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127193,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127198,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127199,1
    - Dst: sqlite3ExprListSetSpan
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127200,1
    - Dst: sqlite3Expr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127205,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127206,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127211,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127212,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127213,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127214,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127221,1
    - Dst: sqlite3SrcListShiftJoinType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127226,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127232,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127240,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127241,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127246,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127254,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127264,1
    - Dst: sqlite3SrcListShiftJoinType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127267,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127268,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127269,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127274,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127278,1
    - Dst: sqlite3JoinType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127284,1
    - Dst: sqlite3JoinType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127287,1
    - Dst: sqlite3JoinType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127290,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127293,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127294,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127295,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127296,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127300,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127301,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127302,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127303,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127310,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127314,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127318,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127319,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127324,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127330,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127331,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127335,1
    - Dst: sqlite3WithPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127355,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127356,1
    - Dst: sqlite3DeleteFrom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127357,1
    - Dst: sqlite3WithPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127362,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127363,1
    - Dst: sqlite3ExprListCheckLength
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127364,1
    - Dst: sqlite3Update
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127365,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127370,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127371,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127376,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127377,1
    - Dst: sqlite3WithPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127382,1
    - Dst: sqlite3Insert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127383,1
    - Dst: sqlite3WithPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127388,1
    - Dst: sqlite3Insert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127389,1
    - Dst: sqlite3IdListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127399,1
    - Dst: sqlite3IdListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127402,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127408,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127411,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127412,1
    - Dst: spanExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127413,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127416,1
    - Dst: spanExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127417,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127421,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127422,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127423,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127424,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127429,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127430,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127431,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127432,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127433,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127434,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127439,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127444,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127447,1
    - Dst: sqlite3GetInt32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127448,1
    - Dst: spanExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127451,1
    - Dst: sqlite3ExprAssignVarNumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127452,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127454,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127459,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127466,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127467,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127473,1
    - Dst: sqlite3ExprFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127475,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127476,1
    - Dst: sqlite3ExprFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127484,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127485,1
    - Dst: sqlite3ExprFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127490,1
    - Dst: spanSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127491,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127495,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127496,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127497,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127498,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127499,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127500,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127501,1
    - Dst: spanBinaryExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127502,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127513,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127514,1
    - Dst: sqlite3ExprFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127515,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127516,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127525,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127526,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127527,1
    - Dst: sqlite3ExprFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127528,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127529,1
    - Dst: spanUnaryPostfix
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127536,1
    - Dst: spanUnaryPostfix
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127539,1
    - Dst: spanBinaryExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127543,1
    - Dst: binaryToUnaryIfNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127544,1
    - Dst: spanBinaryExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127549,1
    - Dst: binaryToUnaryIfNull
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127550,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127554,1
    - Dst: spanUnaryPrefix
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127555,1
    - Dst: spanUnaryPrefix
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127558,1
    - Dst: spanUnaryPrefix
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127561,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127565,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127566,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127567,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127571,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127573,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127589,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127590,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127610,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127613,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127617,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127619,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127622,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127624,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127626,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127634,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127637,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127638,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127640,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127648,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127651,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127652,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127654,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127656,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127663,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127664,1
    - Dst: sqlite3SelectNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127666,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127667,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127668,1
    - Dst: sqlite3SrcListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127670,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127672,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127679,1
    - Dst: ExprSetProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127682,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127683,1
    - Dst: sqlite3SelectDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127685,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127693,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127695,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127696,1
    - Dst: sqlite3ExprListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127698,1
    - Dst: sqlite3ExprDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127699,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127707,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127708,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127713,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127714,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127718,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127721,1
    - Dst: sqlite3CreateIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127725,1
    - Dst: sqlite3SrcListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127726,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127731,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127739,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127740,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127741,1
    - Dst: sqlite3ExprListCheckLength
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127742,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127748,1
    - Dst: sqlite3ExprListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127749,1
    - Dst: sqlite3ExprListSetName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127750,1
    - Dst: sqlite3ExprListCheckLength
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127751,1
    - Dst: sqlite3DropIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127759,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127762,1
    - Dst: sqlite3Vacuum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127763,1
    - Dst: sqlite3Pragma
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127766,1
    - Dst: sqlite3Pragma
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127769,1
    - Dst: sqlite3Pragma
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127772,1
    - Dst: sqlite3Pragma
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127775,1
    - Dst: sqlite3Pragma
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127778,1
    - Dst: sqlite3FinishTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127785,1
    - Dst: sqlite3BeginTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127790,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127795,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127805,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127812,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127816,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127829,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127837,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127844,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127851,1
    - Dst: sqlite3TriggerUpdateStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127857,1
    - Dst: sqlite3TriggerInsertStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127860,1
    - Dst: sqlite3TriggerDeleteStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127863,1
    - Dst: sqlite3TriggerSelectStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127866,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127870,1
    - Dst: sqlite3PExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127880,1
    - Dst: sqlite3DropTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127896,1
    - Dst: sqlite3Attach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127901,1
    - Dst: sqlite3Detach
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127906,1
    - Dst: sqlite3Reindex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127910,1
    - Dst: sqlite3Reindex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127913,1
    - Dst: sqlite3Analyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127916,1
    - Dst: sqlite3Analyze
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127919,1
    - Dst: sqlite3AlterRenameTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127923,1
    - Dst: sqlite3AlterFinishAddColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127928,1
    - Dst: sqlite3AlterBeginAddColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127934,1
    - Dst: sqlite3VtabFinishParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127938,1
    - Dst: sqlite3VtabFinishParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127941,1
    - Dst: sqlite3VtabBeginParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127945,1
    - Dst: sqlite3VtabArgInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127949,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127952,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127953,1
    - Dst: sqlite3VtabArgExtend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127954,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127960,1
    - Dst: sqlite3WithAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127965,1
    - Dst: sqlite3WithAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127970,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127974,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127975,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127976,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127977,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127978,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127979,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127980,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127981,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127982,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127983,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127984,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127985,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127986,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127987,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127988,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127989,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127990,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127991,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127992,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127993,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127994,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127995,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127996,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127997,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127998,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:127999,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128000,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128001,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128002,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128003,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128004,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128005,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128006,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128007,1
    - Dst: yytestcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128008,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128011,1
    - Dst: yy_find_reduce_action
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128015,1
    - Dst: yy_shift
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128031,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128034,1
    - Dst: yy_accept
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128035,1
    CyclomaticComplexity: 275
    EdgeCount: 275
    ICount: 1342
    argCount: 2
    argNames:
    - yypParser
    - yyruleno
    argTypes:
    - yyParser*
    - int
    assertStmts:
    - condition: ( yymsp[-1].minor.yy473!=0 )
      pos:
        line_end: 127828
        line_start: 127828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( yymsp[-2].minor.yy473!=0 )
      pos:
        line_end: 127820
        line_start: 127820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( yyruleno>=0 && yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0])
        )
      pos:
        line_end: 128010
        line_start: 128010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( yyact == YYNSTATE + YYNRULE + 1 )
      pos:
        line_end: 128033
        line_start: 128033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128037
      start: 126737
    functionDepth: 28
    functionLinenumber: 126737
    functionLinenumberEnd: 128037
    functionName: yy_reduce
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3Attach
    - sqlite3EndTable
    - sqlite3TriggerUpdateStep
    - sqlite3Isdigit
    - sqlite3VtabArgInit
    - sqlite3AddColumn
    - sqlite3ExprListDelete
    - sqlite3DropTrigger
    - sqlite3AlterFinishAddColumn
    - ALWAYS
    - sqlite3StartTable
    - sqlite3ExprListSetSpan
    - sqlite3DbMallocZero
    - sqlite3WithDelete
    - sqlite3ExprDelete
    - sqlite3SrcListIndexedBy
    - sqlite3_strnicmp
    - sqlite3SelectNew
    - sqlite3SrcListAppend
    - sqlite3CreateForeignKey
    - sqlite3Insert
    - spanBinaryExpr
    - sqlite3VtabArgExtend
    - spanUnaryPostfix
    - sqlite3IdListAppend
    - sqlite3SelectDelete
    - sqlite3WithAdd
    - sqlite3AlterBeginAddColumn
    - yy_find_reduce_action
    - sqlite3TriggerDeleteStep
    - parserDoubleLinkSelect
    - spanUnaryPrefix
    - sqlite3CommitTransaction
    - assert
    - sqlite3AddColumnType
    - sqlite3VtabBeginParse
    - sqlite3TriggerInsertStep
    - sqlite3Analyze
    - sqlite3CreateView
    - ExprSetProperty
    - sqlite3Update
    - sqlite3PExpr
    - sqlite3SrcListDelete
    - sqlite3Pragma
    - fprintf
    - sqlite3Savepoint
    - sqlite3AddCollateType
    - sqlite3ExprListSetName
    - sqlite3TriggerSelectStep
    - sqlite3Detach
    - sqlite3WithPush
    - sqlite3CreateIndex
    - sqlite3BeginTransaction
    - yy_accept
    - sqlite3Expr
    - sqlite3AddCheckConstraint
    - spanExpr
    - sqlite3ExprAssignVarNumber
    - sqlite3ExprAddCollateToken
    - sqlite3FinishCoding
    - sqlite3AlterRenameTable
    - sqlite3DeleteFrom
    - sqlite3AddPrimaryKey
    - sqlite3Vacuum
    - spanSet
    - sqlite3Isalnum
    - sqlite3DeferForeignKey
    - binaryToUnaryIfNull
    - yytestcase
    - sqlite3_snprintf
    - sqlite3AddNotNull
    - sqlite3DropIndex
    - sqlite3FinishTrigger
    - sqlite3JoinType
    - sqlite3VtabFinishParse
    - sqlite3ExprListCheckLength
    - yy_shift
    - sqlite3GetInt32
    - sqlite3Select
    - sqlite3SrcListShiftJoinType
    - sqlite3SrcListAppendFromTerm
    - sqlite3BeginTrigger
    - sqlite3BeginParse
    - sqlite3AddDefaultValue
    - sqlite3Reindex
    - sqlite3ExprSetHeightAndFlags
    - sqlite3ExprListAppend
    - sqlite3DropTable
    - sqlite3RollbackTransaction
    - sqlite3ExprFunction
    linkageType: ''
    returnType: void
    signature: "void yy_reduce(\n  yyParser *yypParser,         /* The parser */\n
      \ int yyruleno                 /* Number of the rule by which to reduce */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128049,1
    - Dst: yy_pop_parser_stack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - yypParser
    argTypes:
    - yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128056
      start: 128043
    functionDepth: 13
    functionLinenumber: 128043
    functionLinenumberEnd: 128056
    functionName: yy_parse_failed
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - yy_pop_parser_stack
    linkageType: ''
    returnType: void
    signature: "void yy_parse_failed(\n  yyParser *yypParser           /* The parser
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128071,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - yypParser
    - yymajor
    - yyminor
    argTypes:
    - yyParser*
    - int
    - YYMINORTYPE
    assertStmts:
    - condition: ( TOKEN.z[0] )
      pos:
        line_end: 128070
        line_start: 128070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128074
      start: 128062
    functionDepth: 8
    functionLinenumber: 128062
    functionLinenumberEnd: 128074
    functionName: yy_syntax_error
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: void
    signature: "void yy_syntax_error(\n  yyParser *yypParser,           /* The parser
      */\n  int yymajor,                   /* The major type of the error token */\n
      \ YYMINORTYPE yyminor            /* The minor type of the error token */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128085,1
    - Dst: yy_pop_parser_stack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - yypParser
    argTypes:
    - yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128092
      start: 128079
    functionDepth: 13
    functionLinenumber: 128079
    functionLinenumberEnd: 128092
    functionName: yy_accept
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fprintf
    - yy_pop_parser_stack
    linkageType: ''
    returnType: void
    signature: "void yy_accept(\n  yyParser *yypParser           /* The parser */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: yyStackOverflow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128136,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128153,1
    - Dst: yy_find_shift_action
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128158,1
    - Dst: yy_shift
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128160,1
    - Dst: yy_reduce
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128164,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128166,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128172,1
    - Dst: yy_syntax_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128196,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128202,1
    - Dst: yy_destructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128206,1
    - Dst: yy_find_reduce_action
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128212,1
    - Dst: yy_pop_parser_stack
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128216,1
    - Dst: yy_destructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128219,1
    - Dst: yy_parse_failed
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128220,1
    - Dst: yy_shift
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128225,1
    - Dst: yy_syntax_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128238,1
    - Dst: yy_destructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128239,1
    - Dst: yy_syntax_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128253,1
    - Dst: yy_destructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128256,1
    - Dst: yy_parse_failed
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128258,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - yyp
    - yymajor
    - sqlite3ParserARG_PDECL
    argTypes:
    - void*
    - int
    - sqlite3ParserTOKENTYPE
    assertStmts:
    - condition: ( yyact == YY_ERROR_ACTION )
      pos:
        line_end: 128165
        line_start: 128165
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128265
      start: 128113
    functionDepth: 29
    functionLinenumber: 128113
    functionLinenumberEnd: 128265
    functionName: sqlite3Parser
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - yyStackOverflow
    - yy_shift
    - yy_reduce
    - assert
    - fprintf
    - yy_pop_parser_stack
    - yy_syntax_error
    - yy_find_shift_action
    - yy_find_reduce_action
    - yy_destructor
    - yy_parse_failed
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Parser(\n  void *yyp,                   /* The
      parser */\n  int yymajor,                 /* The major token code number */\n
      \ sqlite3ParserTOKENTYPE yyminor       /* The value for the token */\n  sqlite3ParserARG_PDECL
      \              /* Optional %extra_argument parameter */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128298
      start: 128297
    functionDepth: 0
    functionLinenumber: 128297
    functionLinenumberEnd: 128298
    functionName: charMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: charMap(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128301
      start: 128300
    functionDepth: 0
    functionLinenumber: 128300
    functionLinenumberEnd: 128301
    functionName: charMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: charMap(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: charMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128471,1
    - Dst: charMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128472,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128475,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128476,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128477,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128478,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128479,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128480,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128481,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128482,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128483,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128484,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128485,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128486,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128487,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128488,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128489,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128490,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128491,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128492,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128493,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128494,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128495,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128496,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128497,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128498,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128499,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128500,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128501,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128502,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128503,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128504,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128505,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128506,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128507,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128508,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128509,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128510,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128511,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128512,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128513,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128514,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128515,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128516,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128517,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128518,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128519,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128520,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128521,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128522,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128523,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128524,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128525,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128526,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128527,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128528,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128529,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128530,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128531,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128532,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128533,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128534,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128535,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128536,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128537,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128538,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128539,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128540,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128541,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128542,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128543,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128544,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128545,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128546,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128547,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128548,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128549,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128550,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128551,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128552,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128553,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128554,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128555,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128556,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128557,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128558,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128559,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128560,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128561,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128562,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128563,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128564,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128565,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128566,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128567,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128568,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128569,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128570,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128571,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128572,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128573,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128574,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128575,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128576,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128577,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128578,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128579,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128580,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128581,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128582,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128583,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128584,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128585,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128586,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128587,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128588,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128589,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128590,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128591,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128592,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128593,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128594,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128595,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128596,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128597,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128598,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 134
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128604
      start: 128349
    functionDepth: 1
    functionLinenumber: 128349
    functionLinenumberEnd: 128604
    functionName: keywordCode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrNICmp
    - testcase
    - charMap
    linkageType: ''
    returnType: int
    signature: int keywordCode(const char *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keywordCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128607
      start: 128605
    functionDepth: 2
    functionLinenumber: 128605
    functionLinenumberEnd: 128607
    functionName: sqlite3KeywordCode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - keywordCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeywordCode(const unsigned char *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128632
      start: 128631
    functionDepth: 0
    functionLinenumber: 128631
    functionLinenumberEnd: 128632
    functionName: IdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128650
      start: 128649
    functionDepth: 0
    functionLinenumber: 128649
    functionLinenumberEnd: 128650
    functionName: IdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128654
      start: 128654
    functionDepth: 1
    functionLinenumber: 128654
    functionLinenumberEnd: 128654
    functionName: sqlite3IsIdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - IdChar
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsIdChar(u8 c)
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128666,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128667,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128668,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128669,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128670,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128671,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128783,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128784,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128785,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128808,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128819,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128819,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128819,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128820,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128820,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128820,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128821,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128821,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128821,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128822,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128825,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128826,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128830,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128834,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128838,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128839,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128843,1
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128847,1
    - Dst: sqlite3Isdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128860,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128870,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128870,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128871,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128871,1
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128874,1
    - Dst: sqlite3Isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128880,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128899,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128899,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128902,1
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128914,1
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128917,1
    - Dst: keywordCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128918,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 286
    argCount: 2
    argNames:
    - z
    - tokenType
    argTypes:
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128924
      start: 128662
    functionDepth: 2
    functionLinenumber: 128662
    functionLinenumberEnd: 128924
    functionName: sqlite3GetToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3Isxdigit
    - keywordCode
    - IdChar
    - sqlite3Isdigit
    - sqlite3Isspace
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetToken(const unsigned char *z, int *tokenType)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128943,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128951,1
    - Dst: sqlite3ParserAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128957,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128958,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128959,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128960,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128961,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128965,1
    - Dst: sqlite3GetToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128967,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128976,1
    - Dst: sqlite3ErrorMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128983,1
    - Dst: sqlite3Parser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:128992,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129004,1
    - Dst: sqlite3Parser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129006,1
    - Dst: sqlite3Parser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129010,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129014,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129014,1
    - Dst: sqlite3StatusSet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129015,1
    - Dst: sqlite3ParserStackPeak
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129016,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129018,1
    - Dst: sqlite3MallocMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129018,1
    - Dst: sqlite3ParserFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129020,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129026,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129026,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129028,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129031,1
    - Dst: sqlite3VdbeDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129036,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129041,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129047,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129055,1
    - Dst: sqlite3WithDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129058,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129059,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129060,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129061,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129065,1
    - Dst: sqlite3DeleteTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129072,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 121
    argCount: 3
    argNames:
    - pParse
    - zSql
    - pzErrMsg
    argTypes:
    - Parse*
    - char*
    - char**
    assertStmts:
    - condition: ( pParse->pNewTable==0 )
      pos:
        line_end: 128956
        line_start: 128956
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->azVar==0 )
      pos:
        line_end: 128960
        line_start: 128960
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pzErrMsg!=0 )
      pos:
        line_end: 128950
        line_start: 128950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zSql[i]==0 )
      pos:
        line_end: 129003
        line_start: 129003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nErr==0 )
      pos:
        line_end: 129001
        line_start: 129001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zSql!=0 )
      pos:
        line_end: 128942
        line_start: 128942
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->pNewTrigger==0 )
      pos:
        line_end: 128957
        line_start: 128957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i>=0 )
      pos:
        line_end: 128964
        line_start: 128964
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nErr==0 || pParse->rc!=SQLITE_OK )
      pos:
        line_end: 129071
        line_start: 129071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->nVar==0 )
      pos:
        line_end: 128958
        line_start: 128958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParse->nzVar==0 )
      pos:
        line_end: 128959
        line_start: 128959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pzErrMsg!=0 )
      pos:
        line_end: 129027
        line_start: 129027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129074
      start: 128933
    functionDepth: 30
    functionLinenumber: 128933
    functionLinenumberEnd: 129074
    functionName: sqlite3RunParser
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3Parser
    - sqlite3_log
    - sqlite3DeleteTable
    - sqlite3ErrorMsg
    - sqlite3DbFree
    - sqlite3DeleteTrigger
    - sqlite3GetToken
    - sqlite3_free
    - sqlite3ParserStackPeak
    - sqlite3StatusSet
    - sqlite3MallocMutex
    - sqlite3ParserFree
    - sqlite3_mutex_leave
    - sqlite3ParserAlloc
    - sqlite3_mutex_enter
    - sqlite3ErrStr
    - assert
    - sqlite3VdbeDelete
    - sqlite3MPrintf
    - sqlite3WithDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RunParser(Parse *pParse, const char *zSql, char
      **pzErrMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129105
      start: 129104
    functionDepth: 0
    functionLinenumber: 129104
    functionLinenumberEnd: 129105
    functionName: IdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129109
      start: 129108
    functionDepth: 0
    functionLinenumber: 129108
    functionLinenumberEnd: 129109
    functionName: IdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129278,1
    - Dst: IdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129281,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129287,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129295,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129297,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129299,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129307,1
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129311,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 127
    argCount: 1
    argNames:
    - zSql
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129338
      start: 129181
    functionDepth: 1
    functionLinenumber: 129181
    functionLinenumberEnd: 129338
    functionName: sqlite3_complete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - IdChar
    - sqlite3StrNICmp
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_complete(const char *zSql)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129352,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129355,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129356,1
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129357,1
    - Dst: sqlite3_complete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129359,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - zSql
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129365
      start: 129346
    functionDepth: 12
    functionLinenumber: 129346
    functionLinenumberEnd: 129365
    functionName: sqlite3_complete16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3ValueFree
    - sqlite3ValueNew
    - sqlite3ValueSetStr
    - sqlite3_complete
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_complete16(const void *zSql)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129500
      start: 129500
    functionDepth: 0
    functionLinenumber: 129500
    functionLinenumberEnd: 129500
    functionName: SQLITE_STDCALL::sqlite3_libversion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_libversion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129506
      start: 129506
    functionDepth: 0
    functionLinenumber: 129506
    functionLinenumberEnd: 129506
    functionName: SQLITE_STDCALL::sqlite3_sourceid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_sourceid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129511
      start: 129511
    functionDepth: 0
    functionLinenumber: 129511
    functionLinenumberEnd: 129511
    functionName: sqlite3_libversion_number
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_libversion_number(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129517
      start: 129517
    functionDepth: 0
    functionLinenumber: 129517
    functionLinenumberEnd: 129517
    functionName: sqlite3_threadsafe
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_threadsafe(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129591,1
    - Dst: sqlite3_wsd_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129598,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129607,1
    - Dst: sqlite3MutexInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129624,1
    - Dst: MUTEX_LOGIC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129633,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129633,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129634,1
    - Dst: sqlite3MallocInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129637,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129643,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129652,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129674,1
    - Dst: GLOBAL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129676,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129678,1
    - Dst: sqlite3RegisterGlobalFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129679,1
    - Dst: sqlite3PcacheInitialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129681,1
    - Dst: sqlite3OsInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129685,1
    - Dst: sqlite3PCacheBufferSetup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129688,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129697,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129702,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129705,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129706,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129722,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129723,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129724,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129725,1
    - Dst: sqlite3IsNaN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129725,1
    - Dst: SQLITE_EXTRA_INIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129736,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( SQLITE_PTRSIZE==sizeof(char*) )
      pos:
        line_end: 129606
        line_start: 129606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (sizeof(x)==8)
      pos:
        line_end: 129721
        line_start: 129721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3IsNaN(y) )
      pos:
        line_end: 129724
        line_start: 129724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3GlobalConfig.nRefInitMutex==0 )
      pos:
        line_end: 129704
        line_start: 129704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (sizeof(x)==sizeof(y))
      pos:
        line_end: 129722
        line_start: 129722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129741
      start: 129590
    functionDepth: 3
    functionLinenumber: 129590
    functionLinenumberEnd: 129741
    functionName: sqlite3_initialize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 15
    functionsReached:
    - sqlite3_mutex_enter
    - memset
    - sqlite3OsInit
    - sqlite3PcacheInitialize
    - sqlite3IsNaN
    - assert
    - sqlite3_mutex_free
    - sqlite3RegisterGlobalFunctions
    - sqlite3MutexAlloc
    - memcpy
    - SQLITE_EXTRA_INIT
    - GLOBAL
    - sqlite3PCacheBufferSetup
    - sqlite3MutexInit
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - sqlite3_wsd_init
    - sqlite3MallocInit
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_initialize(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_wsd_init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129753,1
    - Dst: SQLITE_EXTRA_SHUTDOWN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129762,1
    - Dst: sqlite3_os_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129764,1
    - Dst: sqlite3_reset_auto_extension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129765,1
    - Dst: sqlite3PcacheShutdown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129769,1
    - Dst: sqlite3MallocEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129773,1
    - Dst: sqlite3MutexEnd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129794
      start: 129751
    functionDepth: 4
    functionLinenumber: 129751
    functionLinenumberEnd: 129794
    functionName: sqlite3_shutdown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_EXTRA_SHUTDOWN
    - sqlite3_os_end
    - sqlite3MallocEnd
    - sqlite3_reset_auto_extension
    - sqlite3MutexEnd
    - sqlite3PcacheShutdown
    - sqlite3_wsd_init
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_shutdown(void)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129813,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129849,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129867,1
    - Dst: sqlite3MemSetDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129875,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129883,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129891,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129892,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129893,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129900,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129901,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129902,1
    - Dst: sqlite3HeaderSizeBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129911,1
    - Dst: sqlite3HeaderSizePcache
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129912,1
    - Dst: sqlite3HeaderSizePcache1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129913,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129932,1
    - Dst: sqlite3PCacheSetDefault
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129941,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129956,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129957,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129958,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129976,1
    - Dst: sqlite3MemGetMemsys3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129982,1
    - Dst: sqlite3MemGetMemsys5
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129985,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129993,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:129994,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130008,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130009,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130023,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130032,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130039,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130040,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130050,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130051,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130075,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130081,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130090,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 144
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130092
      start: 129805
    functionDepth: 2
    functionLinenumber: 129805
    functionLinenumberEnd: 130092
    functionName: sqlite3_config
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3HeaderSizePcache
    - memset
    - va_arg
    - sqlite3HeaderSizeBtree
    - sqlite3HeaderSizePcache1
    - sqlite3MemSetDefault
    - va_start
    - sqlite3PCacheSetDefault
    - sqlite3MemGetMemsys5
    - va_end
    - sqlite3MemGetMemsys3
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_config(int op, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130116,1
    - Dst: ROUNDDOWN8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130121,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130128,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130129,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130130,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130131,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - db
    - pBuf
    - sz
    - cnt
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    assertStmts:
    - condition: ( sz > (int)sizeof(LookasideSlot*) )
      pos:
        line_end: 130140
        line_start: 130140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130159
      start: 130105
    functionDepth: 4
    functionLinenumber: 130105
    functionLinenumberEnd: 130159
    functionName: setupLookaside
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3BeginBenignMalloc
    - assert
    - sqlite3Malloc
    - sqlite3EndBenignMalloc
    - ROUNDDOWN8
    - sqlite3MallocSize
    linkageType: ''
    returnType: int
    signature: int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130172
      start: 130164
    functionDepth: 10
    functionLinenumber: 130164
    functionLinenumberEnd: 130172
    functionName: sqlite3_db_mutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: void
    signature: void sqlite3_db_mutex(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130182,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130184,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130185,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130189,1
    - Dst: sqlite3PagerShrink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130190,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130193,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130196
      start: 130178
    functionDepth: 10
    functionLinenumber: 130178
    functionLinenumberEnd: 130196
    functionName: sqlite3_db_release_memory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreePager
    - sqlite3SafetyCheckOk
    - sqlite3PagerShrink
    - sqlite3_mutex_leave
    - sqlite3BtreeLeaveAll
    - sqlite3BtreeEnterAll
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_release_memory(sqlite3 *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130204,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130207,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130208,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130209,1
    - Dst: setupLookaside
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130210,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130223,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130225,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130226,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130234,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130246,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - db
    - op
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130248
      start: 130201
    functionDepth: 5
    functionLinenumber: 130201
    functionLinenumberEnd: 130248
    functionName: sqlite3_db_config
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_arg
    - sqlite3ExpirePreparedStatements
    - va_start
    - setupLookaside
    - ArraySize
    - va_end
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_config(sqlite3 *db, int op, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130257
      start: 130254
    functionDepth: 0
    functionLinenumber: 130254
    functionLinenumberEnd: 130257
    functionName: allSpaces
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int allSpaces(const char *z, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130276,1
    - Dst: allSpaces
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130279,1
    - Dst: allSpaces
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - padFlag
    - nKey1
    - pKey1
    - nKey2
    - pKey2
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130292
      start: 130266
    functionDepth: 1
    functionLinenumber: 130266
    functionLinenumberEnd: 130292
    functionName: binCollFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - allSpaces
    linkageType: ''
    returnType: int
    signature: "int binCollFunc(\n  void *padFlag,\n  int nKey1, const void *pKey1,\n
      \ int nKey2, const void *pKey2\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130308,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - NotUsed
    - nKey1
    - pKey1
    - nKey2
    - pKey2
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130315
      start: 130303
    functionDepth: 1
    functionLinenumber: 130303
    functionLinenumberEnd: 130315
    functionName: nocaseCollatingFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3StrNICmp
    linkageType: ''
    returnType: int
    signature: "int nocaseCollatingFunc(\n  void *NotUsed,\n  int nKey1, const void
      *pKey1,\n  int nKey2, const void *pKey2\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130328
      start: 130320
    functionDepth: 10
    functionLinenumber: 130320
    functionLinenumberEnd: 130328
    functionName: sqlite3_last_insert_rowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_last_insert_rowid(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130341
      start: 130333
    functionDepth: 10
    functionLinenumber: 130333
    functionLinenumberEnd: 130341
    functionName: sqlite3_changes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_changes(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130354
      start: 130346
    functionDepth: 10
    functionLinenumber: 130346
    functionLinenumberEnd: 130354
    functionName: sqlite3_total_changes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_total_changes(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130370
      start: 130361
    functionDepth: 5
    functionLinenumber: 130361
    functionLinenumberEnd: 130370
    functionName: sqlite3CloseSavepoints
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CloseSavepoints(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FuncDestructor*::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130383,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - FuncDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130387
      start: 130378
    functionDepth: 5
    functionLinenumber: 130378
    functionLinenumberEnd: 130387
    functionName: functionDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - FuncDestructor*::xDestroy
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void functionDestroy(sqlite3 *db, FuncDef *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130396,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130401,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130401,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130402,1
    - Dst: IsVirtual
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130403,1
    - Dst: sqlite3VtabDisconnect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130403,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130407,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130408,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130412
      start: 130393
    functionDepth: 7
    functionLinenumber: 130393
    functionLinenumberEnd: 130412
    functionName: disconnectAllVtab
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabUnlockList
    - sqliteHashNext
    - IsVirtual
    - sqliteHashFirst
    - UNUSED_PARAMETER
    - sqliteHashData
    - sqlite3VtabDisconnect
    - sqlite3BtreeLeaveAll
    - sqlite3BtreeEnterAll
    linkageType: ''
    returnType: void
    signature: void disconnectAllVtab(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130420,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130420,1
    - Dst: sqlite3BtreeIsInBackup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 130419
        line_start: 130419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130427
      start: 130418
    functionDepth: 2
    functionLinenumber: 130418
    functionLinenumberEnd: 130427
    functionName: connectionIsBusy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3BtreeIsInBackup
    - assert
    linkageType: ''
    returnType: int
    signature: int connectionIsBusy(sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130438,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130441,1
    - Dst: disconnectAllVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130444,1
    - Dst: sqlite3VtabRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130453,1
    - Dst: connectionIsBusy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130458,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130459,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130461,1
    - Dst: xSqllog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130468,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - db
    - forceZombie
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130477
      start: 130432
    functionDepth: 10
    functionLinenumber: 130432
    functionLinenumberEnd: 130477
    functionName: sqlite3Close
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - xSqllog
    - sqlite3LeaveMutexAndCloseZombie
    - disconnectAllVtab
    - sqlite3SafetyCheckSickOrOk
    - sqlite3VtabRollback
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    - connectionIsBusy
    linkageType: ''
    returnType: int
    signature: int sqlite3Close(sqlite3 *db, int forceZombie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130488
      start: 130488
    functionDepth: 11
    functionLinenumber: 130488
    functionLinenumberEnd: 130488
    functionName: sqlite3_close
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Close
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_close(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130489
      start: 130489
    functionDepth: 11
    functionLinenumber: 130489
    functionLinenumberEnd: 130489
    functionName: sqlite3_close_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Close
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_close_v2(sqlite3 *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: connectionIsBusy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130508,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130509,1
    - Dst: sqlite3RollbackAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130523,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130526,1
    - Dst: sqlite3BtreeClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130532,1
    - Dst: sqlite3SchemaClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130541,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130543,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130546,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130547,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130548,1
    - Dst: sqlite3ConnectionClosed
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130553,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130555,1
    - Dst: functionDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130560,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130562,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130567,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130567,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130568,1
    - Dst: xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130572,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130575,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130577,1
    - Dst: sqliteHashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130579,1
    - Dst: sqliteHashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130579,1
    - Dst: sqliteHashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130580,1
    - Dst: Module*::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130582,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130584,1
    - Dst: sqlite3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130586,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130589,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130590,1
    - Dst: sqlite3CloseExtensions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130591,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130593,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130594,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130605,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130606,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130608,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130609,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130611,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( db->nDb<=2 )
      pos:
        line_end: 130546
        line_start: 130546
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->lookaside.nOut==0 )
      pos:
        line_end: 130608
        line_start: 130608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->aDb==db->aDbStatic )
      pos:
        line_end: 130547
        line_start: 130547
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130614
      start: 130500
    functionDepth: 10
    functionLinenumber: 130500
    functionLinenumberEnd: 130614
    functionName: sqlite3LeaveMutexAndCloseZombie
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3RollbackAll
    - sqlite3SchemaClear
    - sqlite3Error
    - sqliteHashData
    - sqlite3DbFree
    - sqlite3CloseExtensions
    - xDel
    - sqlite3_free
    - Module*::xDestroy
    - sqlite3BtreeClose
    - functionDestroy
    - sqlite3_mutex_leave
    - sqlite3CollapseDatabaseArray
    - sqlite3VtabUnlockList
    - sqliteHashNext
    - sqlite3ValueFree
    - assert
    - sqlite3CloseSavepoints
    - sqlite3_mutex_free
    - connectionIsBusy
    - sqliteHashFirst
    - ArraySize
    - sqlite3HashClear
    - sqlite3ConnectionClosed
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LeaveMutexAndCloseZombie(sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130627,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130627,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130628,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130636,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130642,1
    - Dst: sqlite3BtreeRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130645,1
    - Dst: sqlite3VtabRollback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130648,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130649,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130652,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130653,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130655,1
    - Dst: sqlite3*::xRollbackCallback
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - db
    - tripCode
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 130626
        line_start: 130626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130666
      start: 130623
    functionDepth: 13
    functionLinenumber: 130623
    functionLinenumberEnd: 130666
    functionName: sqlite3RollbackAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3BtreeIsInTrans
    - assert
    - sqlite3BeginBenignMalloc
    - sqlite3ExpirePreparedStatements
    - sqlite3EndBenignMalloc
    - sqlite3VtabRollback
    - sqlite3*::xRollbackCallback
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3BtreeRollback
    - sqlite3BtreeLeaveAll
    - sqlite3BtreeEnterAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RollbackAll(sqlite3 *db, int tripCode)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130770,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 256
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130774
      start: 130673
    functionDepth: 0
    functionLinenumber: 130673
    functionLinenumberEnd: 130774
    functionName: sqlite3ErrName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 12
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ErrName(int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130819,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130826
      start: 130781
    functionDepth: 1
    functionLinenumber: 130781
    functionLinenumberEnd: 130826
    functionName: sqlite3ErrStr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - ALWAYS
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ErrStr(int rc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130848,1
    - Dst: sqlite3OsSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130860,1
    - Dst: sqlite3OsSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130868,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ptr
    - count
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( count>=0 )
      pos:
        line_end: 130847
        line_start: 130847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130871
      start: 130834
    functionDepth: 1
    functionLinenumber: 130834
    functionLinenumberEnd: 130871
    functionName: sqliteDefaultBusyCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSleep
    - assert
    linkageType: ''
    returnType: int
    signature: "int sqliteDefaultBusyCallback(\n void *ptr,               /* Database
      connection */\n int count                /* Number of times table has been busy
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130882,1
    - Dst: BusyHandler*::xFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - BusyHandler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130890
      start: 130880
    functionDepth: 1
    functionLinenumber: 130880
    functionLinenumberEnd: 130890
    functionName: sqlite3InvokeBusyHandler
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - BusyHandler*::xFunc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3InvokeBusyHandler(BusyHandler *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130902,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130904,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130911
      start: 130896
    functionDepth: 10
    functionLinenumber: 130896
    functionLinenumberEnd: 130911
    functionName: sqlite3_busy_handler
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_busy_handler(\n  sqlite3 *db,\n  int (*xBusy)(void*,int),\n
      \ void *pArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130926,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130931,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - db
    - nOps
    - pArg
    argTypes:
    - sqlite3*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130942
      start: 130919
    functionDepth: 10
    functionLinenumber: 130919
    functionLinenumberEnd: 130942
    functionName: sqlite3_progress_handler
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_progress_handler(\n  sqlite3 *db, \n  int nOps,\n
      \ int (*xProgress)(void*), \n  void *pArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130952,1
    - Dst: sqlite3_busy_handler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130955,1
    - Dst: sqlite3_busy_handler
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - db
    - ms
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130961
      start: 130950
    functionDepth: 11
    functionLinenumber: 130950
    functionLinenumberEnd: 130961
    functionName: sqlite3_busy_timeout
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_busy_handler
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_busy_timeout(sqlite3 *db, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130974
      start: 130966
    functionDepth: 10
    functionLinenumber: 130966
    functionLinenumberEnd: 130974
    functionName: sqlite3_interrupt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_interrupt(sqlite3 *db)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130998,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:130998,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131004,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131008,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131024,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131027,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131044,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131047,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131049,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131052,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131056,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131057,1
    - Dst: functionDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131064,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131071,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 6
    argNames:
    - db
    - zFunctionName
    - nArg
    - enc
    - pUserData
    - pDestructor
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    - FuncDestructor*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 130997
        line_start: 130997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_FUNC_CONSTANT==SQLITE_DETERMINISTIC )
      pos:
        line_end: 131007
        line_start: 131007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 131048
        line_start: 131048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (p || db->mallocFailed)
      pos:
        line_end: 131056
        line_start: 131056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131078
      start: 130983
    functionDepth: 8
    functionLinenumber: 130983
    functionLinenumberEnd: 131078
    functionName: sqlite3CreateFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3FindFunction
    - assert
    - sqlite3ExpirePreparedStatements
    - sqlite3CreateFunc
    - sqlite3Strlen30
    - functionDestroy
    - sqlite3ErrorWithMsg
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateFunc(\n  sqlite3 *db,\n  const char *zFunctionName,\n
      \ int nArg,\n  int enc,\n  void *pUserData,\n  void (*xFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*),\n
      \ FuncDestructor *pDestructor\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131095
      start: 131083
    functionDepth: 1
    functionLinenumber: 131083
    functionLinenumberEnd: 131095
    functionName: sqlite3_create_function
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function(\n  sqlite3 *db,\n  const char
      *zFunc,\n  int nArg,\n  int enc,\n  void *p,\n  void (*xFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*)\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131112,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131116,1
    - Dst: sqlite3DbMallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131118,1
    - Dst: xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131120,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131126,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131128,1
    - Dst: xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131129,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131130,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131134,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts:
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 131127
        line_start: 131127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131137
      start: 131097
    functionDepth: 10
    functionLinenumber: 131097
    functionLinenumberEnd: 131137
    functionName: sqlite3_create_function_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3SafetyCheckOk
    - sqlite3CreateFunc
    - sqlite3DbMallocZero
    - sqlite3_mutex_leave
    - sqlite3DbFree
    - xDestroy
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function_v2(\n  sqlite3 *db,\n  const char
      *zFunc,\n  int nArg,\n  int enc,\n  void *p,\n  void (*xFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*),\n
      \ void (*xDestroy)(void *)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131154,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131156,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131157,1
    - Dst: sqlite3Utf16to8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131158,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131159,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131160,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131161,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - db
    - zFunctionName
    - nArg
    - eTextRep
    - p
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 131156
        line_start: 131156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131164
      start: 131140
    functionDepth: 10
    functionLinenumber: 131140
    functionLinenumberEnd: 131164
    functionName: sqlite3_create_function16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Utf16to8
    - sqlite3ApiExit
    - assert
    - sqlite3SafetyCheckOk
    - sqlite3CreateFunc
    - sqlite3_mutex_leave
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function16(\n  sqlite3 *db,\n  const void
      *zFunctionName,\n  int nArg,\n  int eTextRep,\n  void *p,\n  void (*xFunc)(sqlite3_context*,int,sqlite3_value**),\n
      \ void (*xStep)(sqlite3_context*,int,sqlite3_value**),\n  void (*xFinal)(sqlite3_context*)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131185,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131189,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131193,1
    - Dst: sqlite3FindFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131194,1
    - Dst: sqlite3CreateFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131195,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131198,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - db
    - zName
    - nArg
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131201
      start: 131180
    functionDepth: 10
    functionLinenumber: 131180
    functionLinenumberEnd: 131201
    functionName: sqlite3_overload_function
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FindFunction
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - sqlite3SafetyCheckOk
    - sqlite3CreateFunc
    - sqlite3Strlen30
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_overload_function(\n  sqlite3 *db,\n  const char
      *zName,\n  int nArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131216,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131221,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131227
      start: 131212
    functionDepth: 10
    functionLinenumber: 131212
    functionLinenumberEnd: 131227
    functionName: SQLITE_STDCALL::sqlite3_trace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_trace(sqlite3 *db, void (*xTrace)(void*,const
      char*), void *pArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131244,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131249,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131255
      start: 131236
    functionDepth: 10
    functionLinenumber: 131236
    functionLinenumberEnd: 131255
    functionName: SQLITE_STDCALL::sqlite3_profile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *SQLITE_STDCALL sqlite3_profile(\n  sqlite3 *db,\n  void
      (*xProfile)(void*,const char*,sqlite_uint64),\n  void *pArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131271,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131276,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131282
      start: 131263
    functionDepth: 10
    functionLinenumber: 131263
    functionLinenumberEnd: 131282
    functionName: SQLITE_STDCALL::sqlite3_commit_hook
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *SQLITE_STDCALL sqlite3_commit_hook(\n  sqlite3 *db,              /*
      Attach the hook to this database */\n  int (*xCallback)(void*),  /* Function
      to invoke on each commit */\n  void *pArg                /* Argument to the
      function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131296,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131301,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131307
      start: 131288
    functionDepth: 10
    functionLinenumber: 131288
    functionLinenumberEnd: 131307
    functionName: SQLITE_STDCALL::sqlite3_update_hook
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *SQLITE_STDCALL sqlite3_update_hook(\n  sqlite3 *db,              /*
      Attach the hook to this database */\n  void (*xCallback)(void*,int,char const
      *,char const *,sqlite_int64),\n  void *pArg                /* Argument to the
      function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131321,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131326,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131332
      start: 131313
    functionDepth: 10
    functionLinenumber: 131313
    functionLinenumberEnd: 131332
    functionName: SQLITE_STDCALL::sqlite3_rollback_hook
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *SQLITE_STDCALL sqlite3_rollback_hook(\n  sqlite3 *db,
      \             /* Attach the hook to this database */\n  void (*xCallback)(void*),
      /* Callback function */\n  void *pArg                /* Argument to the function
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131347,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131348,1
    - Dst: sqlite3_wal_checkpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131349,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pClientData
    - db
    - zDb
    - nFrame
    argTypes:
    - void*
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131353
      start: 131341
    functionDepth: 1
    functionLinenumber: 131341
    functionLinenumberEnd: 131353
    functionName: sqlite3WalDefaultHook
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_wal_checkpoint
    - SQLITE_PTR_TO_INT
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalDefaultHook(\n  void *pClientData,     /*
      Argument */\n  sqlite3 *db,           /* Connection */\n  const char *zDb,       /*
      Database */\n  int nFrame             /* Size of WAL */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131369,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131370,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131373,1
    - Dst: sqlite3_wal_hook
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131376,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131376,1
    - Dst: sqlite3_wal_hook
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - nFrame
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131382
      start: 131367
    functionDepth: 10
    functionLinenumber: 131367
    functionLinenumberEnd: 131382
    functionName: sqlite3_wal_autocheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_wal_hook
    - UNUSED_PARAMETER
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_wal_autocheckpoint(sqlite3 *db, int nFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131396,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131401,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131410
      start: 131388
    functionDepth: 10
    functionLinenumber: 131388
    functionLinenumberEnd: 131410
    functionName: SQLITE_STDCALL::sqlite3_wal_hook
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *SQLITE_STDCALL sqlite3_wal_hook(\n  sqlite3 *db,                    /*
      Attach the hook to this db handle */\n  int(*xCallback)(void *, sqlite3*, const
      char*, int),\n  void *pArg                      /* First argument passed to
      xCallback() */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131429,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131436,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131437,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131438,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131439,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131446,1
    - Dst: sqlite3FindDbName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131448,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131452,1
    - Dst: sqlite3Checkpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131455,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131456,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131458,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131459,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - db
    - zDb
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - sqlite3*
    - char*
    - int
    - int*
    - int*
    assertStmts:
    - condition: ( SQLITE_CHECKPOINT_PASSIVE==0 )
      pos:
        line_end: 131435
        line_start: 131435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_TRUNCATE==3 )
      pos:
        line_end: 131438
        line_start: 131438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_RESTART==2 )
      pos:
        line_end: 131437
        line_start: 131437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_FULL==1 )
      pos:
        line_end: 131436
        line_start: 131436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131462
      start: 131415
    functionDepth: 10
    functionLinenumber: 131415
    functionLinenumberEnd: 131462
    functionName: sqlite3_wal_checkpoint_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Checkpoint
    - sqlite3ApiExit
    - assert
    - sqlite3SafetyCheckOk
    - sqlite3FindDbName
    - sqlite3Error
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_wal_checkpoint_v2(\n  sqlite3 *db,                    /*
      Database handle */\n  const char *zDb,                /* Name of attached database
      (or NULL) */\n  int eMode,                      /* SQLITE_CHECKPOINT_* value
      */\n  int *pnLog,                     /* OUT: Size of WAL log in frames */\n
      \ int *pnCkpt                     /* OUT: Total number of frames checkpointed
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_wal_checkpoint_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - zDb
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131474
      start: 131470
    functionDepth: 11
    functionLinenumber: 131470
    functionLinenumberEnd: 131474
    functionName: sqlite3_wal_checkpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_wal_checkpoint_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131501,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131502,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131503,1
    - Dst: sqlite3BtreeCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - db
    - iDb
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - sqlite3*
    - int
    - int
    - int*
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 131500
        line_start: 131500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pnCkpt || *pnCkpt==-1 )
      pos:
        line_end: 131502
        line_start: 131502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pnLog || *pnLog==-1 )
      pos:
        line_end: 131501
        line_start: 131501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131518
      start: 131496
    functionDepth: 3
    functionLinenumber: 131496
    functionLinenumberEnd: 131518
    functionName: sqlite3Checkpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3BtreeCheckpoint
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Checkpoint(sqlite3 *db, int iDb, int eMode, int
      *pnLog, int *pnCkpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131548,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131555
      start: 131540
    functionDepth: 1
    functionLinenumber: 131540
    functionLinenumberEnd: 131555
    functionName: sqlite3TempInMemory
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 4
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TempInMemory(const sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131564,1
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131566,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131567,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131569,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131571,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131573,1
    - Dst: SQLITE_STDCALL::sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131574,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131575,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131577,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 131574
        line_start: 131574
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131582
      start: 131561
    functionDepth: 13
    functionLinenumber: 131561
    functionLinenumberEnd: 131582
    functionName: SQLITE_STDCALL::sqlite3_errmsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ErrStr
    - assert
    - SQLITE_STDCALL::sqlite3_value_text
    - sqlite3SafetyCheckSickOrOk
    - sqlite3_mutex_leave
    - testcase
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_errmsg(sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131606,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131609,1
    - Dst: SQLITE_STDCALL::sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131613,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131615,1
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131615,1
    - Dst: SQLITE_STDCALL::sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131616,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131627
      start: 131589
    functionDepth: 13
    functionLinenumber: 131589
    functionLinenumberEnd: 131627
    functionName: SQLITE_STDCALL::sqlite3_errmsg16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ErrStr
    - sqlite3SafetyCheckSickOrOk
    - SQLITE_STDCALL::sqlite3_value_text16
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_errmsg16(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131642
      start: 131634
    functionDepth: 10
    functionLinenumber: 131634
    functionLinenumberEnd: 131642
    functionName: sqlite3_errcode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckSickOrOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_errcode(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131651
      start: 131643
    functionDepth: 10
    functionLinenumber: 131643
    functionLinenumberEnd: 131651
    functionName: sqlite3_extended_errcode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckSickOrOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_extended_errcode(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131660
      start: 131658
    functionDepth: 2
    functionLinenumber: 131658
    functionLinenumberEnd: 131660
    functionName: SQLITE_STDCALL::sqlite3_errstr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_errstr(int rc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131677,1
    - Dst: sqlite3_mutex_held
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131677,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131684,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131685,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131697,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131700,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131704,1
    - Dst: sqlite3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131713,1
    - Dst: CollSeq*::xDel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131719,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131727,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131733,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - u8
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 131676
        line_start: 131676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131735
      start: 131666
    functionDepth: 8
    functionLinenumber: 131666
    functionLinenumberEnd: 131735
    functionName: createCollation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - assert
    - CollSeq*::xDel
    - sqlite3FindCollSeq
    - sqlite3ExpirePreparedStatements
    - sqlite3Error
    - sqlite3ErrorWithMsg
    - sqlite3HashFind
    - testcase
    linkageType: ''
    returnType: int
    signature: "int createCollation(\n  sqlite3* db,\n  const char *zName, \n  u8
      enc,\n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const void*),\n
      \ void(*xDel)(void*)\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131810,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131821,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131823,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131824,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131826,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131827,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131828,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131829,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131831,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131833,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - db
    - limitId
    - newLimit
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts:
    - condition: ( aHardLimit[SQLITE_LIMIT_LENGTH]==SQLITE_MAX_LENGTH )
      pos:
        line_end: 131820
        line_start: 131820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_SQL_LENGTH]==SQLITE_MAX_SQL_LENGTH )
      pos:
        line_end: 131821
        line_start: 131821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_COLUMN]==SQLITE_MAX_COLUMN )
      pos:
        line_end: 131822
        line_start: 131822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_EXPR_DEPTH]==SQLITE_MAX_EXPR_DEPTH )
      pos:
        line_end: 131823
        line_start: 131823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_COMPOUND_SELECT]==SQLITE_MAX_COMPOUND_SELECT)
      pos:
        line_end: 131824
        line_start: 131824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_VDBE_OP]==SQLITE_MAX_VDBE_OP )
      pos:
        line_end: 131825
        line_start: 131825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_FUNCTION_ARG]==SQLITE_MAX_FUNCTION_ARG
        )
      pos:
        line_end: 131826
        line_start: 131826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_ATTACHED]==SQLITE_MAX_ATTACHED )
      pos:
        line_end: 131827
        line_start: 131827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( aHardLimit[SQLITE_LIMIT_LIKE_PATTERN_LENGTH]==\n                                               SQLITE_MAX_LIKE_PATTERN_LENGTH
        )"
      pos:
        line_end: 131829
        line_start: 131828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_VARIABLE_NUMBER]==SQLITE_MAX_VARIABLE_NUMBER)
      pos:
        line_end: 131830
        line_start: 131830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_WORKER_THREADS]==SQLITE_MAX_WORKER_THREADS
        )
      pos:
        line_end: 131832
        line_start: 131832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_TRIGGER_DEPTH]==SQLITE_MAX_TRIGGER_DEPTH
        )
      pos:
        line_end: 131831
        line_start: 131831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_LIMIT_WORKER_THREADS==(SQLITE_N_LIMIT-1) )
      pos:
        line_end: 131833
        line_start: 131833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131848
      start: 131806
    functionDepth: 10
    functionLinenumber: 131806
    functionLinenumberEnd: 131848
    functionName: sqlite3_limit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_limit(sqlite3 *db, int limitId, int newLimit)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131887,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131889,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131893,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131906,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131911,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131918,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131919,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131927,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131928,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131950,1
    - Dst: sqlite3Isxdigit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131951,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131953,1
    - Dst: sqlite3HexToInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131954,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131956,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:131998,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132000,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132002,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132004,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132015,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132027,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132048,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132048,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132054,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132059,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132072,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132074,1
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132080,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132082,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132087,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 131
    argCount: 6
    argNames:
    - zDefaultVfs
    - zUri
    - pFlags
    - ppVfs
    - pzFile
    - pzErrMsg
    argTypes:
    - char*
    - char*
    - unsigned int*
    - sqlite3_vfs**
    - char**
    - char**
    assertStmts:
    - condition: ( *pzErrMsg==0 )
      pos:
        line_end: 131888
        line_start: 131888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( octet>=0 && octet<256 )
      pos:
        line_end: 131955
        line_start: 131955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132093
      start: 131874
    functionDepth: 3
    functionLinenumber: 131874
    functionLinenumberEnd: 132093
    functionName: sqlite3ParseUri
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcmp
    - sqlite3Isxdigit
    - strncmp
    - sqlite3HexToInt
    - assert
    - sqlite3_free
    - sqlite3_malloc64
    - sqlite3_mprintf
    - memcpy
    - sqlite3_vfs_find
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ParseUri(\n  const char *zDefaultVfs,        /*
      VFS to use if no \"vfs=xxx\" query option */\n  const char *zUri,               /*
      Nul-terminated URI to parse */\n  unsigned int *pFlags,           /* IN/OUT:
      SQLITE_OPEN_XXX flags */\n  sqlite3_vfs **ppVfs,            /* OUT: VFS to use
      */ \n  char **pzFile,                  /* OUT: Filename component of URI */\n
      \ char **pzErrMsg                 /* OUT: Error message (if rc!=SQLITE_OK) */\n)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132118,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132132,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132133,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132134,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132135,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132136,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132137,1
    - Dst: sqlite3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132181,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132184,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132186,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132191,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132197,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132198,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132231,1
    - Dst: sqlite3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132233,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132243,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132244,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132245,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132246,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132247,1
    - Dst: sqlite3FindCollSeq
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132255,1
    - Dst: sqlite3ParseUri
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132259,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132262,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132263,1
    - Dst: sqlite3BtreeOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132268,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132274,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132277,1
    - Dst: sqlite3SchemaGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132278,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132279,1
    - Dst: SCHEMA_ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132279,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132280,1
    - Dst: sqlite3SchemaGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132281,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132300,1
    - Dst: sqlite3RegisterBuiltinFunctions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132301,1
    - Dst: sqlite3_errcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132306,1
    - Dst: sqlite3AutoLoadExtensions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132308,1
    - Dst: sqlite3_errcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132309,1
    - Dst: sqlite3Fts1Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132318,1
    - Dst: sqlite3Fts2Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132325,1
    - Dst: sqlite3Fts3Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132331,1
    - Dst: sqlite3IcuInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132337,1
    - Dst: sqlite3RtreeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132343,1
    - Dst: sqlite3DbstatRegister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132349,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132359,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132359,1
    - Dst: sqlite3Error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132363,1
    - Dst: setupLookaside
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132366,1
    - Dst: sqlite3_wal_autocheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132369,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132372,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132374,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132376,1
    - Dst: sqlite3_errcode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132378,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132379,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132381,1
    - Dst: xSqllog
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132391,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 165
    argCount: 4
    argNames:
    - zFilename
    - ppDb
    - flags
    - zVfs
    argTypes:
    - char*
    - sqlite3**
    - unsigned int
    - char*
    assertStmts:
    - condition: ( SQLITE_OPEN_CREATE    == 0x04 )
      pos:
        line_end: 132133
        line_start: 132133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(db->aLimit)==sizeof(aHardLimit) )
      pos:
        line_end: 132196
        line_start: 132196
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db->pDfltColl!=0 )
      pos:
        line_end: 132254
        line_start: 132254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( db->mutex!=0 || isThreadsafe==0\n           || sqlite3GlobalConfig.bFullMutex==0
        )"
      pos:
        line_end: 132374
        line_start: 132373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_OPEN_READONLY  == 0x01 )
      pos:
        line_end: 132131
        line_start: 132131
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( SQLITE_OPEN_READWRITE == 0x02 )
      pos:
        line_end: 132132
        line_start: 132132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db!=0 || rc==SQLITE_NOMEM )
      pos:
        line_end: 132378
        line_start: 132378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132395
      start: 132101
    functionDepth: 12
    functionLinenumber: 132101
    functionLinenumberEnd: 132395
    functionName: openDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3BtreePager
    - sqlite3AutoLoadExtensions
    - createCollation
    - sqlite3Fts1Init
    - ENC
    - sqlite3Error
    - sqlite3BtreeOpen
    - sqlite3_close
    - sqlite3Fts3Init
    - sqlite3MallocZero
    - xSqllog
    - sqlite3RtreeInit
    - sqlite3_free
    - memcpy
    - SCHEMA_ENC
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - setupLookaside
    - sqlite3ParseUri
    - sqlite3ErrorWithMsg
    - sqlite3Fts2Init
    - sqlite3IcuInit
    - sqlite3_wal_autocheckpoint
    - sqlite3SchemaGet
    - sqlite3DbstatRegister
    - sqlite3PagerLockingMode
    - sqlite3FindCollSeq
    - sqlite3MutexAlloc
    - sqlite3HashInit
    - sqlite3RegisterBuiltinFunctions
    - testcase
    - sqlite3_errcode
    linkageType: ''
    returnType: int
    signature: "int openDatabase(\n  const char *zFilename, /* Database filename UTF-8
      encoded */\n  sqlite3 **ppDb,        /* OUT: Returned database handle */\n  unsigned
      int flags,    /* Operational flags */\n  const char *zVfs       /* Name of the
      VFS to use */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zFilename
    - ppDb
    argTypes:
    - char*
    - sqlite3**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132406
      start: 132400
    functionDepth: 13
    functionLinenumber: 132400
    functionLinenumberEnd: 132406
    functionName: sqlite3_open
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - openDatabase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open(\n  const char *zFilename, \n  sqlite3 **ppDb
      \n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ppDb
    - flags
    - zVfs
    argTypes:
    - char*
    - sqlite3**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132414
      start: 132407
    functionDepth: 13
    functionLinenumber: 132407
    functionLinenumberEnd: 132414
    functionName: sqlite3_open_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - openDatabase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open_v2(\n  const char *filename,   /* Database
      filename (UTF-8) */\n  sqlite3 **ppDb,         /* OUT: SQLite db handle */\n
      \ int flags,              /* Flags */\n  const char *zVfs        /* Name of
      VFS module to use */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132433,1
    - Dst: sqlite3ValueNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132437,1
    - Dst: sqlite3ValueSetStr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132438,1
    - Dst: sqlite3ValueText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132439,1
    - Dst: openDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132441,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132443,1
    - Dst: DbHasProperty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132444,1
    - Dst: SCHEMA_ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132445,1
    - Dst: ENC
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132445,1
    - Dst: sqlite3ValueFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - zFilename
    - ppDb
    argTypes:
    - void*
    - sqlite3**
    assertStmts:
    - condition: ( *ppDb || rc==SQLITE_NOMEM )
      pos:
        line_end: 132442
        line_start: 132442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132453
      start: 132420
    functionDepth: 13
    functionLinenumber: 132420
    functionLinenumberEnd: 132453
    functionName: sqlite3_open16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3ValueFree
    - assert
    - openDatabase
    - ENC
    - sqlite3ValueNew
    - sqlite3ValueSetStr
    - SCHEMA_ENC
    - sqlite3ValueText
    - DbHasProperty
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open16(\n  const void *zFilename, \n  sqlite3 **ppDb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_collation_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132467
      start: 132459
    functionDepth: 1
    functionLinenumber: 132459
    functionLinenumberEnd: 132467
    functionName: sqlite3_create_collation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_collation_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation(\n  sqlite3* db, \n  const char
      *zName, \n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const
      void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132483,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132485,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132486,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132487,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132488,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 132485
        line_start: 132485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132491
      start: 132472
    functionDepth: 10
    functionLinenumber: 132472
    functionLinenumberEnd: 132491
    functionName: sqlite3_create_collation_v2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - assert
    - sqlite3SafetyCheckOk
    - createCollation
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation_v2(\n  sqlite3* db, \n  const
      char *zName, \n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const
      void*,int,const void*),\n  void(*xDel)(void*)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132508,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132511,1
    - Dst: sqlite3Utf16to8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132512,1
    - Dst: createCollation
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132514,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132515,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132517,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - void*
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 132510
        line_start: 132510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132520
      start: 132497
    functionDepth: 10
    functionLinenumber: 132497
    functionLinenumberEnd: 132520
    functionName: sqlite3_create_collation16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Utf16to8
    - sqlite3ApiExit
    - assert
    - sqlite3SafetyCheckOk
    - createCollation
    - sqlite3_mutex_leave
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation16(\n  sqlite3* db, \n  const void
      *zName,\n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const
      void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132533,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132535,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pCollNeededArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132541
      start: 132527
    functionDepth: 10
    functionLinenumber: 132527
    functionLinenumberEnd: 132541
    functionName: sqlite3_collation_needed
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_collation_needed(\n  sqlite3 *db, \n  void *pCollNeededArg,
      \n  void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132554,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132556,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pCollNeededArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132562
      start: 132548
    functionDepth: 10
    functionLinenumber: 132548
    functionLinenumberEnd: 132562
    functionName: sqlite3_collation_needed16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_collation_needed16(\n  sqlite3 *db, \n  void *pCollNeededArg,
      \n  void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132572
      start: 132570
    functionDepth: 0
    functionLinenumber: 132570
    functionLinenumberEnd: 132572
    functionName: sqlite3_global_recover
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_global_recover(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132589
      start: 132581
    functionDepth: 10
    functionLinenumber: 132581
    functionLinenumberEnd: 132589
    functionName: sqlite3_get_autocommit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_get_autocommit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132603,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132604,1
    - Dst: sqlite3_sourceid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132608
      start: 132602
    functionDepth: 8
    functionLinenumber: 132602
    functionLinenumberEnd: 132608
    functionName: sqlite3CorruptError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_sourceid
    - sqlite3_log
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CorruptError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132610,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132611,1
    - Dst: sqlite3_sourceid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132615
      start: 132609
    functionDepth: 8
    functionLinenumber: 132609
    functionLinenumberEnd: 132615
    functionName: sqlite3MisuseError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_sourceid
    - sqlite3_log
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MisuseError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132617,1
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132618,1
    - Dst: sqlite3_sourceid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132622
      start: 132616
    functionDepth: 8
    functionLinenumber: 132616
    functionLinenumberEnd: 132622
    functionName: sqlite3CantopenError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_sourceid
    - sqlite3_log
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CantopenError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132634
      start: 132633
    functionDepth: 0
    functionLinenumber: 132633
    functionLinenumberEnd: 132634
    functionName: sqlite3_thread_cleanup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_thread_cleanup(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132665,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132671,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132672,1
    - Dst: sqlite3Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132673,1
    - Dst: sqlite3FindTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132679,1
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132691,1
    - Dst: HasRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132696,1
    - Dst: sqlite3IsRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132696,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132731,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132744,1
    - Dst: sqlite3MPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132745,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132749,1
    - Dst: sqlite3DbFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132750,1
    - Dst: sqlite3ApiExit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132751,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132752,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 9
    argNames:
    - db
    - zDbName
    - zTableName
    - zColumnName
    - pzDataType
    - pzCollSeq
    - pNotNull
    - pPrimaryKey
    - pAutoinc
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char*
    - char**
    - char**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132754
      start: 132641
    functionDepth: 10
    functionLinenumber: 132641
    functionLinenumberEnd: 132754
    functionName: sqlite3_table_column_metadata
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Init
    - sqlite3ApiExit
    - sqlite3StrICmp
    - sqlite3SafetyCheckOk
    - sqlite3MPrintf
    - sqlite3FindTable
    - sqlite3ErrorWithMsg
    - HasRowid
    - sqlite3_mutex_leave
    - sqlite3IsRowid
    - sqlite3BtreeLeaveAll
    - sqlite3DbFree
    - sqlite3BtreeEnterAll
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_table_column_metadata(\n  sqlite3 *db,                /*
      Connection handle */\n  const char *zDbName,        /* Database name or NULL
      */\n  const char *zTableName,     /* Table name */\n  const char *zColumnName,
      \   /* Column name */\n  char const **pzDataType,    /* OUTPUT: Declared data
      type */\n  char const **pzCollSeq,     /* OUTPUT: Collation sequence name */\n
      \ int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists
      */\n  int *pPrimaryKey,           /* OUTPUT: True if column part of PK */\n
      \ int *pAutoinc               /* OUTPUT: True if column is auto-increment */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132762,1
    - Dst: sqlite3OsSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132770
      start: 132759
    functionDepth: 2
    functionLinenumber: 132759
    functionLinenumberEnd: 132770
    functionName: sqlite3_sleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSleep
    - sqlite3_vfs_find
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_sleep(int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132777,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132779,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - onoff
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132783
      start: 132775
    functionDepth: 10
    functionLinenumber: 132775
    functionLinenumberEnd: 132783
    functionName: sqlite3_extended_result_codes
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_extended_result_codes(sqlite3 *db, int onoff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132793,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132795,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132796,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132800,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132801,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132802,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132803,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132804,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132809,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132813,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - db
    - zDbName
    - op
    - pArg
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts:
    - condition: ( pPager!=0 )
      pos:
        line_end: 132801
        line_start: 132801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( fd!=0 )
      pos:
        line_end: 132803
        line_start: 132803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132817
      start: 132788
    functionDepth: 10
    functionLinenumber: 132788
    functionLinenumberEnd: 132817
    functionName: sqlite3_file_control
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreePager
    - sqlite3_mutex_leave
    - assert
    - sqlite3BtreeEnter
    - sqlite3SafetyCheckOk
    - sqlite3PagerFile
    - sqlite3BtreeLeave
    - sqlite3DbNameToBtree
    - sqlite3OsFileControl
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_file_control(sqlite3 *db, const char *zDbName, int
      op, void *pArg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132825,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132828,1
    - Dst: sqlite3PrngSaveState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132835,1
    - Dst: sqlite3PrngRestoreState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132845,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132855,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132868,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132869,1
    - Dst: sqlite3BitvecBuiltinTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132870,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132891,1
    - Dst: sqlite3FaultSim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132892,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132906,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132907,1
    - Dst: sqlite3BenignMallocHooks
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132908,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132928,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132948,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132948,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132982,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:132983,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133009,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133010,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133011,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133012,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133013,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133027,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133043,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133044,1
    - Dst: sqlite3KeywordCode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133045,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133058,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133059,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133060,1
    - Dst: sqlite3ScratchMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133061,1
    - Dst: sqlite3ScratchFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133062,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133073,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133086,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133099,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133100,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133107,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133108,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133139,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133140,1
    - Dst: sqlite3FindDbName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133141,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133141,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133142,1
    - Dst: va_arg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133143,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133145,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133147,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133151,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 110
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( (x = va_arg(ap,int))!=0 )
      pos:
        line_end: 132947
        line_start: 132947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133154
      start: 132822
    functionDepth: 8
    functionLinenumber: 132822
    functionLinenumberEnd: 133154
    functionName: sqlite3_test_control
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FaultSim
    - UNUSED_PARAMETER
    - sqlite3FindDbName
    - sqlite3PrngSaveState
    - sqlite3Strlen30
    - va_arg
    - va_start
    - sqlite3_randomness
    - sqlite3ScratchMalloc
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    - sqlite3BenignMallocHooks
    - assert
    - sqlite3KeywordCode
    - ALWAYS
    - sqlite3BitvecBuiltinTest
    - sqlite3ResetAllSchemasOfConnection
    - va_end
    - sqlite3BtreeSetPageSize
    - sqlite3ScratchFree
    - sqlite3PrngRestoreState
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_test_control(int op, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133169,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133171,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133172,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - zFilename
    - zParam
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133177
      start: 133167
    functionDepth: 1
    functionLinenumber: 133167
    functionLinenumberEnd: 133177
    functionName: SQLITE_STDCALL::sqlite3_uri_parameter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_uri_parameter(const char *zFilename,
      const char *zParam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_parameter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133183,1
    - Dst: sqlite3GetBoolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zFilename
    - zParam
    - bDflt
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133186
      start: 133182
    functionDepth: 5
    functionLinenumber: 133182
    functionLinenumberEnd: 133186
    functionName: sqlite3_uri_boolean
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_uri_parameter
    - sqlite3GetBoolean
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_uri_boolean(const char *zFilename, const char *zParam,
      int bDflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_parameter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133196,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - zFilename
    - zParam
    - bDflt
    argTypes:
    - char*
    - char*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133202
      start: 133191
    functionDepth: 4
    functionLinenumber: 133191
    functionLinenumberEnd: 133202
    functionName: sqlite3_uri_int64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_uri_parameter
    - sqlite3DecOrHexToI64
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_uri_int64(\n  const char *zFilename,    /* Filename
      as passed to xOpen */\n  const char *zParam,       /* URI parameter sought */\n
      \ sqlite3_int64 bDflt       /* return if parameter is missing */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133217
      start: 133207
    functionDepth: 0
    functionLinenumber: 133207
    functionLinenumberEnd: 133217
    functionName: sqlite3DbNameToBtree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbNameToBtree(sqlite3 *db, const char *zDbName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133226,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133231,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133233
      start: 133223
    functionDepth: 10
    functionLinenumber: 133223
    functionLinenumberEnd: 133233
    functionName: SQLITE_STDCALL::sqlite3_db_filename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3BtreeGetFilename
    - sqlite3DbNameToBtree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3_db_filename(sqlite3 *db, const char
      *zDbName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133242,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133247,1
    - Dst: sqlite3BtreeIsReadonly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133249
      start: 133239
    functionDepth: 10
    functionLinenumber: 133239
    functionLinenumberEnd: 133249
    functionName: sqlite3_db_readonly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    - sqlite3BtreeIsReadonly
    - sqlite3DbNameToBtree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_readonly(sqlite3 *db, const char *zDbName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133285
      start: 133283
    functionDepth: 0
    functionLinenumber: 133283
    functionLinenumberEnd: 133285
    functionName: assertMutexHeld
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assertMutexHeld()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133316,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133321,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133322,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( p->pUnlockConnection || p->pBlockingConnection )
      pos:
        line_end: 133315
        line_start: 133315
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2->xUnlockNotify==p->xUnlockNotify || !seen )
      pos:
        line_end: 133320
        line_start: 133320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db==0 || p->pBlockingConnection!=db )
      pos:
        line_end: 133322
        line_start: 133322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( db==0 || p->pUnlockConnection!=db )
      pos:
        line_end: 133321
        line_start: 133321
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133326
      start: 133309
    functionDepth: 0
    functionLinenumber: 133309
    functionLinenumberEnd: 133326
    functionName: checkListProperties
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void checkListProperties(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133344
      start: 133335
    functionDepth: 1
    functionLinenumber: 133335
    functionLinenumberEnd: 133344
    functionName: removeFromBlockedList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertMutexHeld
    linkageType: ''
    returnType: void
    signature: void removeFromBlockedList(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133360
      start: 133350
    functionDepth: 1
    functionLinenumber: 133350
    functionLinenumberEnd: 133360
    functionName: addToBlockedList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertMutexHeld
    linkageType: ''
    returnType: void
    signature: void addToBlockedList(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133366,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133366,1
    - Dst: checkListProperties
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133368
      start: 133365
    functionDepth: 1
    functionLinenumber: 133365
    functionLinenumberEnd: 133368
    functionName: enterMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    - checkListProperties
    linkageType: ''
    returnType: void
    signature: void enterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133374,1
    - Dst: checkListProperties
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133375,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133376,1
    - Dst: sqlite3MutexAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133377
      start: 133373
    functionDepth: 1
    functionLinenumber: 133373
    functionLinenumberEnd: 133377
    functionName: leaveMutex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    - assertMutexHeld
    - checkListProperties
    linkageType: ''
    returnType: void
    signature: void leaveMutex(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133407,1
    - Dst: enterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133408,1
    - Dst: removeFromBlockedList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133411,1
    - Dst: xNotify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133421,1
    - Dst: removeFromBlockedList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133432,1
    - Dst: addToBlockedList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133433,1
    - Dst: leaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133437,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133438,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133439,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 133437
        line_start: 133437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133442
      start: 133400
    functionDepth: 8
    functionLinenumber: 133400
    functionLinenumberEnd: 133442
    functionName: sqlite3_unlock_notify
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - addToBlockedList
    - assert
    - leaveMutex
    - xNotify
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_leave
    - enterMutex
    - removeFromBlockedList
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_unlock_notify(\n  sqlite3 *db,\n  void (*xNotify)(void
      **, int),\n  void *pArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133451,1
    - Dst: addToBlockedList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133453,1
    - Dst: leaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - db
    - pBlocker
    argTypes:
    - sqlite3*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133457
      start: 133450
    functionDepth: 2
    functionLinenumber: 133450
    functionLinenumberEnd: 133457
    functionName: sqlite3ConnectionBlocked
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - addToBlockedList
    - leaveMutex
    - enterMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionBlocked(sqlite3 *db, sqlite3 *pBlocker)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: enterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133487,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133500,1
    - Dst: xUnlockNotify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133502,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133506,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133507,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133508,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133508,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133509,1
    - Dst: sqlite3MallocSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133510,1
    - Dst: sqlite3Malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133513,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133515,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133516,1
    - Dst: xUnlockNotify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133543,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133547,1
    - Dst: xUnlockNotify
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133567,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133569,1
    - Dst: leaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133570,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( aArg==aDyn || (aDyn==0 && aArg==aStatic) )
      pos:
        line_end: 133506
        line_start: 133506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->xUnlockNotify )
      pos:
        line_end: 133499
        line_start: 133499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nArg<=(int)ArraySize(aStatic) || aArg==aDyn )
      pos:
        line_end: 133507
        line_start: 133507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133571
      start: 133478
    functionDepth: 4
    functionLinenumber: 133478
    functionLinenumberEnd: 133571
    functionName: sqlite3ConnectionUnlocked
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3BeginBenignMalloc
    - sqlite3_free
    - sqlite3Malloc
    - sqlite3EndBenignMalloc
    - memcpy
    - ArraySize
    - leaveMutex
    - xUnlockNotify
    - sqlite3MallocSize
    - enterMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionUnlocked(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ConnectionUnlocked
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133578,1
    - Dst: enterMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133579,1
    - Dst: removeFromBlockedList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133580,1
    - Dst: checkListProperties
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133581,1
    - Dst: leaveMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:133582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133583
      start: 133577
    functionDepth: 5
    functionLinenumber: 133577
    functionLinenumberEnd: 133583
    functionName: sqlite3ConnectionClosed
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - checkListProperties
    - sqlite3ConnectionUnlocked
    - leaveMutex
    - enterMutex
    - removeFromBlockedList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionClosed(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134187
      start: 134186
    functionDepth: 0
    functionLinenumber: 134186
    functionLinenumberEnd: 134187
    functionName: fts3HashFirst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashFirst(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134188
      start: 134187
    functionDepth: 0
    functionLinenumber: 134187
    functionLinenumberEnd: 134188
    functionName: fts3HashNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashNext(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134189
      start: 134188
    functionDepth: 0
    functionLinenumber: 134188
    functionLinenumberEnd: 134189
    functionName: fts3HashData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashData(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134190
      start: 134189
    functionDepth: 0
    functionLinenumber: 134189
    functionLinenumberEnd: 134190
    functionName: fts3HashKey
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashKey(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134191
      start: 134190
    functionDepth: 0
    functionLinenumber: 134190
    functionLinenumberEnd: 134191
    functionName: fts3HashKeysize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashKeysize(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134196
      start: 134195
    functionDepth: 0
    functionLinenumber: 134195
    functionLinenumberEnd: 134196
    functionName: fts3HashCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashCount(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134237
      start: 134236
    functionDepth: 0
    functionLinenumber: 134236
    functionLinenumberEnd: 134237
    functionName: SizeofArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizeofArray(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134241
      start: 134240
    functionDepth: 0
    functionLinenumber: 134240
    functionLinenumberEnd: 134241
    functionName: MIN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134244
      start: 134243
    functionDepth: 0
    functionLinenumber: 134243
    functionLinenumberEnd: 134244
    functionName: MAX
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134296
      start: 134295
    functionDepth: 0
    functionLinenumber: 134295
    functionLinenumberEnd: 134296
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134297
      start: 134296
    functionDepth: 0
    functionLinenumber: 134296
    functionLinenumberEnd: 134297
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134299
      start: 134298
    functionDepth: 0
    functionLinenumber: 134298
    functionLinenumberEnd: 134299
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134300
      start: 134299
    functionDepth: 0
    functionLinenumber: 134299
    functionLinenumberEnd: 134300
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134304
      start: 134303
    functionDepth: 0
    functionLinenumber: 134303
    functionLinenumberEnd: 134304
    functionName: ALWAYS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134305
      start: 134304
    functionDepth: 0
    functionLinenumber: 134304
    functionLinenumberEnd: 134305
    functionName: NEVER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134320
      start: 134319
    functionDepth: 0
    functionLinenumber: 134319
    functionLinenumberEnd: 134320
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134335
      start: 134334
    functionDepth: 0
    functionLinenumber: 134334
    functionLinenumberEnd: 134335
    functionName: TESTONLY
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134639
      start: 134638
    functionDepth: 0
    functionLinenumber: 134638
    functionLinenumberEnd: 134639
    functionName: sqlite3Fts3DeferToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3DeferToken(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134640
      start: 134639
    functionDepth: 0
    functionLinenumber: 134639
    functionLinenumberEnd: 134640
    functionName: sqlite3Fts3CacheDeferredDoclists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3CacheDeferredDoclists(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134642
      start: 134641
    functionDepth: 0
    functionLinenumber: 134641
    functionLinenumberEnd: 134642
    functionName: sqlite3Fts3DeferredTokenList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3DeferredTokenList(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - piVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134702
      start: 134699
    functionDepth: 0
    functionLinenumber: 134699
    functionLinenumberEnd: 134702
    functionName: fts3GetVarint32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3GetVarint32(p, piVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts:
    - condition: ( b )
      pos:
        line_end: 134799
        line_start: 134799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134800
      start: 134800
    functionDepth: 0
    functionLinenumber: 134800
    functionLinenumberEnd: 134800
    functionName: sqlite3Fts3Always
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Always(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts:
    - condition: ( !b )
      pos:
        line_end: 134800
        line_start: 134800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134801
      start: 134801
    functionDepth: 0
    functionLinenumber: 134801
    functionLinenumberEnd: 134801
    functionName: sqlite3Fts3Never
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Never(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - char*
    - sqlite_int64
    assertStmts:
    - condition: ( q - (unsigned char *)p <= FTS3_VARINT_MAX )
      pos:
        line_end: 134817
        line_start: 134817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134820
      start: 134810
    functionDepth: 0
    functionLinenumber: 134810
    functionLinenumberEnd: 134820
    functionName: sqlite3Fts3PutVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PutVarint(char *p, sqlite_int64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - v
    - ','
    - ptr
    - ','
    - shift
    - ','
    - mask1
    - ','
    - mask2
    - ','
    - var
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134825
      start: 134822
    functionDepth: 0
    functionLinenumber: 134822
    functionLinenumberEnd: 134825
    functionName: GETVARINT_STEP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETVARINT_STEP(v, ptr, shift, mask1, mask2, var, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - v
    - ','
    - ptr
    - ','
    - shift
    - ','
    - mask1
    - ','
    - mask2
    - ','
    - var
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134828
      start: 134825
    functionDepth: 0
    functionLinenumber: 134825
    functionLinenumberEnd: 134828
    functionName: GETVARINT_INIT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETVARINT_INIT(v, ptr, shift, mask1, mask2, var, ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETVARINT_INIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134840,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134841,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134842,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - char*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134853
      start: 134834
    functionDepth: 1
    functionLinenumber: 134834
    functionLinenumberEnd: 134853
    functionName: sqlite3Fts3GetVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GETVARINT_STEP
    - GETVARINT_INIT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3GetVarint(const char *p, sqlite_int64 *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETVARINT_INIT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134863,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134866,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134869,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134870,1
    - Dst: GETVARINT_STEP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pi
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( a & 0x80 )
      pos:
        line_end: 134865
        line_start: 134865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134875
      start: 134859
    functionDepth: 1
    functionLinenumber: 134859
    functionLinenumberEnd: 134875
    functionName: sqlite3Fts3GetVarint32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - GETVARINT_STEP
    - GETVARINT_INIT
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3GetVarint32(const char *p, int *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134887
      start: 134880
    functionDepth: 0
    functionLinenumber: 134880
    functionLinenumberEnd: 134887
    functionName: sqlite3Fts3VarintLen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3VarintLen(sqlite3_uint64 v)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134925
      start: 134903
    functionDepth: 0
    functionLinenumber: 134903
    functionLinenumberEnd: 134925
    functionName: sqlite3Fts3Dequote
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Dequote(char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - pVal
    argTypes:
    - char**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134936
      start: 134932
    functionDepth: 2
    functionLinenumber: 134932
    functionLinenumberEnd: 134936
    functionName: fts3GetDeltaVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: void fts3GetDeltaVarint(char **pp, sqlite3_int64 *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pp
    - pStart
    - pVal
    argTypes:
    - char**
    - char*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134964
      start: 134947
    functionDepth: 2
    functionLinenumber: 134947
    functionLinenumberEnd: 134964
    functionName: fts3GetReverseVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts3GetReverseVarint(\n  char **pp, \n  char *pStart, \n  sqlite3_int64
      *pVal\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134974,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134977,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134978,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134980,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134981,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134982,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134983,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134984,1
    - Dst: Fts3Table*::pTokenizer::pModule::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134987,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 134972
        line_start: 134972
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 134973
        line_start: 134973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134991
      start: 134969
    functionDepth: 25
    functionLinenumber: 134969
    functionLinenumberEnd: 134991
    functionName: fts3DisconnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - SizeofArray
    - sqlite3_free
    - assert
    - Fts3Table*::pTokenizer::pModule::xDestroy
    linkageType: ''
    returnType: int
    signature: int fts3DisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134998,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:134999,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135000,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pzErr
    - zFormat
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135002
      start: 134996
    functionDepth: 3
    functionLinenumber: 134996
    functionLinenumberEnd: 135002
    functionName: sqlite3Fts3ErrMsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3_free
    - sqlite3_vmprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ErrMsg(char **pzErr, const char *zFormat,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135020,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135021,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135022,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135026,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pRc
    - db
    - zFormat
    argTypes:
    - int*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135029
      start: 135011
    functionDepth: 27
    functionLinenumber: 135011
    functionLinenumberEnd: 135029
    functionName: fts3DbExec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - va_start
    - sqlite3_vmprintf
    - sqlite3_exec
    - va_end
    linkageType: ''
    returnType: void
    signature: "void fts3DbExec(\n  int *pRc,              /* Success code */\n  sqlite3
      *db,           /* Database in which to run SQL */\n  const char *zFormat,   /*
      Format string for SQL */\n  ...                    /* Arguments to the format
      string */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135042,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135044,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135045,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135046,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135047,1
    - Dst: fts3DisconnectMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135054
      start: 135034
    functionDepth: 28
    functionLinenumber: 135034
    functionLinenumberEnd: 135054
    functionName: fts3DestroyMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DisconnectMethod
    - fts3DbExec
    linkageType: ''
    returnType: int
    signature: int fts3DestroyMethod(sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vtab_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135075,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135078,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135080,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135084,1
    - Dst: sqlite3_declare_vtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135091,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135094,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135098
      start: 135066
    functionDepth: 25
    functionLinenumber: 135066
    functionLinenumberEnd: 135098
    functionName: fts3DeclareVtab
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vtab_config
    - sqlite3_declare_vtab
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3DeclareVtab(int *pRc, Fts3Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135110
      start: 135103
    functionDepth: 28
    functionLinenumber: 135103
    functionLinenumberEnd: 135110
    functionName: sqlite3Fts3CreateStatTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DbExec
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3CreateStatTable(int *pRc, Fts3Table *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135131,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135134,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135137,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135142,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135146,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135150,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135154,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135172,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts:
    - condition: ( p->bHasStat==p->bFts4 )
      pos:
        line_end: 135171
        line_start: 135171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135177
      start: 135121
    functionDepth: 29
    functionLinenumber: 135121
    functionLinenumberEnd: 135177
    functionName: fts3CreateTables
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - sqlite3_mprintf
    - sqlite3Fts3CreateStatTable
    - fts3DbExec
    linkageType: ''
    returnType: int
    signature: int fts3CreateTables(Fts3Table *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135192,1
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135196,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135198,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135199,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135200,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135206,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts:
    - condition: ( p->nPgsz>0 || rc!=SQLITE_OK )
      pos:
        line_end: 135205
        line_start: 135205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135210
      start: 135186
    functionDepth: 27
    functionLinenumber: 135186
    functionLinenumberEnd: 135210
    functionName: fts3DatabasePageSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_column_int
    - sqlite3_prepare
    - assert
    - sqlite3_free
    - sqlite3_step
    - sqlite3_mprintf
    linkageType: ''
    returnType: void
    signature: void fts3DatabasePageSize(int *pRc, Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135234,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - z
    - pnKey
    - pzValue
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135240
      start: 135220
    functionDepth: 1
    functionLinenumber: 135220
    functionLinenumberEnd: 135240
    functionName: fts3IsSpecialColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3Fts3Dequote
    linkageType: ''
    returnType: int
    signature: "int fts3IsSpecialColumn(\n  const char *z, \n  int *pnKey,\n  char
      **pzValue\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135254,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135255,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135256,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135258,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135259,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pRc
    - pz
    - zFormat
    argTypes:
    - int*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135266
      start: 135245
    functionDepth: 3
    functionLinenumber: 135245
    functionLinenumberEnd: 135266
    functionName: fts3Appendf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_mprintf
    - va_start
    - sqlite3_vmprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: "void fts3Appendf(\n  int *pRc,                       /* IN/OUT: Error
      code */\n  char **pz,                      /* IN/OUT: Pointer to string buffer
      */\n  const char *zFormat,            /* Printf format string to append */\n
      \ ...                             /* Arguments for printf format string */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135281,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - zInput
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135295
      start: 135278
    functionDepth: 0
    functionLinenumber: 135278
    functionLinenumberEnd: 135295
    functionName: fts3QuoteId
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    - sqlite3_malloc
    linkageType: ''
    returnType: char
    signature: char *fts3QuoteId(char const *zInput)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3QuoteId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135330,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135332,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135334,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135337,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135339,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135341,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135343,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135346,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - p
    - zFunc
    - pRc
    argTypes:
    - Fts3Table*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135355
      start: 135320
    functionDepth: 4
    functionLinenumber: 135320
    functionLinenumberEnd: 135355
    functionName: fts3ReadExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3QuoteId
    - sqlite3_free
    - fts3Appendf
    linkageType: ''
    returnType: char
    signature: char *fts3ReadExprList(Fts3Table *p, const char *zFunc, int *pRc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3QuoteId
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135386,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135388,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135390,1
    - Dst: fts3Appendf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135393,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p
    - zFunc
    - pRc
    argTypes:
    - Fts3Table*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135397
      start: 135377
    functionDepth: 4
    functionLinenumber: 135377
    functionLinenumberEnd: 135397
    functionName: fts3WriteExprList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3QuoteId
    - sqlite3_free
    - fts3Appendf
    linkageType: ''
    returnType: char
    signature: char *fts3WriteExprList(Fts3Table *p, const char *zFunc, int *pRc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pp
    - pnOut
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135428
      start: 135412
    functionDepth: 0
    functionLinenumber: 135412
    functionLinenumberEnd: 135428
    functionName: fts3GobbleInt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3GobbleInt(const char **pp, int *pnOut)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135463,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135469,1
    - Dst: fts3GobbleInt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135475,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - zParam
    - pnIndex
    - apIndex
    argTypes:
    - char*
    - int*
    - struct Fts3Index**
    assertStmts:
    - condition: ( nPrefix>=0 )
      pos:
        line_end: 135475
        line_start: 135475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135489
      start: 135447
    functionDepth: 1
    functionLinenumber: 135447
    functionLinenumberEnd: 135489
    functionName: fts3PrefixParameter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3GobbleInt
    - assert
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int fts3PrefixParameter(\n  const char *zParam,             /* ABC
      in prefix=ABC parameter to parse */\n  int *pnIndex,                   /* OUT:
      size of *apIndex[] array */\n  struct Fts3Index **apIndex      /* OUT: Array
      of indexes for this table */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135529,1
    - Dst: sqlite3_prepare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135533,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135535,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135535,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135538,1
    - Dst: sqlite3_column_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135549,1
    - Dst: sqlite3_column_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135551,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135552,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135556,1
    - Dst: sqlite3_column_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135562,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135563,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135564,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - db
    - zDb
    - zTbl
    - pazCol
    - pnCol
    - pnStr
    - pzErr
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char***
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135578
      start: 135516
    functionDepth: 27
    functionLinenumber: 135516
    functionLinenumberEnd: 135578
    functionName: fts3ContentColumns
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_prepare
    - sqlite3_column_count
    - sqlite3_free
    - sqlite3Fts3ErrMsg
    - sqlite3_mprintf
    - sqlite3_malloc
    - memcpy
    - sqlite3_column_name
    - strlen
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int fts3ContentColumns(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zDb,                /* Name of db (i.e. \"main\", \"temp\"
      etc.) */\n  const char *zTbl,               /* Name of content table */\n  const
      char ***pazCol,           /* OUT: Malloc'd array of column names */\n  int *pnCol,
      \                    /* OUT: Size of array *pazCol */\n  int *pnStr,                     /*
      OUT: Bytes of string content */\n  char **pzErr                    /* OUT: error
      message */\n)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135629,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135629,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135630,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135630,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135631,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135634,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135635,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135638,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135640,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135641,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135644,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135669,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135670,1
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135671,1
    - Dst: sqlite3Fts3InitTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135673,1
    - Dst: fts3IsSpecialColumn
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135677,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135696,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135698,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135702,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135703,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135708,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135708,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135709,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135716,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135722,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135728,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135734,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135734,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135735,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135735,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135737,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135744,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135750,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135751,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135762,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135768,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135781,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135782,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135786,1
    - Dst: fts3ContentColumns
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135788,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135795,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135808,1
    - Dst: sqlite3Fts3InitTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135815,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135818,1
    - Dst: fts3PrefixParameter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135820,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135822,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135823,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135835,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135840,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135856,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135857,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135860,1
    - Dst: fts3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135863,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135870,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135873,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135880,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135881,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135883,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135886,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135891,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135894,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135895,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135898,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135905,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135913,1
    - Dst: fts3ReadExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135915,1
    - Dst: fts3WriteExprList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135916,1
    - Dst: fts3CreateTables
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135923,1
    - Dst: fts3DatabasePageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135935,1
    - Dst: fts3DeclareVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135939,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135942,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135943,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135944,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135945,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135946,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135947,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135948,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135949,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135950,1
    - Dst: fts3DisconnectMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135953,1
    - Dst: sqlite3_tokenizer*::pModule::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135955,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135958,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 240
    argCount: 7
    argNames:
    - isCreate
    - db
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - int
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( iOpt==6 )
      pos:
        line_end: 135749
        line_start: 135749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (sqlite3_strnicmp(argv[0], \"fts4\", 4)==0 && isFts4)\n       ||
        (sqlite3_strnicmp(argv[0], \"fts3\", 4)==0 && !isFts4)\n  )"
      pos:
        line_end: 135631
        line_start: 135629
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( strlen(argv[0])==4 )
      pos:
        line_end: 135628
        line_start: 135628
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 135957
        line_start: 135957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nString==0 )
      pos:
        line_end: 135807
        line_start: 135807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTokenizer )
      pos:
        line_end: 135817
        line_start: 135817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zCsr <= &((char *)p)[nByte] )
      pos:
        line_end: 135885
        line_start: 135885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zPrefix )
      pos:
        line_end: 135821
        line_start: 135821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135962
      start: 135591
    functionDepth: 30
    functionLinenumber: 135591
    functionLinenumberEnd: 135962
    functionName: fts3InitVtab
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_strnicmp
    - fts3IsSpecialColumn
    - sqlite3_tokenizer*::pModule::xDestroy
    - TESTONLY
    - sqlite3_malloc
    - fts3ReadExprList
    - fts3DeclareVtab
    - strlen
    - fts3DatabasePageSize
    - sqlite3Fts3InitTokenizer
    - SizeofArray
    - sqlite3_free
    - fts3ContentColumns
    - sqlite3Fts3ErrMsg
    - memcpy
    - sqlite3_stricmp
    - assert
    - fts3PrefixParameter
    - sqlite3Fts3IsIdChar
    - fts3CreateTables
    - fts3WriteExprList
    - fts3DisconnectMethod
    - sqlite3Fts3NextToken
    - sqlite3Fts3Dequote
    - fts3HashInit
    linkageType: ''
    returnType: int
    signature: "int fts3InitVtab(\n  int isCreate,                   /* True for xCreate,
      false for xConnect */\n  sqlite3 *db,                    /* The SQLite database
      connection */\n  void *pAux,                     /* Hash table containing tokenizers
      */\n  int argc,                       /* Number of elements in argv array */\n
      \ const char * const *argv,       /* xCreate/xConnect argument array */\n  sqlite3_vtab
      **ppVTab,          /* Write the resulting vtab structure here */\n  char **pzErr
      \                   /* Write any error message here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3InitVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135977
      start: 135968
    functionDepth: 31
    functionLinenumber: 135968
    functionLinenumberEnd: 135977
    functionName: fts3ConnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts3ConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3InitVtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135987
      start: 135978
    functionDepth: 31
    functionLinenumber: 135978
    functionLinenumberEnd: 135987
    functionName: fts3CreateMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts3CreateMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:135996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pIdxInfo
    - nRow
    argTypes:
    - sqlite3_index_info*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136000
      start: 135994
    functionDepth: 1
    functionLinenumber: 135994
    functionLinenumberEnd: 136000
    functionName: fts3SetEstimatedRows
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    linkageType: ''
    returnType: void
    signature: void fts3SetEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fts3SetEstimatedRows
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136038,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136125,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 136124
        line_start: 136124
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136127
      start: 136010
    functionDepth: 2
    functionLinenumber: 136010
    functionLinenumberEnd: 136127
    functionName: fts3BestIndexMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SetEstimatedRows
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136135,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136141,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136147
      start: 136132
    functionDepth: 1
    functionLinenumber: 136132
    functionLinenumberEnd: 136147
    functionName: fts3OpenMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int fts3OpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136155,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136156,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136157,1
    - Dst: sqlite3Fts3FreeDeferredTokens
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136158,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136159,1
    - Dst: sqlite3Fts3MIBufferFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136160,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136161,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 136154
        line_start: 136154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 136160
        line_start: 136160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136164
      start: 136153
    functionDepth: 25
    functionLinenumber: 136153
    functionLinenumberEnd: 136164
    functionName: fts3CloseMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3Fts3FreeDeferredTokens
    - sqlite3_free
    - assert
    - sqlite3Fts3ExprFree
    - sqlite3Fts3MIBufferFree
    linkageType: ''
    returnType: int
    signature: int fts3CloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136182,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136184,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pCsr
    - ppStmt
    argTypes:
    - Fts3Cursor*
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136189
      start: 136177
    functionDepth: 27
    functionLinenumber: 136177
    functionLinenumberEnd: 136189
    functionName: fts3CursorSeekStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3CursorSeekStmt(Fts3Cursor *pCsr, sqlite3_stmt **ppStmt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3CursorSeekStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136201,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136203,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136205,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136208,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - pContext
    - pCsr
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136224
      start: 136196
    functionDepth: 28
    functionLinenumber: 136196
    functionLinenumberEnd: 136224
    functionName: fts3CursorSeek
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3CursorSeekStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_result_error_code
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int fts3CursorSeek(sqlite3_context *pContext, Fts3Cursor *pCsr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136270,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136271,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136285,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136288,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136297,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136304,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136305,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136318,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136336,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 6
    argNames:
    - zTerm
    - nTerm
    - zNode
    - nNode
    - piFirst
    - piLast
    argTypes:
    - char*
    - int
    - char*
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    assertStmts:
    - condition: ( zBuffer )
      pos:
        line_end: 136303
        line_start: 136303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136338
      start: 136241
    functionDepth: 3
    functionLinenumber: 136241
    functionLinenumberEnd: 136338
    functionName: fts3ScanInteriorNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - sqlite3_realloc
    - sqlite3_free
    - fts3GetVarint32
    - memcpy
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: "int fts3ScanInteriorNode(\n  const char *zTerm,              /* Term
      to select leaves for */\n  int nTerm,                      /* Size of term zTerm
      in bytes */\n  const char *zNode,              /* Buffer containing segment
      interior node */\n  int nNode,                      /* Size of buffer at zNode
      */\n  sqlite3_int64 *piFirst,         /* OUT: Selected child node */\n  sqlite3_int64
      *piLast           /* OUT: Selected child node */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136374,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136376,1
    - Dst: fts3ScanInteriorNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136377,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136378,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136385,1
    - Dst: fts3SelectLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136387,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136389,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136395,1
    - Dst: fts3SelectLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136398,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 7
    argNames:
    - p
    - zTerm
    - nTerm
    - zNode
    - nNode
    - piLeaf
    - piLeaf2
    argTypes:
    - Fts3Table*
    - char*
    - int
    - char*
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    assertStmts:
    - condition: ( piLeaf || piLeaf2 )
      pos:
        line_end: 136373
        line_start: 136373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !piLeaf2 || !piLeaf || rc!=SQLITE_OK || (*piLeaf<=*piLeaf2) )
      pos:
        line_end: 136377
        line_start: 136377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136404
      start: 136362
    functionDepth: 4
    functionLinenumber: 136362
    functionLinenumberEnd: 136404
    functionName: fts3SelectLeaf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_free
    - fts3GetVarint32
    - fts3ScanInteriorNode
    - sqlite3Fts3ReadBlock
    - fts3SelectLeaf
    linkageType: ''
    returnType: int
    signature: "int fts3SelectLeaf(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  const char *zTerm,              /* Term to select leaves
      for */\n  int nTerm,                      /* Size of term zTerm in bytes */\n
      \ const char *zNode,              /* Buffer containing segment interior node
      */\n  int nNode,                      /* Size of buffer at zNode */\n  sqlite3_int64
      *piLeaf,          /* Selected leaf node */\n  sqlite3_int64 *piLeaf2          /*
      Selected leaf node */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136415,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pp
    - piPrev
    - iVal
    argTypes:
    - char**
    - sqlite3_int64*
    - sqlite3_int64
    assertStmts:
    - condition: ( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) )
      pos:
        line_end: 136414
        line_start: 136414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136418
      start: 136410
    functionDepth: 1
    functionLinenumber: 136410
    functionLinenumberEnd: 136418
    functionName: fts3PutDeltaVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3PutDeltaVarint(\n  char **pp,                      /* IN/OUT:
      Output pointer */\n  sqlite3_int64 *piPrev,          /* IN/OUT: Previous value
      written to list */\n  sqlite3_int64 iVal              /* Write this value to
      the list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136450,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pp
    - ppPoslist
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136462
      start: 136434
    functionDepth: 1
    functionLinenumber: 136434
    functionLinenumberEnd: 136462
    functionName: fts3PoslistCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fts3PoslistCopy(char **pp, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136490,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pp
    - ppPoslist
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136500
      start: 136481
    functionDepth: 1
    functionLinenumber: 136481
    functionLinenumberEnd: 136500
    functionName: fts3ColumnlistCopy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fts3ColumnlistCopy(char **pp, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pp
    - pi
    argTypes:
    - char**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136536
      start: 136526
    functionDepth: 3
    functionLinenumber: 136526
    functionLinenumberEnd: 136536
    functionName: fts3ReadNextPos
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaVarint
    linkageType: ''
    returnType: void
    signature: "void fts3ReadNextPos(\n  char **pp,                    /* IN/OUT:
      Pointer into position-list buffer */\n  sqlite3_int64 *pi             /* IN/OUT:
      Value read from position-list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pp
    - iCol
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136556
      start: 136547
    functionDepth: 1
    functionLinenumber: 136547
    functionLinenumberEnd: 136556
    functionName: fts3PutColNumber
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: int fts3PutColNumber(char **pp, int iCol)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136578,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136582,1
    - Dst: fts3PutColNumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136590,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136603,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136604,1
    - Dst: fts3PutDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136606,1
    - Dst: fts3ReadNextPos
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136609,1
    - Dst: fts3ReadNextPos
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136610,1
    - Dst: fts3ReadNextPos
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136612,1
    - Dst: fts3ReadNextPos
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136614,1
    - Dst: fts3PutColNumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136618,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136619,1
    - Dst: fts3PutColNumber
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136621,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136622,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - pp
    - pp1
    - pp2
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136630
      start: 136565
    functionDepth: 4
    functionLinenumber: 136565
    functionLinenumberEnd: 136630
    functionName: fts3PoslistMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ReadNextPos
    - fts3GetDeltaVarint
    - fts3PutDeltaVarint
    - fts3ColumnlistCopy
    - fts3PutColNumber
    - fts3GetVarint32
    linkageType: ''
    returnType: void
    signature: "void fts3PoslistMerge(\n  char **pp,                      /* Output
      buffer */\n  char **pp1,                     /* Left input list */\n  char **pp2
      \                     /* Right input list */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136670,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136672,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136675,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136679,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136691,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136694,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136695,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136696,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136697,1
    - Dst: fts3PutDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136705,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136707,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136711,1
    - Dst: fts3GetDeltaVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136714,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136719,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136723,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136724,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136725,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136729,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136731,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136740,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136743,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136745,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136748,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136752,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136753,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 81
    argCount: 6
    argNames:
    - pp
    - nToken
    - isSaveLeft
    - isExact
    - pp1
    - pp2
    argTypes:
    - char**
    - int
    - int
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( isSaveLeft==0 || isExact==0 )
      pos:
        line_end: 136669
        line_start: 136669
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 && *p1!=0 && *p2!=0 )
      pos:
        line_end: 136671
        line_start: 136671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *p1!=POS_END && *p1!=POS_COLUMN )
      pos:
        line_end: 136693
        line_start: 136693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pp && p )
      pos:
        line_end: 136718
        line_start: 136718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *p2!=POS_END && *p2!=POS_COLUMN )
      pos:
        line_end: 136694
        line_start: 136694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 136706
        line_start: 136706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (*p1&0xFE)==0 && (*p2&0xFE)==0 )
      pos:
        line_end: 136724
        line_start: 136724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136762
      start: 136655
    functionDepth: 3
    functionLinenumber: 136655
    functionLinenumberEnd: 136762
    functionName: fts3PoslistPhraseMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PutDeltaVarint
    - fts3GetDeltaVarint
    - assert
    - fts3ColumnlistCopy
    - fts3GetVarint32
    - fts3PoslistCopy
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3PoslistPhraseMerge(\n  char **pp,                      /*
      IN/OUT: Preallocated output buffer */\n  int nToken,                     /*
      Maximum difference in token positions */\n  int isSaveLeft,                 /*
      Save the left position */\n  int isExact,                    /* If *pp1 is exactly
      nTokens before *pp2 */\n  char **pp1,                     /* IN/OUT: Left input
      list */\n  char **pp2                      /* IN/OUT: Right input list */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136795,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136799,1
    - Dst: fts3PoslistMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136801,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136803,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - pp
    - aTmp
    - nRight
    - nLeft
    - pp1
    - pp2
    argTypes:
    - char**
    - char*
    - int
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136811
      start: 136779
    functionDepth: 5
    functionLinenumber: 136779
    functionLinenumberEnd: 136811
    functionName: fts3PoslistNearMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistMerge
    - fts3PoslistCopy
    - fts3PoslistPhraseMerge
    linkageType: ''
    returnType: int
    signature: "int fts3PoslistNearMerge(\n  char **pp,                      /* Output
      buffer */\n  char *aTmp,                     /* Temporary buffer space */\n
      \ int nRight,                     /* Maximum difference in token positions */\n
      \ int nLeft,                      /* Maximum difference in token positions */\n
      \ char **pp1,                     /* IN/OUT: Left input list */\n  char **pp2
      \                     /* IN/OUT: Right input list */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pp
    - pEnd
    - bDescIdx
    - pVal
    argTypes:
    - char**
    - char*
    - int
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136854
      start: 136837
    functionDepth: 2
    functionLinenumber: 136837
    functionLinenumberEnd: 136854
    functionName: fts3GetDeltaVarint3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts3GetDeltaVarint3(\n  char **pp,                      /* IN/OUT:
      Point to read varint from */\n  char *pEnd,                     /* End of buffer
      */\n  int bDescIdx,                   /* True if docids are descending */\n
      \ sqlite3_int64 *pVal             /* IN/OUT: Integer value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136885,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - pp
    - bDescIdx
    - piPrev
    - pbFirst
    - iVal
    argTypes:
    - char**
    - int
    - sqlite3_int64*
    - int*
    - sqlite3_int64
    assertStmts:
    - condition: ( *pbFirst || *piPrev==0 )
      pos:
        line_end: 136883
        line_start: 136883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pbFirst==0 || iWrite>0 )
      pos:
        line_end: 136884
        line_start: 136884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136889
      start: 136871
    functionDepth: 1
    functionLinenumber: 136871
    functionLinenumberEnd: 136889
    functionName: fts3PutDeltaVarint3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3PutDeltaVarint3(\n  char **pp,                      /* IN/OUT:
      Output pointer */\n  int bDescIdx,                   /* True for descending
      docids */\n  sqlite3_int64 *piPrev,          /* IN/OUT: Previous value written
      to list */\n  int *pbFirst,                   /* IN/OUT: True after first int
      written */\n  sqlite3_int64 iVal              /* Write this value to the list
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136902
      start: 136901
    functionDepth: 0
    functionLinenumber: 136901
    functionLinenumberEnd: 136902
    functionName: DOCID_CMP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCID_CMP(i1, i2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136966,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136970,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136971,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136973,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136976,1
    - Dst: fts3PoslistMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136977,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136978,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136979,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136981,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136982,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136983,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136985,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136986,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136987,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:136993,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - bDescDoclist
    - a1
    - n1
    - a2
    - n2
    - paOut
    - pnOut
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( *pnOut<=n1+n2+FTS3_VARINT_MAX-1 )
      pos:
        line_end: 136992
        line_start: 136992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136995
      start: 136917
    functionDepth: 5
    functionLinenumber: 136917
    functionLinenumberEnd: 136995
    functionName: fts3DoclistOrMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetDeltaVarint3
    - DOCID_CMP
    - sqlite3_malloc
    - fts3PoslistMerge
    - fts3PoslistCopy
    - fts3PutDeltaVarint3
    linkageType: ''
    returnType: int
    signature: "int fts3DoclistOrMerge(\n  int bDescDoclist,               /* True
      if arguments are desc */\n  char *a1, int n1,               /* First doclist
      */\n  char *a2, int n2,               /* Second doclist */\n  char **paOut,
      int *pnOut        /* OUT: Malloc'd doclist */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137027,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137029,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137036,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137037,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137040,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137046,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137047,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137052,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137053,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137055,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137056,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137058,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137059,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137065,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - bDescDoclist
    - nDist
    - aLeft
    - nLeft
    - paRight
    - pnRight
    argTypes:
    - int
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( nDist>0 )
      pos:
        line_end: 137026
        line_start: 137026
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137070
      start: 137009
    functionDepth: 4
    functionLinenumber: 137009
    functionLinenumberEnd: 137070
    functionName: fts3DoclistPhraseMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3PoslistPhraseMerge
    - fts3GetDeltaVarint3
    - DOCID_CMP
    - sqlite3_free
    - sqlite3_malloc
    - fts3PoslistCopy
    - fts3PutDeltaVarint3
    linkageType: ''
    returnType: int
    signature: "int fts3DoclistPhraseMerge(\n  int bDescDoclist,               /*
      True if arguments are desc */\n  int nDist,                      /* Distance
      from left to right (1=adjacent) */\n  char *aLeft, int nLeft,         /* Left
      doclist */\n  char **paRight, int *pnRight    /* IN/OUT: Right/output doclist
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137093,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137097,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137103,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137106,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137110,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - iDelta
    - pList
    - nList
    - pOut
    argTypes:
    - sqlite3_int64
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137120
      start: 137080
    functionDepth: 2
    functionLinenumber: 137080
    functionLinenumberEnd: 137120
    functionName: sqlite3Fts3FirstFilter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    - sqlite3Fts3PutVarint
    - fts3ColumnlistCopy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3FirstFilter(\n  sqlite3_int64 iDelta,           /*
      Varint that may be written to pOut */\n  char *pList,                    /*
      Position list (no 0x00 term) */\n  int nList,                      /* Size of
      pList in bytes */\n  char *pOut                      /* Write output here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137140,1
    - Dst: fts3DoclistOrMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137150,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137154,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137158,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pTS
    argTypes:
    - Fts3Table*
    - TermSelect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137170
      start: 137132
    functionDepth: 6
    functionLinenumber: 137132
    functionLinenumberEnd: 137170
    functionName: fts3TermSelectFinishMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DoclistOrMerge
    - SizeofArray
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3TermSelectFinishMerge(Fts3Table *p, TermSelect *pTS)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137209,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137212,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137221,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137223,1
    - Dst: fts3DoclistOrMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137231,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137235,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137239,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137240,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - p
    - pTS
    - aDoclist
    - nDoclist
    argTypes:
    - Fts3Table*
    - TermSelect*
    - char*
    - int
    assertStmts:
    - condition: ( iOut>0 )
      pos:
        line_end: 137222
        line_start: 137222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137253
      start: 137186
    functionDepth: 6
    functionLinenumber: 137186
    functionLinenumberEnd: 137253
    functionName: fts3TermSelectMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SizeofArray
    - assert
    - sqlite3_free
    - fts3DoclistOrMerge
    - memcpy
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int fts3TermSelectMerge(\n  Fts3Table *p,                   /* FTS
      table handle */\n  TermSelect *pTS,                /* TermSelect object to merge
      into */\n  char *aDoclist,                 /* Pointer to doclist */\n  int nDoclist
      \                   /* Size of aDoclist in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137265,1
    - Dst: sqlite3Fts3SegReaderFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pCsr
    - pNew
    argTypes:
    - Fts3MultiSegReader*
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137274
      start: 137258
    functionDepth: 1
    functionLinenumber: 137258
    functionLinenumberEnd: 137274
    functionName: fts3SegReaderCursorAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SegReaderFree
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursorAppend(\n  Fts3MultiSegReader *pCsr, \n  Fts3SegReader
      *pNew\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137306,1
    - Dst: fts3SegReaderCursorAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137308,1
    - Dst: sqlite3Fts3AllSegdirs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137314,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137317,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137321,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137322,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137323,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137324,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137325,1
    - Dst: fts3SelectLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137331,1
    - Dst: sqlite3Fts3SegReaderNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137336,1
    - Dst: fts3SegReaderCursorAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137342,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137347,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 9
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - zTerm
    - nTerm
    - isPrefix
    - isScan
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - char*
    - int
    - int
    - int
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137351
      start: 137283
    functionDepth: 26
    functionLinenumber: 137283
    functionLinenumberEnd: 137351
    functionName: fts3SegReaderCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SegReaderPending
    - fts3SegReaderCursorAppend
    - sqlite3Fts3SegReaderNew
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_column_bytes
    - sqlite3_reset
    - sqlite3Fts3AllSegdirs
    - sqlite3_column_blob
    - fts3SelectLeaf
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursor(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  int iLangid,                    /* Language id */\n  int
      iIndex,                     /* Index to search (from 0 to p->nIndex-1) */\n
      \ int iLevel,                     /* Level of segments to scan */\n  const char
      *zTerm,              /* Term to query for */\n  int nTerm,                      /*
      Size of zTerm in bytes */\n  int isPrefix,                   /* True for a prefix
      search */\n  int isScan,                     /* True to scan from zTerm to EOF
      */\n  Fts3MultiSegReader *pCsr        /* Cursor object to populate */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137368,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137369,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137373,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137374,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137375,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137377,1
    - Dst: fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 9
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - zTerm
    - nTerm
    - isPrefix
    - isScan
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - char*
    - int
    - int
    - int
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 137367
        line_start: 137367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( FTS3_SEGCURSOR_ALL<0 && FTS3_SEGCURSOR_PENDING<0 )
      pos:
        line_end: 137373
        line_start: 137373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( iLevel==FTS3_SEGCURSOR_ALL\n      ||  iLevel==FTS3_SEGCURSOR_PENDING
        \n      ||  iLevel>=0\n  )"
      pos:
        line_end: 137371
        line_start: 137368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 137372
        line_start: 137372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( isPrefix==0 || isScan==0 )
      pos:
        line_end: 137374
        line_start: 137374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137381
      start: 137357
    functionDepth: 27
    functionLinenumber: 137357
    functionLinenumberEnd: 137381
    functionName: sqlite3Fts3SegReaderCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - fts3SegReaderCursor
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderCursor(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  int iLangid,                    /* Language-id to search
      */\n  int iIndex,                     /* Index to search (from 0 to p->nIndex-1)
      */\n  int iLevel,                     /* Level of segments to scan */\n  const
      char *zTerm,              /* Term to query for */\n  int nTerm,                      /*
      Size of zTerm in bytes */\n  int isPrefix,                   /* True for a prefix
      search */\n  int isScan,                     /* True to scan from zTerm to EOF
      */\n  Fts3MultiSegReader *pCsr       /* Cursor object to populate */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - iLangid
    - zTerm
    - nTerm
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137399
      start: 137389
    functionDepth: 27
    functionLinenumber: 137389
    functionLinenumberEnd: 137399
    functionName: fts3SegReaderCursorAddZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderCursor
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursorAddZero(\n  Fts3Table *p,                   /*
      FTS virtual table handle */\n  int iLangid,\n  const char *zTerm,              /*
      Term to scan doclist of */\n  int nTerm,                      /* Number of bytes
      in zTerm */\n  Fts3MultiSegReader *pCsr        /* Fts3MultiSegReader to modify
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137424,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137434,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137444,1
    - Dst: fts3SegReaderCursorAddZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137448,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - pCsr
    - zTerm
    - nTerm
    - isPrefix
    - ppSegcsr
    argTypes:
    - Fts3Cursor*
    - char*
    - int
    - int
    - Fts3MultiSegReader**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137466
      start: 137414
    functionDepth: 28
    functionLinenumber: 137414
    functionLinenumberEnd: 137466
    functionName: fts3TermSegReaderCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderCursorAddZero
    - sqlite3_malloc
    - sqlite3Fts3SegReaderCursor
    linkageType: ''
    returnType: int
    signature: "int fts3TermSegReaderCursor(\n  Fts3Cursor *pCsr,               /*
      Virtual table cursor handle */\n  const char *zTerm,              /* Term to
      query for */\n  int nTerm,                      /* Size of zTerm in bytes */\n
      \ int isPrefix,                   /* True for a prefix search */\n  Fts3MultiSegReader
      **ppSegcsr   /* OUT: Allocated seg-reader cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137472,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pSegcsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137474
      start: 137471
    functionDepth: 3
    functionLinenumber: 137471
    functionLinenumberEnd: 137474
    functionName: fts3SegReaderCursorFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SegReaderFinish
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3SegReaderCursorFree(Fts3MultiSegReader *pSegcsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137493,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137503,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137505,1
    - Dst: fts3TermSelectMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137507,1
    - Dst: fts3TermSelectFinishMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137511,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137518,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137519,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - p
    - pTok
    - iColumn
    - pnOut
    - ppOut
    argTypes:
    - Fts3Table*
    - Fts3PhraseToken*
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137526
      start: 137480
    functionDepth: 7
    functionLinenumber: 137480
    functionLinenumberEnd: 137526
    functionName: fts3TermSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3TermSelectMerge
    - memset
    - SizeofArray
    - sqlite3_free
    - sqlite3Fts3SegReaderStart
    - fts3SegReaderCursorFree
    - sqlite3Fts3SegReaderStep
    - fts3TermSelectFinishMerge
    linkageType: ''
    returnType: int
    signature: "int fts3TermSelect(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  Fts3PhraseToken *pTok,          /* Token to query for */\n
      \ int iColumn,                    /* Column to query (or -ve for all columns)
      */\n  int *pnOut,                     /* OUT: Size of buffer at *ppOut */\n
      \ char **ppOut                    /* OUT: Malloced result buffer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aList
    - nList
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137550
      start: 137537
    functionDepth: 2
    functionLinenumber: 137537
    functionLinenumberEnd: 137550
    functionName: fts3DoclistCountDocids
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistCopy
    linkageType: ''
    returnType: int
    signature: int fts3DoclistCountDocids(char *aList, int nList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137567,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137569,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137571,1
    - Dst: fts3EvalNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137575,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 137576
        line_start: 137576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137579
      start: 137563
    functionDepth: 26
    functionLinenumber: 137563
    functionLinenumberEnd: 137579
    functionName: fts3NextMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_step
    - sqlite3_column_int64
    - fts3EvalNext
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int fts3NextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_numeric_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137600,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pVal
    - iDefault
    argTypes:
    - sqlite3_value*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137606
      start: 137598
    functionDepth: 5
    functionLinenumber: 137598
    functionLinenumberEnd: 137606
    functionName: fts3DocidRange
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_numeric_type
    - sqlite3_value_int64
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 fts3DocidRange(sqlite3_value *pVal, i64 iDefault)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137643,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137644,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137647,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137648,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137656,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137659,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137660,1
    - Dst: sqlite3Fts3MIBufferFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137661,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137662,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137663,1
    - Dst: fts3DocidRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137666,1
    - Dst: fts3DocidRange
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137667,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137678,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137680,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137685,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137687,1
    - Dst: sqlite3Fts3ExprParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137688,1
    - Dst: fts3EvalStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137696,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137697,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137710,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137716,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137721,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137722,1
    - Dst: fts3CursorSeekStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137727,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137729,1
    - Dst: fts3NextMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137734,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( eSearch>=0 && eSearch<=(FTS3_FULLTEXT_SEARCH+p->nColumn) )
      pos:
        line_end: 137646
        line_start: 137646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIdx==nVal )
      pos:
        line_end: 137655
        line_start: 137655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->base.zErrMsg==0 )
      pos:
        line_end: 137686
        line_start: 137686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 137647
        line_start: 137647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137735
      start: 137624
    functionDepth: 28
    functionLinenumber: 137624
    functionLinenumberEnd: 137735
    functionName: fts3FilterMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3EvalStart
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - fts3DocidRange
    - sqlite3_free
    - sqlite3_prepare_v2
    - fts3NextMethod
    - sqlite3_finalize
    - sqlite3_value_int
    - fts3CursorSeekStmt
    - sqlite3_bind_value
    - assert
    - sqlite3Fts3MIBufferFree
    - sqlite3Fts3ExprFree
    - sqlite3_mprintf
    - sqlite3Fts3ExprParse
    - sqlite3_value_type
    - sqlite3Fts3SegmentsClose
    linkageType: ''
    returnType: int
    signature: "int fts3FilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The cursor
      used for this query */\n  int idxNum,                     /* Strategy index
      */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137743
      start: 137741
    functionDepth: 0
    functionLinenumber: 137741
    functionLinenumberEnd: 137743
    functionName: fts3EofMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3EofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137755
      start: 137751
    functionDepth: 0
    functionLinenumber: 137751
    functionLinenumberEnd: 137755
    functionName: fts3RowidMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3RowidMethod(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137778,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137784,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137788,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137790,1
    - Dst: fts3CursorSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137794,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137800,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137802,1
    - Dst: sqlite3_data_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137803,1
    - Dst: sqlite3_result_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137804,1
    - Dst: sqlite3_column_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137804,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137809,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( iCol>=0 && iCol<=p->nColumn+2 )
      pos:
        line_end: 137777
        line_start: 137777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 137808
        line_start: 137808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137811
      start: 137768
    functionDepth: 29
    functionLinenumber: 137768
    functionLinenumberEnd: 137811
    functionName: fts3ColumnMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_result_int
    - assert
    - sqlite3_data_count
    - sqlite3_column_value
    - sqlite3_result_value
    - sqlite3_result_blob
    - fts3CursorSeek
    - sqlite3_result_int64
    linkageType: ''
    returnType: int
    signature: "int fts3ColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3UpdateMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - apVal
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137825
      start: 137818
    functionDepth: 1
    functionLinenumber: 137818
    functionLinenumberEnd: 137825
    functionName: fts3UpdateMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3UpdateMethod
    linkageType: ''
    returnType: int
    signature: "int fts3UpdateMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  int nArg,                       /* Size of argument array
      */\n  sqlite3_value **apVal,          /* Array of arguments */\n  sqlite_int64
      *pRowid            /* OUT: The affected (or effected) rowid */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137855,1
    - Dst: sqlite3Fts3MaxLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137865,1
    - Dst: sqlite3Fts3Incrmerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137868,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137870,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( rc==SQLITE_OK || mxLevel==0 )
      pos:
        line_end: 137864
        line_start: 137864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137872
      start: 137831
    functionDepth: 1
    functionLinenumber: 137831
    functionLinenumberEnd: 137872
    functionName: fts3SyncMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3MaxLevel
    - sqlite3Fts3PendingTermsFlush
    - sqlite3Fts3SegmentsClose
    - sqlite3Fts3Incrmerge
    linkageType: ''
    returnType: int
    signature: int fts3SyncMethod(sqlite3_vtab *pVtab)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137884,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137887,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137889,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137890,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137899
      start: 137880
    functionDepth: 27
    functionLinenumber: 137880
    functionLinenumberEnd: 137899
    functionName: fts3SetHasStat
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    linkageType: ''
    returnType: int
    signature: int fts3SetHasStat(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137906,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137907,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137908,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137909,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137910,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137911,1
    - Dst: fts3SetHasStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 137906
        line_start: 137906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTransaction!=1 )
      pos:
        line_end: 137908
        line_start: 137908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 137907
        line_start: 137907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137914
      start: 137904
    functionDepth: 28
    functionLinenumber: 137904
    functionLinenumberEnd: 137914
    functionName: fts3BeginMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SetHasStat
    - TESTONLY
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3BeginMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137922,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137923,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137924,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137925,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137926,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137927,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 137925
        line_start: 137925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 137923
        line_start: 137923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTransaction!=0 )
      pos:
        line_end: 137924
        line_start: 137924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137930
      start: 137921
    functionDepth: 1
    functionLinenumber: 137921
    functionLinenumberEnd: 137930
    functionName: fts3CommitMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - TESTONLY
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3CommitMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137938,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137939,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137940,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->inTransaction!=0 )
      pos:
        line_end: 137938
        line_start: 137938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137943
      start: 137936
    functionDepth: 1
    functionLinenumber: 137936
    functionLinenumberEnd: 137943
    functionName: fts3RollbackMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PendingTermsClear
    - TESTONLY
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3RollbackMethod(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:137964,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - pStart
    - ppPoslist
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: ( p==pStart || c==0 )
      pos:
        line_end: 137963
        line_start: 137963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137982
      start: 137951
    functionDepth: 0
    functionLinenumber: 137951
    functionLinenumberEnd: 137982
    functionName: fts3ReversePoslist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3ReversePoslist(char *pStart, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138001,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138002,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138004,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138005,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138006,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138009,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pContext
    - zFunc
    - pVal
    - ppCsr
    argTypes:
    - sqlite3_context*
    - char*
    - sqlite3_value*
    - Fts3Cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138012
      start: 137994
    functionDepth: 14
    functionLinenumber: 137994
    functionLinenumberEnd: 138012
    functionName: fts3FunctionArg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_value_bytes
    - sqlite3_mprintf
    - memcpy
    - sqlite3_value_blob
    - sqlite3_value_type
    - sqlite3_result_error
    linkageType: ''
    returnType: int
    signature: "int fts3FunctionArg(\n  sqlite3_context *pContext,      /* SQL function
      call context */\n  const char *zFunc,              /* Function name */\n  sqlite3_value
      *pVal,            /* argv[0] passed to function */\n  Fts3Cursor **ppCsr              /*
      OUT: Store cursor handle here */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138032,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138035,1
    - Dst: fts3FunctionArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138039,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138042,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138043,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138044,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138045,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138046,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138049,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138051,1
    - Dst: fts3CursorSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138052,1
    - Dst: sqlite3Fts3Snippet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138053,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal>=1 )
      pos:
        line_end: 138031
        line_start: 138031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138055
      start: 138017
    functionDepth: 29
    functionLinenumber: 138017
    functionLinenumberEnd: 138055
    functionName: fts3SnippetFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - sqlite3_result_error_nomem
    - sqlite3_result_text
    - sqlite3_value_text
    - fts3CursorSeek
    - sqlite3_result_error
    - sqlite3Fts3Snippet
    - fts3FunctionArg
    linkageType: ''
    returnType: void
    signature: "void fts3SnippetFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of apVal[]
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138067,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138069,1
    - Dst: fts3FunctionArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138070,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138071,1
    - Dst: fts3CursorSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138072,1
    - Dst: sqlite3Fts3Offsets
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal==1 )
      pos:
        line_end: 138068
        line_start: 138068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr )
      pos:
        line_end: 138070
        line_start: 138070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138075
      start: 138060
    functionDepth: 29
    functionLinenumber: 138060
    functionLinenumberEnd: 138075
    functionName: fts3OffsetsFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3Offsets
    - assert
    - UNUSED_PARAMETER
    - fts3CursorSeek
    - fts3FunctionArg
    linkageType: ''
    returnType: void
    signature: "void fts3OffsetsFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138095,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138097,1
    - Dst: fts3FunctionArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138100,1
    - Dst: sqlite3Fts3Optimize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138102,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138106,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138109,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 138099
        line_start: 138099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nVal==1 )
      pos:
        line_end: 138096
        line_start: 138096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138115
      start: 138086
    functionDepth: 15
    functionLinenumber: 138086
    functionLinenumberEnd: 138115
    functionName: fts3OptimizeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3Fts3Optimize
    - sqlite3_result_error_code
    - fts3FunctionArg
    linkageType: ''
    returnType: void
    signature: "void fts3OptimizeFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138126,1
    - Dst: fts3FunctionArg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138127,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138130,1
    - Dst: sqlite3Fts3Matchinfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal==1 || nVal==2 )
      pos:
        line_end: 138125
        line_start: 138125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138134
      start: 138120
    functionDepth: 15
    functionLinenumber: 138120
    functionLinenumberEnd: 138134
    functionName: fts3MatchinfoFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    - sqlite3Fts3Matchinfo
    - assert
    - fts3FunctionArg
    linkageType: ''
    returnType: void
    signature: "void fts3MatchinfoFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138158,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138159,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138160,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138162,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - zName
    - ppArg
    argTypes:
    - sqlite3_vtab*
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138171
      start: 138140
    functionDepth: 1
    functionLinenumber: 138140
    functionLinenumberEnd: 138171
    functionName: fts3FindFunctionMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SizeofArray
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3FindFunctionMethod(\n  sqlite3_vtab *pVtab,            /*
      Virtual table handle */\n  int nArg,                       /* Number of SQL
      function arguments */\n  const char *zName,              /* Name of SQL function
      */\n  void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), /* OUT: Result
      */\n  void **ppArg                    /* Unused */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3SetHasStat
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138186,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138194,1
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138196,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138200,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138207,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138213,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138218,1
    - Dst: fts3DbExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pVtab
    - zName
    argTypes:
    - sqlite3_vtab*
    - char*
    assertStmts:
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 138193
        line_start: 138193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138227
      start: 138176
    functionDepth: 28
    functionLinenumber: 138176
    functionLinenumberEnd: 138227
    functionName: fts3RenameMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SetHasStat
    - fts3DbExec
    - assert
    - sqlite3Fts3PendingTermsFlush
    linkageType: ''
    returnType: int
    signature: "int fts3RenameMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  const char *zName               /* New name of table */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138237,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138238,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138239,1
    - Dst: fts3SyncMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( ((Fts3Table *)pVtab)->inTransaction )
      pos:
        line_end: 138236
        line_start: 138236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ((Fts3Table *)pVtab)->mxSavepoint < iSavepoint )
      pos:
        line_end: 138237
        line_start: 138237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138244
      start: 138234
    functionDepth: 2
    functionLinenumber: 138234
    functionLinenumberEnd: 138244
    functionName: fts3SavepointMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SyncMethod
    - TESTONLY
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138252,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138253,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138254,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138255,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138256,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( p->mxSavepoint >= iSavepoint )
      pos:
        line_end: 138255
        line_start: 138255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTransaction )
      pos:
        line_end: 138254
        line_start: 138254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138259
      start: 138251
    functionDepth: 1
    functionLinenumber: 138251
    functionLinenumberEnd: 138259
    functionName: fts3ReleaseMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - TESTONLY
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138270,1
    - Dst: TESTONLY
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138271,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( p->mxSavepoint >= iSavepoint )
      pos:
        line_end: 138269
        line_start: 138269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->inTransaction )
      pos:
        line_end: 138268
        line_start: 138268
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138274
      start: 138266
    functionDepth: 1
    functionLinenumber: 138266
    functionLinenumberEnd: 138274
    functionName: fts3RollbackToMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PendingTermsClear
    - TESTONLY
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138309,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138311
      start: 138307
    functionDepth: 3
    functionLinenumber: 138307
    functionLinenumberEnd: 138311
    functionName: hashDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3HashClear
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void hashDestroy(void *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3IcuTokenizerModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138349,1
    - Dst: sqlite3Fts3UnicodeTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138353,1
    - Dst: sqlite3Fts3InitTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138357,1
    - Dst: sqlite3Fts3InitAux
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138361,1
    - Dst: sqlite3Fts3SimpleTokenizerModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138364,1
    - Dst: sqlite3Fts3PorterTokenizerModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138365,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138368,1
    - Dst: sqlite3Fts3HashInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138372,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138377,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138378,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138381,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138384,1
    - Dst: sqlite3Fts3ExprInitTestInterface
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138393,1
    - Dst: sqlite3Fts3InitHashTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138402,1
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138403,1
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138404,1
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138405,1
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138406,1
    - Dst: sqlite3_overload_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138407,1
    - Dst: sqlite3_create_module_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138409,1
    - Dst: sqlite3_create_module_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138413,1
    - Dst: sqlite3Fts3InitTok
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138418,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138425,1
    - Dst: sqlite3Fts3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138427,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138428,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 138424
        line_start: 138424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138431
      start: 138338
    functionDepth: 11
    functionLinenumber: 138338
    functionLinenumberEnd: 138431
    functionName: sqlite3Fts3Init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3IcuTokenizerModule
    - sqlite3Fts3UnicodeTokenizer
    - sqlite3Fts3PorterTokenizerModule
    - sqlite3Fts3HashInsert
    - sqlite3Fts3ExprInitTestInterface
    - sqlite3Fts3HashInit
    - sqlite3_create_module_v2
    - assert
    - sqlite3_free
    - sqlite3_malloc
    - sqlite3_overload_function
    - sqlite3Fts3InitHashTable
    - sqlite3Fts3HashClear
    - sqlite3Fts3InitTok
    - sqlite3Fts3SimpleTokenizerModule
    - sqlite3Fts3InitTerm
    - sqlite3Fts3InitAux
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Init(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3TermSegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138462,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138470,1
    - Dst: fts3EvalAllocateReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138474,1
    - Dst: fts3EvalAllocateReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pCsr
    - pExpr
    - pnToken
    - pnOr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( pExpr->pPhrase->iDoclistToken==0 )
      pos:
        line_end: 138469
        line_start: 138469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138478
      start: 138448
    functionDepth: 29
    functionLinenumber: 138448
    functionLinenumberEnd: 138478
    functionName: fts3EvalAllocateReaders
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalAllocateReaders
    - fts3TermSegReaderCursor
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3EvalAllocateReaders(\n  Fts3Cursor *pCsr,               /*
      FTS cursor handle */\n  Fts3Expr *pExpr,                /* Allocate readers
      for this expression */\n  int *pnToken,                   /* OUT: Total number
      of tokens in phrase. */\n  int *pnOr,                      /* OUT: Total number
      of OR nodes in expr. */\n  int *pRc                        /* IN/OUT: Error
      code */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138498,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138501,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138512,1
    - Dst: fts3DoclistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138536,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 5
    argNames:
    - pTab
    - p
    - iToken
    - pList
    - nList
    argTypes:
    - Fts3Table*
    - Fts3Phrase*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( iToken!=p->iDoclistToken )
      pos:
        line_end: 138497
        line_start: 138497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138546
      start: 138490
    functionDepth: 5
    functionLinenumber: 138490
    functionLinenumberEnd: 138546
    functionName: fts3EvalPhraseMergeToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DoclistPhraseMerge
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseMergeToken(\n  Fts3Table *pTab,                /*
      FTS Table pointer */\n  Fts3Phrase *p,                  /* Phrase to merge pList/nList
      into */\n  int iToken,                     /* Token pList/nList corresponds
      to */\n  char *pList,                    /* Pointer to doclist */\n  int nList
      \                      /* Number of bytes in pList */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138564,1
    - Dst: fts3TermSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138569,1
    - Dst: fts3EvalPhraseMergeToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138571,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pCsr
    - p
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pToken->pDeferred==0 || pToken->pSegcsr==0 )
      pos:
        line_end: 138563
        line_start: 138563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToken->pSegcsr==0 )
      pos:
        line_end: 138573
        line_start: 138573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138578
      start: 138554
    functionDepth: 8
    functionLinenumber: 138554
    functionLinenumberEnd: 138578
    functionName: fts3EvalPhraseLoad
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3EvalPhraseMergeToken
    - fts3TermSelect
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseLoad(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Phrase *p                   /* Phrase object */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138596,1
    - Dst: sqlite3Fts3DeferredTokenList
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138605,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138609,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138623,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138624,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138625,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138629,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138662,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138664,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138669,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138673,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138677,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - pCsr
    - pPhrase
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pPhrase->doclist.bFreeList==0 )
      pos:
        line_end: 138595
        line_start: 138595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iPrev>=0 )
      pos:
        line_end: 138622
        line_start: 138622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138682
      start: 138590
    functionDepth: 4
    functionLinenumber: 138590
    functionLinenumberEnd: 138682
    functionName: fts3EvalDeferredPhrase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistPhraseMerge
    - sqlite3_free
    - assert
    - sqlite3_malloc
    - sqlite3Fts3DeferredTokenList
    linkageType: ''
    returnType: int
    signature: int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3MsrIncrStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138735,1
    - Dst: fts3EvalPhraseLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138741,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138745,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 21
    argCount: 3
    argNames:
    - pCsr
    - bOptOk
    - p
    argTypes:
    - Fts3Cursor*
    - int
    - Fts3Phrase*
    assertStmts:
    - condition: ( rc!=SQLITE_OK || p->nToken<1 || p->aToken[0].pSegcsr==0 || p->bIncr
        )
      pos:
        line_end: 138744
        line_start: 138744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138747
      start: 138702
    functionDepth: 9
    functionLinenumber: 138702
    functionLinenumberEnd: 138747
    functionName: fts3EvalPhraseStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3MsrIncrStart
    - assert
    - fts3EvalPhraseLoad
    linkageType: ''
    returnType: int
    signature: int fts3EvalPhraseStart(Fts3Cursor *pCsr, int bOptOk, Fts3Phrase *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138770,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138771,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138772,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138773,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138784,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138787,1
    - Dst: fts3GetReverseVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138798,1
    - Dst: fts3ReversePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138805,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - bDescIdx
    - aDoclist
    - nDoclist
    - ppIter
    - piDocid
    - pnList
    - pbEof
    argTypes:
    - int
    - char*
    - int
    - char**
    - sqlite3_int64*
    - int*
    - u8*
    assertStmts:
    - condition: ( nDoclist>0 )
      pos:
        line_end: 138769
        line_start: 138769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pbEof==0 )
      pos:
        line_end: 138770
        line_start: 138770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !p || (p>aDoclist && p<&aDoclist[nDoclist]) )
      pos:
        line_end: 138772
        line_start: 138772
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p || *piDocid==0 )
      pos:
        line_end: 138771
        line_start: 138771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138810
      start: 138759
    functionDepth: 3
    functionLinenumber: 138759
    functionLinenumberEnd: 138810
    functionName: sqlite3Fts3DoclistPrev
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetReverseVarint
    - sqlite3Fts3GetVarint
    - fts3ReversePoslist
    - fts3PoslistCopy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DoclistPrev(\n  int bDescIdx,                   /*
      True if the doclist is desc */\n  char *aDoclist,                 /* Pointer
      to entire doclist */\n  int nDoclist,                   /* Length of aDoclist
      in bytes */\n  char **ppIter,                  /* IN/OUT: Iterator pointer */\n
      \ sqlite3_int64 *piDocid,         /* IN/OUT: Docid pointer */\n  int *pnList,
      \                   /* OUT: List length pointer */\n  u8 *pbEof                       /*
      OUT: End-of-file flag */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138825,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138826,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138827,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138828,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138832,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138834,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138840,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - bDescIdx
    - aDoclist
    - nDoclist
    - ppIter
    - piDocid
    - pbEof
    argTypes:
    - int
    - char*
    - int
    - char**
    - sqlite3_int64*
    - u8*
    assertStmts:
    - condition: ( nDoclist>0 )
      pos:
        line_end: 138824
        line_start: 138824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !p || (p>=aDoclist && p<=&aDoclist[nDoclist]) )
      pos:
        line_end: 138827
        line_start: 138827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p || *piDocid==0 )
      pos:
        line_end: 138826
        line_start: 138826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pbEof==0 )
      pos:
        line_end: 138825
        line_start: 138825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138846
      start: 138815
    functionDepth: 2
    functionLinenumber: 138815
    functionLinenumberEnd: 138846
    functionName: sqlite3Fts3DoclistNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistCopy
    - sqlite3Fts3GetVarint
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DoclistNext(\n  int bDescIdx,                   /*
      True if the doclist is desc */\n  char *aDoclist,                 /* Pointer
      to entire doclist */\n  int nDoclist,                   /* Length of aDoclist
      in bytes */\n  char **ppIter,                  /* IN/OUT: Iterator pointer */\n
      \ sqlite3_int64 *piDocid,         /* IN/OUT: Docid pointer */\n  u8 *pbEof                       /*
      OUT: End-of-file flag */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138871,1
    - Dst: fts3PoslistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138878,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138890,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - pTab
    - pDL
    - pbEof
    argTypes:
    - Fts3Table*
    - Fts3Doclist*
    - u8*
    assertStmts:
    - condition: ( pIter>=&pDL->aAll[pDL->nAll] || *pIter )
      pos:
        line_end: 138889
        line_start: 138889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138893
      start: 138852
    functionDepth: 2
    functionLinenumber: 138852
    functionLinenumberEnd: 138893
    functionName: fts3EvalDlPhraseNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistCopy
    - sqlite3Fts3GetVarint
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3EvalDlPhraseNext(\n  Fts3Table *pTab,\n  Fts3Doclist *pDL,\n
      \ u8 *pbEof\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138925,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138926,1
    - Dst: fts3EvalDlPhraseNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138927,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138933,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138934,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138936,1
    - Dst: sqlite3Fts3MsrIncrNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - pTab
    - pPhrase
    - iToken
    - p
    - pbEof
    argTypes:
    - Fts3Table*
    - Fts3Phrase*
    - int
    - TokenDoclist*
    - u8*
    assertStmts:
    - condition: ( p->bIgnore==0 )
      pos:
        line_end: 138924
        line_start: 138924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToken->pSegcsr || pPhrase->iDoclistToken>=0 )
      pos:
        line_end: 138933
        line_start: 138933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPhrase->aToken[iToken].pSegcsr==0 )
      pos:
        line_end: 138925
        line_start: 138925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 138932
        line_start: 138932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bIgnore==0 )
      pos:
        line_end: 138935
        line_start: 138935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138947
      start: 138915
    functionDepth: 3
    functionLinenumber: 138915
    functionLinenumberEnd: 138947
    functionName: incrPhraseTokenNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3EvalDlPhraseNext
    - sqlite3Fts3MsrIncrNext
    - assert
    linkageType: ''
    returnType: int
    signature: "int incrPhraseTokenNext(\n  Fts3Table *pTab,                /* Virtual
      table handle */\n  Fts3Phrase *pPhrase,            /* Phrase to advance token
      of */\n  int iToken,                     /* Specific token to advance */\n  TokenDoclist
      *p,                /* OUT: Docid and doclist for new entry */\n  u8 *pbEof                       /*
      OUT: True if iterator is at EOF */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138979,1
    - Dst: sqlite3Fts3MsrIncrNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138982,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138990,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138991,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:138992,1
    - Dst: incrPhraseTokenNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139001,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139002,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139007,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139008,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139013,1
    - Dst: incrPhraseTokenNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139015,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139016,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139027,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139029,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139037,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139049,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 3
    argNames:
    - pCsr
    - p
    - pbEof
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    - u8*
    assertStmts:
    - condition: ( p->bIncr==1 )
      pos:
        line_end: 138978
        line_start: 138978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nToken<=MAX_INCR_PHRASE_TOKENS )
      pos:
        line_end: 138990
        line_start: 138990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iDoclistToken<MAX_INCR_PHRASE_TOKENS )
      pos:
        line_end: 138991
        line_start: 138991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (p->nToken>=1 && a[p->nToken-1].bIgnore==0) )
      pos:
        line_end: 139006
        line_start: 139006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || bMaxSet )
      pos:
        line_end: 139007
        line_start: 139007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139056
      start: 138967
    functionDepth: 4
    functionLinenumber: 138967
    functionLinenumberEnd: 139056
    functionName: fts3EvalIncrPhraseNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - incrPhraseTokenNext
    - DOCID_CMP
    - fts3PoslistPhraseMerge
    - sqlite3Fts3MsrIncrNext
    - sqlite3_free
    - sqlite3_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fts3EvalIncrPhraseNext(\n  Fts3Cursor *pCsr,               /*
      FTS Cursor handle */\n  Fts3Phrase *p,                  /* Phrase object to
      advance to next docid */\n  u8 *pbEof                       /* OUT: Set to 1
      if EOF */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalIncrPhraseNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139077,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139079,1
    - Dst: fts3EvalDlPhraseNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pCsr
    - p
    - pbEof
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139088
      start: 139067
    functionDepth: 5
    functionLinenumber: 139067
    functionLinenumberEnd: 139088
    functionName: fts3EvalPhraseNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3EvalDlPhraseNext
    - fts3EvalIncrPhraseNext
    - sqlite3Fts3DoclistPrev
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseNext(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Phrase *p,                  /* Phrase object to advance
      to next docid */\n  u8 *pbEof                       /* OUT: Set to 1 if EOF
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalPhraseStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139121,1
    - Dst: fts3EvalStartReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139123,1
    - Dst: fts3EvalStartReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139128
      start: 139106
    functionDepth: 10
    functionLinenumber: 139106
    functionLinenumberEnd: 139128
    functionName: fts3EvalStartReaders
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalStartReaders
    - fts3EvalPhraseStart
    linkageType: ''
    returnType: void
    signature: "void fts3EvalStartReaders(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Expr *pExpr,                /* Expression to initialize
      phrases in */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3MsrOvfl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139181,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139185,1
    - Dst: fts3EvalTokenCosts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139191,1
    - Dst: fts3EvalTokenCosts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - pCsr
    - pRoot
    - pExpr
    - ppTC
    - ppOr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - Fts3Expr*
    - Fts3TokenAndCost**
    - Fts3Expr***
    - int*
    assertStmts:
    - condition: ( pExpr->pLeft && pExpr->pRight )
      pos:
        line_end: 139184
        line_start: 139184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pExpr->eType==FTSQUERY_OR\n           || pExpr->eType==FTSQUERY_AND\n
        \          || pExpr->eType==FTSQUERY_NEAR\n      )"
      pos:
        line_end: 139183
        line_start: 139180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139200
      start: 139159
    functionDepth: 1
    functionLinenumber: 139159
    functionLinenumberEnd: 139200
    functionName: fts3EvalTokenCosts
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3MsrOvfl
    - assert
    - fts3EvalTokenCosts
    linkageType: ''
    returnType: void
    signature: "void fts3EvalTokenCosts(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Expr *pRoot,                /* Root of current AND/NEAR
      cluster */\n  Fts3Expr *pExpr,                /* Expression to consider */\n
      \ Fts3TokenAndCost **ppTC,        /* Write new entries to *(*ppTC)++ */\n  Fts3Expr
      ***ppOr,               /* Write new OR root to *(*ppOr)++ */\n  int *pRc                        /*
      IN/OUT: Error code */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SelectDoctotal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139234,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139236,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139237,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139239,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139240,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139242,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139245,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139251,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pCsr
    - pnPage
    argTypes:
    - Fts3Cursor*
    - int*
    assertStmts:
    - condition: ( a )
      pos:
        line_end: 139236
        line_start: 139236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->nRowAvg>0 )
      pos:
        line_end: 139250
        line_start: 139250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139258
      start: 139213
    functionDepth: 24
    functionLinenumber: 139213
    functionLinenumberEnd: 139258
    functionName: fts3EvalAverageDocsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SelectDoctotal
    - assert
    - sqlite3_column_bytes
    - sqlite3Fts3GetVarint
    - sqlite3_reset
    - sqlite3_column_blob
    linkageType: ''
    returnType: int
    signature: int fts3EvalAverageDocsize(Fts3Cursor *pCsr, int *pnPage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalAverageDocsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139311,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139312,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139349,1
    - Dst: sqlite3Fts3DeferToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139357,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139358,1
    - Dst: fts3TermSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139373,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139374,1
    - Dst: fts3EvalPhraseMergeToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139376,1
    - Dst: fts3DoclistCountDocids
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139382,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 4
    argNames:
    - pCsr
    - pRoot
    - aTC
    - nTC
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - Fts3TokenAndCost*
    - int
    assertStmts:
    - condition: ( rc!=SQLITE_OK || nDocSize>0 )
      pos:
        line_end: 139311
        line_start: 139311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTC )
      pos:
        line_end: 139348
        line_start: 139348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pList==0 )
      pos:
        line_end: 139373
        line_start: 139373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139393
      start: 139274
    functionDepth: 25
    functionLinenumber: 139274
    functionLinenumberEnd: 139393
    functionName: fts3EvalSelectDeferred
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3EvalAverageDocsize
    - sqlite3Fts3DeferToken
    - fts3SegReaderCursorFree
    - fts3DoclistCountDocids
    - fts3TermSelect
    - fts3EvalPhraseMergeToken
    linkageType: ''
    returnType: int
    signature: "int fts3EvalSelectDeferred(\n  Fts3Cursor *pCsr,               /*
      FTS Cursor handle */\n  Fts3Expr *pRoot,                /* Consider tokens with
      this root node */\n  Fts3TokenAndCost *aTC,          /* Array of expression
      tokens and costs */\n  int nTC                         /* Number of entries
      in aTC[] */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalAllocateReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139414,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139421,1
    - Dst: fts3EvalTokenCosts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139434,1
    - Dst: fts3EvalSelectDeferred
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139439,1
    - Dst: fts3EvalSelectDeferred
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139441,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139445,1
    - Dst: fts3EvalStartReaders
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139452
      start: 139407
    functionDepth: 30
    functionLinenumber: 139407
    functionLinenumberEnd: 139452
    functionName: fts3EvalStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalStartReaders
    - sqlite3_free
    - fts3EvalSelectDeferred
    - sqlite3_malloc
    - fts3EvalAllocateReaders
    - fts3EvalTokenCosts
    linkageType: ''
    returnType: int
    signature: int fts3EvalStart(Fts3Cursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts3Phrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139464
      start: 139457
    functionDepth: 3
    functionLinenumber: 139457
    functionLinenumberEnd: 139464
    functionName: fts3EvalInvalidatePoslist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3EvalInvalidatePoslist(Fts3Phrase *pPhrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139502,1
    - Dst: fts3PoslistNearMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139505,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139510,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139511,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - nNear
    - aTmp
    - paPoslist
    - pnToken
    - pPhrase
    argTypes:
    - int
    - char*
    - char**
    - int*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pPhrase->doclist.pList )
      pos:
        line_end: 139501
        line_start: 139501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPhrase->doclist.pList[nNew]=='\0' )
      pos:
        line_end: 139509
        line_start: 139509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nNew<=pPhrase->doclist.nList && nNew>0 )
      pos:
        line_end: 139510
        line_start: 139510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139519
      start: 139488
    functionDepth: 6
    functionLinenumber: 139488
    functionLinenumberEnd: 139519
    functionName: fts3EvalNearTrim
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3PoslistNearMerge
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3EvalNearTrim(\n  int nNear,                      /* NEAR distance.
      As in \"NEAR/nNear\". */\n  char *aTmp,                     /* Temporary space
      to use */\n  char **paPoslist,               /* IN/OUT: Position list */\n  int
      *pnToken,                   /* IN/OUT: Tokens in phrase of *paPoslist */\n  Fts3Phrase
      *pPhrase             /* The phrase object to trim the doclist of */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139569,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139577,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139582,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139588,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139593,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139594,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139596,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139599,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139601,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139610,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139611,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139617,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139618,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139629,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139631,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139632,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139635,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139637,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139639,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139640,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139644,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139659,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139660,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139663,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139667,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139669,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139679,1
    - Dst: fts3EvalPhraseNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139680,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 92
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( pExpr->bEof==0 )
      pos:
        line_end: 139568
        line_start: 139568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pLeft->bDeferred || !pRight->bDeferred )
      pos:
        line_end: 139576
        line_start: 139576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pLeft->bStart || pLeft->iDocid==pRight->iDocid )
      pos:
        line_end: 139630
        line_start: 139630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRc!=SQLITE_OK || pRight->bStart )
      pos:
        line_end: 139659
        line_start: 139659
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRight->bStart || pLeft->iDocid==pRight->iDocid )
      pos:
        line_end: 139631
        line_start: 139631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139686
      start: 139562
    functionDepth: 6
    functionLinenumber: 139562
    functionLinenumberEnd: 139686
    functionName: fts3EvalNextRow
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - assert
    - DOCID_CMP
    - fts3EvalNextRow
    - fts3EvalInvalidatePoslist
    - fts3EvalPhraseNext
    linkageType: ''
    returnType: void
    signature: "void fts3EvalNextRow(\n  Fts3Cursor *pCsr,               /* FTS Cursor
      handle */\n  Fts3Expr *pExpr,                /* Expr. to advance to next matching
      row */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139743,1
    - Dst: fts3EvalNearTrim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139754,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139762,1
    - Dst: fts3EvalNearTrim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139767,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139771,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - pExpr
    - pRc
    argTypes:
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( p->pParent && p->pParent->pLeft==p )
      pos:
        line_end: 139761
        line_start: 139761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139776
      start: 139703
    functionDepth: 7
    functionLinenumber: 139703
    functionLinenumberEnd: 139776
    functionName: fts3EvalNearTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    - fts3EvalNearTrim
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int fts3EvalNearTest(Fts3Expr *pExpr, int *pRc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139800,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139801,1
    - Dst: fts3EvalNearTest
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139802,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139827,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139831,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139838,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139839,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139846,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139847,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139857,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139859,1
    - Dst: fts3EvalDeferredPhrase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139861,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( pExpr->bDeferred || pPhrase->doclist.bFreeList==0 )
      pos:
        line_end: 139856
        line_start: 139856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139874
      start: 139789
    functionDepth: 8
    functionLinenumber: 139789
    functionLinenumberEnd: 139874
    functionName: fts3EvalTestExpr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3EvalTestExpr
    - fts3EvalDeferredPhrase
    - fts3EvalInvalidatePoslist
    - fts3EvalNearTest
    linkageType: ''
    returnType: int
    signature: "int fts3EvalTestExpr(\n  Fts3Cursor *pCsr,               /* FTS cursor
      handle */\n  Fts3Expr *pExpr,                /* Expr to test. May or may not
      be root. */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3CursorSeek
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139912,1
    - Dst: sqlite3Fts3CacheDeferredDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139914,1
    - Dst: fts3EvalTestExpr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139917,1
    - Dst: sqlite3Fts3FreeDeferredDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pCsr
    - pRc
    argTypes:
    - Fts3Cursor*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139924
      start: 139900
    functionDepth: 29
    functionLinenumber: 139900
    functionLinenumberEnd: 139924
    functionName: sqlite3Fts3EvalTestDeferred
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3CacheDeferredDoclists
    - fts3EvalTestExpr
    - sqlite3Fts3FreeDeferredDoclists
    - fts3CursorSeek
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3EvalTestDeferred(Fts3Cursor *pCsr, int *pRc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139933,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139941,1
    - Dst: sqlite3_data_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139941,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139942,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts:
    - condition: ( pCsr->isEof==0 )
      pos:
        line_end: 139932
        line_start: 139932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_data_count(pCsr->pStmt)==0 )
      pos:
        line_end: 139940
        line_start: 139940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139960
      start: 139930
    functionDepth: 30
    functionLinenumber: 139930
    functionLinenumberEnd: 139960
    functionName: fts3EvalNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3Fts3EvalTestDeferred
    - sqlite3_reset
    - fts3EvalNextRow
    - sqlite3_data_count
    linkageType: ''
    returnType: int
    signature: int fts3EvalNext(Fts3Cursor *pCsr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139980,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139985,1
    - Dst: sqlite3Fts3MsrIncrRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139987,1
    - Dst: fts3EvalPhraseStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:139990,1
    - Dst: fts3EvalRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140001,1
    - Dst: fts3EvalRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140002,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 139984
        line_start: 139984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140004
      start: 139971
    functionDepth: 10
    functionLinenumber: 139971
    functionLinenumberEnd: 140004
    functionName: fts3EvalRestart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3MsrIncrRestart
    - assert
    - fts3EvalInvalidatePoslist
    - fts3EvalRestart
    - fts3EvalPhraseStart
    linkageType: ''
    returnType: void
    signature: "void fts3EvalRestart(\n  Fts3Cursor *pCsr,\n  Fts3Expr *pExpr,\n  int
      *pRc\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140021,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140037,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140041,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140042,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( *p )
      pos:
        line_end: 140020
        line_start: 140020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140044
      start: 140014
    functionDepth: 1
    functionLinenumber: 140014
    functionLinenumberEnd: 140044
    functionName: fts3EvalUpdateCounts
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalUpdateCounts
    - fts3GetVarint32
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3EvalUpdateCounts(Fts3Expr *pExpr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140063,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140080,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140085,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140086,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140088,1
    - Dst: fts3EvalRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140091,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140097,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140098,1
    - Dst: sqlite3_data_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140098,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140101,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140108,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140112,1
    - Dst: fts3EvalRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140128,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140130,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140131,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - pCsr
    - pExpr
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    assertStmts:
    - condition: ( pExpr->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 140062
        line_start: 140062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRoot->bStart )
      pos:
        line_end: 140079
        line_start: 140079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pE->aMI==0 )
      pos:
        line_end: 140084
        line_start: 140084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_data_count(pCsr->pStmt)==0 )
      pos:
        line_end: 140097
        line_start: 140097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRoot->bEof==0 )
      pos:
        line_end: 140130
        line_start: 140130
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140136
      start: 140057
    functionDepth: 30
    functionLinenumber: 140057
    functionLinenumberEnd: 140136
    functionName: fts3EvalGatherStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3Fts3EvalTestDeferred
    - sqlite3_data_count
    - sqlite3_malloc
    - fts3EvalNextRow
    - sqlite3_reset
    - fts3EvalRestart
    - fts3EvalUpdateCounts
    linkageType: ''
    returnType: int
    signature: "int fts3EvalGatherStats(\n  Fts3Cursor *pCsr,               /* Cursor
      object */\n  Fts3Expr *pExpr                 /* FTSQUERY_PHRASE expression */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140178,1
    - Dst: fts3EvalGatherStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140184,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - aiOut
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - u32*
    assertStmts:
    - condition: ( pCsr->nDoc>0 )
      pos:
        line_end: 140177
        line_start: 140177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pExpr->aMI )
      pos:
        line_end: 140185
        line_start: 140185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140195
      start: 140168
    functionDepth: 31
    functionLinenumber: 140168
    functionLinenumberEnd: 140195
    functionName: sqlite3Fts3EvalPhraseStats
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3EvalGatherStats
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3EvalPhraseStats(\n  Fts3Cursor *pCsr,               /*
      FTS cursor handle */\n  Fts3Expr *pExpr,                /* Phrase expression
      */\n  u32 *aiOut                      /* Array to write results into (see above)
      */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140231,1
    - Dst: fts3EvalRestart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140265,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140267,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140270,1
    - Dst: fts3EvalNextRow
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140274,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140284,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140286,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140294,1
    - Dst: sqlite3Fts3DoclistNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140295,1
    - Dst: DOCID_CMP
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140302,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140304,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140325,1
    - Dst: fts3ColumnlistCopy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140330,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140333,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 87
    argCount: 4
    argNames:
    - pCsr
    - pExpr
    - iCol
    - ppOut
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int
    - char**
    assertStmts:
    - condition: ( iCol>=0 && iCol<pTab->nColumn )
      pos:
        line_end: 140230
        line_start: 140230
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPhrase->bIncr==0 )
      pos:
        line_end: 140269
        line_start: 140269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTest->eType==FTSQUERY_NEAR || pTest->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 140283
        line_start: 140283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pTest->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 140285
        line_start: 140285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140341
      start: 140216
    functionDepth: 11
    functionLinenumber: 140216
    functionLinenumberEnd: 140341
    functionName: sqlite3Fts3EvalPhrasePoslist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3ColumnlistCopy
    - DOCID_CMP
    - fts3GetVarint32
    - sqlite3Fts3DoclistPrev
    - fts3EvalNextRow
    - sqlite3Fts3DoclistNext
    - fts3EvalRestart
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3EvalPhrasePoslist(\n  Fts3Cursor *pCsr,
      \              /* FTS3 cursor object */\n  Fts3Expr *pExpr,                /*
      Phrase to return doclist for */\n  int iCol,                       /* Column
      to return position list for */\n  char **ppOut                    /* OUT: Pointer
      to position list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140353,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140354,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140355,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts3Phrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140361
      start: 140350
    functionDepth: 4
    functionLinenumber: 140350
    functionLinenumberEnd: 140361
    functionName: sqlite3Fts3EvalPhraseCleanup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderCursorFree
    - fts3EvalInvalidatePoslist
    - memset
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3EvalPhraseCleanup(Fts3Phrase *pPhrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140370
      start: 140368
    functionDepth: 0
    functionLinenumber: 140368
    functionLinenumberEnd: 140370
    functionName: sqlite3Fts3Corrupt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Corrupt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140385,1
    - Dst: sqlite3Fts3Init
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140387
      start: 140378
    functionDepth: 12
    functionLinenumber: 140378
    functionLinenumberEnd: 140387
    functionName: sqlite3_fts3_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_EXTENSION_INIT2
    - sqlite3Fts3Init
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_fts3_init(\n  sqlite3 *db, \n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140466,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140476,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140478,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140480,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140488,1
    - Dst: sqlite3_declare_vtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140490,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140494,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140496,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140504,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140505,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140506,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140512,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - db
    - pUnused
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140514
      start: 140450
    functionDepth: 25
    functionLinenumber: 140450
    functionLinenumberEnd: 140514
    functionName: fts3auxConnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_strnicmp
    - sqlite3Fts3ErrMsg
    - sqlite3_declare_vtab
    - UNUSED_PARAMETER
    - sqlite3_malloc
    - memcpy
    - sqlite3Fts3Dequote
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3auxConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pUnused,                  /* Unused */\n  int argc,                       /*
      Number of elements in argv array */\n  const char * const *argv,       /* xCreate/xConnect
      argument array */\n  sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab
      object */\n  char **pzErr                    /* OUT: sqlite3_malloc'd error
      message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140527,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140528,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140530,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140533
      start: 140521
    functionDepth: 25
    functionLinenumber: 140521
    functionLinenumberEnd: 140533
    functionName: fts3auxDisconnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - SizeofArray
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3auxDisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140553,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140607
      start: 140542
    functionDepth: 1
    functionLinenumber: 140542
    functionLinenumberEnd: 140607
    functionName: fts3auxBestIndexMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3auxBestIndexMethod(\n  sqlite3_vtab *pVTab, \n  sqlite3_index_info
      *pInfo\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140615,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140617,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140623
      start: 140612
    functionDepth: 1
    functionLinenumber: 140612
    functionLinenumberEnd: 140623
    functionName: fts3auxOpenMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int fts3auxOpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140632,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140633,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140634,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140635,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140636,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140639
      start: 140628
    functionDepth: 3
    functionLinenumber: 140628
    functionLinenumberEnd: 140639
    functionName: fts3auxCloseMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SegmentsClose
    - sqlite3Fts3SegReaderFinish
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3auxCloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140644,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pCsr
    - nSize
    argTypes:
    - Fts3auxCursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140655
      start: 140641
    functionDepth: 0
    functionLinenumber: 140641
    functionLinenumberEnd: 140655
    functionName: fts3auxGrowStatArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: int fts3auxGrowStatArray(Fts3auxCursor *pCsr, int nSize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140672,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140683,1
    - Dst: fts3auxGrowStatArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140690,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140691,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140715,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140734,1
    - Dst: fts3auxGrowStatArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140736,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( iCol==0 )
      pos:
        line_end: 140714
        line_start: 140714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eState==3 )
      pos:
        line_end: 140733
        line_start: 140733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140749
      start: 140660
    functionDepth: 2
    functionLinenumber: 140660
    functionLinenumberEnd: 140749
    functionName: fts3auxNextMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memset
    - fts3auxGrowStatArray
    - assert
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SegReaderStep
    linkageType: ''
    returnType: int
    signature: int fts3auxNextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140773,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140774,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140776,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140777,1
    - Dst: testcase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140798,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140799,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140800,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140801,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140802,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140809,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140811,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140812,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140818,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140818,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140819,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140824,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140835,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140839,1
    - Dst: fts3auxNextMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140842,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( idxStr==0 )
      pos:
        line_end: 140775
        line_start: 140775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (iEq==0 && iGe==-1) || (iEq==-1 && iGe==0) )
      pos:
        line_end: 140808
        line_start: 140808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( idxNum==FTS4AUX_EQ_CONSTRAINT || idxNum==0\n       || idxNum==FTS4AUX_LE_CONSTRAINT
        || idxNum==FTS4AUX_GE_CONSTRAINT\n       || idxNum==(FTS4AUX_LE_CONSTRAINT|FTS4AUX_GE_CONSTRAINT)\n
        \ )"
      pos:
        line_end: 140779
        line_start: 140776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140844
      start: 140754
    functionDepth: 28
    functionLinenumber: 140754
    functionLinenumberEnd: 140844
    functionName: fts3auxFilterMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - memset
    - sqlite3Fts3SegReaderFinish
    - sqlite3_free
    - assert
    - sqlite3Fts3SegReaderStart
    - sqlite3_value_bytes
    - sqlite3_mprintf
    - UNUSED_PARAMETER
    - sqlite3_value_text
    - sqlite3Fts3SegReaderCursor
    - fts3auxNextMethod
    - testcase
    linkageType: ''
    returnType: int
    signature: "int fts3auxFilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The
      cursor used for this query */\n  int idxNum,                     /* Strategy
      index */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140852
      start: 140849
    functionDepth: 0
    functionLinenumber: 140849
    functionLinenumberEnd: 140852
    functionName: fts3auxEofMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3auxEofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140864,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140867,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140872,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140874,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140879,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140883,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140887,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( p->isEof==0 )
      pos:
        line_end: 140863
        line_start: 140863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol==4 )
      pos:
        line_end: 140886
        line_start: 140886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140893
      start: 140857
    functionDepth: 12
    functionLinenumber: 140857
    functionLinenumberEnd: 140893
    functionName: fts3auxColumnMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_text
    - assert
    - sqlite3_result_int64
    linkageType: ''
    returnType: int
    signature: "int fts3auxColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140905
      start: 140898
    functionDepth: 0
    functionLinenumber: 140898
    functionLinenumberEnd: 140905
    functionName: fts3auxRowidMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3auxRowidMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite_int64 *pRowid            /* OUT: Rowid value
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:140939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140941
      start: 140911
    functionDepth: 11
    functionLinenumber: 140911
    functionLinenumberEnd: 140941
    functionName: sqlite3Fts3InitAux
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3InitAux(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141064
      start: 141062
    functionDepth: 0
    functionLinenumber: 141062
    functionLinenumberEnd: 141064
    functionName: fts3isspace
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3isspace(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141072,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141075
      start: 141071
    functionDepth: 0
    functionLinenumber: 141071
    functionLinenumberEnd: 141075
    functionName: fts3MallocZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: void
    signature: void *fts3MallocZero(int nByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_tokenizer_module*::xOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141088,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141089,1
    - Dst: sqlite3_tokenizer_module*::xLanguageid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141093,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - pTokenizer
    - iLangid
    - z
    - n
    - ppCsr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pCsr==0 )
      pos:
        line_end: 141088
        line_start: 141088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141102
      start: 141077
    functionDepth: 0
    functionLinenumber: 141077
    functionLinenumberEnd: 141102
    functionName: sqlite3Fts3OpenTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_tokenizer_module*::xLanguageid
    - assert
    - sqlite3_tokenizer_module*::xOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3OpenTokenizer(\n  sqlite3_tokenizer *pTokenizer,\n
      \ int iLangid,\n  const char *z,\n  int n,\n  sqlite3_tokenizer_cursor **ppCsr\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141143,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141149,1
    - Dst: fts3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141152,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141162,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141189,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 6
    argNames:
    - pParse
    - iCol
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - int
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141194
      start: 141122
    functionDepth: 1
    functionLinenumber: 141122
    functionLinenumberEnd: 141194
    functionName: getNextToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Fts3OpenTokenizer
    - fts3MallocZero
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: int
    signature: "int getNextToken(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  int iCol,                               /* Value for
      Fts3Phrase.iColumn */\n  const char *z, int n,                   /* Input string
      */\n  Fts3Expr **ppExpr,                      /* OUT: expression */\n  int *pnConsumed
      \                        /* OUT: Number of bytes consumed */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141202,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pOrig
    - nNew
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141207
      start: 141201
    functionDepth: 3
    functionLinenumber: 141201
    functionLinenumberEnd: 141207
    functionName: fts3ReallocOrFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_realloc
    linkageType: ''
    returnType: void
    signature: void *fts3ReallocOrFree(void *pOrig, int nNew)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141256,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141263,1
    - Dst: fts3ReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141267,1
    - Dst: fts3ReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141270,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141273,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141275,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141277,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141287,1
    - Dst: fts3ReallocOrFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141295,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141297,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141305,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141306,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141308,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141323,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141325,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 4
    argNames:
    - pParse
    - zInput
    - nInput
    - ppExpr
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    assertStmts:
    - condition: ( nToken==ii )
      pos:
        line_end: 141272
        line_start: 141272
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nTemp==0 )
      pos:
        line_end: 141307
        line_start: 141307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141329
      start: 141221
    functionDepth: 4
    functionLinenumber: 141221
    functionLinenumberEnd: 141329
    functionName: getNextString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3_free
    - memcpy
    - sqlite3Fts3OpenTokenizer
    - fts3ReallocOrFree
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: int
    signature: "int getNextString(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *zInput, int nInput,         /* Input string
      */\n  Fts3Expr **ppExpr                       /* OUT: expression */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fts3isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141370,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141386,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141393,1
    - Dst: fts3isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141407,1
    - Dst: fts3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141410,1
    - Dst: getNextString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141438,1
    - Dst: fts3ExprParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141445,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141472,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141474,1
    - Dst: getNextToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141481,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 75
    argCount: 5
    argNames:
    - pParse
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts:
    - condition: ( nKey==4 )
      pos:
        line_end: 141392
        line_start: 141392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141484
      start: 141339
    functionDepth: 5
    functionLinenumber: 141339
    functionLinenumberEnd: 141484
    functionName: getNextNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - getNextString
    - assert
    - sqlite3_strnicmp
    - fts3isspace
    - fts3ExprParse
    - getNextToken
    - fts3MallocZero
    - strlen
    linkageType: ''
    returnType: int
    signature: "int getNextNode(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *z, int n,                   /* Input string
      */\n  Fts3Expr **ppExpr,                      /* OUT: expression */\n  int *pnConsumed
      \                        /* OUT: Number of bytes consumed */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141506,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( p->eType!=FTSQUERY_PHRASE )
      pos:
        line_end: 141505
        line_start: 141505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eType==FTSQUERY_AND )
      pos:
        line_end: 141513
        line_start: 141513
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141516
      start: 141505
    functionDepth: 0
    functionLinenumber: 141505
    functionLinenumberEnd: 141516
    functionName: opPrecedence
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int opPrecedence(Fts3Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: opPrecedence
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141532,1
    - Dst: opPrecedence
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141532,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ppHead
    - pPrev
    - pNew
    argTypes:
    - Fts3Expr**
    - Fts3Expr*
    - Fts3Expr*
    assertStmts:
    - condition: ( pSplit->pParent->pRight==pSplit )
      pos:
        line_end: 141536
        line_start: 141536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141545
      start: 141526
    functionDepth: 1
    functionLinenumber: 141526
    functionLinenumberEnd: 141545
    functionName: insertBinaryOperator
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - opPrecedence
    - assert
    linkageType: ''
    returnType: void
    signature: "void insertBinaryOperator(\n  Fts3Expr **ppHead,       /* Pointer
      to the root node of a tree */\n  Fts3Expr *pPrev,         /* Node most recently
      inserted into the tree */\n  Fts3Expr *pNew           /* New binary node to
      insert into expression tree */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getNextNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141575,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141576,1
    - Dst: fts3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141585,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141587,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141610,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141618,1
    - Dst: fts3MallocZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141619,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141621,1
    - Dst: insertBinaryOperator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141626,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141643,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141650,1
    - Dst: insertBinaryOperator
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141657,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141663,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141665,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141694,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141695,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 98
    argCount: 5
    argNames:
    - pParse
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts:
    - condition: ( nByte>0 || (rc!=SQLITE_OK && p==0) )
      pos:
        line_end: 141575
        line_start: 141575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRet && pPrev )
      pos:
        line_end: 141617
        line_start: 141617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPrev && pPrev->pLeft && pPrev->pRight==0 )
      pos:
        line_end: 141649
        line_start: 141649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nByte>0 )
      pos:
        line_end: 141662
        line_start: 141662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (nByte>0 && nByte<=nIn) )
      pos:
        line_end: 141664
        line_start: 141664
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141700
      start: 141557
    functionDepth: 6
    functionLinenumber: 141557
    functionLinenumberEnd: 141700
    functionName: fts3ExprParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3Fts3ExprFree
    - fts3MallocZero
    - insertBinaryOperator
    - getNextNode
    linkageType: ''
    returnType: int
    signature: "int fts3ExprParse(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *z, int n,                   /* Text of
      MATCH query */\n  Fts3Expr **ppExpr,                      /* OUT: Parsed query
      structure */\n  int *pnConsumed                         /* OUT: Number of bytes
      consumed */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprCheckDepth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141712,1
    - Dst: fts3ExprCheckDepth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - nMaxDepth
    argTypes:
    - Fts3Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141719
      start: 141706
    functionDepth: 1
    functionLinenumber: 141706
    functionLinenumberEnd: 141719
    functionName: fts3ExprCheckDepth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprCheckDepth
    linkageType: ''
    returnType: int
    signature: int fts3ExprCheckDepth(Fts3Expr *p, int nMaxDepth)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141744,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141748,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141757,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141758,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141766,1
    - Dst: fts3ExprBalance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141773,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141781,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141794,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141806,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141811,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141829,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141848,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141852,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141856,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141857,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141862,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 2
    argNames:
    - pp
    - nMaxDepth
    argTypes:
    - Fts3Expr**
    - int
    assertStmts:
    - condition: ( p->pParent==0 || p->pParent->pLeft==p )
      pos:
        line_end: 141756
        line_start: 141756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent==0 || pParent->pLeft==p )
      pos:
        line_end: 141765
        line_start: 141765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pLeft && p->pRight )
      pos:
        line_end: 141757
        line_start: 141757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFree )
      pos:
        line_end: 141780
        line_start: 141780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent->pParent==0 || pParent->pParent->pLeft==pParent )
      pos:
        line_end: 141805
        line_start: 141805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pParent==pRoot )
      pos:
        line_end: 141810
        line_start: 141810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFree==0 )
      pos:
        line_end: 141855
        line_start: 141855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pFree!=0 )
      pos:
        line_end: 141828
        line_start: 141828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141867
      start: 141732
    functionDepth: 3
    functionLinenumber: 141732
    functionLinenumberEnd: 141867
    functionName: fts3ExprBalance
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - assert
    - sqlite3Fts3ExprFree
    - sqlite3_free
    - sqlite3_malloc
    - fts3ExprBalance
    linkageType: ''
    returnType: int
    signature: int fts3ExprBalance(Fts3Expr **pp, int nMaxDepth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141894,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141906,1
    - Dst: fts3ExprParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141908,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141909,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 9
    argNames:
    - pTokenizer
    - iLangid
    - azCol
    - bFts4
    - nCol
    - iDefaultCol
    - z
    - n
    - ppExpr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char**
    - int
    - int
    - int
    - char*
    - int
    - Fts3Expr**
    assertStmts:
    - condition: ( rc==SQLITE_OK || *ppExpr==0 )
      pos:
        line_end: 141908
        line_start: 141908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141917
      start: 141880
    functionDepth: 7
    functionLinenumber: 141880
    functionLinenumberEnd: 141917
    functionName: fts3ExprParseUnbalanced
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3ExprParse
    - strlen
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3ExprParseUnbalanced(\n  sqlite3_tokenizer *pTokenizer,      /*
      Tokenizer module */\n  int iLangid,                        /* Language id for
      tokenizer */\n  char **azCol,                       /* Array of column names
      for fts3 table */\n  int bFts4,                          /* True to allow FTS4-only
      syntax */\n  int nCol,                           /* Number of entries in azCol[]
      */\n  int iDefaultCol,                    /* Default column to query */\n  const
      char *z, int n,               /* Text of MATCH query */\n  Fts3Expr **ppExpr
      \                  /* OUT: Parsed query structure */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprParseUnbalanced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141954,1
    - Dst: fts3ExprBalance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141961,1
    - Dst: fts3ExprCheckDepth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141963,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141968,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141971,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 10
    argNames:
    - pTokenizer
    - iLangid
    - azCol
    - bFts4
    - nCol
    - iDefaultCol
    - z
    - n
    - ppExpr
    - pzErr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char**
    - int
    - int
    - int
    - char*
    - int
    - Fts3Expr**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141982
      start: 141943
    functionDepth: 8
    functionLinenumber: 141943
    functionLinenumberEnd: 141982
    functionName: sqlite3Fts3ExprParse
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3ExprFree
    - sqlite3Fts3ErrMsg
    - fts3ExprCheckDepth
    - fts3ExprParseUnbalanced
    - fts3ExprBalance
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3ExprParse(\n  sqlite3_tokenizer *pTokenizer,
      \     /* Tokenizer module */\n  int iLangid,                        /* Language
      id for tokenizer */\n  char **azCol,                       /* Array of column
      names for fts3 table */\n  int bFts4,                          /* True to allow
      FTS4-only syntax */\n  int nCol,                           /* Number of entries
      in azCol[] */\n  int iDefaultCol,                    /* Default column to query
      */\n  const char *z, int n,               /* Text of MATCH query */\n  Fts3Expr
      **ppExpr,                  /* OUT: Parsed query structure */\n  char **pzErr
      \                       /* OUT: Error message (sqlite3_malloc) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141988,1
    - Dst: sqlite3Fts3EvalPhraseCleanup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141989,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141990,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:141991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( p->eType==FTSQUERY_PHRASE || p->pPhrase==0 )
      pos:
        line_end: 141987
        line_start: 141987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141992
      start: 141987
    functionDepth: 5
    functionLinenumber: 141987
    functionLinenumberEnd: 141992
    functionName: fts3FreeExprNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhraseCleanup
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3FreeExprNode(Fts3Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142003,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142005,1
    - Dst: fts3FreeExprNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142009,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142013,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - pDel
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( pDel==0 || pDel->pParent==0 )
      pos:
        line_end: 142002
        line_start: 142002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->pParent==0 || p==p->pParent->pRight || p==p->pParent->pLeft
        )
      pos:
        line_end: 142004
        line_start: 142004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p==p->pParent->pRight || p==p->pParent->pLeft )
      pos:
        line_end: 142012
        line_start: 142012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142020
      start: 142001
    functionDepth: 6
    functionLinenumber: 142001
    functionLinenumberEnd: 142020
    functionName: sqlite3Fts3ExprFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 5
    functionsReached:
    - fts3FreeExprNode
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ExprFree(Fts3Expr *pDel)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142044,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142049,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142050,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142051,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142052,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142052,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - zName
    - pp
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142057
      start: 142034
    functionDepth: 27
    functionLinenumber: 142034
    functionLinenumberEnd: 142057
    functionName: queryTestTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_step
    - memcpy
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - sqlite3_column_blob
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: "int queryTestTokenizer(\n  sqlite3 *db, \n  const char *zName,  \n
      \ const sqlite3_tokenizer_module **pp\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142071,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142077,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142080,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142089,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142092,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142095,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142098,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142102,1
    - Dst: exprToString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142103,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142104,1
    - Dst: exprToString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142106,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - pExpr
    - zBuf
    argTypes:
    - Fts3Expr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142110
      start: 142069
    functionDepth: 1
    functionLinenumber: 142069
    functionLinenumberEnd: 142110
    functionName: exprToString
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - exprToString
    linkageType: ''
    returnType: char
    signature: char *exprToString(Fts3Expr *pExpr, char *zBuf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142141,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142144,1
    - Dst: queryTestTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142150,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142151,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142153,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142156,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142160,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142161,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142163,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142168,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142169,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142171,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142173,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142177,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142180,1
    - Dst: sqlite3Fts3ExprParse
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142182,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142185,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142186,1
    - Dst: fts3ExprParseUnbalanced
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142188,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142194,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142195,1
    - Dst: exprToString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142196,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142197,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142199,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142200,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142203,1
    - Dst: sqlite3_tokenizer_module*::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142207,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142209,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pExpr==0 )
      pos:
        line_end: 142184
        line_start: 142184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_NOMEM || rc==SQLITE_OK )
      pos:
        line_end: 142160
        line_start: 142160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142210
      start: 142126
    functionDepth: 28
    functionLinenumber: 142126
    functionLinenumberEnd: 142210
    functionName: fts3ExprTest
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_tokenizer_module*::xCreate
    - assert
    - sqlite3_result_error_nomem
    - queryTestTokenizer
    - sqlite3_user_data
    - sqlite3_value_bytes
    - sqlite3_free
    - sqlite3Fts3ExprFree
    - fts3ExprParseUnbalanced
    - sqlite3_value_text
    - sqlite3_malloc
    - sqlite3_result_text
    - sqlite3_tokenizer_module*::xDestroy
    - sqlite3Fts3ExprParse
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - exprToString
    linkageType: ''
    returnType: void
    signature: "void fts3ExprTest(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142217,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142226
      start: 142216
    functionDepth: 2
    functionLinenumber: 142216
    functionLinenumberEnd: 142226
    functionName: sqlite3Fts3ExprInitTestInterface
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ExprInitTestInterface(sqlite3* db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142271,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142276
      start: 142270
    functionDepth: 0
    functionLinenumber: 142270
    functionLinenumberEnd: 142276
    functionName: fts3HashMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: void
    signature: void *fts3HashMalloc(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142279
      start: 142277
    functionDepth: 3
    functionLinenumber: 142277
    functionLinenumberEnd: 142279
    functionName: fts3HashFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3HashFree(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142292,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pNew
    - keyClass
    - copyKey
    argTypes:
    - Fts3Hash*
    - char
    - char
    assertStmts:
    - condition: ( pNew!=0 )
      pos:
        line_end: 142291
        line_start: 142291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( keyClass>=FTS3_HASH_STRING && keyClass<=FTS3_HASH_BINARY )
      pos:
        line_end: 142292
        line_start: 142292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142300
      start: 142291
    functionDepth: 0
    functionLinenumber: 142291
    functionLinenumberEnd: 142300
    functionName: sqlite3Fts3HashInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3HashInit(Fts3Hash *pNew, char keyClass, char
      copyKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142309,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142312,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142318,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pH
    argTypes:
    - Fts3Hash*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 142308
        line_start: 142308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142324
      start: 142306
    functionDepth: 4
    functionLinenumber: 142306
    functionLinenumberEnd: 142324
    functionName: sqlite3Fts3HashClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3HashFree
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3HashClear(Fts3Hash *pH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pKey
    - nKey
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142338
      start: 142329
    functionDepth: 0
    functionLinenumber: 142329
    functionLinenumberEnd: 142338
    functionName: fts3StrHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int fts3StrHash(const void *pKey, int nKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pKey1
    - n1
    - pKey2
    - n2
    argTypes:
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142342
      start: 142339
    functionDepth: 0
    functionLinenumber: 142339
    functionLinenumberEnd: 142342
    functionName: fts3StrCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int fts3StrCompare(const void *pKey1, int n1, const void *pKey2, int
      n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pKey
    - nKey
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142354
      start: 142347
    functionDepth: 0
    functionLinenumber: 142347
    functionLinenumberEnd: 142354
    functionName: fts3BinHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3BinHash(const void *pKey, int nKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pKey1
    - n1
    - pKey2
    - n2
    argTypes:
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142358
      start: 142355
    functionDepth: 0
    functionLinenumber: 142355
    functionLinenumberEnd: 142358
    functionName: fts3BinCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fts3BinCompare(const void *pKey1, int n1, const void *pKey2, int
      n2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( keyClass==FTS3_HASH_BINARY )
      pos:
        line_end: 142375
        line_start: 142375
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142379
      start: 142372
    functionDepth: 0
    functionLinenumber: 142372
    functionLinenumberEnd: 142379
    functionName: (*ftsHashFunction(int keyClass))(const void*,int)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int (*ftsHashFunction(int keyClass))(const void*,int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( keyClass==FTS3_HASH_BINARY )
      pos:
        line_end: 142390
        line_start: 142390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142394
      start: 142387
    functionDepth: 0
    functionLinenumber: 142387
    functionLinenumberEnd: 142394
    functionName: (*ftsCompareFunction(int keyClass))(const void*,int,const void*,int)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int (*ftsCompareFunction(int keyClass))(const void*,int,const void*,int)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - pH
    - pEntry
    - pNew
    argTypes:
    - Fts3Hash*
    - struct _fts3ht*
    - Fts3HashElem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142419
      start: 142398
    functionDepth: 0
    functionLinenumber: 142398
    functionLinenumberEnd: 142419
    functionName: fts3HashInsertElement
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fts3HashInsertElement(\n  Fts3Hash *pH,            /* The complete
      hash table */\n  struct _fts3ht *pEntry,  /* The entry into which pNew is inserted
      */\n  Fts3HashElem *pNew       /* The element to be inserted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142433,1
    - Dst: fts3HashMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142434,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142436,1
    - Dst: ftsHashFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142439,1
    - Dst: fts3HashInsertElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pH
    - new_size
    argTypes:
    - Fts3Hash*
    - int
    assertStmts:
    - condition: ( (new_size & (new_size-1))==0 )
      pos:
        line_end: 142432
        line_start: 142432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142446
      start: 142428
    functionDepth: 4
    functionLinenumber: 142428
    functionLinenumberEnd: 142446
    functionName: fts3Rehash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3HashFree
    - fts3HashInsertElement
    - ftsHashFunction
    - fts3HashMalloc
    linkageType: ''
    returnType: int
    signature: int fts3Rehash(Fts3Hash *pH, int new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ftsCompareFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pH
    - pKey
    - nKey
    - h
    argTypes:
    - Fts3Hash*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142475
      start: 142452
    functionDepth: 0
    functionLinenumber: 142452
    functionLinenumberEnd: 142475
    functionName: fts3FindElementByHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ftsCompareFunction
    linkageType: ''
    returnType: Fts3HashElem
    signature: "Fts3HashElem *fts3FindElementByHash(\n  const Fts3Hash *pH, /* The
      pH to be searched */\n  const void *pKey,   /* The key we are searching for
      */\n  int nKey,\n  int h               /* The hash for this key. */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142503,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142505,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142508,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142509,1
    - Dst: fts3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - pH
    - elem
    - h
    argTypes:
    - Fts3Hash*
    - Fts3HashElem*
    - int
    assertStmts:
    - condition: ( pH->count==0 )
      pos:
        line_end: 142508
        line_start: 142508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->first==0 )
      pos:
        line_end: 142507
        line_start: 142507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142512
      start: 142480
    functionDepth: 4
    functionLinenumber: 142480
    functionLinenumberEnd: 142512
    functionName: fts3RemoveElementByHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3HashClear
    - fts3HashFree
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3RemoveElementByHash(\n  Fts3Hash *pH,         /* The pH containing
      \"elem\" */\n  Fts3HashElem* elem,   /* The element to be removed from the pH
      */\n  int h                 /* Hash value for the element */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftsHashFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142523,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142524,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142526,1
    - Dst: fts3FindElementByHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 142525
        line_start: 142525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xHash!=0 )
      pos:
        line_end: 142523
        line_start: 142523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142528
      start: 142514
    functionDepth: 1
    functionLinenumber: 142514
    functionLinenumberEnd: 142528
    functionName: "Fts3HashElem *sqlite3Fts3HashFindElem(\n  const Fts3Hash *pH, \n
      \ const void *pKey, \n  int nKey\n)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ftsHashFunction
    - fts3FindElementByHash
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE Fts3HashElem *sqlite3Fts3HashFindElem(\n  const Fts3Hash
      *pH, \n  const void *pKey, \n  int nKey\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3HashFindElem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pH
    - pKey
    - nKey
    argTypes:
    - Fts3Hash*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142540
      start: 142535
    functionDepth: 0
    functionLinenumber: 142535
    functionLinenumberEnd: 142540
    functionName: sqlite3Fts3HashFind
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3HashFindElem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Fts3HashFind(const Fts3Hash *pH, const void
      *pKey, int nKey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142569,1
    - Dst: ftsHashFunction
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142570,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142571,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142573,1
    - Dst: fts3FindElementByHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142575,1
    - Dst: fts3RemoveElementByHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142579,1
    - Dst: fts3Rehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142586,1
    - Dst: fts3Rehash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142587,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142592,1
    - Dst: fts3HashMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142593,1
    - Dst: fts3HashMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142596,1
    - Dst: fts3HashFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142598,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142601,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142607,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142608,1
    - Dst: fts3HashInsertElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142610,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - pH
    - pKey
    - nKey
    - data
    argTypes:
    - Fts3Hash*
    - void*
    - int
    - void*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 142568
        line_start: 142568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xHash!=0 )
      pos:
        line_end: 142570
        line_start: 142570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 142572
        line_start: 142572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 142591
        line_start: 142591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 142607
        line_start: 142607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 142606
        line_start: 142606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142613
      start: 142557
    functionDepth: 5
    functionLinenumber: 142557
    functionLinenumberEnd: 142613
    functionName: sqlite3Fts3HashInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3HashFree
    - memcpy
    - fts3RemoveElementByHash
    - fts3FindElementByHash
    - fts3Rehash
    - fts3HashInsertElement
    - ftsHashFunction
    - fts3HashMalloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3Fts3HashInsert(\n  Fts3Hash *pH,        /*
      The hash table to insert into */\n  const void *pKey,    /* The key */\n  int
      nKey,            /* Number of bytes in the key */\n  void *data           /*
      The data */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142683,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142684,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142686,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142691
      start: 142677
    functionDepth: 1
    functionLinenumber: 142677
    functionLinenumberEnd: 142691
    functionName: porterCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int porterCreate(\n  int argc, const char * const *argv,\n  sqlite3_tokenizer
      **ppTokenizer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142699
      start: 142696
    functionDepth: 3
    functionLinenumber: 142696
    functionLinenumberEnd: 142699
    functionName: porterDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int porterDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142714,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142716,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - pTokenizer
    - zInput
    - nInput
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142734
      start: 142707
    functionDepth: 1
    functionLinenumber: 142707
    functionLinenumberEnd: 142734
    functionName: porterOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int porterOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *zInput, int nInput,        /* String to be tokenized */\n
      \ sqlite3_tokenizer_cursor **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142742,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142745
      start: 142740
    functionDepth: 3
    functionLinenumber: 142740
    functionLinenumberEnd: 142745
    functionName: porterClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int porterClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142772,1
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( x>='a' && x<='z' )
      pos:
        line_end: 142771
        line_start: 142771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142776
      start: 142768
    functionDepth: 1
    functionLinenumber: 142768
    functionLinenumberEnd: 142776
    functionName: isConsonant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isVowel
    - assert
    linkageType: ''
    returnType: int
    signature: int isConsonant(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142781,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( x>='a' && x<='z' )
      pos:
        line_end: 142780
        line_start: 142780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142785
      start: 142777
    functionDepth: 2
    functionLinenumber: 142777
    functionLinenumberEnd: 142785
    functionName: isVowel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - isConsonant
    - assert
    linkageType: ''
    returnType: int
    signature: int isVowel(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142807,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142811
      start: 142806
    functionDepth: 3
    functionLinenumber: 142806
    functionLinenumberEnd: 142811
    functionName: m_gt_0
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    - isVowel
    linkageType: ''
    returnType: int
    signature: int m_gt_0(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142817,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142819,1
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142821,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142825
      start: 142816
    functionDepth: 3
    functionLinenumber: 142816
    functionLinenumberEnd: 142825
    functionName: m_eq_1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    - isVowel
    linkageType: ''
    returnType: int
    signature: int m_eq_1(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142831,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142833,1
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142835,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142839
      start: 142830
    functionDepth: 3
    functionLinenumber: 142830
    functionLinenumberEnd: 142839
    functionName: m_gt_1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    - isVowel
    linkageType: ''
    returnType: int
    signature: int m_gt_1(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142847
      start: 142844
    functionDepth: 2
    functionLinenumber: 142844
    functionLinenumberEnd: 142847
    functionName: hasVowel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int hasVowel(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142857
      start: 142855
    functionDepth: 2
    functionLinenumber: 142855
    functionLinenumberEnd: 142857
    functionName: doubleConsonant
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int doubleConsonant(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142869,1
    - Dst: isVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142871,1
    - Dst: isConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142873
      start: 142867
    functionDepth: 3
    functionLinenumber: 142867
    functionLinenumberEnd: 142873
    functionName: star_oh
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    - isVowel
    linkageType: ''
    returnType: int
    signature: int star_oh(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xCond
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - pz
    - zFrom
    - zTo
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142902
      start: 142887
    functionDepth: 0
    functionLinenumber: 142887
    functionLinenumberEnd: 142902
    functionName: stem
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xCond
    linkageType: ''
    returnType: int
    signature: "int stem(\n  char **pz,             /* The word being stemmed (Reversed)
      */\n  const char *zFrom,     /* If the ending matches this... (Reversed) */\n
      \ const char *zTo,       /* ... change the ending to this (not reversed) */\n
      \ int (*xCond)(const char*)   /* Condition that must be true */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - zIn
    - nIn
    - zOut
    - pnOut
    argTypes:
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142933
      start: 142912
    functionDepth: 0
    functionLinenumber: 142912
    functionLinenumberEnd: 142933
    functionName: copy_stemmer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_stemmer(const char *zIn, int nIn, char *zOut, int *pnOut)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: copy_stemmer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142966,1
    - Dst: copy_stemmer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142978,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142982,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142989,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142990,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142991,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:142999,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143002,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143002,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143005,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143006,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143007,1
    - Dst: doubleConsonant
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143009,1
    - Dst: m_eq_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143011,1
    - Dst: star_oh
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143011,1
    - Dst: hasVowel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143017,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143024,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143025,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143029,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143030,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143034,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143037,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143040,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143041,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143042,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143043,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143045,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143049,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143050,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143052,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143056,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143057,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143058,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143060,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143064,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143065,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143067,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143075,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143076,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143078,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143082,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143085,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143086,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143090,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143097,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143102,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143107,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143112,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143117,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143124,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143128,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143129,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143131,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143138,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143142,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143146,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143151,1
    - Dst: stem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143152,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143156,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143162,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143170,1
    - Dst: m_eq_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143172,1
    - Dst: star_oh
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143172,1
    - Dst: m_gt_1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143178,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143185,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 183
    argCount: 4
    argNames:
    - zIn
    - nIn
    - zOut
    - pnOut
    argTypes:
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143190
      start: 142959
    functionDepth: 4
    functionLinenumber: 142959
    functionLinenumberEnd: 143190
    functionName: porter_stemmer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - m_eq_1
    - stem
    - memset
    - hasVowel
    - m_gt_1
    - doubleConsonant
    - copy_stemmer
    - strlen
    - star_oh
    linkageType: ''
    returnType: void
    signature: void porter_stemmer(const char *zIn, int nIn, char *zOut, int *pnOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143207
      start: 143206
    functionDepth: 0
    functionLinenumber: 143206
    functionLinenumberEnd: 143207
    functionName: isDelim
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isDelim(C)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isDelim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143227,1
    - Dst: isDelim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143233,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143242,1
    - Dst: porter_stemmer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - pCursor
    - pzToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143255
      start: 143212
    functionDepth: 5
    functionLinenumber: 143212
    functionLinenumberEnd: 143255
    functionName: porterNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - isDelim
    - porter_stemmer
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int porterNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by porterOpen */\n  const char **pzToken,               /* OUT: *pzToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143278
      start: 143274
    functionDepth: 0
    functionLinenumber: 143274
    functionLinenumberEnd: 143278
    functionName: sqlite3Fts3PorterTokenizerModule
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3PorterTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143345,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143347,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143349,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143350,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143354,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143356,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143359,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143360,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143362,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143367,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143370,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143371,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143372,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 143344
        line_start: 143344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143378
      start: 143335
    functionDepth: 14
    functionLinenumber: 143335
    functionLinenumberEnd: 143378
    functionName: scalarFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3HashFind
    - assert
    - sqlite3_user_data
    - sqlite3Fts3HashInsert
    - sqlite3_free
    - sqlite3_value_bytes
    - sqlite3_mprintf
    - sqlite3_value_text
    - sqlite3_value_blob
    - sqlite3_result_blob
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void scalarFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143392
      start: 143380
    functionDepth: 0
    functionLinenumber: 143380
    functionLinenumberEnd: 143392
    functionName: sqlite3Fts3IsIdChar
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3IsIdChar(char c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143418,1
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - zStr
    - pn
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143429
      start: 143394
    functionDepth: 1
    functionLinenumber: 143394
    functionLinenumberEnd: 143429
    functionName: sqlite3Fts3NextToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3IsIdChar
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Fts3NextToken(const char *zStr, int *pn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143444,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143446,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143448,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143450,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143454,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143456,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143456,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143458,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143464,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143466,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143468,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143469,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143475,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143478,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143479,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143481,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143485,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - pHash
    - zArg
    - ppTok
    - pzErr
    argTypes:
    - Fts3Hash*
    - char*
    - sqlite3_tokenizer**
    - char**
    assertStmts:
    - condition: ( n==0 )
      pos:
        line_end: 143449
        line_start: 143449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc!=SQLITE_OK || *ppTok )
      pos:
        line_end: 143478
        line_start: 143478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143490
      start: 143431
    functionDepth: 4
    functionLinenumber: 143431
    functionLinenumberEnd: 143490
    functionName: sqlite3Fts3InitTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3HashFind
    - sqlite3_tokenizer_module*::xCreate
    - assert
    - sqlite3_realloc
    - sqlite3Fts3ErrMsg
    - sqlite3_free
    - sqlite3Fts3NextToken
    - sqlite3_mprintf
    - sqlite3Fts3Dequote
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3InitTokenizer(\n  Fts3Hash *pHash,                /*
      Tokenizer hash table */\n  const char *zArg,               /* Tokenizer name
      */\n  sqlite3_tokenizer **ppTok,      /* OUT: Tokenizer (if applicable) */\n
      \ char **pzErr                    /* OUT: Set to malloced error message */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143552,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143556,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143557,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143558,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143559,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143561,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143562,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143565,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143566,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143567,1
    - Dst: Tcl_NewObj
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143571,1
    - Dst: Tcl_IncrRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143572,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143575,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143578,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143583,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143588,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143589,1
    - Dst: Tcl_NewIntObj
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143589,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143590,1
    - Dst: Tcl_NewStringObj
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143590,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143593,1
    - Dst: Tcl_NewStringObj
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143593,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143596,1
    - Dst: sqlite3_tokenizer_module*::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143600,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143607,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143609,1
    - Dst: Tcl_GetString
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143609,1
    - Dst: Tcl_DecrRefCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143611,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143612
      start: 143523
    functionDepth: 14
    functionLinenumber: 143523
    functionLinenumberEnd: 143612
    functionName: testFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_value_bytes
    - sqlite3_value_text
    - sqlite3_result_error
    - sqlite3_free
    - Tcl_ListObjAppendElement
    - Tcl_GetString
    - Tcl_IncrRefCount
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_tokenizer_module*::xCreate
    - sqlite3_result_text
    - sqlite3_tokenizer_module*::xDestroy
    - sqlite3Fts3OpenTokenizer
    - Tcl_NewObj
    - sqlite3Fts3HashFind
    - Tcl_NewIntObj
    - sqlite3_mprintf
    - Tcl_DecrRefCount
    - Tcl_NewStringObj
    linkageType: ''
    returnType: void
    signature: "void testFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143624,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143629,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143630,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143631,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zName
    - p
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_tokenizer_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143634
      start: 143614
    functionDepth: 27
    functionLinenumber: 143614
    functionLinenumberEnd: 143634
    functionName: registerTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    linkageType: ''
    returnType: int
    signature: "int registerTokenizer(\n  sqlite3 *db, \n  char *zName, \n  const
      sqlite3_tokenizer_module *p\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143647,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143652,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143653,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143654,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143655,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143655,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - zName
    - pp
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143660
      start: 143636
    functionDepth: 27
    functionLinenumber: 143636
    functionLinenumberEnd: 143660
    functionName: queryTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_step
    - memcpy
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - sqlite3_column_blob
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: "int queryTokenizer(\n  sqlite3 *db, \n  char *zName,  \n  const sqlite3_tokenizer_module
      **pp\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143690,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143692,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143693,1
    - Dst: sqlite3Fts3SimpleTokenizerModule
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143696,1
    - Dst: queryTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143697,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143698,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143699,1
    - Dst: queryTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143700,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143701,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143702,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143703,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143703,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143703,1
    - Dst: registerTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143706,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143707,1
    - Dst: queryTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143708,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143710,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p1==p2 )
      pos:
        line_end: 143698
        line_start: 143698
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2==0 )
      pos:
        line_end: 143701
        line_start: 143701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 143708
        line_start: 143708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 143697
        line_start: 143697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_ERROR )
      pos:
        line_end: 143700
        line_start: 143700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: '( 0==strcmp(sqlite3_errmsg(db), "unknown tokenizer: nosuchtokenizer")
        )'
      pos:
        line_end: 143702
        line_start: 143702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 143706
        line_start: 143706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p2==p1 )
      pos:
        line_end: 143709
        line_start: 143709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143713
      start: 143682
    functionDepth: 28
    functionLinenumber: 143682
    functionLinenumberEnd: 143713
    functionName: intTestFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_user_data
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - strcmp
    - queryTokenizer
    - sqlite3Fts3SimpleTokenizerModule
    - registerTokenizer
    - sqlite3_errmsg
    linkageType: ''
    returnType: void
    signature: "void intTestFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143747,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143748,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143755,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143758,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143762,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143765,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143770,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - pHash
    - zName
    argTypes:
    - sqlite3*
    - Fts3Hash*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143775
      start: 143734
    functionDepth: 3
    functionLinenumber: 143734
    functionLinenumberEnd: 143775
    functionName: sqlite3Fts3InitHashTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_function
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3InitHashTable(\n  sqlite3 *db, \n  Fts3Hash
      *pHash, \n  const char *zName\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - simple_tokenizer*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143833
      start: 143831
    functionDepth: 0
    functionLinenumber: 143831
    functionLinenumberEnd: 143833
    functionName: simpleDelim
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int simpleDelim(simple_tokenizer *t, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143836
      start: 143834
    functionDepth: 0
    functionLinenumber: 143834
    functionLinenumberEnd: 143836
    functionName: fts3_isalnum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3_isalnum(int x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143847,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143849,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143857,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143862,1
    - Dst: fts3_isalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143877
      start: 143841
    functionDepth: 3
    functionLinenumber: 143841
    functionLinenumberEnd: 143877
    functionName: simpleCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3_isalnum
    - memset
    - sqlite3_free
    - sqlite3_malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int simpleCreate(\n  int argc, const char * const *argv,\n  sqlite3_tokenizer
      **ppTokenizer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143885
      start: 143882
    functionDepth: 3
    functionLinenumber: 143882
    functionLinenumberEnd: 143885
    functionName: simpleDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int simpleDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143900,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143902,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - pTokenizer
    - pInput
    - nBytes
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143920
      start: 143893
    functionDepth: 1
    functionLinenumber: 143893
    functionLinenumberEnd: 143920
    functionName: simpleOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int simpleOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *pInput, int nBytes,        /* String to be tokenized */\n
      \ sqlite3_tokenizer_cursor **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143928,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143931
      start: 143926
    functionDepth: 3
    functionLinenumber: 143926
    functionLinenumberEnd: 143931
    functionName: simpleClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int simpleClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: simpleDelim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143953,1
    - Dst: simpleDelim
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143959,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:143968,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - pCursor
    - ppToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143989
      start: 143937
    functionDepth: 1
    functionLinenumber: 143937
    functionLinenumberEnd: 143989
    functionName: simpleNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - simpleDelim
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int simpleNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by simpleOpen */\n  const char **ppToken,               /* OUT: *ppToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144012
      start: 144008
    functionDepth: 0
    functionLinenumber: 144008
    functionLinenumberEnd: 144012
    functionName: sqlite3Fts3SimpleTokenizerModule
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SimpleTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144101,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144103,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pHash
    - zName
    - pp
    - pzErr
    argTypes:
    - Fts3Hash*
    - char*
    - sqlite3_tokenizer_module**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144111
      start: 144094
    functionDepth: 4
    functionLinenumber: 144094
    functionLinenumberEnd: 144111
    functionName: fts3tokQueryTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3ErrMsg
    - sqlite3Fts3HashFind
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3tokQueryTokenizer(\n  Fts3Hash *pHash,\n  const char *zName,\n
      \ const sqlite3_tokenizer_module **pp,\n  char **pzErr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144139,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144142,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144148,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144150,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - pazDequote
    argTypes:
    - int
    - char**
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144158
      start: 144125
    functionDepth: 1
    functionLinenumber: 144125
    functionLinenumberEnd: 144158
    functionName: fts3tokDequoteArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Fts3Dequote
    - strlen
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int fts3tokDequoteArray(\n  int argc,                       /* Number
      of elements in argv[] */\n  const char * const *argv,       /* Input array */\n
      \ char ***pazDequote              /* Output array */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_declare_vtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144190,1
    - Dst: fts3tokDequoteArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144194,1
    - Dst: fts3tokQueryTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144203,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144206,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144209,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144213,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144220,1
    - Dst: sqlite3_tokenizer_module*::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144226,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 6
    argNames:
    - db
    - pHash
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( (rc==SQLITE_OK)==(pMod!=0) )
      pos:
        line_end: 144205
        line_start: 144205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144232
      start: 144175
    functionDepth: 25
    functionLinenumber: 144175
    functionLinenumberEnd: 144232
    functionName: fts3tokConnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokQueryTokenizer
    - memset
    - sqlite3_tokenizer_module*::xCreate
    - assert
    - sqlite3_free
    - sqlite3_declare_vtab
    - fts3tokDequoteArray
    - sqlite3_malloc
    - sqlite3_tokenizer_module*::xDestroy
    linkageType: ''
    returnType: int
    signature: "int fts3tokConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pHash,                    /* Hash table of tokenizers
      */\n  int argc,                       /* Number of elements in argv array */\n
      \ const char * const *argv,       /* xCreate/xConnect argument array */\n  sqlite3_vtab
      **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char **pzErr                    /*
      OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144242,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144245
      start: 144239
    functionDepth: 3
    functionLinenumber: 144239
    functionLinenumberEnd: 144245
    functionName: fts3tokDisconnectMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - Fts3tokTable*::pMod::xDestroy
    linkageType: ''
    returnType: int
    signature: int fts3tokDisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144255,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( pInfo->estimatedCost>1000000.0 )
      pos:
        line_end: 144270
        line_start: 144270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144274
      start: 144250
    functionDepth: 1
    functionLinenumber: 144250
    functionLinenumberEnd: 144274
    functionName: fts3tokBestIndexMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3tokBestIndexMethod(\n  sqlite3_vtab *pVTab, \n  sqlite3_index_info
      *pInfo\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144281,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144283,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144291
      start: 144279
    functionDepth: 1
    functionLinenumber: 144279
    functionLinenumberEnd: 144291
    functionName: fts3tokOpenMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED_PARAMETER
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int fts3tokOpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144300,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3tokCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144311
      start: 144297
    functionDepth: 3
    functionLinenumber: 144297
    functionLinenumberEnd: 144311
    functionName: fts3tokResetCursor
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts3tokTable*::pMod::xClose
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3tokResetCursor(Fts3tokCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3tokResetCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144319,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144322
      start: 144316
    functionDepth: 4
    functionLinenumber: 144316
    functionLinenumberEnd: 144322
    functionName: fts3tokCloseMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokResetCursor
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3tokCloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144333,1
    - Dst: fts3tokResetCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144344
      start: 144327
    functionDepth: 4
    functionLinenumber: 144327
    functionLinenumberEnd: 144344
    functionName: fts3tokNextMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokResetCursor
    - Fts3tokTable*::pMod::xNext
    linkageType: ''
    returnType: int
    signature: int fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144359,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144360,1
    - Dst: fts3tokResetCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144362,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144364,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144365,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144366,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144370,1
    - Dst: Fts3tokTable*::pMod::xOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144372,1
    - Dst: fts3tokNextMethod
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144381
      start: 144349
    functionDepth: 14
    functionLinenumber: 144349
    functionLinenumberEnd: 144381
    functionName: fts3tokFilterMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sqlite3_malloc
    - sqlite3_value_text
    - memcpy
    - fts3tokNextMethod
    - fts3tokResetCursor
    - Fts3tokTable*::pMod::xOpen
    linkageType: ''
    returnType: int
    signature: "int fts3tokFilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The
      cursor used for this query */\n  int idxNum,                     /* Strategy
      index */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144389
      start: 144386
    functionDepth: 0
    functionLinenumber: 144386
    functionLinenumberEnd: 144389
    functionName: fts3tokEofMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3tokEofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144404,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144407,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144410,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144413,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144416,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( iCol==4 )
      pos:
        line_end: 144415
        line_start: 144415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144421
      start: 144394
    functionDepth: 12
    functionLinenumber: 144394
    functionLinenumberEnd: 144421
    functionName: fts3tokColumnMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_text
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3tokColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144433
      start: 144426
    functionDepth: 0
    functionLinenumber: 144426
    functionLinenumberEnd: 144433
    functionName: fts3tokRowidMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3tokRowidMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite_int64 *pRowid            /* OUT: Rowid value
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pHash
    argTypes:
    - sqlite3*
    - Fts3Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144469
      start: 144439
    functionDepth: 11
    functionLinenumber: 144439
    functionLinenumberEnd: 144469
    functionName: sqlite3Fts3InitTok
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3InitTok(sqlite3 *db, Fts3Hash *pHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nMerge
    - iAbsLevel
    argTypes:
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144560
      start: 144558
    functionDepth: 8
    functionLinenumber: 144558
    functionLinenumberEnd: 144560
    functionName: fts3LogMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void fts3LogMerge(int nMerge, sqlite3_int64 iAbsLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144648
      start: 144647
    functionDepth: 0
    functionLinenumber: 144647
    functionLinenumberEnd: 144648
    functionName: fts3SegReaderIsPending
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3SegReaderIsPending(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144649
      start: 144648
    functionDepth: 0
    functionLinenumber: 144648
    functionLinenumberEnd: 144649
    functionName: fts3SegReaderIsRootOnly
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3SegReaderIsRootOnly(p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144867,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144867,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144867,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144868,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144868,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144874,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144876,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144878,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144883,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144884,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144885,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144891,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144893,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - p
    - eStmt
    - pp
    - apVal
    argTypes:
    - Fts3Table*
    - int
    - sqlite3_stmt**
    - sqlite3_value**
    assertStmts:
    - condition: ( SizeofArray(azSql)==SizeofArray(p->aStmt) )
      pos:
        line_end: 144866
        line_start: 144866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eStmt<SizeofArray(azSql) && eStmt>=0 )
      pos:
        line_end: 144867
        line_start: 144867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pStmt==0 )
      pos:
        line_end: 144884
        line_start: 144884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144898
      start: 144761
    functionDepth: 27
    functionLinenumber: 144761
    functionLinenumberEnd: 144898
    functionName: fts3SqlStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_value
    - SizeofArray
    - sqlite3_free
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_bind_parameter_count
    linkageType: ''
    returnType: int
    signature: "int fts3SqlStmt(\n  Fts3Table *p,                   /* Virtual table
      handle */\n  int eStmt,                      /* One of the SQL_XXX constants
      above */\n  sqlite3_stmt **pp,              /* OUT: Statement handle */\n  sqlite3_value
      **apVal           /* Values to bind to statement */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144909,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144911,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144912,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144913,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pTab
    - iDocid
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144924
      start: 144901
    functionDepth: 28
    functionLinenumber: 144901
    functionLinenumberEnd: 144924
    functionName: fts3SelectDocsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: "int fts3SelectDocsize(\n  Fts3Table *pTab,                /* FTS3
      table handle */\n  sqlite3_int64 iDocid,           /* Docid to bind for SQL_SELECT_DOCSIZE
      */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144932,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144934,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144935,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144936,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pTab
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144945
      start: 144926
    functionDepth: 28
    functionLinenumber: 144926
    functionLinenumberEnd: 144945
    functionName: sqlite3Fts3SelectDoctotal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_type
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SelectDoctotal(\n  Fts3Table *pTab,                /*
      Fts3 table handle */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SelectDocsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pTab
    - iDocid
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144953
      start: 144947
    functionDepth: 29
    functionLinenumber: 144947
    functionLinenumberEnd: 144953
    functionName: sqlite3Fts3SelectDocsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SelectDocsize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SelectDocsize(\n  Fts3Table *pTab,                /*
      Fts3 table handle */\n  sqlite3_int64 iDocid,           /* Docid to read size
      data for */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144972,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144974,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:144975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pRC
    - p
    - eStmt
    - apVal
    argTypes:
    - int*
    - Fts3Table*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144978
      start: 144963
    functionDepth: 28
    functionLinenumber: 144963
    functionLinenumberEnd: 144978
    functionName: fts3SqlExec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - fts3SqlStmt
    - sqlite3_reset
    linkageType: ''
    returnType: void
    signature: "void fts3SqlExec(\n  int *pRC,                /* Result code */\n
      \ Fts3Table *p,            /* The FTS3 table */\n  int eStmt,               /*
      Index of statement to evaluate */\n  sqlite3_value **apVal    /* Parameters
      to bind */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145000,1
    - Dst: sqlite3_bind_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145002,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145003,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145009
      start: 144995
    functionDepth: 28
    functionLinenumber: 144995
    functionLinenumberEnd: 145009
    functionName: fts3Writelock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - fts3SqlStmt
    - sqlite3_bind_null
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int fts3Writelock(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145041,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145042,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iLangid>=0 )
      pos:
        line_end: 145040
        line_start: 145040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nIndex>0 )
      pos:
        line_end: 145041
        line_start: 145041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 145042
        line_start: 145042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145047
      start: 145034
    functionDepth: 0
    functionLinenumber: 145034
    functionLinenumberEnd: 145047
    functionName: getAbsoluteLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: sqlite3_int64
    signature: "sqlite3_int64 getAbsoluteLevel(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  int iLangid,                    /* Language id */\n
      \ int iIndex,                     /* Index in p->aIndex[] */\n  int iLevel                      /*
      Level of segments */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145076,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145077,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145078,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145082,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145084,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145084,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145085,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145086,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145091,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145093,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - ppStmt
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - sqlite3_stmt**
    assertStmts:
    - condition: ( iLevel==FTS3_SEGCURSOR_ALL || iLevel>=0 )
      pos:
        line_end: 145075
        line_start: 145075
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 145077
        line_start: 145077
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 145076
        line_start: 145076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145098
      start: 145066
    functionDepth: 28
    functionLinenumber: 145066
    functionLinenumberEnd: 145098
    functionName: sqlite3Fts3AllSegdirs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SqlStmt
    - getAbsoluteLevel
    - sqlite3_bind_int64
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3AllSegdirs(\n  Fts3Table *p,                   /*
      FTS3 table */\n  int iLangid,                    /* Language being queried */\n
      \ int iIndex,                     /* Index for p->aIndex[] */\n  int iLevel,
      \                    /* Level to select (relative level) */\n  sqlite3_stmt
      **ppStmt           /* OUT: Compiled statement */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145121,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145131,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145133,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - pp
    - i
    argTypes:
    - PendingList**
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145146
      start: 145113
    functionDepth: 3
    functionLinenumber: 145113
    functionLinenumberEnd: 145146
    functionName: fts3PendingListAppendVarint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    - sqlite3_free
    - sqlite3_malloc
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3PendingListAppendVarint(\n  PendingList **pp,               /*
      IN/OUT: Pointer to PendingList struct */\n  sqlite3_int64 i                 /*
      Value to append to data */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145167,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145172,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145173,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145176,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145184,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145185,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145193,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145194,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 5
    argNames:
    - pp
    - iDocid
    - iCol
    - iPos
    - pRc
    argTypes:
    - PendingList**
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - int*
    assertStmts:
    - condition: ( !p || p->iLastDocid<=iDocid )
      pos:
        line_end: 145166
        line_start: 145166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nData<p->nSpace )
      pos:
        line_end: 145171
        line_start: 145171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->aData[p->nData]==0 )
      pos:
        line_end: 145172
        line_start: 145172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iPos>p->iLastPos || (iPos==0 && p->iLastPos==0) )
      pos:
        line_end: 145192
        line_start: 145192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145207
      start: 145157
    functionDepth: 4
    functionLinenumber: 145157
    functionLinenumberEnd: 145207
    functionName: fts3PendingListAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PendingListAppendVarint
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3PendingListAppend(\n  PendingList **pp,               /* IN/OUT:
      PendingList structure */\n  sqlite3_int64 iDocid,           /* Docid for entry
      to add */\n  sqlite3_int64 iCol,             /* Column for entry to add */\n
      \ sqlite3_int64 iPos,             /* Position of term for entry to add */\n
      \ int *pRc                        /* OUT: Return code */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pList
    argTypes:
    - PendingList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145214
      start: 145212
    functionDepth: 3
    functionLinenumber: 145212
    functionLinenumberEnd: 145214
    functionName: fts3PendingListDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3PendingListDelete(PendingList *pList)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145230,1
    - Dst: fts3PendingListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145234,1
    - Dst: fts3HashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145235,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145239,1
    - Dst: fts3HashFind
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145239,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - p
    - iCol
    - iPos
    - pHash
    - zToken
    - nToken
    argTypes:
    - Fts3Table*
    - int
    - int
    - Fts3Hash*
    - char*
    - int
    assertStmts:
    - condition: ( 0==fts3HashFind(pHash, zToken, nToken) )
      pos:
        line_end: 145238
        line_start: 145238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145248
      start: 145219
    functionDepth: 5
    functionLinenumber: 145219
    functionLinenumberEnd: 145248
    functionName: fts3PendingTermsAddOne
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    - fts3PendingListAppend
    - fts3HashInsert
    - fts3HashFind
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsAddOne(\n  Fts3Table *p,\n  int iCol,\n  int iPos,\n
      \ Fts3Hash *pHash,                /* Pending terms hash table to add entry to
      */\n  const char *zToken,\n  int nToken\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145279,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145289,1
    - Dst: xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145296,1
    - Dst: fts3PendingTermsAddOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145310,1
    - Dst: fts3PendingTermsAddOne
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145319,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - p
    - iLangid
    - zText
    - iCol
    - pnWord
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - u32*
    assertStmts:
    - condition: ( pTokenizer && pModule )
      pos:
        line_end: 145278
        line_start: 145278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145328
      start: 145257
    functionDepth: 6
    functionLinenumber: 145257
    functionLinenumberEnd: 145328
    functionName: fts3PendingTermsAdd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3PendingTermsAddOne
    - sqlite3Fts3OpenTokenizer
    - xNext
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsAdd(\n  Fts3Table *p,                   /* Table
      into which text will be inserted */\n  int iLangid,                    /* Language
      id to use */\n  const char *zText,              /* Text of document to be inserted
      */\n  int iCol,                       /* Column into which text is being inserted
      */\n  u32 *pnWord                     /* IN/OUT: Incr. by number tokens inserted
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145340,1
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - p
    - iLangid
    - iDocid
    argTypes:
    - Fts3Table*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( iLangid>=0 )
      pos:
        line_end: 145339
        line_start: 145339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145358
      start: 145335
    functionDepth: 1
    functionLinenumber: 145335
    functionLinenumberEnd: 145358
    functionName: fts3PendingTermsDocid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3PendingTermsFlush
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsDocid(\n  Fts3Table *p,                   /* Full-text
      table handle */\n  int iLangid,                    /* Language id of row being
      written */\n  sqlite_int64 iDocid             /* Docid of row being written
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145368,1
    - Dst: fts3HashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145368,1
    - Dst: fts3HashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145369,1
    - Dst: fts3PendingListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145370,1
    - Dst: fts3HashClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145375
      start: 145363
    functionDepth: 4
    functionLinenumber: 145363
    functionLinenumberEnd: 145375
    functionName: sqlite3Fts3PendingTermsClear
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3HashClear
    - fts3HashNext
    - fts3HashFirst
    - fts3HashData
    - fts3PendingListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PendingTermsClear(Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145395,1
    - Dst: fts3PendingTermsAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145396,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - p
    - iLangid
    - apVal
    - aSz
    argTypes:
    - Fts3Table*
    - int
    - sqlite3_value**
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145404
      start: 145385
    functionDepth: 14
    functionLinenumber: 145385
    functionLinenumberEnd: 145404
    functionName: fts3InsertTerms
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_bytes
    - fts3PendingTermsAdd
    - sqlite3_value_text
    linkageType: ''
    returnType: int
    signature: "int fts3InsertTerms(\n  Fts3Table *p, \n  int iLangid, \n  sqlite3_value
      **apVal, \n  u32 *aSz\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145430,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145433,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145436,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145448,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145450,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145452,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145467,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145468,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145469,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145474,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145481,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145482,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - p
    - apVal
    - piDocid
    argTypes:
    - Fts3Table*
    - sqlite3_value**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145486
      start: 145420
    functionDepth: 28
    functionLinenumber: 145420
    functionLinenumberEnd: 145486
    functionName: fts3InsertData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - fts3SqlStmt
    - sqlite3_bind_value
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_last_insert_rowid
    - sqlite3_value_type
    - sqlite3_reset
    - sqlite3_value_int64
    linkageType: ''
    returnType: int
    signature: "int fts3InsertData(\n  Fts3Table *p,                   /* Full-text
      table */\n  sqlite3_value **apVal,          /* Array of values to insert */\n
      \ sqlite3_int64 *piDocid          /* OUT: Docid for row just inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145498,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145502,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145503,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145504,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145505,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145507,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - bContent
    argTypes:
    - Fts3Table*
    - int
    assertStmts:
    - condition: ( p->zContentTbl==0 || bContent==0 )
      pos:
        line_end: 145501
        line_start: 145501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145513
      start: 145494
    functionDepth: 29
    functionLinenumber: 145494
    functionLinenumberEnd: 145513
    functionName: fts3DeleteAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlExec
    - sqlite3Fts3PendingTermsClear
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3DeleteAll(Fts3Table *p, int bContent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - pSelect
    argTypes:
    - Fts3Table*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145522
      start: 145518
    functionDepth: 6
    functionLinenumber: 145518
    functionLinenumberEnd: 145522
    functionName: langidFromSelect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int langidFromSelect(Fts3Table *p, sqlite3_stmt *pSelect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145539,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145541,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145543,1
    - Dst: langidFromSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145545,1
    - Dst: fts3PendingTermsDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145546,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145546,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145550,1
    - Dst: fts3PendingTermsAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145551,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145552,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145556,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145562,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - pRC
    - p
    - pRowid
    - aSz
    - pbFound
    argTypes:
    - int*
    - Fts3Table*
    - sqlite3_value*
    - u32*
    - int*
    assertStmts:
    - condition: ( *pbFound==0 )
      pos:
        line_end: 145538
        line_start: 145538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145567
      start: 145529
    functionDepth: 28
    functionLinenumber: 145529
    functionLinenumberEnd: 145567
    functionName: fts3DeleteTerms
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - langidFromSelect
    - assert
    - sqlite3_step
    - fts3PendingTermsAdd
    - sqlite3_column_int64
    - sqlite3_column_text
    - sqlite3_column_bytes
    - sqlite3_reset
    - fts3PendingTermsDocid
    linkageType: ''
    returnType: void
    signature: "void fts3DeleteTerms( \n  int *pRC,               /* Result code */\n
      \ Fts3Table *p,           /* The FTS table to delete from */\n  sqlite3_value
      *pRowid,  /* The docid to be deleted */\n  u32 *aSz,               /* Sizes
      of deleted document written here */\n  int *pbFound            /* OUT: Set to
      true if row really does exist */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145601,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145602,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145605,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145607,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145608,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145610,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145611,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145613,1
    - Dst: fts3LogMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145623,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145623,1
    - Dst: fts3SegmentMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - piIdx
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - int*
    assertStmts:
    - condition: ( iLangid>=0 )
      pos:
        line_end: 145600
        line_start: 145600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->nIndex>=1 )
      pos:
        line_end: 145601
        line_start: 145601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145632
      start: 145590
    functionDepth: 28
    functionLinenumber: 145590
    functionLinenumberEnd: 145632
    functionName: fts3AllocateSegdirIdx
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - fts3LogMerge
    - fts3SqlStmt
    - assert
    - sqlite3_step
    - sqlite3_reset
    - fts3SegmentMerge
    - sqlite3_bind_int64
    - getAbsoluteLevel
    linkageType: ''
    returnType: int
    signature: "int fts3AllocateSegdirIdx(\n  Fts3Table *p, \n  int iLangid,                    /*
      Language id */\n  int iIndex,                     /* Index for p->aIndex */\n
      \ int iLevel, \n  int *piIdx\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145671,1
    - Dst: sqlite3_blob_reopen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145674,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145677,1
    - Dst: sqlite3_blob_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145680,1
    - Dst: sqlite3_blob_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145686,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145689,1
    - Dst: sqlite3_blob_read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145697,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145698,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145700,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - p
    - iBlockid
    - paBlob
    - pnBlob
    - pnLoad
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - char**
    - int*
    - int*
    assertStmts:
    - condition: ( pnBlob )
      pos:
        line_end: 145670
        line_start: 145670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145709
      start: 145661
    functionDepth: 28
    functionLinenumber: 145661
    functionLinenumberEnd: 145709
    functionName: sqlite3Fts3ReadBlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_blob_read
    - memset
    - sqlite3_blob_reopen
    - assert
    - sqlite3_blob_bytes
    - sqlite3_blob_open
    - sqlite3_free
    - sqlite3_mprintf
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3ReadBlock(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  sqlite3_int64 iBlockid,         /* Access the row with
      blockid=$iBlockid */\n  char **paBlob,                  /* OUT: Blob data in
      malloc'd buffer */\n  int *pnBlob,                    /* OUT: Size of blob data
      */\n  int *pnLoad                     /* OUT: Bytes actually loaded */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145718
      start: 145715
    functionDepth: 26
    functionLinenumber: 145715
    functionLinenumberEnd: 145718
    functionName: sqlite3Fts3SegmentsClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_blob_close
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3SegmentsClose(Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145724,1
    - Dst: sqlite3_blob_read
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145725,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145734,1
    - Dst: sqlite3_blob_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pReader
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145742
      start: 145720
    functionDepth: 26
    functionLinenumber: 145720
    functionLinenumberEnd: 145742
    functionName: fts3SegReaderIncrRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_read
    - memset
    - sqlite3_blob_close
    - MIN
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderIncrRead(Fts3SegReader *pReader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145746,1
    - Dst: fts3SegReaderIncrRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - pReader
    - pFrom
    - nByte
    argTypes:
    - Fts3SegReader*
    - char*
    - int
    assertStmts:
    - condition: "( !pReader->pBlob \n       || (pFrom>=pReader->aNode && pFrom<&pReader->aNode[pReader->nNode])\n
        \ )"
      pos:
        line_end: 145747
        line_start: 145745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145755
      start: 145744
    functionDepth: 27
    functionLinenumber: 145744
    functionLinenumberEnd: 145755
    functionName: fts3SegReaderRequire
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SegReaderIncrRead
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderRequire(Fts3SegReader *pReader, char *pFrom, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145761,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145762,1
    - Dst: sqlite3_blob_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pSeg
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145767
      start: 145760
    functionDepth: 26
    functionLinenumber: 145760
    functionLinenumberEnd: 145767
    functionName: fts3SegReaderSetEof
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderIsRootOnly
    - sqlite3_blob_close
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3SegReaderSetEof(Fts3SegReader *pSeg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145792,1
    - Dst: fts3HashData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145797,1
    - Dst: fts3HashKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145798,1
    - Dst: fts3HashKeysize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145799,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145803,1
    - Dst: fts3SegReaderSetEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145812,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145817,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145822,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145830,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145830,1
    - Dst: fts3SegReaderRequire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145832,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145837,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145838,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145847,1
    - Dst: fts3SegReaderRequire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145855,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145858,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145861,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - p
    - pReader
    - bIncr
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    - int
    assertStmts:
    - condition: ( pReader->aNode )
      pos:
        line_end: 145802
        line_start: 145802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReader->iCurrentBlock<=pReader->iLeafEndBlock )
      pos:
        line_end: 145811
        line_start: 145811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pReader->pBlob==0 )
      pos:
        line_end: 145821
        line_start: 145821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !fts3SegReaderIsPending(pReader) )
      pos:
        line_end: 145829
        line_start: 145829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145875
      start: 145774
    functionDepth: 29
    functionLinenumber: 145774
    functionLinenumberEnd: 145875
    functionName: fts3SegReaderNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderRequire
    - assert
    - sqlite3_realloc
    - fts3SegReaderIsPending
    - fts3GetVarint32
    - fts3HashData
    - fts3HashKeysize
    - memcpy
    - fts3SegReaderSetEof
    - sqlite3Fts3ReadBlock
    - fts3HashKey
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderNext(\n  Fts3Table *p, \n  Fts3SegReader *pReader,\n
      \ int bIncr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145883,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145884,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145885,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145889,1
    - Dst: fts3SegReaderRequire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145894,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pTab
    - pReader
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pReader->aDoclist )
      pos:
        line_end: 145882
        line_start: 145882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( !pReader->pOffsetList )
      pos:
        line_end: 145883
        line_start: 145883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145901
      start: 145881
    functionDepth: 28
    functionLinenumber: 145881
    functionLinenumberEnd: 145901
    functionName: fts3SegReaderFirstDocid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderRequire
    - assert
    - fts3SegReaderIsPending
    - sqlite3Fts3DoclistPrev
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderFirstDocid(Fts3Table *pTab, Fts3SegReader *pReader)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145923,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145925,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145934,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145958,1
    - Dst: fts3SegReaderIncrRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145961,1
    - Dst: fts3SegReaderRequire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145985,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:145988,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - pTab
    - pReader
    - ppOffsetList
    - pnOffsetList
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    - char**
    - int*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 145922
        line_start: 145922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *p==0 )
      pos:
        line_end: 145957
        line_start: 145957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145999
      start: 145913
    functionDepth: 28
    functionLinenumber: 145913
    functionLinenumberEnd: 145999
    functionName: fts3SegReaderNextDocid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderRequire
    - assert
    - fts3SegReaderIsPending
    - sqlite3Fts3DoclistPrev
    - sqlite3Fts3GetVarint
    - fts3SegReaderIncrRead
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderNextDocid(\n  Fts3Table *pTab,\n  Fts3SegReader *pReader,
      \        /* Reader to advance to next docid */\n  char **ppOffsetList,            /*
      OUT: Pointer to current position-list */\n  int *pnOffsetList               /*
      OUT: Length of *ppOffsetList in bytes */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146013,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146014,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146018,1
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146019,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146024,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pCsr
    - pMsr
    - pnOvfl
    argTypes:
    - Fts3Cursor*
    - Fts3MultiSegReader*
    - int*
    assertStmts:
    - condition: ( p->bFts4 )
      pos:
        line_end: 146012
        line_start: 146012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pgsz>0 )
      pos:
        line_end: 146013
        line_start: 146013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146034
      start: 146002
    functionDepth: 29
    functionLinenumber: 146002
    functionLinenumberEnd: 146034
    functionName: sqlite3Fts3MsrOvfl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SegReaderIsRootOnly
    - fts3SegReaderIsPending
    - assert
    - sqlite3Fts3ReadBlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrOvfl(\n  Fts3Cursor *pCsr, \n  Fts3MultiSegReader
      *pMsr,\n  int *pnOvfl\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146041,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146042,1
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146043,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146044,1
    - Dst: sqlite3_blob_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146045,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pReader
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146049
      start: 146040
    functionDepth: 26
    functionLinenumber: 146040
    functionLinenumberEnd: 146049
    functionName: sqlite3Fts3SegReaderFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SegReaderIsRootOnly
    - sqlite3_blob_close
    - fts3SegReaderIsPending
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3SegReaderFree(Fts3SegReader *pReader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146067,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146072,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146076,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146088,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 8
    argNames:
    - iAge
    - bLookup
    - iStartLeaf
    - iEndLeaf
    - iEndBlock
    - zRoot
    - nRoot
    - ppReader
    argTypes:
    - int
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - char*
    - int
    - Fts3SegReader**
    assertStmts:
    - condition: ( iStartLeaf<=iEndLeaf )
      pos:
        line_end: 146066
        line_start: 146066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146095
      start: 146054
    functionDepth: 0
    functionLinenumber: 146054
    functionLinenumberEnd: 146095
    functionName: sqlite3Fts3SegReaderNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    - sqlite3_malloc
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderNew(\n  int iAge,                       /*
      Segment \"age\". */\n  int bLookup,                    /* True for a lookup
      only */\n  sqlite3_int64 iStartLeaf,       /* First leaf to traverse */\n  sqlite3_int64
      iEndLeaf,         /* Final leaf to traverse */\n  sqlite3_int64 iEndBlock,        /*
      Final block of segment */\n  const char *zRoot,              /* Buffer containing
      root node */\n  int nRoot,                      /* Size of buffer containing
      root node */\n  Fts3SegReader **ppReader        /* OUT: Allocated Fts3SegReader
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146106,1
    - Dst: fts3HashKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146107,1
    - Dst: fts3HashKeysize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146108,1
    - Dst: fts3HashKeysize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146109,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146117
      start: 146102
    functionDepth: 1
    functionLinenumber: 146102
    functionLinenumberEnd: 146117
    functionName: SQLITE_CDECL::fts3CompareElemByTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fts3HashKey
    - fts3HashKeysize
    linkageType: ''
    returnType: int
    signature: "int SQLITE_CDECL fts3CompareElemByTerm(\n  const void *lhs,\n  const
      void *rhs\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146157,1
    - Dst: fts3HashNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146157,1
    - Dst: fts3HashKey
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146158,1
    - Dst: fts3HashKeysize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146159,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146160,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146164,1
    - Dst: qsort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146184,1
    - Dst: fts3HashFindElem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146195,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146204,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146208,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146211,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146216,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 6
    argNames:
    - p
    - iIndex
    - zTerm
    - nTerm
    - bPrefix
    - ppReader
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - int
    - Fts3SegReader**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146220
      start: 146138
    functionDepth: 3
    functionLinenumber: 146138
    functionLinenumberEnd: 146220
    functionName: sqlite3Fts3SegReaderPending
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcmp
    - memset
    - fts3HashNext
    - sqlite3_realloc
    - fts3HashFindElem
    - sqlite3_free
    - fts3HashFirst
    - fts3HashKeysize
    - sqlite3_malloc
    - memcpy
    - fts3HashKey
    - qsort
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderPending(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  int iIndex,                     /* Index for p->aIndex
      */\n  const char *zTerm,              /* Term to search for */\n  int nTerm,
      \                     /* Size of buffer zTerm */\n  int bPrefix,                    /*
      True for a prefix iterator */\n  Fts3SegReader **ppReader        /* OUT: SegReader
      for pending-terms */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146239,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146241,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( rc!=0 )
      pos:
        line_end: 146251
        line_start: 146251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146254
      start: 146234
    functionDepth: 0
    functionLinenumber: 146234
    functionLinenumberEnd: 146254
    functionName: fts3SegReaderCmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderCmp(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pLhs->aNode && pRhs->aNode )
      pos:
        line_end: 146275
        line_start: 146275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146278
      start: 146267
    functionDepth: 0
    functionLinenumber: 146267
    functionLinenumberEnd: 146278
    functionName: fts3SegReaderDoclistCmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderDoclistCmp(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pLhs->aNode && pRhs->aNode )
      pos:
        line_end: 146287
        line_start: 146287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146290
      start: 146279
    functionDepth: 0
    functionLinenumber: 146279
    functionLinenumberEnd: 146290
    functionName: fts3SegReaderDoclistCmpRev
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderDoclistCmpRev(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146308,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pSeg
    - zTerm
    - nTerm
    argTypes:
    - Fts3SegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146317
      start: 146300
    functionDepth: 0
    functionLinenumber: 146300
    functionLinenumberEnd: 146317
    functionName: fts3SegReaderTermCmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderTermCmp(\n  Fts3SegReader *pSeg,            /* Segment
      reader object */\n  const char *zTerm,              /* Term to compare to */\n
      \ int nTerm                       /* Size of term zTerm in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146333,1
    - Dst: xCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146340,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146350,1
    - Dst: xCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - apSegment
    - nSegment
    - nSuspect
    argTypes:
    - Fts3SegReader**
    - int
    - int
    assertStmts:
    - condition: ( nSuspect<=nSegment )
      pos:
        line_end: 146332
        line_start: 146332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( xCmp(apSegment[i], apSegment[i+1])<0 )
      pos:
        line_end: 146349
        line_start: 146349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146353
      start: 146325
    functionDepth: 0
    functionLinenumber: 146325
    functionLinenumberEnd: 146353
    functionName: fts3SegReaderSort
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xCmp
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3SegReaderSort(\n  Fts3SegReader **apSegment,                     /*
      Array to sort entries of */\n  int nSegment,                                  /*
      Size of apSegment array */\n  int nSuspect,                                  /*
      Unsorted entry count */\n  int (*xCmp)(Fts3SegReader *, Fts3SegReader *)  /*
      Comparison function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146365,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146367,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146368,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146369,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - p
    - iBlock
    - z
    - n
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146373
      start: 146358
    functionDepth: 28
    functionLinenumber: 146358
    functionLinenumberEnd: 146373
    functionName: fts3WriteSegment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3WriteSegment(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  sqlite3_int64 iBlock,           /* Block id for new block
      */\n  char *z,                        /* Pointer to buffer containing block
      data */\n  int n                           /* Size of buffer z in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146385,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146387,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146388,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pnMax
    argTypes:
    - Fts3Table*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146394
      start: 146380
    functionDepth: 28
    functionLinenumber: 146380
    functionLinenumberEnd: 146394
    functionName: sqlite3Fts3MaxLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MaxLevel(Fts3Table *p, int *pnMax)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146411,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146413,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146414,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146415,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146416,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146418,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146420,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146422,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146424,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146425,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 9
    argNames:
    - p
    - iLevel
    - iIdx
    - iStartBlock
    - iLeafEndBlock
    - iEndBlock
    - nLeafData
    - zRoot
    - nRoot
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146429
      start: 146399
    functionDepth: 28
    functionLinenumber: 146399
    functionLinenumberEnd: 146429
    functionName: fts3WriteSegdir
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_bind_blob
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_bind_text
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3WriteSegdir(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  sqlite3_int64 iLevel,           /* Value for \"level\" field
      (absolute level) */\n  int iIdx,                       /* Value for \"idx\"
      field */\n  sqlite3_int64 iStartBlock,      /* Value for \"start_block\" field
      */\n  sqlite3_int64 iLeafEndBlock,    /* Value for \"leaves_end_block\" field
      */\n  sqlite3_int64 iEndBlock,        /* Value for \"end_block\" field */\n
      \ sqlite3_int64 nLeafData,        /* Bytes of leaf data in segment */\n  char
      *zRoot,                    /* Blob value for \"root\" field */\n  int nRoot
      \                      /* Number of bytes in buffer zRoot */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - zPrev
    - nPrev
    - zNext
    - nNext
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146449
      start: 146439
    functionDepth: 1
    functionLinenumber: 146439
    functionLinenumberEnd: 146449
    functionName: fts3PrefixCompress
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3PrefixCompress(\n  const char *zPrev,              /* Buffer
      containing previous term */\n  int nPrev,                      /* Size of buffer
      zPrev in bytes */\n  const char *zNext,              /* Buffer containing next
      term */\n  int nNext                       /* Size of buffer zNext in bytes
      */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fts3PrefixCompress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146475,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146478,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146478,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146489,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146490,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146498,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146501,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146502,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146508,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146516,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146534,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146538,1
    - Dst: fts3NodeAddTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146544,1
    - Dst: fts3NodeAddTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146556,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 5
    argNames:
    - p
    - ppTree
    - isCopyTerm
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - SegmentNode**
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pTree->aData==(char *)&pTree[1] )
      pos:
        line_end: 146488
        line_start: 146488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146561
      start: 146455
    functionDepth: 2
    functionLinenumber: 146455
    functionLinenumberEnd: 146561
    functionName: fts3NodeAddTerm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - fts3PrefixCompress
    - assert
    - sqlite3_realloc
    - sqlite3Fts3VarintLen
    - fts3NodeAddTerm
    - sqlite3_malloc
    - memcpy
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3NodeAddTerm(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentNode **ppTree,           /* IN/OUT: SegmentNode handle
      */ \n  int isCopyTerm,                 /* True if zTerm/nTerm is transient */\n
      \ const char *zTerm,              /* Pointer to buffer containing term */\n
      \ int nTerm                       /* Size of term in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146572,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146573,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pTree
    - iHeight
    - iLeftChild
    argTypes:
    - SegmentNode*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( iHeight>=1 && iHeight<128 )
      pos:
        line_end: 146571
        line_start: 146571
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146577
      start: 146566
    functionDepth: 1
    functionLinenumber: 146566
    functionLinenumberEnd: 146577
    functionName: fts3TreeFinishNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3VarintLen
    - sqlite3Fts3PutVarint
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3TreeFinishNode(\n  SegmentNode *pTree, \n  int iHeight, \n
      \ sqlite3_int64 iLeftChild\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3TreeFinishNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146606,1
    - Dst: fts3TreeFinishNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146615,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146618,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146623,1
    - Dst: fts3NodeWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - p
    - pTree
    - iHeight
    - iLeaf
    - iFree
    - piLast
    - paRoot
    - pnRoot
    argTypes:
    - Fts3Table*
    - SegmentNode*
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64*
    - char**
    - int*
    assertStmts:
    - condition: ( iNextLeaf==iFree )
      pos:
        line_end: 146622
        line_start: 146622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146631
      start: 146592
    functionDepth: 29
    functionLinenumber: 146592
    functionLinenumberEnd: 146631
    functionName: fts3NodeWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3NodeWrite
    - fts3WriteSegment
    - fts3TreeFinishNode
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3NodeWrite(\n  Fts3Table *p,                   /* Virtual table
      handle */\n  SegmentNode *pTree,             /* SegmentNode handle */\n  int
      iHeight,                    /* Height of this node in tree */\n  sqlite3_int64
      iLeaf,            /* Block id of first leaf node */\n  sqlite3_int64 iFree,
      \           /* Block id of next free slot in %_segments */\n  sqlite3_int64
      *piLast,          /* OUT: Block id of last entry written */\n  char **paRoot,
      \                 /* OUT: Data for root node */\n  int *pnRoot                     /*
      OUT: Size of root node in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3NodeFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146639,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146643,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146645,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146646,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pTree
    argTypes:
    - SegmentNode*
    assertStmts:
    - condition: ( pRight==0 || p->zMalloc==0 )
      pos:
        line_end: 146644
        line_start: 146644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146651
      start: 146636
    functionDepth: 3
    functionLinenumber: 146636
    functionLinenumberEnd: 146651
    functionName: fts3NodeFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3NodeFree
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3NodeFree(SegmentNode *pTree)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146681,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146683,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146687,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146692,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146694,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146695,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146698,1
    - Dst: fts3PrefixCompress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146703,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146707,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146708,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146710,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146733,1
    - Dst: fts3NodeAddTerm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146734,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146743,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146745,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146756,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146761,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146764,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146765,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146766,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146768,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146769,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146779,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146787,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146788,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 7
    argNames:
    - p
    - ppWriter
    - isCopyTerm
    - zTerm
    - nTerm
    - aDoclist
    - nDoclist
    argTypes:
    - Fts3Table*
    - SegmentWriter**
    - int
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( nPrefix<nTerm )
      pos:
        line_end: 146732
        line_start: 146732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nData+nReq<=pWriter->nSize )
      pos:
        line_end: 146760
        line_start: 146760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWriter->zTerm==pWriter->zMalloc )
      pos:
        line_end: 146786
        line_start: 146786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146795
      start: 146661
    functionDepth: 29
    functionLinenumber: 146661
    functionLinenumberEnd: 146795
    functionName: fts3SegWriterAdd
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3SqlStmt
    - fts3PrefixCompress
    - assert
    - sqlite3_realloc
    - sqlite3_step
    - sqlite3Fts3VarintLen
    - sqlite3_column_int64
    - fts3NodeAddTerm
    - sqlite3_malloc
    - memcpy
    - fts3WriteSegment
    - sqlite3_reset
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3SegWriterAdd(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentWriter **ppWriter,       /* IN/OUT: SegmentWriter
      handle */ \n  int isCopyTerm,                 /* True if buffer zTerm must be
      copied */\n  const char *zTerm,              /* Pointer to buffer containing
      term */\n  int nTerm,                      /* Size of term in bytes */\n  const
      char *aDoclist,           /* Pointer to buffer containing doclist */\n  int
      nDoclist                    /* Size of doclist in bytes */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146817,1
    - Dst: fts3NodeWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146819,1
    - Dst: fts3WriteSegdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146823,1
    - Dst: fts3WriteSegdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - p
    - pWriter
    - iLevel
    - iIdx
    argTypes:
    - Fts3Table*
    - SegmentWriter*
    - sqlite3_int64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146833
      start: 146803
    functionDepth: 30
    functionLinenumber: 146803
    functionLinenumberEnd: 146833
    functionName: fts3SegWriterFlush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3WriteSegment
    - fts3WriteSegdir
    - fts3NodeWrite
    linkageType: ''
    returnType: int
    signature: "int fts3SegWriterFlush(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentWriter *pWriter,         /* SegmentWriter to flush
      to the db */\n  sqlite3_int64 iLevel,           /* Value for 'level' column
      of %_segdir */\n  int iIdx                        /* Value for 'idx' column
      of %_segdir */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146841,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146842,1
    - Dst: fts3NodeFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146843,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pWriter
    argTypes:
    - SegmentWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146846
      start: 146839
    functionDepth: 4
    functionLinenumber: 146839
    functionLinenumberEnd: 146846
    functionName: fts3SegWriterFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3NodeFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3SegWriterFree(SegmentWriter *pWriter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146866,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146868,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146869,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p
    - pRowid
    - pisEmpty
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146875
      start: 146858
    functionDepth: 28
    functionLinenumber: 146858
    functionLinenumberEnd: 146875
    functionName: fts3IsEmpty
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int fts3IsEmpty(Fts3Table *p, sqlite3_value *pRowid, int *pisEmpty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146893,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146901,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146903,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146903,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146904,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146905,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146907,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146908,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - pnMax
    argTypes:
    - Fts3Table*
    - int
    - int
    - sqlite3_int64*
    assertStmts:
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 146892
        line_start: 146892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146911
      start: 146885
    functionDepth: 28
    functionLinenumber: 146885
    functionLinenumberEnd: 146911
    functionName: fts3SegmentMaxLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - assert
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_reset
    - sqlite3_bind_int64
    - getAbsoluteLevel
    linkageType: ''
    returnType: int
    signature: "int fts3SegmentMaxLevel(\n  Fts3Table *p, \n  int iLangid,\n  int
      iIndex, \n  sqlite3_int64 *pnMax\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146930,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146932,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146933,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146938,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146939,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - pbMax
    argTypes:
    - Fts3Table*
    - i64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146942
      start: 146921
    functionDepth: 28
    functionLinenumber: 146921
    functionLinenumberEnd: 146942
    functionName: fts3SegmentIsMaxLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: int fts3SegmentIsMaxLevel(Fts3Table *p, i64 iAbsLevel, int *pbMax)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146956,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146958,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146959,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146960,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pSeg
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146965
      start: 146949
    functionDepth: 28
    functionLinenumber: 146949
    functionLinenumberEnd: 146965
    functionName: fts3DeleteSegment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - fts3SqlStmt
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteSegment(\n  Fts3Table *p,                   /* FTS table
      handle */\n  Fts3SegReader *pSeg             /* Segment to delete */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:146994,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147000,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147002,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147004,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147004,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147005,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147006,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147010,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147012,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147013,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147019,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147020,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - apSegment
    - nReader
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - Fts3SegReader**
    - int
    assertStmts:
    - condition: ( iLevel>=0 || iLevel==FTS3_SEGCURSOR_ALL )
      pos:
        line_end: 146999
        line_start: 146999
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147024
      start: 146981
    functionDepth: 29
    functionLinenumber: 146981
    functionLinenumberEnd: 147024
    functionName: fts3DeleteSegdir
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - assert
    - fts3DeleteSegment
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - getAbsoluteLevel
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteSegdir(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  int iLangid,                    /* Language id */\n  int
      iIndex,                     /* Index for p->aIndex */\n  int iLevel,                     /*
      Level of %_segdir entries to delete */\n  Fts3SegReader **apSegment,      /*
      Array of SegReader objects */\n  int nReader                     /* Size of
      array apSegment */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147050,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147066,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - iCol
    - bZero
    - ppList
    - pnList
    argTypes:
    - int
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( iCol>=0 )
      pos:
        line_end: 147049
        line_start: 147049
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147074
      start: 147038
    functionDepth: 1
    functionLinenumber: 147038
    functionLinenumberEnd: 147074
    functionName: fts3ColumnFilter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3GetVarint32
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3ColumnFilter(\n  int iCol,                       /* Column
      to filter on */\n  int bZero,                      /* Zero out anything following
      *ppList */\n  char **ppList,                  /* IN/OUT: Pointer to position
      list */\n  int *pnList                     /* IN/OUT: Size of buffer *ppList
      in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147091,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pMsr
    - pList
    - nList
    argTypes:
    - Fts3MultiSegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147098
      start: 147083
    functionDepth: 0
    functionLinenumber: 147083
    functionLinenumberEnd: 147098
    functionName: fts3MsrBufferData
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3MsrBufferData(\n  Fts3MultiSegReader *pMsr,       /* Multi-segment-reader
      handle */\n  char *pList,\n  int nList\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderNextDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147132,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147139,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147143,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147145,1
    - Dst: fts3MsrBufferData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147146,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147148,1
    - Dst: fts3ColumnFilter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147153,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 5
    argNames:
    - p
    - pMsr
    - piDocid
    - paPoslist
    - pnPoslist
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - sqlite3_int64*
    - char**
    - int*
    assertStmts:
    - condition: ( (pMsr->aBuffer[nList] & 0xFE)==0x00 )
      pos:
        line_end: 147147
        line_start: 147147
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147166
      start: 147100
    functionDepth: 29
    functionLinenumber: 147100
    functionLinenumberEnd: 147166
    functionName: sqlite3Fts3MsrIncrNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - fts3SegReaderIsPending
    - fts3ColumnFilter
    - fts3MsrBufferData
    - fts3SegReaderSort
    - fts3SegReaderNextDocid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrIncrNext(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pMsr,       /* Multi-segment-reader
      handle */\n  sqlite3_int64 *piDocid,         /* OUT: Docid value */\n  char
      **paPoslist,               /* OUT: Pointer to position list */\n  int *pnPoslist
      \                 /* OUT: Size of position list in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147187,1
    - Dst: fts3SegReaderTermCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147189,1
    - Dst: fts3SegReaderSetEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147192,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - p
    - pCsr
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147198
      start: 147168
    functionDepth: 30
    functionLinenumber: 147168
    functionLinenumberEnd: 147198
    functionName: fts3SegReaderStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderNext
    - fts3SegReaderTermCmp
    - fts3SegReaderSort
    - fts3SegReaderSetEof
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderStart(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object */\n  const
      char *zTerm,              /* Term searched for (or NULL) */\n  int nTerm                       /*
      Length of zTerm in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - pCsr
    - pFilter
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - Fts3SegFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147207
      start: 147200
    functionDepth: 31
    functionLinenumber: 147200
    functionLinenumberEnd: 147207
    functionName: sqlite3Fts3SegReaderStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3SegReaderStart
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderStart(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object
      */\n  Fts3SegFilter *pFilter          /* Restrictions on range of iteration
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147223,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147224,1
    - Dst: fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147227,1
    - Dst: fts3SegReaderTermCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147233,1
    - Dst: fts3SegReaderFirstDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147241,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147244,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - p
    - pCsr
    - iCol
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pCsr->pFilter==0 )
      pos:
        line_end: 147222
        line_start: 147222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( zTerm && nTerm>0 )
      pos:
        line_end: 147223
        line_start: 147223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCol<0 || iCol<p->nColumn )
      pos:
        line_end: 147245
        line_start: 147245
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147250
      start: 147209
    functionDepth: 31
    functionLinenumber: 147209
    functionLinenumberEnd: 147250
    functionName: sqlite3Fts3MsrIncrStart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SegReaderStart
    - assert
    - fts3SegReaderFirstDocid
    - fts3SegReaderTermCmp
    - fts3SegReaderSort
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrIncrStart(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object
      */\n  int iCol,                       /* Column to match on. */\n  const char
      *zTerm,              /* Term to iterate through a doclist for */\n  int nTerm
      \                      /* Number of bytes in zTerm */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147267,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( pCsr->zTerm==0 )
      pos:
        line_end: 147266
        line_start: 147266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->nTerm==0 )
      pos:
        line_end: 147267
        line_start: 147267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->nDoclist==0 )
      pos:
        line_end: 147269
        line_start: 147269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->aDoclist==0 )
      pos:
        line_end: 147268
        line_start: 147268
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147281
      start: 147264
    functionDepth: 0
    functionLinenumber: 147264
    functionLinenumberEnd: 147281
    functionName: sqlite3Fts3MsrIncrRestart
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderSetEof
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147316,1
    - Dst: fts3SegReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147318,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147322,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147326,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147342,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147352,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147357,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147361,1
    - Dst: fts3SegReaderIsPending
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147364,1
    - Dst: fts3MsrBufferData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147365,1
    - Dst: fts3SegReaderFirstDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147380,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147382,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147389,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147395,1
    - Dst: fts3ColumnFilter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147400,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147413,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147414,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147416,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147420,1
    - Dst: sqlite3Fts3FirstFilter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147431,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147437,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147440,1
    - Dst: fts3SegReaderSort
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147447,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 99
    argCount: 2
    argNames:
    - p
    - pCsr
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( isIgnoreEmpty || (isRequirePos && !isColFilter) )
      pos:
        line_end: 147356
        line_start: 147356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nDoclist>0 || iDelta==iDocid )
      pos:
        line_end: 147413
        line_start: 147413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 147325
        line_start: 147325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iDelta>0 || (nDoclist==0 && iDelta==iDocid) )
      pos:
        line_end: 147412
        line_start: 147412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147459
      start: 147284
    functionDepth: 30
    functionLinenumber: 147284
    functionLinenumberEnd: 147459
    functionName: sqlite3Fts3SegReaderStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - memcmp
    - assert
    - sqlite3_realloc
    - sqlite3Fts3VarintLen
    - sqlite3Fts3FirstFilter
    - fts3SegReaderIsPending
    - fts3ColumnFilter
    - fts3SegReaderFirstDocid
    - memcpy
    - fts3MsrBufferData
    - fts3SegReaderSetEof
    - fts3SegReaderNext
    - fts3SegReaderSort
    - fts3SegReaderNextDocid
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderStep(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr        /* Cursor object
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147468,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147470,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147477
      start: 147462
    functionDepth: 27
    functionLinenumber: 147462
    functionLinenumberEnd: 147477
    functionName: sqlite3Fts3SegReaderFinish
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3Fts3SegReaderFree
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderFinish(\n  Fts3MultiSegReader *pCsr
      \      /* Cursor object */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - pStmt
    - iCol
    - piEndBlock
    - pnByte
    argTypes:
    - sqlite3_stmt*
    - int
    - i64*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147515
      start: 147489
    functionDepth: 0
    functionLinenumber: 147489
    functionLinenumberEnd: 147515
    functionName: fts3ReadEndBlockField
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_text
    linkageType: ''
    returnType: void
    signature: "void fts3ReadEndBlockField(\n  sqlite3_stmt *pStmt, \n  int iCol,
      \n  i64 *piEndBlock,\n  i64 *pnByte\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147530,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147542,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147543,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147544,1
    - Dst: fts3ReadEndBlockField
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147546,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147558,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147566,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147569,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147583,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147584,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147585,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147586,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147586,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147587,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147587,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147588,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147589,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147591,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147597,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147602,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147603,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147604,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - nByte
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147611
      start: 147522
    functionDepth: 28
    functionLinenumber: 147522
    functionLinenumberEnd: 147611
    functionName: fts3PromoteSegments
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_bind_int
    - sqlite3_reset
    - fts3ReadEndBlockField
    linkageType: ''
    returnType: int
    signature: "int fts3PromoteSegments(\n  Fts3Table *p,                   /* FTS
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level just updated
      */\n  sqlite3_int64 nByte             /* Size of new segment at iAbsLevel */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147639,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147643,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147644,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147646,1
    - Dst: fts3SegmentMaxLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147650,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147671,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147672,1
    - Dst: fts3AllocateSegdirIdx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147673,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147678,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147679,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147679,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147680,1
    - Dst: getAbsoluteLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147680,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147682,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147686,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147688,1
    - Dst: fts3SegWriterAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147690,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147694,1
    - Dst: fts3DeleteSegdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147697,1
    - Dst: fts3SegWriterFlush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147703,1
    - Dst: fts3PromoteSegments
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147706,1
    - Dst: fts3SegWriterFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147712,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147713,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 67
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( csr.nSegment>0 )
      pos:
        line_end: 147677
        line_start: 147677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iNewLevel>=getAbsoluteLevel(p, iLangid, iIndex, 0) )
      pos:
        line_end: 147678
        line_start: 147678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iNewLevel<getAbsoluteLevel(p, iLangid, iIndex,FTS3_SEGDIR_MAXLEVEL)
        )
      pos:
        line_end: 147679
        line_start: 147679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 147643
        line_start: 147643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pWriter || bIgnoreEmpty )
      pos:
        line_end: 147693
        line_start: 147693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( iLevel==FTS3_SEGCURSOR_ALL\n       || iLevel==FTS3_SEGCURSOR_PENDING\n
        \      || iLevel>=0\n  )"
      pos:
        line_end: 147641
        line_start: 147638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 147642
        line_start: 147642
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( FTS3_SEGCURSOR_PENDING==-1 )
      pos:
        line_end: 147670
        line_start: 147670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147715
      start: 147624
    functionDepth: 32
    functionLinenumber: 147624
    functionLinenumberEnd: 147715
    functionName: fts3SegmentMerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - fts3SegmentMaxLevel
    - sqlite3Fts3SegReaderFinish
    - fts3SegWriterAdd
    - assert
    - sqlite3Fts3SegReaderStart
    - fts3SegWriterFree
    - fts3AllocateSegdirIdx
    - sqlite3Fts3SegReaderCursor
    - fts3SegWriterFlush
    - sqlite3Fts3SegReaderStep
    - fts3PromoteSegments
    - getAbsoluteLevel
    - fts3DeleteSegdir
    linkageType: ''
    returnType: int
    signature: "int fts3SegmentMerge(\n  Fts3Table *p, \n  int iLangid,                    /*
      Language id to merge */\n  int iIndex,                     /* Index in p->aIndex[]
      to merge */\n  int iLevel                      /* Level to merge */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegmentMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147726,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147729,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147738,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147740,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147741,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147743,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147748,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147752
      start: 147721
    functionDepth: 33
    functionLinenumber: 147721
    functionLinenumberEnd: 147752
    functionName: sqlite3Fts3PendingTermsFlush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_column_int
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3Fts3PendingTermsClear
    - sqlite3_reset
    - fts3SegmentMerge
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PendingTermsFlush(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - N
    - a
    - zBuf
    - pNBuf
    argTypes:
    - int
    - u32*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147768
      start: 147757
    functionDepth: 1
    functionLinenumber: 147757
    functionLinenumberEnd: 147768
    functionName: fts3EncodeIntArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3EncodeIntArray(\n  int N,             /* The number of integers
      to encode */\n  u32 *a,            /* The integer values */\n  char *zBuf,        /*
      Write the BLOB here */\n  int *pNBuf         /* Write number of bytes if zBuf[]
      used here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147780,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147783,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - N
    - a
    - zBuf
    - nBuf
    argTypes:
    - int
    - u32*
    - char*
    - int
    assertStmts:
    - condition: (j<=nBuf)
      pos:
        line_end: 147783
        line_start: 147783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147787
      start: 147773
    functionDepth: 2
    functionLinenumber: 147773
    functionLinenumberEnd: 147787
    functionName: fts3DecodeIntArray
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    - UNUSED_PARAMETER
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3DecodeIntArray(\n  int N,             /* The number of integers
      to decode */\n  u32 *a,            /* Write the integer values */\n  const char
      *zBuf,  /* The BLOB containing the varints */\n  int nBuf           /* size
      of the BLOB */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147805,1
    - Dst: fts3EncodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147810,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147811,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147813,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147817,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147818,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147819,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - pRC
    - p
    - aSz
    argTypes:
    - int*
    - Fts3Table*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147821
      start: 147794
    functionDepth: 28
    functionLinenumber: 147794
    functionLinenumberEnd: 147821
    functionName: fts3InsertDocsize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_free
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_malloc
    - fts3EncodeIntArray
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: void
    signature: "void fts3InsertDocsize(\n  int *pRC,                       /* Result
      code */\n  Fts3Table *p,                   /* Table into which to insert */\n
      \ u32 *aSz                        /* Sizes of each column, in tokens */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147855,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147861,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147863,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147867,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147868,1
    - Dst: fts3DecodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147869,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147870,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147871,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147873,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147875,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147877,1
    - Dst: fts3EncodeIntArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147895,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147896,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147898,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147902,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147903,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147904,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147905,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147906,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 5
    argNames:
    - pRC
    - p
    - aSzIns
    - aSzDel
    - nChng
    argTypes:
    - int*
    - Fts3Table*
    - u32*
    - u32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147907
      start: 147838
    functionDepth: 28
    functionLinenumber: 147838
    functionLinenumberEnd: 147907
    functionName: fts3UpdateDocTotals
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3SqlStmt
    - sqlite3_free
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_column_bytes
    - sqlite3_malloc
    - fts3EncodeIntArray
    - sqlite3_reset
    - fts3DecodeIntArray
    - sqlite3_column_blob
    linkageType: ''
    returnType: void
    signature: "void fts3UpdateDocTotals(\n  int *pRC,                       /* The
      result code */\n  Fts3Table *p,                   /* Table being updated */\n
      \ u32 *aSzIns,                    /* Size increases */\n  u32 *aSzDel,                    /*
      Size decreases */\n  int nChng                       /* Change in the number
      of documents */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147918,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147921,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147922,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147923,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147925,1
    - Dst: fts3SegmentMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147927,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147934,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147938,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - p
    - bReturnDone
    argTypes:
    - Fts3Table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147942
      start: 147913
    functionDepth: 33
    functionLinenumber: 147913
    functionLinenumberEnd: 147942
    functionName: fts3DoOptimize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3Fts3SegmentsClose
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3Fts3PendingTermsClear
    - sqlite3_reset
    - fts3SegmentMerge
    linkageType: ''
    returnType: int
    signature: int fts3DoOptimize(Fts3Table *p, int bReturnDone)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147957,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147966,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147970,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147971,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147976,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147980,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147986,1
    - Dst: langidFromSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147988,1
    - Dst: fts3PendingTermsDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147989,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147989,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147990,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147993,1
    - Dst: fts3PendingTermsAdd
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147994,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147995,1
    - Dst: fts3InsertDocsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:147999,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148002,1
    - Dst: fts3UpdateDocTotals
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148012,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148014,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148017,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148025
      start: 147954
    functionDepth: 30
    functionLinenumber: 147954
    functionLinenumberEnd: 148025
    functionName: fts3DoRebuild
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - fts3DeleteAll
    - memset
    - sqlite3_free
    - langidFromSelect
    - sqlite3_step
    - fts3PendingTermsAdd
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_column_bytes
    - sqlite3_malloc
    - sqlite3_prepare_v2
    - fts3InsertDocsize
    - fts3UpdateDocTotals
    - fts3PendingTermsDocid
    linkageType: ''
    returnType: int
    signature: int fts3DoRebuild(Fts3Table *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148045,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148047,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148052,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148053,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148058,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148059,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148060,1
    - Dst: sqlite3Fts3SegReaderNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148061,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148062,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148063,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148064,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148065,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148066,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148071,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - p
    - iAbsLevel
    - nSeg
    - pCsr
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( pCsr->nSegment==0 )
      pos:
        line_end: 148058
        line_start: 148058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148076
      start: 148034
    functionDepth: 28
    functionLinenumber: 148034
    functionLinenumberEnd: 148076
    functionName: fts3IncrmergeCsr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3SqlStmt
    - sqlite3Fts3SegReaderNew
    - assert
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_column_bytes
    - sqlite3_malloc
    - sqlite3_reset
    - sqlite3_column_blob
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeCsr(\n  Fts3Table *p,                   /* FTS3 table
      handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level to open */\n
      \ int nSeg,                       /* Number of segments to merge */\n  Fts3MultiSegReader
      *pCsr        /* Cursor object to populate */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pBlob
    - nMin
    - pRc
    argTypes:
    - Blob*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148161
      start: 148150
    functionDepth: 0
    functionLinenumber: 148150
    functionLinenumberEnd: 148161
    functionName: blobGrowBuffer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc
    linkageType: ''
    returnType: void
    signature: void blobGrowBuffer(Blob *pBlob, int nMin, int *pRc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148179,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148186,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148188,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148190,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148192,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148196,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - NodeReader*
    assertStmts:
    - condition: ( p->aNode )
      pos:
        line_end: 148178
        line_start: 148178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iOff<=p->nNode )
      pos:
        line_end: 148202
        line_start: 148202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148206
      start: 148173
    functionDepth: 1
    functionLinenumber: 148173
    functionLinenumberEnd: 148206
    functionName: nodeReaderNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blobGrowBuffer
    - fts3GetVarint32
    - assert
    linkageType: ''
    returnType: int
    signature: int nodeReaderNext(NodeReader *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - NodeReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148213
      start: 148211
    functionDepth: 3
    functionLinenumber: 148211
    functionLinenumberEnd: 148213
    functionName: nodeReaderRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void nodeReaderRelease(NodeReader *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148223,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148230,1
    - Dst: nodeReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - aNode
    - nNode
    argTypes:
    - NodeReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148236
      start: 148222
    functionDepth: 2
    functionLinenumber: 148222
    functionLinenumberEnd: 148236
    functionName: nodeReaderInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    - memset
    - nodeReaderNext
    linkageType: ''
    returnType: int
    signature: int nodeReaderInit(NodeReader *p, const char *aNode, int nNode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148257,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148258,1
    - Dst: fts3PrefixCompress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148270,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148272,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148273,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148282,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148285,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148288,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148289,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148293,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148295,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148296,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148299,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148306,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148308,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - p
    - pWriter
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - char*
    - int
    assertStmts:
    - condition: ( nTerm>0 )
      pos:
        line_end: 148256
        line_start: 148256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNode->block.nAlloc>=p->nNodeSize )
      pos:
        line_end: 148307
        line_start: 148307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 148320
        line_start: 148320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148323
      start: 148248
    functionDepth: 29
    functionLinenumber: 148248
    functionLinenumberEnd: 148323
    functionName: fts3IncrmergePush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PrefixCompress
    - assert
    - sqlite3Fts3VarintLen
    - ALWAYS
    - memcpy
    - blobGrowBuffer
    - fts3WriteSegment
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergePush(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  IncrmergeWriter *pWriter,       /* Writer object */\n  const
      char *zTerm,              /* Term to write to internal node */\n  int nTerm
      \                      /* Bytes at zTerm */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148364,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148365,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148367,1
    - Dst: fts3PrefixCompress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148370,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148372,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148376,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148378,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148379,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148383,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148384,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - pNode
    - pPrev
    - zTerm
    - nTerm
    - aDoclist
    - nDoclist
    argTypes:
    - Blob*
    - Blob*
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pNode->n>0 )
      pos:
        line_end: 148363
        line_start: 148363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (pNode->a[0]=='\0')==(aDoclist!=0) )
      pos:
        line_end: 148364
        line_start: 148364
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNode->n<=pNode->nAlloc )
      pos:
        line_end: 148387
        line_start: 148387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148391
      start: 148349
    functionDepth: 2
    functionLinenumber: 148349
    functionLinenumberEnd: 148391
    functionName: fts3AppendToNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PrefixCompress
    - assert
    - memcpy
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3AppendToNode(\n  Blob *pNode,                    /* Current
      node image to append to */\n  Blob *pPrev,                    /* Buffer containing
      previous term written */\n  const char *zTerm,              /* New term to write
      */\n  int nTerm,                      /* Size of zTerm in bytes */\n  const
      char *aDoclist,           /* Doclist (or NULL) to write */\n  int nDoclist                    /*
      Size of aDoclist in bytes */ \n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3PrefixCompress
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148415,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148418,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148419,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148420,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148426,1
    - Dst: fts3IncrmergePush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148442,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148452,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148453,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148457,1
    - Dst: fts3AppendToNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - p
    - pWriter
    - pCsr
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148469
      start: 148399
    functionDepth: 30
    functionLinenumber: 148399
    functionLinenumberEnd: 148469
    functionName: fts3IncrmergeAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PrefixCompress
    - sqlite3Fts3VarintLen
    - fts3WriteSegment
    - blobGrowBuffer
    - fts3AppendToNode
    - fts3IncrmergePush
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeAppend(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  IncrmergeWriter *pWriter,       /* Writer object */\n  Fts3MultiSegReader
      *pCsr        /* Cursor containing term and doclist */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148501,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148502,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148503,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148504,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148527,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148530,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148542,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148544,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148545,1
    - Dst: fts3WriteSegdir
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148550,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148560,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - p
    - pWriter
    - pRc
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - int*
    assertStmts:
    - condition: ( *pRc || pNode->block.nAlloc==0 )
      pos:
        line_end: 148500
        line_start: 148500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pRc || pNode->key.nAlloc==0 )
      pos:
        line_end: 148501
        line_start: 148501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148564
      start: 148484
    functionDepth: 29
    functionLinenumber: 148484
    functionLinenumberEnd: 148564
    functionName: fts3IncrmergeRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3WriteSegdir
    - sqlite3_free
    - assert
    - fts3WriteSegment
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3IncrmergeRelease(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  IncrmergeWriter *pWriter,       /* Merge-writer object */\n
      \ int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148578,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - zLhs
    - nLhs
    - zRhs
    - nRhs
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148585
      start: 148574
    functionDepth: 1
    functionLinenumber: 148574
    functionLinenumberEnd: 148585
    functionName: fts3TermCmp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: "int fts3TermCmp(\n  const char *zLhs, int nLhs,     /* LHS of comparison
      */\n  const char *zRhs, int nRhs      /* RHS of comparison */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148605,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148607,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148608,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iEnd
    - pbRes
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148614
      start: 148600
    functionDepth: 28
    functionLinenumber: 148600
    functionLinenumberEnd: 148614
    functionName: fts3IsAppendable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - fts3SqlStmt
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int fts3IsAppendable(Fts3Table *p, sqlite3_int64 iEnd, int *pbRes)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148642,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148653,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148654,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148655,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148656,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148657,1
    - Dst: fts3ReadEndBlockField
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148658,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148663,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148664,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148666,1
    - Dst: fts3IsAppendable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148670,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148677,1
    - Dst: nodeReaderInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148680,1
    - Dst: nodeReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148682,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148684,1
    - Dst: fts3TermCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148686,1
    - Dst: nodeReaderRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148689,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148691,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148713,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148713,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148715,1
    - Dst: nodeReaderInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148723,1
    - Dst: nodeReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148724,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148725,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148727,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148734,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148735,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148735,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148737,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148740,1
    - Dst: nodeReaderRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148743,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148747,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 6
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - zKey
    - nKey
    - pWriter
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - char*
    - int
    - IncrmergeWriter*
    assertStmts:
    - condition: ( reader.aNode )
      pos:
        line_end: 148683
        line_start: 148683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148752
      start: 148631
    functionDepth: 29
    functionLinenumber: 148631
    functionLinenumberEnd: 148752
    functionName: fts3IncrmergeLoad
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MAX
    - sqlite3_bind_int
    - sqlite3_column_int64
    - sqlite3_column_bytes
    - fts3TermCmp
    - sqlite3_column_blob
    - fts3SqlStmt
    - sqlite3_free
    - memcpy
    - blobGrowBuffer
    - fts3ReadEndBlockField
    - nodeReaderInit
    - assert
    - sqlite3_step
    - nodeReaderNext
    - sqlite3Fts3ReadBlock
    - sqlite3_reset
    - sqlite3_bind_int64
    - nodeReaderRelease
    - fts3IsAppendable
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeLoad(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of input
      segments */\n  int iIdx,                       /* Index of candidate output
      segment */\n  const char *zKey,               /* First key to write */\n  int
      nKey,                       /* Number of bytes in nKey */\n  IncrmergeWriter
      *pWriter        /* Populate this object */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148771,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148773,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148774,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148775,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - piIdx
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148780
      start: 148763
    functionDepth: 28
    functionLinenumber: 148763
    functionLinenumberEnd: 148780
    functionName: fts3IncrmergeOutputIdx
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeOutputIdx( \n  Fts3Table *p,                   /*
      FTS Table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute index of
      input segments */\n  int *piIdx                      /* OUT: Next free index
      at iAbsLevel+1 */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148822,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148824,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148825,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148826,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148827,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148829,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148834,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148836,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148837,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148841,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - pCsr
    - pWriter
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - Fts3MultiSegReader*
    - IncrmergeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148860
      start: 148808
    functionDepth: 29
    functionLinenumber: 148808
    functionLinenumberEnd: 148860
    functionName: fts3IncrmergeWriter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - fts3SqlStmt
    - sqlite3_step
    - sqlite3_column_int64
    - fts3WriteSegment
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeWriter( \n  Fts3Table *p,                   /* Fts3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of input
      segments */\n  int iIdx,                       /* Index of new output segment
      */\n  Fts3MultiSegReader *pCsr,       /* Cursor that data will be read from
      */\n  IncrmergeWriter *pWriter        /* Populate this object */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148881,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148883,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148884,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148885,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - iIdx
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148890
      start: 148873
    functionDepth: 28
    functionLinenumber: 148873
    functionLinenumberEnd: 148890
    functionName: fts3RemoveSegdirEntry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3RemoveSegdirEntry(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level to delete
      from */\n  int iIdx                        /* Index of %_segdir entry to delete
      */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148909,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148912,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148913,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148917,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148924,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148926,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148931,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148934,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148937,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148941,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148942,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148943,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148944,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148949,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - p
    - iAbsLevel
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    assertStmts:
    - condition: ( p->bIgnoreSavepoint==0 )
      pos:
        line_end: 148936
        line_start: 148936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148951
      start: 148897
    functionDepth: 28
    functionLinenumber: 148897
    functionLinenumberEnd: 148951
    functionName: fts3RepackSegdirLevel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - fts3SqlStmt
    - assert
    - sqlite3_realloc
    - sqlite3_step
    - sqlite3_bind_int
    - sqlite3_free
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts3RepackSegdirLevel(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel         /* Absolute level to repack
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148956,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148956,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148957,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pNode
    - iHeight
    - iChild
    argTypes:
    - Blob*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( pNode->nAlloc>=1+sqlite3Fts3VarintLen(iChild) )
      pos:
        line_end: 148955
        line_start: 148955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pNode->nAlloc>=1 )
      pos:
        line_end: 148958
        line_start: 148958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148962
      start: 148953
    functionDepth: 1
    functionLinenumber: 148953
    functionLinenumberEnd: 148962
    functionName: fts3StartNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3VarintLen
    - sqlite3Fts3PutVarint
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3StartNode(Blob *pNode, int iHeight, sqlite3_int64 iChild)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148986,1
    - Dst: nodeReaderInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148991,1
    - Dst: nodeReaderNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148993,1
    - Dst: fts3TermCmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148996,1
    - Dst: fts3StartNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:148998,1
    - Dst: fts3AppendToNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149001,1
    - Dst: fts3StartNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149008,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149011,1
    - Dst: nodeReaderRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149013,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149014,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - aNode
    - nNode
    - pNew
    - zTerm
    - nTerm
    - piBlock
    argTypes:
    - char*
    - int
    - Blob*
    - char*
    - int
    - sqlite3_int64*
    assertStmts:
    - condition: ( pNew->n<=pNew->nAlloc )
      pos:
        line_end: 149010
        line_start: 149010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149016
      start: 148972
    functionDepth: 4
    functionLinenumber: 148972
    functionLinenumberEnd: 149016
    functionName: fts3TruncateNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - nodeReaderNext
    - nodeReaderRelease
    - blobGrowBuffer
    - fts3StartNode
    - fts3TermCmp
    - fts3AppendToNode
    - nodeReaderInit
    linkageType: ''
    returnType: int
    signature: "int fts3TruncateNode(\n  const char *aNode,              /* Current
      node image */\n  int nNode,                      /* Size of aNode in bytes */\n
      \ Blob *pNew,                     /* OUT: Write new node image here */\n  const
      char *zTerm,              /* Omit all terms smaller than this */\n  int nTerm,
      \                     /* Size of zTerm in bytes */\n  sqlite3_int64 *piBlock
      \         /* OUT: Block number in next layer down */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149042,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149045,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149046,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149047,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149048,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149049,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149050,1
    - Dst: fts3TruncateNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149051,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149053,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149062,1
    - Dst: fts3TruncateNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149064,1
    - Dst: fts3WriteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149067,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149069,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149075,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149077,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149078,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149079,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149080,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149086,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149088,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149089,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149090,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149091,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149092,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149093,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149097,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149098,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 5
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149100
      start: 149027
    functionDepth: 29
    functionLinenumber: 149027
    functionLinenumberEnd: 149100
    functionName: fts3TruncateSegment
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_free
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_column_int64
    - sqlite3_column_bytes
    - fts3TruncateNode
    - sqlite3_bind_blob
    - fts3WriteSegment
    - sqlite3Fts3ReadBlock
    - sqlite3_reset
    - sqlite3_column_blob
    linkageType: ''
    returnType: int
    signature: "int fts3TruncateSegment(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of segment
      to modify */\n  int iIdx,                       /* Index within level of segment
      to modify */\n  const char *zTerm,              /* Remove terms smaller than
      this */\n  int nTerm                      /* Number of bytes in buffer zTerm
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149128,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149132,1
    - Dst: fts3DeleteSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149136,1
    - Dst: fts3RemoveSegdirEntry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149138,1
    - Dst: fts3TruncateSegment
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149147,1
    - Dst: fts3RepackSegdirLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149153,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - p
    - iAbsLevel
    - pCsr
    - pnRem
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - Fts3MultiSegReader*
    - int*
    assertStmts:
    - condition: ( j<pCsr->nSegment && pSeg->iIdx==i )
      pos:
        line_end: 149131
        line_start: 149131
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149158
      start: 149112
    functionDepth: 30
    functionLinenumber: 149112
    functionLinenumberEnd: 149158
    functionName: fts3IncrmergeChomp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3RemoveSegdirEntry
    - fts3DeleteSegment
    - ALWAYS
    - fts3RepackSegdirLevel
    - fts3TruncateSegment
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeChomp(\n  Fts3Table *p,                   /* FTS
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level containing
      segments */\n  Fts3MultiSegReader *pCsr,       /* Chomp all segments opened
      by this cursor */\n  int *pnRem                      /* Number of segments not
      deleted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149167,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149169,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149170,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149171,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pHint
    argTypes:
    - Fts3Table*
    - Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149176
      start: 149163
    functionDepth: 28
    functionLinenumber: 149163
    functionLinenumberEnd: 149176
    functionName: fts3IncrmergeHintStore
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_bind_blob
    - sqlite3_step
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintStore(Fts3Table *p, Blob *pHint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149191,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149194,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149195,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149196,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149197,1
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149199,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149201,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pHint
    argTypes:
    - Fts3Table*
    - Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149211
      start: 149186
    functionDepth: 28
    functionLinenumber: 149186
    functionLinenumberEnd: 149211
    functionName: fts3IncrmergeHintLoad
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_column_bytes
    - memcpy
    - blobGrowBuffer
    - sqlite3_reset
    - sqlite3_column_blob
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintLoad(Fts3Table *p, Blob *pHint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blobGrowBuffer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149228,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149230,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pHint
    - iAbsLevel
    - nInput
    - pRc
    argTypes:
    - Blob*
    - i64
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149233
      start: 149222
    functionDepth: 1
    functionLinenumber: 149222
    functionLinenumberEnd: 149233
    functionName: fts3IncrmergeHintPush
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3IncrmergeHintPush(\n  Blob *pHint,                    /*
      Hint blob to append to */\n  i64 iAbsLevel,                  /* First varint
      to store in hint */\n  int nInput,                     /* Second varint to store
      in hint */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149252,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - pHint
    - piAbsLevel
    - pnInput
    argTypes:
    - Blob*
    - i64*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149257
      start: 149243
    functionDepth: 2
    functionLinenumber: 149243
    functionLinenumberEnd: 149257
    functionName: fts3IncrmergeHintPop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    - fts3GetVarint32
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintPop(Blob *pHint, i64 *piAbsLevel, int *pnInput)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149282,1
    - Dst: fts3IncrmergeHintLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149287,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149300,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149301,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149302,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149303,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149308,1
    - Dst: fts3IncrmergeHintPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149320,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149344,1
    - Dst: fts3IncrmergeOutputIdx
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149348,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149349,1
    - Dst: fts3SegmentIsMaxLevel
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149352,1
    - Dst: fts3IncrmergeCsr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149360,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149363,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149364,1
    - Dst: fts3IncrmergeLoad
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149369,1
    - Dst: fts3IncrmergeWriter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149371,1
    - Dst: fts3LogMerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149375,1
    - Dst: fts3IncrmergeAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149377,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149378,1
    - Dst: fts3IncrmergeChomp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149385,1
    - Dst: fts3IncrmergeHintPush
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149388,1
    - Dst: fts3IncrmergeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149396,1
    - Dst: fts3PromoteSegments
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149398,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149402,1
    - Dst: fts3IncrmergeHintStore
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149407,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149410,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149411,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 85
    argCount: 3
    argNames:
    - p
    - nMerge
    - nMin
    argTypes:
    - Fts3Table*
    - int
    - int
    assertStmts:
    - condition: ( bUseHint==1 || bUseHint==0 )
      pos:
        line_end: 149348
        line_start: 149348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149413
      start: 149269
    functionDepth: 32
    functionLinenumber: 149269
    functionLinenumberEnd: 149413
    functionName: sqlite3Fts3Incrmerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - fts3IncrmergeAppend
    - fts3SegmentIsMaxLevel
    - sqlite3_bind_int
    - fts3IncrmergeLoad
    - sqlite3_column_int64
    - sqlite3_malloc
    - fts3IncrmergeChomp
    - fts3LogMerge
    - fts3SqlStmt
    - sqlite3_free
    - fts3IncrmergeHintPop
    - sqlite3Fts3SegReaderStep
    - fts3IncrmergeOutputIdx
    - fts3IncrmergeRelease
    - sqlite3Fts3SegReaderFinish
    - fts3IncrmergeCsr
    - assert
    - sqlite3Fts3SegReaderStart
    - sqlite3_step
    - sqlite3_reset
    - fts3IncrmergeHintStore
    - fts3PromoteSegments
    - fts3IncrmergeWriter
    - fts3IncrmergeHintLoad
    - fts3IncrmergeHintPush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Incrmerge(Fts3Table *p, int nMerge, int nMin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pz
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149426
      start: 149420
    functionDepth: 0
    functionLinenumber: 149420
    functionLinenumberEnd: 149426
    functionName: fts3Getint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3Getint(const char **pz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3Getint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149447,1
    - Dst: fts3Getint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149453,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149461,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149462,1
    - Dst: sqlite3Fts3Incrmerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149465,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - p
    - zParam
    argTypes:
    - Fts3Table*
    - char*
    assertStmts:
    - condition: ( p->bFts4==0 )
      pos:
        line_end: 149460
        line_start: 149460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149470
      start: 149437
    functionDepth: 33
    functionLinenumber: 149437
    functionLinenumberEnd: 149470
    functionName: fts3DoIncrmerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3Getint
    - sqlite3Fts3CreateStatTable
    - sqlite3Fts3SegmentsClose
    - sqlite3Fts3Incrmerge
    linkageType: ''
    returnType: int
    signature: "int fts3DoIncrmerge(\n  Fts3Table *p,                   /* FTS3 table
      handle */\n  const char *zParam              /* Nul-terminated string containing
      \"A,B\" */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3Getint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149491,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149492,1
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149495,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149497,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149498,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149499,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - p
    - zParam
    argTypes:
    - Fts3Table*
    - char*
    assertStmts:
    - condition: ( p->bFts4==0 )
      pos:
        line_end: 149490
        line_start: 149490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149502
      start: 149480
    functionDepth: 29
    functionLinenumber: 149480
    functionLinenumberEnd: 149502
    functionName: fts3DoAutoincrmerge
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SqlStmt
    - assert
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3Fts3CreateStatTable
    - sqlite3_reset
    - fts3Getint
    linkageType: ''
    returnType: int
    signature: "int fts3DoAutoincrmerge(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  const char *zParam              /* Nul-terminated string
      containing boolean */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - zTerm
    - nTerm
    - iLangid
    - iIndex
    - iDocid
    - iCol
    - iPos
    argTypes:
    - char*
    - int
    - int
    - int
    - i64
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149527
      start: 149508
    functionDepth: 0
    functionLinenumber: 149508
    functionLinenumberEnd: 149527
    functionName: fts3ChecksumEntry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: "u64 fts3ChecksumEntry(\n  const char *zTerm,              /* Pointer
      to buffer containing term */\n  int nTerm,                      /* Size of zTerm
      in bytes */\n  int iLangid,                    /* Language id for current row
      */\n  int iIndex,                     /* Index (0..Fts3Table.nIndex-1) */\n
      \ i64 iDocid,                     /* Docid for current row. */\n  int iCol,
      \                      /* Column number */\n  int iPos                        /*
      Position */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149549,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149551,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149552,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149556,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149560,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149564,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149572,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149575,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149581,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149583,1
    - Dst: fts3ChecksumEntry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149588,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - pRc
    argTypes:
    - Fts3Table*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( *pRc==SQLITE_OK )
      pos:
        line_end: 149548
        line_start: 149548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149601
      start: 149538
    functionDepth: 32
    functionLinenumber: 149538
    functionLinenumberEnd: 149601
    functionName: fts3ChecksumIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3Fts3SegReaderFinish
    - assert
    - sqlite3Fts3SegReaderStart
    - sqlite3Fts3SegReaderCursor
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SegReaderStep
    - fts3ChecksumEntry
    linkageType: ''
    returnType: u64
    signature: "u64 fts3ChecksumIndex(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  int iLangid,                    /* Language id to return
      cksum for */\n  int iIndex,                     /* Index to cksum (0..p->nIndex-1)
      */\n  int *pRc                        /* OUT: Return code */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149619,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149622,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149623,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149624,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149625,1
    - Dst: fts3ChecksumIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149628,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149631,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149641,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149645,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149646,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149649,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149650,1
    - Dst: langidFromSelect
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149651,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149656,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149657,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149660,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149667,1
    - Dst: fts3ChecksumEntry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149670,1
    - Dst: fts3ChecksumEntry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149675,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149682,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149688,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - p
    - pbOk
    argTypes:
    - Fts3Table*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149693
      start: 149612
    functionDepth: 33
    functionLinenumber: 149612
    functionLinenumberEnd: 149693
    functionName: fts3IntegrityCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - fts3SqlStmt
    - sqlite3_free
    - langidFromSelect
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_column_bytes
    - sqlite3_tokenizer_module*::xNext
    - fts3ChecksumIndex
    - sqlite3_prepare_v2
    - sqlite3Fts3OpenTokenizer
    - sqlite3_reset
    - sqlite3_tokenizer_module*::xClose
    - fts3ChecksumEntry
    linkageType: ''
    returnType: int
    signature: int fts3IntegrityCheck(Fts3Table *p, int *pbOk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3IntegrityCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149734
      start: 149726
    functionDepth: 34
    functionLinenumber: 149726
    functionLinenumberEnd: 149734
    functionName: fts3DoIntegrityCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3IntegrityCheck
    linkageType: ''
    returnType: int
    signature: "int fts3DoIntegrityCheck(\n  Fts3Table *p                    /* FTS3
      table handle */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149746,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149747,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149751,1
    - Dst: fts3DoOptimize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149752,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149753,1
    - Dst: fts3DoRebuild
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149754,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149755,1
    - Dst: fts3DoIntegrityCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149756,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149757,1
    - Dst: fts3DoIncrmerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149758,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149759,1
    - Dst: fts3DoAutoincrmerge
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149760,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149762,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149763,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149765,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149766,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149768,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149769,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pVal
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149777
      start: 149744
    functionDepth: 35
    functionLinenumber: 149744
    functionLinenumberEnd: 149777
    functionName: fts3SpecialInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DoAutoincrmerge
    - sqlite3_strnicmp
    - atoi
    - sqlite3_value_bytes
    - sqlite3_value_text
    - fts3DoRebuild
    - fts3DoIntegrityCheck
    - fts3DoIncrmerge
    - fts3DoOptimize
    linkageType: ''
    returnType: int
    signature: int fts3SpecialInsert(Fts3Table *p, sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3PendingListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149790
      start: 149784
    functionDepth: 4
    functionLinenumber: 149784
    functionLinenumberEnd: 149790
    functionName: sqlite3Fts3FreeDeferredDoclists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3PendingListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3FreeDeferredDoclists(Fts3Cursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3PendingListDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149801,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149805
      start: 149796
    functionDepth: 4
    functionLinenumber: 149796
    functionLinenumberEnd: 149805
    functionName: sqlite3Fts3FreeDeferredTokens
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3PendingListDelete
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3FreeDeferredTokens(Fts3Cursor *pCsr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149826,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149827,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149831,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149834,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149841,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149847,1
    - Dst: fts3PendingListAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149849,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149853,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149860,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts:
    - condition: ( pCsr->isRequireSeek==0 )
      pos:
        line_end: 149825
        line_start: 149825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149866
      start: 149815
    functionDepth: 6
    functionLinenumber: 149815
    functionLinenumberEnd: 149866
    functionName: sqlite3Fts3CacheDeferredDoclists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcmp
    - assert
    - sqlite3_column_int64
    - sqlite3_column_text
    - sqlite3Fts3OpenTokenizer
    - fts3PendingListAppend
    - fts3PendingListAppendVarint
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3CacheDeferredDoclists(Fts3Cursor *pCsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149884,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149887,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p
    - ppData
    - pnData
    argTypes:
    - Fts3DeferredToken*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149893
      start: 149868
    functionDepth: 2
    functionLinenumber: 149868
    functionLinenumberEnd: 149893
    functionName: sqlite3Fts3DeferredTokenList
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3Fts3GetVarint
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DeferredTokenList(\n  Fts3DeferredToken
      *p, \n  char **ppData, \n  int *pnData\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149904,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149908,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - pCsr
    - pToken
    - iCol
    argTypes:
    - Fts3Cursor*
    - Fts3PhraseToken*
    - int
    assertStmts:
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 149913
        line_start: 149913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 149918
      start: 149898
    functionDepth: 0
    functionLinenumber: 149898
    functionLinenumberEnd: 149918
    functionName: sqlite3Fts3DeferToken
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - assert
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DeferToken(\n  Fts3Cursor *pCsr,               /*
      Fts3 table cursor */\n  Fts3PhraseToken *pToken,        /* Token to defer */\n
      \ int iCol                        /* Column that token must appear in (or -1)
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteTerms
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149935,1
    - Dst: fts3IsEmpty
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149938,1
    - Dst: fts3DeleteAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149944,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149946,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149950,1
    - Dst: fts3SqlExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - p
    - pRowid
    - pnChng
    - aSzDel
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    - int*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149960
      start: 149926
    functionDepth: 30
    functionLinenumber: 149926
    functionLinenumberEnd: 149960
    functionName: fts3DeleteByRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3IsEmpty
    - fts3DeleteAll
    - memset
    - fts3DeleteTerms
    - fts3SqlExec
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteByRowid(\n  Fts3Table *p, \n  sqlite3_value *pRowid,
      \n  int *pnChng,                    /* IN/OUT: Decrement if row is deleted */\n
      \ u32 *aSzDel\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149991,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:149994,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150004,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150005,1
    - Dst: fts3SpecialInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150007,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150011,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150017,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150023,1
    - Dst: fts3Writelock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150025,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150040,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150044,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150045,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150046,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150046,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150065,1
    - Dst: fts3DeleteByRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150066,1
    - Dst: fts3InsertData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150068,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150078,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150079,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150079,1
    - Dst: fts3DeleteByRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150080,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150086,1
    - Dst: fts3InsertData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150088,1
    - Dst: fts3PendingTermsDocid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150094,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150097,1
    - Dst: fts3InsertTerms
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150098,1
    - Dst: fts3InsertDocsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150101,1
    - Dst: fts3UpdateDocTotals
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150107,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150111,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150112,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 75
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - apVal
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 149992
        line_start: 149992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sqlite3_value_type(apVal[0])==SQLITE_INTEGER )
      pos:
        line_end: 150078
        line_start: 150078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->bHasStat==0 || p->bHasStat==1 )
      pos:
        line_end: 149990
        line_start: 149990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( \n      nArg==1                     /* DELETE operations */\n
        \  || nArg==(2 + p->nColumn + 3)  /* INSERT or UPDATE operations */\n  )"
      pos:
        line_end: 149996
        line_start: 149993
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->iPrevDocid==*pRowid )
      pos:
        line_end: 150096
        line_start: 150096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150114
      start: 149975
    functionDepth: 36
    functionLinenumber: 149975
    functionLinenumberEnd: 150114
    functionName: sqlite3Fts3UpdateMethod
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_value_int
    - sqlite3_vtab_on_conflict
    - memset
    - fts3SpecialInsert
    - fts3Writelock
    - fts3DeleteByRowid
    - assert
    - sqlite3_free
    - sqlite3Fts3SegmentsClose
    - sqlite3_malloc
    - fts3InsertDocsize
    - fts3InsertData
    - sqlite3_value_type
    - fts3UpdateDocTotals
    - sqlite3_value_int64
    - fts3PendingTermsDocid
    - fts3InsertTerms
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3UpdateMethod(\n  sqlite3_vtab *pVtab,            /*
      FTS3 vtab object */\n  int nArg,                       /* Size of argument array
      */\n  sqlite3_value **apVal,          /* Array of arguments */\n  sqlite_int64
      *pRowid            /* OUT: The affected (or effected) rowid */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150123,1
    - Dst: fts3DoOptimize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150125,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150127,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150130,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150131,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150136
      start: 150121
    functionDepth: 34
    functionLinenumber: 150121
    functionLinenumberEnd: 150136
    functionName: sqlite3Fts3Optimize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3DoOptimize
    - sqlite3Fts3SegmentsClose
    - sqlite3_exec
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Optimize(Fts3Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150275,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150277,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150279,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - nElem
    - zMatchinfo
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150289
      start: 150272
    functionDepth: 0
    functionLinenumber: 150272
    functionLinenumberEnd: 150289
    functionName: fts3MIBufferNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - strlen
    - sqlite3_malloc
    linkageType: ''
    returnType: MatchinfoBuffer
    signature: MatchinfoBuffer *fts3MIBufferNew(int nElem, const char *zMatchinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150294,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: "( (u32*)p==&pBuf->aMatchinfo[1] \n       || (u32*)p==&pBuf->aMatchinfo[pBuf->nElem+2]
        \n  )"
      pos:
        line_end: 150295
        line_start: 150293
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150306
      start: 150291
    functionDepth: 3
    functionLinenumber: 150291
    functionLinenumberEnd: 150306
    functionName: fts3MIBufferFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3MIBufferFree(void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150322,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150331
      start: 150308
    functionDepth: 0
    functionLinenumber: 150308
    functionLinenumberEnd: 150331
    functionName: (*fts3MIBufferAlloc(MatchinfoBuffer *p, u32 **paOut))(void*)
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc
    linkageType: ''
    returnType: void
    signature: void (*fts3MIBufferAlloc(MatchinfoBuffer *p, u32 **paOut))(void*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - MatchinfoBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150336
      start: 150333
    functionDepth: 0
    functionLinenumber: 150333
    functionLinenumberEnd: 150336
    functionName: fts3MIBufferSetGlobal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fts3MIBufferSetGlobal(MatchinfoBuffer *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150343,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - MatchinfoBuffer*
    assertStmts:
    - condition: ( p->aRef[0]==1 )
      pos:
        line_end: 150342
        line_start: 150342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150349
      start: 150341
    functionDepth: 3
    functionLinenumber: 150341
    functionLinenumberEnd: 150349
    functionName: sqlite3Fts3MIBufferFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MIBufferFree(MatchinfoBuffer *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - piPos
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150380
      start: 150376
    functionDepth: 1
    functionLinenumber: 150376
    functionLinenumberEnd: 150380
    functionName: fts3GetDeltaPosition
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetVarint32
    linkageType: ''
    returnType: void
    signature: void fts3GetDeltaPosition(char **pp, int *piPos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150395,1
    - Dst: fts3ExprIterate2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150396,1
    - Dst: fts3ExprIterate2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150398,1
    - Dst: x
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pExpr
    - piPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int*
    - void*
    assertStmts:
    - condition: ( pExpr->pLeft && pExpr->pRight )
      pos:
        line_end: 150394
        line_start: 150394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150405
      start: 150385
    functionDepth: 1
    functionLinenumber: 150385
    functionLinenumberEnd: 150405
    functionName: fts3ExprIterate2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprIterate2
    - assert
    - x
    linkageType: ''
    returnType: int
    signature: "int fts3ExprIterate2(\n  Fts3Expr *pExpr,                /* Expression
      to iterate phrases of */\n  int *piPhrase,                  /* Pointer to phrase
      counter */\n  int (*x)(Fts3Expr*,int,void*),  /* Callback function to invoke
      for phrases */\n  void *pCtx                      /* Second argument to pass
      to callback */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pExpr
    - pCtx
    argTypes:
    - Fts3Expr*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150424
      start: 150417
    functionDepth: 2
    functionLinenumber: 150417
    functionLinenumberEnd: 150424
    functionName: fts3ExprIterate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate2
    linkageType: ''
    returnType: int
    signature: "int fts3ExprIterate(\n  Fts3Expr *pExpr,                /* Expression
      to iterate phrases of */\n  int (*x)(Fts3Expr*,int,void*),  /* Callback function
      to invoke for phrases */\n  void *pCtx                      /* Second argument
      to pass to callback */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150443
      start: 150432
    functionDepth: 1
    functionLinenumber: 150432
    functionLinenumberEnd: 150443
    functionName: fts3ExprLoadDoclistsCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int fts3ExprLoadDoclistsCb(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pCsr
    - pnPhrase
    - pnToken
    argTypes:
    - Fts3Cursor*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150467
      start: 150455
    functionDepth: 3
    functionLinenumber: 150455
    functionLinenumberEnd: 150467
    functionName: fts3ExprLoadDoclists
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLoadDoclists(\n  Fts3Cursor *pCsr,               /* Fts3
      cursor for current query */\n  int *pnPhrase,                  /* OUT: Number
      of phrases in query */\n  int *pnToken                    /* OUT: Number of
      tokens in query */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150473
      start: 150469
    functionDepth: 0
    functionLinenumber: 150469
    functionLinenumberEnd: 150473
    functionName: fts3ExprPhraseCountCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3ExprPhraseCountCb(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Fts3Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150478
      start: 150474
    functionDepth: 3
    functionLinenumber: 150474
    functionLinenumberEnd: 150478
    functionName: fts3ExprPhraseCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: int fts3ExprPhraseCount(Fts3Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetDeltaPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ppIter
    - piIter
    - iNext
    argTypes:
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150502
      start: 150485
    functionDepth: 2
    functionLinenumber: 150485
    functionLinenumberEnd: 150502
    functionName: fts3SnippetAdvance
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaPosition
    linkageType: ''
    returnType: void
    signature: void fts3SnippetAdvance(char **ppIter, int *piIter, int iNext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SnippetAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150522,1
    - Dst: fts3SnippetAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150541,1
    - Dst: fts3SnippetAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - SnippetIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150547
      start: 150507
    functionDepth: 3
    functionLinenumber: 150507
    functionLinenumberEnd: 150547
    functionName: fts3SnippetNextCandidate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SnippetAdvance
    linkageType: ''
    returnType: int
    signature: int fts3SnippetNextCandidate(SnippetIter *pIter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150577,1
    - Dst: fts3GetDeltaPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - pIter
    - mCovered
    - piToken
    - piScore
    - pmCover
    - pmHighlight
    argTypes:
    - SnippetIter*
    - u64
    - int*
    - int*
    - u64*
    - u64*
    assertStmts:
    - condition: ( iCsr>=iStart )
      pos:
        line_end: 150576
        line_start: 150576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150600
      start: 150553
    functionDepth: 2
    functionLinenumber: 150553
    functionLinenumberEnd: 150600
    functionName: fts3SnippetDetails
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaPosition
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3SnippetDetails(\n  SnippetIter *pIter,             /* Snippet
      iterator */\n  u64 mCovered,                   /* Bitmask of phrases already
      covered */\n  int *piToken,                   /* OUT: First token of proposed
      snippet */\n  int *piScore,                   /* OUT: \"Score\" for this snippet
      */\n  u64 *pmCover,                   /* OUT: Bitmask of phrases covered */\n
      \ u64 *pmHighlight                /* OUT: Bitmask of terms to highlight */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150613,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150614,1
    - Dst: fts3GetDeltaPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150618,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150619,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts:
    - condition: "( rc!=SQLITE_OK || (\n       pPhrase->pList==0 && pPhrase->pHead==0
        && pPhrase->pTail==0 \n    ))"
      pos:
        line_end: 150626
        line_start: 150624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( rc==SQLITE_OK || pCsr==0 )
      pos:
        line_end: 150613
        line_start: 150613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iFirst>=0 )
      pos:
        line_end: 150618
        line_start: 150618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150631
      start: 150606
    functionDepth: 12
    functionLinenumber: 150606
    functionLinenumberEnd: 150631
    functionName: fts3SnippetFindPositions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhrasePoslist
    - assert
    - fts3GetDeltaPosition
    linkageType: ''
    returnType: int
    signature: int fts3SnippetFindPositions(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150664,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150669,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150678,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150682,1
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150692,1
    - Dst: fts3SnippetNextCandidate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150706,1
    - Dst: fts3SnippetDetails
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150711,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150712,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 7
    argNames:
    - nSnippet
    - pCsr
    - iCol
    - mCovered
    - pmSeen
    - pFragment
    - piScore
    argTypes:
    - int
    - Fts3Cursor*
    - int
    - u64
    - u64*
    - SnippetFragment*
    - int*
    assertStmts:
    - condition: ( iScore>=0 )
      pos:
        line_end: 150711
        line_start: 150711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150725
      start: 150648
    functionDepth: 4
    functionLinenumber: 150648
    functionLinenumberEnd: 150725
    functionName: fts3BestSnippet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3SnippetDetails
    - assert
    - sqlite3_free
    - fts3ExprLoadDoclists
    - sqlite3_malloc
    - fts3SnippetNextCandidate
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: "int fts3BestSnippet(\n  int nSnippet,                   /* Desired
      snippet length */\n  Fts3Cursor *pCsr,               /* Cursor to create snippet
      for */\n  int iCol,                       /* Index of column to create snippet
      from */\n  u64 mCovered,                   /* Mask of phrases already covered
      */\n  u64 *pmSeen,                    /* IN/OUT: Mask of phrases seen */\n  SnippetFragment
      *pFragment,     /* OUT: Best snippet found */\n  int *piScore                    /*
      OUT: Score of snippet pFragment */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150740,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150749,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150756,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150759,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pStr
    - zAppend
    - nAppend
    argTypes:
    - StrBuffer*
    - char*
    - int
    assertStmts:
    - condition: ( pStr->z!=0 && (pStr->nAlloc >= pStr->n+nAppend+1) )
      pos:
        line_end: 150755
        line_start: 150755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150764
      start: 150734
    functionDepth: 0
    functionLinenumber: 150734
    functionLinenumberEnd: 150764
    functionName: fts3StringAppend
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - assert
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3StringAppend(\n  StrBuffer *pStr,                /* Buffer
      to append to */\n  const char *zAppend,            /* Pointer to data to append
      to buffer */\n  int nAppend                     /* Size of zAppend in bytes
      (or -1) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150824,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150830,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150836,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 7
    argNames:
    - pTab
    - iLangid
    - nSnippet
    - zDoc
    - nDoc
    - piPos
    - pHlmask
    argTypes:
    - Fts3Table*
    - int
    - int
    - char*
    - int
    - int*
    - u64*
    assertStmts:
    - condition: ( nShift<=nDesired )
      pos:
        line_end: 150835
        line_start: 150835
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150844
      start: 150786
    functionDepth: 1
    functionLinenumber: 150786
    functionLinenumberEnd: 150844
    functionName: fts3SnippetShift
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3OpenTokenizer
    - sqlite3_tokenizer_module*::xClose
    - assert
    - sqlite3_tokenizer_module*::xNext
    linkageType: ''
    returnType: int
    signature: "int fts3SnippetShift(\n  Fts3Table *pTab,                /* FTS3 table
      snippet comes from */\n  int iLangid,                    /* Language id to use
      in tokenizing */\n  int nSnippet,                   /* Number of tokens desired
      for snippet */\n  const char *zDoc,               /* Document text to extract
      snippet from */\n  int nDoc,                       /* Size of buffer zDoc in
      bytes */\n  int *piPos,                     /* IN/OUT: First token of snippet
      */\n  u64 *pHlmask                    /* IN/OUT: Mask of tokens to highlight
      */\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150874,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150876,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150881,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150885,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150908,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150915,1
    - Dst: fts3SnippetShift
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150923,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150934,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150936,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150944,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150952,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150953,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150954,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150955,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:150960,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 9
    argNames:
    - pCsr
    - pFragment
    - iFragment
    - isLast
    - nSnippet
    - zOpen
    - zClose
    - zEllipsis
    - pOut
    argTypes:
    - Fts3Cursor*
    - SnippetFragment*
    - int
    - int
    - int
    - char*
    - char*
    - char*
    - StrBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150962
      start: 150850
    functionDepth: 15
    functionLinenumber: 150850
    functionLinenumberEnd: 150962
    functionName: fts3SnippetText
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SnippetShift
    - sqlite3_column_text
    - sqlite3_column_bytes
    - sqlite3Fts3OpenTokenizer
    - fts3StringAppend
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: "int fts3SnippetText(\n  Fts3Cursor *pCsr,               /* FTS3 Cursor
      */\n  SnippetFragment *pFragment,     /* Snippet to extract */\n  int iFragment,
      \                 /* Fragment number */\n  int isLast,                     /*
      True for final fragment in snippet */\n  int nSnippet,                   /*
      Number of tokens in extracted snippet */\n  const char *zOpen,              /*
      String inserted before highlighted term */\n  const char *zClose,             /*
      String inserted after highlighted term */\n  const char *zEllipsis,          /*
      String inserted between snippets */\n  StrBuffer *pOut                 /* Write
      output here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ppCollist
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150991
      start: 150978
    functionDepth: 0
    functionLinenumber: 150978
    functionLinenumberEnd: 150991
    functionName: fts3ColumnlistCount
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3ColumnlistCount(char **ppCollist)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151006,1
    - Dst: fts3ColumnlistCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151014,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151022,1
    - Dst: fts3GetVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151025,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pExpr
    - p
    argTypes:
    - Fts3Expr*
    - MatchInfo*
    assertStmts:
    - condition: ( p->flag==FTS3_MATCHINFO_LHITS_BM || p->flag==FTS3_MATCHINFO_LHITS
        )
      pos:
        line_end: 151005
        line_start: 151005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( *pIter==0x00 || *pIter==0x01 )
      pos:
        line_end: 151021
        line_start: 151021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151027
      start: 150996
    functionDepth: 1
    functionLinenumber: 150996
    functionLinenumberEnd: 151027
    functionName: fts3ExprLHits
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetVarint32
    - fts3ColumnlistCount
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts3ExprLHits(\n  Fts3Expr *pExpr,                /* Phrase expression
      node */\n  MatchInfo *p                    /* Matchinfo context */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151036,1
    - Dst: fts3ExprLHitGather
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151039,1
    - Dst: fts3ExprLHitGather
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151040,1
    - Dst: fts3ExprLHits
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pExpr
    - p
    argTypes:
    - Fts3Expr*
    - MatchInfo*
    assertStmts:
    - condition: ( (pExpr->pLeft==0)==(pExpr->pRight==0) )
      pos:
        line_end: 151035
        line_start: 151035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151045
      start: 151032
    functionDepth: 2
    functionLinenumber: 151032
    functionLinenumberEnd: 151045
    functionName: fts3ExprLHitGather
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprLHits
    - assert
    - fts3ExprLHitGather
    linkageType: ''
    returnType: void
    signature: "void fts3ExprLHitGather(\n  Fts3Expr *pExpr,\n  MatchInfo *p\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhraseStats
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151083
      start: 151074
    functionDepth: 32
    functionLinenumber: 151074
    functionLinenumberEnd: 151083
    functionName: fts3ExprGlobalHitsCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhraseStats
    linkageType: ''
    returnType: int
    signature: "int fts3ExprGlobalHitsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number (numbered
      from zero) */\n  void *pCtx                      /* Pointer to MatchInfo structure
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151102,1
    - Dst: fts3ColumnlistCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151111
      start: 151090
    functionDepth: 12
    functionLinenumber: 151090
    functionLinenumberEnd: 151111
    functionName: fts3ExprLocalHitsCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhrasePoslist
    - fts3ColumnlistCount
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLocalHitsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number */\n
      \ void *pCtx                      /* Pointer to MatchInfo structure */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 6
    argCount: 3
    argNames:
    - pTab
    - cArg
    - pzErr
    argTypes:
    - Fts3Table*
    - char
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151132
      start: 151113
    functionDepth: 4
    functionLinenumber: 151113
    functionLinenumberEnd: 151132
    functionName: fts3MatchinfoCheck
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3ErrMsg
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoCheck(\n  Fts3Table *pTab, \n  char cArg,\n  char
      **pzErr\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pInfo
    - cArg
    argTypes:
    - MatchInfo*
    - char
    assertStmts:
    - condition: ( cArg==FTS3_MATCHINFO_HITS )
      pos:
        line_end: 151158
        line_start: 151158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151165
      start: 151134
    functionDepth: 0
    functionLinenumber: 151134
    functionLinenumberEnd: 151165
    functionName: fts3MatchinfoSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3MatchinfoSize(MatchInfo *pInfo, char cArg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SelectDoctotal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151178,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151182,1
    - Dst: sqlite3_data_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151182,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151184,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pTab
    - ppStmt
    - pnDoc
    - paLen
    argTypes:
    - Fts3Table*
    - sqlite3_stmt**
    - sqlite3_int64*
    - char**
    assertStmts:
    - condition: ( sqlite3_data_count(pStmt)==1 )
      pos:
        line_end: 151181
        line_start: 151181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151191
      start: 151167
    functionDepth: 29
    functionLinenumber: 151167
    functionLinenumberEnd: 151191
    functionName: fts3MatchinfoSelectDoctotal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SelectDoctotal
    - assert
    - sqlite3Fts3GetVarint
    - sqlite3_data_count
    - sqlite3_column_blob
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoSelectDoctotal(\n  Fts3Table *pTab,\n  sqlite3_stmt
      **ppStmt,\n  sqlite3_int64 *pnDoc,\n  const char **paLen\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151221
      start: 151213
    functionDepth: 0
    functionLinenumber: 151213
    functionLinenumberEnd: 151221
    functionName: fts3MatchinfoLcsCb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoLcsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number (numbered
      from zero) */\n  void *pCtx                      /* Pointer to MatchInfo structure
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - LcsIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151243
      start: 151228
    functionDepth: 2
    functionLinenumber: 151228
    functionLinenumberEnd: 151243
    functionName: fts3LcsIteratorAdvance
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: int fts3LcsIteratorAdvance(LcsIterator *pIter)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151265,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151267,1
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151268,1
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151283,1
    - Dst: fts3LcsIteratorAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151287,1
    - Dst: fts3LcsIteratorAdvance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151313,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151319,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - pCsr
    - pInfo
    argTypes:
    - Fts3Cursor*
    - MatchInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151321
      start: 151256
    functionDepth: 12
    functionLinenumber: 151256
    functionLinenumberEnd: 151321
    functionName: fts3MatchinfoLcs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3LcsIteratorAdvance
    - sqlite3_free
    - sqlite3_malloc
    - sqlite3Fts3EvalPhrasePoslist
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: int fts3MatchinfoLcs(Fts3Cursor *pCsr, MatchInfo *pInfo)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151365,1
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151375,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151381,1
    - Dst: sqlite3Fts3SelectDocsize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151391,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151394,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151397,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151401,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151406,1
    - Dst: fts3MatchinfoLcs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151408,1
    - Dst: fts3MatchinfoSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151414,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151415,1
    - Dst: fts3ExprLHitGather
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151416,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151422,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151424,1
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151428,1
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151431,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151432,1
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151435,1
    - Dst: fts3MatchinfoSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151440,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151443,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 4
    argNames:
    - pCsr
    - bGlobal
    - pInfo
    - zArg
    argTypes:
    - Fts3Cursor*
    - int
    - MatchInfo*
    - char*
    assertStmts:
    - condition: ( zArg[i]==FTS3_MATCHINFO_HITS )
      pos:
        line_end: 151421
        line_start: 151421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151445
      start: 151340
    functionDepth: 30
    functionLinenumber: 151340
    functionLinenumberEnd: 151445
    functionName: fts3MatchinfoValues
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3MatchinfoSize
    - memset
    - assert
    - fts3ExprLHitGather
    - sqlite3Fts3EvalTestDeferred
    - fts3ExprLoadDoclists
    - fts3MatchinfoSelectDoctotal
    - fts3MatchinfoLcs
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SelectDocsize
    - sqlite3_reset
    - sqlite3_column_blob
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoValues(\n  Fts3Cursor *pCsr,               /* FTS3
      cursor object */\n  int bGlobal,                    /* True to grab the global
      stats */\n  MatchInfo *pInfo,               /* Matchinfo context object */\n
      \ const char *zArg                /* Matchinfo format string */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151465,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151472,1
    - Dst: sqlite3Fts3MIBufferFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151473,1
    - Dst: fts3ExprPhraseCount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151487,1
    - Dst: fts3MatchinfoCheck
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151493,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151494,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151495,1
    - Dst: fts3MatchinfoSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151498,1
    - Dst: fts3MIBufferNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151502,1
    - Dst: fts3MIBufferAlloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151510,1
    - Dst: fts3MatchinfoValues
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151519,1
    - Dst: fts3MIBufferSetGlobal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151521,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151526,1
    - Dst: xDestroyOut
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151527,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151530,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - pCtx
    - pCsr
    - zArg
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151532
      start: 151452
    functionDepth: 31
    functionLinenumber: 151452
    functionLinenumberEnd: 151532
    functionName: fts3GetMatchinfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3MatchinfoSize
    - memset
    - fts3MatchinfoValues
    - sqlite3_free
    - xDestroyOut
    - fts3ExprPhraseCount
    - fts3MIBufferAlloc
    - fts3MIBufferSetGlobal
    - fts3MIBufferNew
    - strcmp
    - fts3MatchinfoCheck
    - sqlite3_result_blob
    - sqlite3_result_error
    - sqlite3_result_error_code
    - sqlite3Fts3MIBufferFree
    linkageType: ''
    returnType: void
    signature: "void fts3GetMatchinfo(\n  sqlite3_context *pCtx,        /* Return
      results here */\n  Fts3Cursor *pCsr,               /* FTS3 Cursor object */\n
      \ const char *zArg                /* Second argument to matchinfo() function
      */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151564,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151585,1
    - Dst: fts3BestSnippet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151597,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151613,1
    - Dst: SizeofArray
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151614,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151617,1
    - Dst: fts3SnippetText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151620,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151626,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151628,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151629,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151631,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 7
    argNames:
    - pCtx
    - pCsr
    - zStart
    - zEnd
    - zEllipsis
    - iCol
    - nToken
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( (mCovered&mSeen)==mCovered )
      pos:
        line_end: 151612
        line_start: 151612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nFToken>0 )
      pos:
        line_end: 151616
        line_start: 151616
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151633
      start: 151537
    functionDepth: 27
    functionLinenumber: 151537
    functionLinenumberEnd: 151633
    functionName: sqlite3Fts3Snippet
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - fts3BestSnippet
    - SizeofArray
    - assert
    - sqlite3_free
    - sqlite3_result_text
    - fts3SnippetText
    - sqlite3_result_error_code
    - sqlite3Fts3SegmentsClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Snippet(\n  sqlite3_context *pCtx,          /*
      SQLite function call context */\n  Fts3Cursor *pCsr,               /* Cursor
      object */\n  const char *zStart,             /* Snippet start text - \"<b>\"
      */\n  const char *zEnd,               /* Snippet end text - \"</b>\" */\n  const
      char *zEllipsis,          /* Snippet ellipsis text - \"<b>...</b>\" */\n  int
      iCol,                       /* Extract snippet from this column */\n  int nToken
      \                     /* Approximate number of tokens in snippet */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151664,1
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151665,1
    - Dst: fts3GetDeltaPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151668,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts:
    - condition: ( iPos>=0 )
      pos:
        line_end: 151668
        line_start: 151668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151680
      start: 151656
    functionDepth: 12
    functionLinenumber: 151656
    functionLinenumberEnd: 151680
    functionName: fts3ExprTermOffsetInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhrasePoslist
    - UNUSED_PARAMETER
    - assert
    - fts3GetDeltaPosition
    linkageType: ''
    returnType: int
    signature: int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151698,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151702,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151703,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151706,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151710,1
    - Dst: fts3ExprIterate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151737,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151745,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151746,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151748,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151756,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151761,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151779,1
    - Dst: fts3GetDeltaPosition
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151783,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151786,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151790,1
    - Dst: fts3StringAppend
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151793,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151803,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151808,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151809,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151810,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151812,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151813,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151815,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - pCtx
    - pCsr
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    assertStmts:
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 151808
        line_start: 151808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCsr->isRequireSeek==0 )
      pos:
        line_end: 151702
        line_start: 151702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iCurrent<=iMinPos )
      pos:
        line_end: 151778
        line_start: 151778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 151818
      start: 151685
    functionDepth: 27
    functionLinenumber: 151685
    functionLinenumberEnd: 151818
    functionName: sqlite3Fts3Offsets
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3SegmentsClose
    - memset
    - assert
    - sqlite3_free
    - fts3ExprLoadDoclists
    - fts3GetDeltaPosition
    - sqlite3_result_text
    - sqlite3_column_text
    - sqlite3_malloc
    - sqlite3_column_bytes
    - sqlite3Fts3OpenTokenizer
    - fts3StringAppend
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_result_error_code
    - sqlite3_column_type
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_snprintf
    - fts3ExprIterate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Offsets(\n  sqlite3_context *pCtx,          /*
      SQLite function call context */\n  Fts3Cursor *pCsr                /* Cursor
      object */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151838,1
    - Dst: fts3GetMatchinfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151842,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pContext
    - pCsr
    - zArg
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151845
      start: 151823
    functionDepth: 32
    functionLinenumber: 151823
    functionLinenumberEnd: 151845
    functionName: sqlite3Fts3Matchinfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3SegmentsClose
    - sqlite3_result_blob
    - fts3GetMatchinfo
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Matchinfo(\n  sqlite3_context *pContext,
      \     /* Function call context */\n  Fts3Cursor *pCsr,               /* FTS3
      table cursor */\n  const char *zArg                /* Second arg to matchinfo()
      function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - zTerm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151907
      start: 151896
    functionDepth: 0
    functionLinenumber: 151896
    functionLinenumberEnd: 151907
    functionName: READ_UTF8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF8(zIn, zTerm, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151927
      start: 151908
    functionDepth: 0
    functionLinenumber: 151908
    functionLinenumberEnd: 151927
    functionName: WRITE_UTF8
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF8(zOut, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151957,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151961
      start: 151954
    functionDepth: 3
    functionLinenumber: 151954
    functionLinenumberEnd: 151961
    functionName: unicodeDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int unicodeDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151992,1
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151995,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151996,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151996,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151997,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:151998,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152008,1
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152014,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152015,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152016,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - p
    - bAlnum
    - zIn
    - nIn
    argTypes:
    - unicode_tokenizer*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( bAlnum==0 || bAlnum==1 )
      pos:
        line_end: 151991
        line_start: 151991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( (sqlite3FtsUnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 )
      pos:
        line_end: 151995
        line_start: 151995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 152030
      start: 151981
    functionDepth: 1
    functionLinenumber: 151981
    functionLinenumberEnd: 152030
    functionName: unicodeAddExceptions
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_realloc
    - sqlite3FtsUnicodeIsalnum
    - sqlite3FtsUnicodeIsdiacritic
    - READ_UTF8
    linkageType: ''
    returnType: int
    signature: "int unicodeAddExceptions(\n  unicode_tokenizer *p,           /* Tokenizer
      to add exceptions to */\n  int bAlnum,                     /* Replace Isalnum()
      return value with this */\n  const char *zIn,                /* Array of characters
      to make exceptions */\n  int nIn                         /* Length of z in bytes
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - unicode_tokenizer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152054
      start: 152035
    functionDepth: 0
    functionLinenumber: 152035
    functionLinenumberEnd: 152054
    functionName: unicodeIsException
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unicodeIsException(unicode_tokenizer *p, int iCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152061,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152061,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152062,1
    - Dst: unicodeIsException
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - unicode_tokenizer*
    - int
    assertStmts:
    - condition: ( (sqlite3FtsUnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 )
      pos:
        line_end: 152060
        line_start: 152060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 152063
      start: 152060
    functionDepth: 1
    functionLinenumber: 152060
    functionLinenumberEnd: 152063
    functionName: unicodeIsAlnum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FtsUnicodeIsalnum
    - unicodeIsException
    - assert
    linkageType: ''
    returnType: int
    signature: int unicodeIsAlnum(unicode_tokenizer *p, int iCode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152077,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152079,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152084,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152086,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152089,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152092,1
    - Dst: unicodeAddExceptions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152093,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152095,1
    - Dst: unicodeAddExceptions
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152096,1
    - Dst: unicodeDestroy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - nArg
    - azArg
    - pp
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152110
      start: 152068
    functionDepth: 4
    functionLinenumber: 152068
    functionLinenumberEnd: 152110
    functionName: unicodeCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - unicodeDestroy
    - memset
    - unicodeAddExceptions
    - sqlite3_malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int unicodeCreate(\n  int nArg,                       /* Size of array
      argv[] */\n  const char * const *azArg,      /* Tokenizer creation arguments
      */\n  sqlite3_tokenizer **pp          /* OUT: New tokenizer handle */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152126,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152130,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152136,1
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - p
    - aInput
    - nInput
    - pp
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152144
      start: 152118
    functionDepth: 1
    functionLinenumber: 152118
    functionLinenumberEnd: 152144
    functionName: unicodeOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - memset
    - strlen
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int unicodeOpen(\n  sqlite3_tokenizer *p,           /* The tokenizer
      */\n  const char *aInput,             /* Input string */\n  int nInput,                     /*
      Size of string aInput in bytes */\n  sqlite3_tokenizer_cursor **pp   /* OUT:
      New cursor object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152152,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152155
      start: 152150
    functionDepth: 3
    functionLinenumber: 152150
    functionLinenumberEnd: 152155
    functionName: unicodeClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int unicodeClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152182,1
    - Dst: unicodeIsAlnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152183,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152194,1
    - Dst: sqlite3FtsUnicodeFold
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152203,1
    - Dst: WRITE_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152205,1
    - Dst: READ_UTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152210,1
    - Dst: unicodeIsAlnum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152211,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 6
    argNames:
    - pC
    - paToken
    - pnToken
    - piStart
    - piEnd
    - piPos
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152223
      start: 152161
    functionDepth: 2
    functionLinenumber: 152161
    functionLinenumberEnd: 152223
    functionName: unicodeNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc
    - unicodeIsAlnum
    - sqlite3FtsUnicodeIsdiacritic
    - WRITE_UTF8
    - READ_UTF8
    - sqlite3FtsUnicodeFold
    linkageType: ''
    returnType: int
    signature: "int unicodeNext(\n  sqlite3_tokenizer_cursor *pC,   /* Cursor returned
      by simpleOpen */\n  const char **paToken,           /* OUT: Token text */\n
      \ int *pnToken,                   /* OUT: Number of bytes at *paToken */\n  int
      *piStart,                   /* OUT: Starting offset of token */\n  int *piEnd,
      \                    /* OUT: Ending offset of token */\n  int *piPos                      /*
      OUT: Position integer of token */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152240
      start: 152229
    functionDepth: 0
    functionLinenumber: 152229
    functionLinenumberEnd: 152240
    functionName: sqlite3Fts3UnicodeTokenizer
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3UnicodeTokenizer(sqlite3_tokenizer_module
      const **ppModule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152392,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts:
    - condition: ( aEntry[0]<key )
      pos:
        line_end: 152391
        line_start: 152391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( key>=aEntry[iRes] )
      pos:
        line_end: 152392
        line_start: 152392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 152397
      start: 152276
    functionDepth: 0
    functionLinenumber: 152276
    functionLinenumberEnd: 152397
    functionName: sqlite3FtsUnicodeIsalnum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeIsalnum(int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts:
    - condition: ( key>=aDia[iRes] )
      pos:
        line_end: 152448
        line_start: 152448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 152451
      start: 152408
    functionDepth: 0
    functionLinenumber: 152408
    functionLinenumberEnd: 152451
    functionName: remove_diacritic
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_diacritic(int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152465
      start: 152458
    functionDepth: 0
    functionLinenumber: 152458
    functionLinenumberEnd: 152465
    functionName: sqlite3FtsUnicodeIsdiacritic
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeIsdiacritic(int c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152571,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152572,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152591,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152597,1
    - Dst: remove_diacritic
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:152601,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - c
    - bRemoveDiacritic
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( c>=0 )
      pos:
        line_end: 152570
        line_start: 152570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( ret>0 )
      pos:
        line_end: 152596
        line_start: 152596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 )
      pos:
        line_end: 152571
        line_start: 152571
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( iRes<0 || c>=aEntry[iRes].iCode )
      pos:
        line_end: 152590
        line_start: 152590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 152609
      start: 152477
    functionDepth: 1
    functionLinenumber: 152477
    functionLinenumberEnd: 152609
    functionName: sqlite3FtsUnicodeFold
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - remove_diacritic
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeFold(int c, int bRemoveDiacritic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152694
      start: 152693
    functionDepth: 0
    functionLinenumber: 152693
    functionLinenumberEnd: 152694
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152813
      start: 152812
    functionDepth: 0
    functionLinenumber: 152812
    functionLinenumberEnd: 152813
    functionName: RTREE_MINCELLS
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_MINCELLS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152814
      start: 152813
    functionDepth: 0
    functionLinenumber: 152813
    functionLinenumberEnd: 152814
    functionName: RTREE_REINSERT
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_REINSERT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152854
      start: 152853
    functionDepth: 0
    functionLinenumber: 152853
    functionLinenumberEnd: 152854
    functionName: RTREE_OF_CURSOR
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_OF_CURSOR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coord
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152873
      start: 152872
    functionDepth: 0
    functionLinenumber: 152872
    functionLinenumberEnd: 152873
    functionName: DCOORD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCOORD(coord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coord
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152879
      start: 152874
    functionDepth: 0
    functionLinenumber: 152874
    functionLinenumberEnd: 152879
    functionName: DCOORD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCOORD(coord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pNode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152919
      start: 152918
    functionDepth: 0
    functionLinenumber: 152918
    functionLinenumberEnd: 152919
    functionName: NCELL
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCELL(pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152974
      start: 152973
    functionDepth: 0
    functionLinenumber: 152973
    functionLinenumberEnd: 152974
    functionName: MAX
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152977
      start: 152976
    functionDepth: 0
    functionLinenumber: 152976
    functionLinenumberEnd: 152977
    functionName: MIN
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152985
      start: 152983
    functionDepth: 0
    functionLinenumber: 152983
    functionLinenumberEnd: 152985
    functionName: readInt16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int readInt16(u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pCoord
    argTypes:
    - u8*
    - RtreeCoord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152993
      start: 152986
    functionDepth: 0
    functionLinenumber: 152986
    functionLinenumberEnd: 152993
    functionName: readCoord
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void readCoord(u8 *p, RtreeCoord *pCoord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153005
      start: 152994
    functionDepth: 0
    functionLinenumber: 152994
    functionLinenumberEnd: 153005
    functionName: readInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: i64 readInt64(u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153016
      start: 153012
    functionDepth: 0
    functionLinenumber: 153012
    functionLinenumberEnd: 153016
    functionName: writeInt16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int writeInt16(u8 *p, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153019,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pCoord
    argTypes:
    - u8*
    - RtreeCoord*
    assertStmts:
    - condition: ( sizeof(RtreeCoord)==4 )
      pos:
        line_end: 153018
        line_start: 153018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( sizeof(u32)==4 )
      pos:
        line_end: 153019
        line_start: 153019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153027
      start: 153017
    functionDepth: 0
    functionLinenumber: 153017
    functionLinenumberEnd: 153027
    functionName: writeCoord
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int writeCoord(u8 *p, RtreeCoord *pCoord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - u8*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153038
      start: 153028
    functionDepth: 0
    functionLinenumber: 153028
    functionLinenumberEnd: 153038
    functionName: writeInt64
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int writeInt64(u8 *p, i64 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153047
      start: 153043
    functionDepth: 0
    functionLinenumber: 153043
    functionLinenumberEnd: 153047
    functionName: nodeReference
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nodeReference(RtreeNode *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153055
      start: 153052
    functionDepth: 0
    functionLinenumber: 153052
    functionLinenumberEnd: 153055
    functionName: nodeZero
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void nodeZero(Rtree *pRtree, RtreeNode *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iNode
    argTypes:
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153063
      start: 153061
    functionDepth: 0
    functionLinenumber: 153061
    functionLinenumberEnd: 153063
    functionName: nodeHash
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nodeHash(i64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodeHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pRtree
    - iNode
    argTypes:
    - Rtree*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153073
      start: 153069
    functionDepth: 1
    functionLinenumber: 153069
    functionLinenumberEnd: 153073
    functionName: nodeHashLookup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHash
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *nodeHashLookup(Rtree *pRtree, i64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153080,1
    - Dst: nodeHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: ( pNode->pNext==0 )
      pos:
        line_end: 153079
        line_start: 153079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153084
      start: 153078
    functionDepth: 1
    functionLinenumber: 153078
    functionLinenumberEnd: 153084
    functionName: nodeHashInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHash
    - assert
    linkageType: ''
    returnType: void
    signature: void nodeHashInsert(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nodeHash
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153092,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: (*pp)
      pos:
        line_end: 153092
        line_start: 153092
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153097
      start: 153089
    functionDepth: 1
    functionLinenumber: 153089
    functionLinenumberEnd: 153097
    functionName: nodeHashDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHash
    - assert
    linkageType: ''
    returnType: void
    signature: void nodeHashDelete(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153107,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153109,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pRtree
    - pParent
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153117
      start: 153105
    functionDepth: 1
    functionLinenumber: 153105
    functionLinenumberEnd: 153117
    functionName: nodeNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - nodeReference
    - sqlite3_malloc
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153135,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153136,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153138,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153146,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153147,1
    - Dst: sqlite3_column_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153149,1
    - Dst: sqlite3_column_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153150,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153151,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153161,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153162,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153166,1
    - Dst: readInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153176,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153187,1
    - Dst: nodeHashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153194,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153200,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - pRtree
    - iNode
    - pParent
    - ppNode
    argTypes:
    - Rtree*
    - i64
    - RtreeNode*
    - RtreeNode**
    assertStmts:
    - condition: ( !pParent || !pNode->pParent || pNode->pParent==pParent )
      pos:
        line_end: 153135
        line_start: 153135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153205
      start: 153122
    functionDepth: 26
    functionLinenumber: 153122
    functionLinenumberEnd: 153205
    functionName: nodeAcquire
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHashInsert
    - assert
    - sqlite3_free
    - sqlite3_step
    - readInt16
    - NCELL
    - sqlite3_column_bytes
    - nodeHashLookup
    - sqlite3_malloc
    - memcpy
    - nodeReference
    - sqlite3_reset
    - sqlite3_column_blob
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int nodeAcquire(\n  Rtree *pRtree,             /* R-tree structure
      */\n  i64 iNode,                 /* Node number to load */\n  RtreeNode *pParent,
      \       /* Either the parent node or NULL */\n  RtreeNode **ppNode         /*
      OUT: Acquired node */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153218,1
    - Dst: writeCoord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153223
      start: 153210
    functionDepth: 1
    functionLinenumber: 153210
    functionLinenumberEnd: 153223
    functionName: nodeOverwriteCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - writeCoord
    - writeInt64
    linkageType: ''
    returnType: void
    signature: "void nodeOverwriteCell(\n  Rtree *pRtree,             /* The overall
      R-Tree */\n  RtreeNode *pNode,          /* The node into which the cell is to
      be written */\n  RtreeCell *pCell,          /* The cell to write */\n  int iCell
      \                 /* Index into pNode into which pCell is written */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153231,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153232,1
    - Dst: writeInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153233,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153235
      start: 153228
    functionDepth: 1
    functionLinenumber: 153228
    functionLinenumberEnd: 153235
    functionName: nodeDeleteCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NCELL
    - writeInt16
    - memmove
    linkageType: ''
    returnType: void
    signature: void nodeDeleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153252,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153254,1
    - Dst: nodeOverwriteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153256,1
    - Dst: writeInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    assertStmts:
    - condition: ( nCell<=nMaxCell )
      pos:
        line_end: 153253
        line_start: 153253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153262
      start: 153243
    functionDepth: 2
    functionLinenumber: 153243
    functionLinenumberEnd: 153262
    functionName: nodeInsertCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeOverwriteCell
    - NCELL
    - writeInt16
    - assert
    linkageType: ''
    returnType: int
    signature: "int nodeInsertCell(\n  Rtree *pRtree,                /* The overall
      R-Tree */\n  RtreeNode *pNode,             /* Write new cell into this node
      */\n  RtreeCell *pCell              /* The cell to be inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153272,1
    - Dst: sqlite3_bind_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153274,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153276,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153277,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153279,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153281,1
    - Dst: nodeHashInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153286
      start: 153267
    functionDepth: 26
    functionLinenumber: 153267
    functionLinenumberEnd: 153286
    functionName: nodeWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHashInsert
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_last_insert_rowid
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int nodeWrite(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153295,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153302,1
    - Dst: nodeWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153305,1
    - Dst: nodeHashDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153307,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: ( pNode->nRef>0 )
      pos:
        line_end: 153294
        line_start: 153294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153312
      start: 153292
    functionDepth: 27
    functionLinenumber: 153292
    functionLinenumberEnd: 153312
    functionName: nodeRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_free
    - assert
    - nodeHashDelete
    - nodeWrite
    - nodeRelease
    linkageType: ''
    returnType: int
    signature: int nodeRelease(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153324,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153324,1
    - Dst: readInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts:
    - condition: ( iCell<NCELL(pNode) )
      pos:
        line_end: 153323
        line_start: 153323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153326
      start: 153319
    functionDepth: 1
    functionLinenumber: 153319
    functionLinenumberEnd: 153326
    functionName: nodeGetRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NCELL
    - readInt64
    - assert
    linkageType: ''
    returnType: i64
    signature: "i64 nodeGetRowid(\n  Rtree *pRtree,       /* The overall R-Tree */\n
      \ RtreeNode *pNode,    /* The node from which to extract the ID */\n  int iCell
      \           /* The cell index from which to extract the ID */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readCoord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pRtree
    - pNode
    - iCell
    - iCoord
    - pCoord
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - int
    - RtreeCoord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153339
      start: 153331
    functionDepth: 1
    functionLinenumber: 153331
    functionLinenumberEnd: 153339
    functionName: nodeGetCoord
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - readCoord
    linkageType: ''
    returnType: void
    signature: "void nodeGetCoord(\n  Rtree *pRtree,               /* The overall
      R-Tree */\n  RtreeNode *pNode,            /* The node from which to extract
      a coordinate */\n  int iCell,                   /* The index of the cell within
      the node */\n  int iCoord,                  /* Which coordinate to extract */\n
      \ RtreeCoord *pCoord           /* OUT: Space to write result to */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153354,1
    - Dst: readCoord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iCell
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153360
      start: 153345
    functionDepth: 2
    functionLinenumber: 153345
    functionLinenumberEnd: 153360
    functionName: nodeGetCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - readCoord
    - nodeGetRowid
    linkageType: ''
    returnType: void
    signature: "void nodeGetCell(\n  Rtree *pRtree,               /* The overall R-Tree
      */\n  RtreeNode *pNode,            /* The node containing the cell to be read
      */\n  int iCell,                   /* Index of the cell within the node */\n
      \ RtreeCell *pCell             /* OUT: Write the cell contents here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153381
      start: 153373
    functionDepth: 1
    functionLinenumber: 153373
    functionLinenumberEnd: 153381
    functionName: rtreeCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeInit
    linkageType: ''
    returnType: int
    signature: "int rtreeCreate(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153394
      start: 153386
    functionDepth: 1
    functionLinenumber: 153386
    functionLinenumberEnd: 153394
    functionName: rtreeConnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeInit
    linkageType: ''
    returnType: int
    signature: "int rtreeConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pRtree
    argTypes:
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153401
      start: 153399
    functionDepth: 0
    functionLinenumber: 153399
    functionLinenumberEnd: 153401
    functionName: rtreeReference
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rtreeReference(Rtree *pRtree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153410,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153411,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153412,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153413,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153414,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153415,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153416,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153417,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153418,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pRtree
    argTypes:
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153421
      start: 153407
    functionDepth: 25
    functionLinenumber: 153407
    functionLinenumberEnd: 153421
    functionName: rtreeRelease
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rtreeRelease(Rtree *pRtree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153429
      start: 153426
    functionDepth: 26
    functionLinenumber: 153426
    functionLinenumberEnd: 153429
    functionName: rtreeDisconnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeRelease
    linkageType: ''
    returnType: int
    signature: int rtreeDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153437,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153448,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153449,1
    - Dst: rtreeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153456
      start: 153434
    functionDepth: 27
    functionLinenumber: 153434
    functionLinenumberEnd: 153456
    functionName: rtreeDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeRelease
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_exec
    linkageType: ''
    returnType: int
    signature: int rtreeDestroy(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153465,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153474
      start: 153461
    functionDepth: 0
    functionLinenumber: 153461
    functionLinenumberEnd: 153474
    functionName: rtreeOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int rtreeOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_rtree_query_info*::xDelUser
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153486,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153487,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153493
      start: 153480
    functionDepth: 3
    functionLinenumber: 153480
    functionLinenumberEnd: 153493
    functionName: freeCursorConstraints
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_rtree_query_info*::xDelUser
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void freeCursorConstraints(RtreeCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeCursorConstraints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153502,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153503,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153504,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153507
      start: 153498
    functionDepth: 28
    functionLinenumber: 153498
    functionLinenumberEnd: 153507
    functionName: rtreeClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_free
    - freeCursorConstraints
    linkageType: ''
    returnType: int
    signature: int rtreeClose(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153518
      start: 153515
    functionDepth: 0
    functionLinenumber: 153515
    functionLinenumberEnd: 153518
    functionName: rtreeEof
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rtreeEof(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - eInt
    - ','
    - a
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153538
      start: 153537
    functionDepth: 0
    functionLinenumber: 153537
    functionLinenumberEnd: 153538
    functionName: RTREE_DECODE_COORD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_DECODE_COORD(eInt, a, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - eInt
    - ','
    - a
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153546
      start: 153545
    functionDepth: 0
    functionLinenumber: 153545
    functionLinenumberEnd: 153546
    functionName: RTREE_DECODE_COORD
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_DECODE_COORD(eInt, a, r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153577,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153578,1
    - Dst: readInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153581,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153585,1
    - Dst: RtreeConstraint*::u::xGeom
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153588,1
    - Dst: RtreeConstraint*::u::xQueryFunc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153597,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 6
    argNames:
    - pConstraint
    - eInt
    - pCellData
    - pSearch
    - prScore
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - RtreeSearchPoint*
    - sqlite3_rtree_dbl*
    - int*
    assertStmts:
    - condition: ( pConstraint->op==RTREE_MATCH || pConstraint->op==RTREE_QUERY )
      pos:
        line_end: 153576
        line_start: 153576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nCoord==2 || nCoord==4 || nCoord==6 || nCoord==8 || nCoord==10
        )
      pos:
        line_end: 153577
        line_start: 153577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153604
      start: 153563
    functionDepth: 1
    functionLinenumber: 153563
    functionLinenumberEnd: 153604
    functionName: rtreeCallbackConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RtreeConstraint*::u::xQueryFunc
    - assert
    - readInt64
    - RTREE_DECODE_COORD
    - RtreeConstraint*::u::xGeom
    linkageType: ''
    returnType: int
    signature: "int rtreeCallbackConstraint(\n  RtreeConstraint *pConstraint,  /*
      The constraint to test */\n  int eInt,                      /* True if RTree
      holding integer coordinates */\n  u8 *pCellData,                 /* Raw cell
      content */\n  RtreeSearchPoint *pSearch,     /* Container of this cell */\n
      \ sqlite3_rtree_dbl *prScore,    /* OUT: score for the cell */\n  int *peWithin
      \                 /* OUT: visibility of the cell */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153624,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153630,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - p
    - eInt
    - pCellData
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - int*
    assertStmts:
    - condition: "(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE \n      ||
        p->op==RTREE_GT || p->op==RTREE_EQ )"
      pos:
        line_end: 153624
        line_start: 153623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153643
      start: 153611
    functionDepth: 1
    functionLinenumber: 153611
    functionLinenumberEnd: 153643
    functionName: rtreeNonleafConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RTREE_DECODE_COORD
    - assert
    linkageType: ''
    returnType: void
    signature: "void rtreeNonleafConstraint(\n  RtreeConstraint *p,        /* The
      constraint to test */\n  int eInt,                  /* True if RTree holds integer
      coordinates */\n  u8 *pCellData,             /* Raw cell content as appears
      on disk */\n  int *peWithin              /* Adjust downward, as appropriate
      */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153663,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153666,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 4
    argNames:
    - p
    - eInt
    - pCellData
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - int*
    assertStmts:
    - condition: "(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE \n      ||
        p->op==RTREE_GT || p->op==RTREE_EQ )"
      pos:
        line_end: 153663
        line_start: 153662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153675
      start: 153655
    functionDepth: 1
    functionLinenumber: 153655
    functionLinenumberEnd: 153675
    functionName: rtreeLeafConstraint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RTREE_DECODE_COORD
    - assert
    linkageType: ''
    returnType: void
    signature: "void rtreeLeafConstraint(\n  RtreeConstraint *p,        /* The constraint
      to test */\n  int eInt,                  /* True if RTree holds integer coordinates
      */\n  u8 *pCellData,             /* Raw cell content as appears on disk */\n
      \ int *peWithin              /* Adjust downward, as appropriate */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153688,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153689,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iRowid
    - piIndex
    argTypes:
    - Rtree*
    - RtreeNode*
    - i64
    - int*
    assertStmts:
    - condition: ( nCell<200 )
      pos:
        line_end: 153688
        line_start: 153688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153697
      start: 153681
    functionDepth: 2
    functionLinenumber: 153681
    functionLinenumberEnd: 153697
    functionName: nodeRowidIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - NCELL
    - assert
    - nodeGetRowid
    linkageType: ''
    returnType: int
    signature: "int nodeRowidIndex(\n  Rtree *pRtree, \n  RtreeNode *pNode, \n  i64
      iRowid,\n  int *piIndex\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nodeRowidIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - piIndex
    argTypes:
    - Rtree*
    - RtreeNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153710
      start: 153703
    functionDepth: 3
    functionLinenumber: 153703
    functionLinenumberEnd: 153710
    functionName: nodeParentIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRowidIndex
    linkageType: ''
    returnType: int
    signature: int nodeParentIndex(Rtree *pRtree, RtreeNode *pNode, int *piIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - RtreeSearchPoint*
    - RtreeSearchPoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153731
      start: 153722
    functionDepth: 0
    functionLinenumber: 153722
    functionLinenumberEnd: 153731
    functionName: rtreeSearchPointCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int rtreeSearchPointCompare(\n  const RtreeSearchPoint *pA,\n  const
      RtreeSearchPoint *pB\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153738,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153744,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - p
    - i
    - j
    argTypes:
    - RtreeCursor*
    - int
    - int
    assertStmts:
    - condition: ( i<j )
      pos:
        line_end: 153737
        line_start: 153737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153752
      start: 153736
    functionDepth: 28
    functionLinenumber: 153736
    functionLinenumberEnd: 153752
    functionName: rtreeSearchPointSwap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RTREE_OF_CURSOR
    - nodeRelease
    - assert
    linkageType: ''
    returnType: void
    signature: void rtreeSearchPointSwap(RtreeCursor *p, int i, int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153759
      start: 153757
    functionDepth: 0
    functionLinenumber: 153757
    functionLinenumberEnd: 153759
    functionName: rtreeSearchPointFirst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: RtreeSearchPoint *rtreeSearchPointFirst(RtreeCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153767,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153768,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153770,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153772,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pCur
    - pRC
    argTypes:
    - RtreeCursor*
    - int*
    assertStmts:
    - condition: ( ii==0 || ii==1 )
      pos:
        line_end: 153766
        line_start: 153766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pCur->bPoint || pCur->nPoint )
      pos:
        line_end: 153767
        line_start: 153767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRC!=0 )
      pos:
        line_end: 153769
        line_start: 153769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153775
      start: 153764
    functionDepth: 27
    functionLinenumber: 153764
    functionLinenumberEnd: 153775
    functionName: rtreeNodeOfFirstSearchPoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RTREE_OF_CURSOR
    - nodeAcquire
    - assert
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *rtreeNodeOfFirstSearchPoint(RtreeCursor *pCur, int *pRC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153789,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153798,1
    - Dst: rtreeSearchPointCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153803,1
    - Dst: rtreeSearchPointSwap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - pCur
    - rScore
    - iLevel
    argTypes:
    - RtreeCursor*
    - RtreeDValue
    - u8
    assertStmts:
    - condition: ( iLevel<=RTREE_MAX_DEPTH )
      pos:
        line_end: 153797
        line_start: 153797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153809
      start: 153780
    functionDepth: 29
    functionLinenumber: 153780
    functionLinenumberEnd: 153809
    functionName: rtreeEnqueue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointCompare
    - rtreeSearchPointSwap
    - assert
    - sqlite3_realloc
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: "RtreeSearchPoint *rtreeEnqueue(\n  RtreeCursor *pCur,    /* The cursor
      */\n  RtreeDValue rScore,   /* Score for the new search point */\n  u8 iLevel
      \            /* Level for the new search point */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153821,1
    - Dst: rtreeEnqueue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153829,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153833,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153836,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153836,1
    - Dst: rtreeEnqueue
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153846,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pCur
    - rScore
    - iLevel
    argTypes:
    - RtreeCursor*
    - RtreeDValue
    - u8
    assertStmts:
    - condition: ( pCur->aNode[ii]==0 )
      pos:
        line_end: 153832
        line_start: 153832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153848
      start: 153815
    functionDepth: 30
    functionLinenumber: 153815
    functionLinenumberEnd: 153848
    functionName: rtreeSearchPointNew
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointFirst
    - assert
    - rtreeEnqueue
    - RTREE_OF_CURSOR
    - nodeRelease
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: "RtreeSearchPoint *rtreeSearchPointNew(\n  RtreeCursor *pCur,    /*
      The cursor */\n  RtreeDValue rScore,   /* Score for the new search point */\n
      \ u8 iLevel             /* Level for the new search point */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153853,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153853,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153854,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153859,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - idx
    - pCur
    argTypes:
    - RtreeSearchPoint*
    - int
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153863
      start: 153852
    functionDepth: 0
    functionLinenumber: 153852
    functionLinenumberEnd: 153863
    functionName: tracePoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void tracePoint(RtreeSearchPoint *p, int idx, RtreeCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153866,1
    - Dst: tracePoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153868,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153871,1
    - Dst: tracePoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pCur
    - zPrefix
    argTypes:
    - RtreeCursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153874
      start: 153864
    functionDepth: 1
    functionLinenumber: 153864
    functionLinenumberEnd: 153874
    functionName: traceQueue
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    - tracePoint
    linkageType: ''
    returnType: void
    signature: void traceQueue(RtreeCursor *pCur, const char *zPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153876
      start: 153875
    functionDepth: 0
    functionLinenumber: 153875
    functionLinenumberEnd: 153876
    functionName: RTREE_QUEUE_TRACE
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_QUEUE_TRACE(A,B)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153885,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153887,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153887,1
    - Dst: rtreeSearchPointCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153904,1
    - Dst: rtreeSearchPointCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153905,1
    - Dst: rtreeSearchPointSwap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153906,1
    - Dst: rtreeSearchPointCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153912,1
    - Dst: rtreeSearchPointSwap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153913,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - p
    argTypes:
    - RtreeCursor*
    assertStmts:
    - condition: ( i==0 || i==1 )
      pos:
        line_end: 153884
        line_start: 153884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153921
      start: 153882
    functionDepth: 29
    functionLinenumber: 153882
    functionLinenumberEnd: 153921
    functionName: rtreeSearchPointPop
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointCompare
    - assert
    - RTREE_OF_CURSOR
    - nodeRelease
    - rtreeSearchPointSwap
    linkageType: ''
    returnType: void
    signature: void rtreeSearchPointPop(RtreeCursor *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153932,1
    - Dst: rtreeSearchPointFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153943,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153944,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153946,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153947,1
    - Dst: rtreeCallbackConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153955,1
    - Dst: rtreeLeafConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153959,1
    - Dst: rtreeNonleafConstraint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153961,1
    - Dst: readInt64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153969,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153976,1
    - Dst: rtreeSearchPointPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153977,1
    - Dst: rtreeSearchPointNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153980,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153985,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153989,1
    - Dst: rtreeSearchPointPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:153990,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - RtreeCursor*
    assertStmts:
    - condition: ( nCell<200 )
      pos:
        line_end: 153946
        line_start: 153946
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153995
      start: 153930
    functionDepth: 31
    functionLinenumber: 153930
    functionLinenumberEnd: 153995
    functionName: rtreeStepToLeaf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointFirst
    - assert
    - NCELL
    - rtreeNonleafConstraint
    - rtreeNodeOfFirstSearchPoint
    - rtreeCallbackConstraint
    - readInt64
    - RTREE_QUEUE_TRACE
    - rtreeLeafConstraint
    - rtreeSearchPointPop
    - RTREE_OF_CURSOR
    - rtreeSearchPointNew
    linkageType: ''
    returnType: int
    signature: int rtreeStepToLeaf(RtreeCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154005,1
    - Dst: rtreeSearchPointPop
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154006,1
    - Dst: rtreeStepToLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pVtabCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154009
      start: 154000
    functionDepth: 32
    functionLinenumber: 154000
    functionLinenumberEnd: 154009
    functionName: rtreeNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - RTREE_QUEUE_TRACE
    - rtreeSearchPointPop
    - rtreeStepToLeaf
    linkageType: ''
    returnType: int
    signature: int rtreeNext(sqlite3_vtab_cursor *pVtabCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154016,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154018,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154020,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pVtabCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154023
      start: 154014
    functionDepth: 28
    functionLinenumber: 154014
    functionLinenumberEnd: 154023
    functionName: rtreeRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointFirst
    - rtreeNodeOfFirstSearchPoint
    - RTREE_OF_CURSOR
    - nodeGetRowid
    linkageType: ''
    returnType: int
    signature: int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154031,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154034,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154039,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154039,1
    - Dst: nodeGetCoord
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154042,1
    - Dst: sqlite3_result_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154045,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154049,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154050,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - cur
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( pRtree->eCoordType==RTREE_COORD_INT32 )
      pos:
        line_end: 154048
        line_start: 154048
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154054
      start: 154028
    functionDepth: 28
    functionLinenumber: 154028
    functionLinenumberEnd: 154054
    functionName: rtreeColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeSearchPointFirst
    - sqlite3_result_int
    - nodeGetRowid
    - assert
    - rtreeNodeOfFirstSearchPoint
    - sqlite3_result_int64
    - sqlite3_result_double
    - nodeGetCoord
    linkageType: ''
    returnType: int
    signature: int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int
      i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154071,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154072,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154073,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154075,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154076,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pRtree
    - iRowid
    - ppLeaf
    - piNode
    argTypes:
    - Rtree*
    - i64
    - RtreeNode**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154081
      start: 154063
    functionDepth: 27
    functionLinenumber: 154063
    functionLinenumberEnd: 154081
    functionName: findLeafNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeAcquire
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int findLeafNode(\n  Rtree *pRtree,              /* RTree to search
      */\n  i64 iRowid,                 /* The rowid searching for */\n  RtreeNode
      **ppLeaf,         /* Write the node here */\n  sqlite3_int64 *piNode       /*
      Write the node-id here */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154096,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154099,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154104,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154106,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154109,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154109,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - pValue
    - pCons
    argTypes:
    - sqlite3_value*
    - RtreeConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154130
      start: 154089
    functionDepth: 14
    functionLinenumber: 154089
    functionLinenumberEnd: 154130
    functionName: deserializeGeometry
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - sqlite3_value_bytes
    - memcpy
    - sqlite3_malloc
    - sqlite3_value_blob
    - sqlite3_value_type
    linkageType: ''
    returnType: int
    signature: int deserializeGeometry(sqlite3_value *pValue, RtreeConstraint *pCons)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154147,1
    - Dst: freeCursorConstraints
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154150,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154151,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154152,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154160,1
    - Dst: findLeafNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154162,1
    - Dst: rtreeSearchPointNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154164,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154165,1
    - Dst: nodeRowidIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154169,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154171,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154179,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154181,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154186,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154187,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154188,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154189,1
    - Dst: deserializeGeometry
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154199,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154208,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154210,1
    - Dst: rtreeSearchPointNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154218,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154223,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154226,1
    - Dst: rtreeStepToLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154227,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154231,1
    - Dst: rtreeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154232,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 5
    argNames:
    - pVtabCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( pCsr->bPoint==1 )
      pos:
        line_end: 154222
        line_start: 154222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( (idxStr==0 && argc==0)\n                || (idxStr && (int)strlen(idxStr)==argc*2)
        )"
      pos:
        line_end: 154188
        line_start: 154187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 154164
        line_start: 154164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154234
      start: 154135
    functionDepth: 32
    functionLinenumber: 154135
    functionLinenumberEnd: 154234
    functionName: rtreeFilter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeAcquire
    - memset
    - sqlite3_free
    - assert
    - deserializeGeometry
    - rtreeReference
    - sqlite3_malloc
    - freeCursorConstraints
    - rtreeRelease
    - findLeafNode
    - RTREE_QUEUE_TRACE
    - sqlite3_value_double
    - nodeRelease
    - sqlite3_value_int64
    - nodeRowidIndex
    - rtreeSearchPointNew
    - strlen
    - rtreeStepToLeaf
    linkageType: ''
    returnType: int
    signature: "int rtreeFilter(\n  sqlite3_vtab_cursor *pVtabCursor, \n  int idxNum,
      const char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pIdxInfo
    - nRow
    argTypes:
    - sqlite3_index_info*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154247
      start: 154241
    functionDepth: 1
    functionLinenumber: 154241
    functionLinenumberEnd: 154247
    functionName: setEstimatedRows
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    linkageType: ''
    returnType: void
    signature: void setEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154292,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154304,1
    - Dst: setEstimatedRows
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154328,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154341,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154354,1
    - Dst: setEstimatedRows
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154360,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( pIdxInfo->idxStr==0 )
      pos:
        line_end: 154303
        line_start: 154303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->op==SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 154340
        line_start: 154340
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154363
      start: 154283
    functionDepth: 2
    functionLinenumber: 154283
    functionLinenumberEnd: 154363
    functionName: rtreeBestIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - setEstimatedRows
    - memset
    - sqlite3_mprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154372,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154375
      start: 154368
    functionDepth: 1
    functionLinenumber: 154368
    functionLinenumberEnd: 154375
    functionName: cellArea
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DCOORD
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellArea(Rtree *pRtree, RtreeCell *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154385,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154388
      start: 154381
    functionDepth: 1
    functionLinenumber: 154381
    functionLinenumberEnd: 154388
    functionName: cellMargin
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DCOORD
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellMargin(Rtree *pRtree, RtreeCell *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154397,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154398,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154402,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pRtree
    - p1
    - p2
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154406
      start: 154393
    functionDepth: 1
    functionLinenumber: 154393
    functionLinenumberEnd: 154406
    functionName: cellUnion
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - MAX
    - MIN
    linkageType: ''
    returnType: void
    signature: void cellUnion(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - pRtree
    - p1
    - p2
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154425
      start: 154412
    functionDepth: 0
    functionLinenumber: 154412
    functionLinenumberEnd: 154425
    functionName: cellContains
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cellContains(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154433,1
    - Dst: cellArea
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154434,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154435,1
    - Dst: cellArea
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - p
    - pCell
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154437
      start: 154430
    functionDepth: 2
    functionLinenumber: 154430
    functionLinenumberEnd: 154437
    functionName: cellGrowth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - cellUnion
    - memcpy
    - cellArea
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellGrowth(Rtree *pRtree, RtreeCell *p, RtreeCell *pCell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154452,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154452,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154452,1
    - Dst: MIN
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154453,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154453,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pRtree
    - p
    - aCell
    - nCell
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154464
      start: 154439
    functionDepth: 1
    functionLinenumber: 154439
    functionLinenumberEnd: 154464
    functionName: cellOverlap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DCOORD
    - MIN
    - MAX
    linkageType: ''
    returnType: RtreeDValue
    signature: "RtreeDValue cellOverlap(\n  Rtree *pRtree, \n  RtreeCell *p, \n  RtreeCell
      *aCell, \n  int nCell\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154480,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154489,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154503,1
    - Dst: cellGrowth
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154504,1
    - Dst: cellArea
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154505,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154516,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154517,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - pRtree
    - pCell
    - iHeight
    - ppLeaf
    argTypes:
    - Rtree*
    - RtreeCell*
    - int
    - RtreeNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154524
      start: 154471
    functionDepth: 28
    functionLinenumber: 154471
    functionLinenumberEnd: 154524
    functionName: ChooseLeaf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeAcquire
    - sqlite3_free
    - NCELL
    - cellArea
    - nodeGetCell
    - nodeRelease
    - cellGrowth
    linkageType: ''
    returnType: int
    signature: "int ChooseLeaf(\n  Rtree *pRtree,               /* Rtree table */\n
      \ RtreeCell *pCell,            /* Cell to insert into rtree */\n  int iHeight,
      \                /* Height of sub-tree rooted at pCell */\n  RtreeNode **ppLeaf
      \          /* OUT: Selected leaf page */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeParentIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154542,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154546,1
    - Dst: cellContains
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154547,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154548,1
    - Dst: nodeOverwriteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154555
      start: 154531
    functionDepth: 4
    functionLinenumber: 154531
    functionLinenumberEnd: 154555
    functionName: AdjustTree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeOverwriteCell
    - cellUnion
    - nodeParentIndex
    - nodeGetCell
    - cellContains
    linkageType: ''
    returnType: int
    signature: "int AdjustTree(\n  Rtree *pRtree,                    /* Rtree table
      */\n  RtreeNode *pNode,                 /* Adjust ancestry of this node. */\n
      \ RtreeCell *pCell                  /* This cell was just inserted */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154561,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154562,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154563,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - iRowid
    - iNode
    argTypes:
    - Rtree*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154565
      start: 154560
    functionDepth: 26
    functionLinenumber: 154560
    functionLinenumberEnd: 154565
    functionName: rowidWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int rowidWrite(Rtree *pRtree, sqlite3_int64 iRowid, sqlite3_int64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154571,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154572,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154573,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - iNode
    - iPar
    argTypes:
    - Rtree*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154575
      start: 154570
    functionDepth: 26
    functionLinenumber: 154570
    functionLinenumberEnd: 154575
    functionName: parentWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int parentWrite(Rtree *pRtree, sqlite3_int64 iNode, sqlite3_int64 iPar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SortByDistance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154612,1
    - Dst: SortByDistance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154613,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154615,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - aIdx
    - nIdx
    - aDistance
    - aSpare
    argTypes:
    - int*
    - int
    - RtreeDValue*
    - int*
    assertStmts:
    - condition: ( left<=right )
      pos:
        line_end: 154644
        line_start: 154644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154650
      start: 154597
    functionDepth: 1
    functionLinenumber: 154597
    functionLinenumberEnd: 154650
    functionName: SortByDistance
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - SortByDistance
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SortByDistance(\n  int *aIdx, \n  int nIdx, \n  RtreeDValue *aDistance,
      \n  int *aSpare\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SortByDimension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154681,1
    - Dst: SortByDimension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154682,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154684,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154687,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154688,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154689,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154690,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154712,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 6
    argNames:
    - pRtree
    - aIdx
    - nIdx
    - iDim
    - aCell
    - aSpare
    argTypes:
    - Rtree*
    - int*
    - int
    - int
    - RtreeCell*
    - int*
    assertStmts:
    - condition: ( xleft1<=xright1 && (xleft1<xright1 || xleft2<=xright2) )
      pos:
        line_end: 154711
        line_start: 154711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154717
      start: 154663
    functionDepth: 1
    functionLinenumber: 154663
    functionLinenumberEnd: 154717
    functionName: SortByDimension
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - DCOORD
    - SortByDimension
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SortByDimension(\n  Rtree *pRtree,\n  int *aIdx, \n  int nIdx,
      \n  int iDim, \n  RtreeCell *aCell, \n  int *aSpare\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154741,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154747,1
    - Dst: SortByDimension
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154754,1
    - Dst: RTREE_MINCELLS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154765,1
    - Dst: RTREE_MINCELLS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154766,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154775,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154776,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154779,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154781,1
    - Dst: cellMargin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154784,1
    - Dst: cellMargin
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154785,1
    - Dst: cellOverlap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154786,1
    - Dst: cellArea
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154787,1
    - Dst: cellArea
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154787,1
    - Dst: RTREE_MINCELLS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154788,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154805,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154806,1
    - Dst: nodeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154811,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154812,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154815,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 7
    argNames:
    - pRtree
    - aCell
    - nCell
    - pLeft
    - pRight
    - pBboxLeft
    - pBboxRight
    argTypes:
    - Rtree*
    - RtreeCell*
    - int
    - RtreeNode*
    - RtreeNode*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154817
      start: 154722
    functionDepth: 3
    functionLinenumber: 154722
    functionLinenumberEnd: 154817
    functionName: splitNodeStartree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - cellOverlap
    - SortByDimension
    - cellUnion
    - memcpy
    - sqlite3_malloc
    - cellArea
    - RTREE_MINCELLS
    - nodeInsertCell
    - cellMargin
    linkageType: ''
    returnType: int
    signature: "int splitNodeStartree(\n  Rtree *pRtree,\n  RtreeCell *aCell,\n  int
      nCell,\n  RtreeNode *pLeft,\n  RtreeNode *pRight,\n  RtreeCell *pBboxLeft,\n
      \ RtreeCell *pBboxRight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154829,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154831,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154832,1
    - Dst: xSetMapping
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pRtree
    - iRowid
    - pNode
    - iHeight
    argTypes:
    - Rtree*
    - i64
    - RtreeNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154837
      start: 154820
    functionDepth: 28
    functionLinenumber: 154820
    functionLinenumberEnd: 154837
    functionName: updateMapping
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xSetMapping
    - nodeRelease
    - nodeReference
    - nodeHashLookup
    linkageType: ''
    returnType: int
    signature: "int updateMapping(\n  Rtree *pRtree, \n  i64 iRowid, \n  RtreeNode
      *pNode, \n  int iHeight\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154849,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154862,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154868,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154870,1
    - Dst: nodeZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154872,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154873,1
    - Dst: nodeNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154877,1
    - Dst: nodeNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154878,1
    - Dst: writeInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154881,1
    - Dst: nodeNew
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154884,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154885,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154893,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154894,1
    - Dst: splitNodeStartree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154896,1
    - Dst: nodeWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154907,1
    - Dst: nodeWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154908,1
    - Dst: rtreeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154917,1
    - Dst: nodeParentIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154924,1
    - Dst: nodeOverwriteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154926,1
    - Dst: AdjustTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154927,1
    - Dst: rtreeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154933,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154937,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154938,1
    - Dst: updateMapping
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154939,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154948,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154949,1
    - Dst: updateMapping
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154950,1
    - Dst: updateMapping
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154956,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154960,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154964,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154969,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154970,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154971,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154973
      start: 154839
    functionDepth: 29
    functionLinenumber: 154839
    functionLinenumberEnd: 154973
    functionName: SplitNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - nodeNew
    - nodeOverwriteCell
    - AdjustTree
    - sqlite3_malloc
    - splitNodeStartree
    - nodeGetRowid
    - nodeZero
    - sqlite3_free
    - nodeParentIndex
    - memcpy
    - writeInt16
    - rtreeInsertCell
    - NCELL
    - nodeWrite
    - updateMapping
    - nodeReference
    - nodeGetCell
    - nodeRelease
    linkageType: ''
    returnType: int
    signature: "int SplitNode(\n  Rtree *pRtree,\n  RtreeNode *pNode,\n  RtreeCell
      *pCell,\n  int iHeight\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154991,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:154992,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155002,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155005,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155008,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - pRtree
    - pLeaf
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155014
      start: 154986
    functionDepth: 27
    functionLinenumber: 154986
    functionLinenumberEnd: 155014
    functionName: fixLeafParent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeAcquire
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_reset
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int fixLeafParent(Rtree *pRtree, RtreeNode *pLeaf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155024,1
    - Dst: nodeParentIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155027,1
    - Dst: deleteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155031,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155033,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155042,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155043,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155044,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155049,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155050,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155051,1
    - Dst: nodeHashDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155058,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts:
    - condition: ( pNode->nRef==1 )
      pos:
        line_end: 155023
        line_start: 155023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155065
      start: 155018
    functionDepth: 28
    functionLinenumber: 155018
    functionLinenumberEnd: 155065
    functionName: removeNode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_step
    - nodeHashDelete
    - nodeParentIndex
    - sqlite3_reset
    - deleteCell
    - nodeRelease
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int removeNode(Rtree *pRtree, RtreeNode *pNode, int iHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155072,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155074,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155077,1
    - Dst: cellUnion
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155078,1
    - Dst: nodeParentIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155081,1
    - Dst: nodeOverwriteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155083,1
    - Dst: fixBoundingBox
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155088
      start: 155067
    functionDepth: 4
    functionLinenumber: 155067
    functionLinenumberEnd: 155088
    functionName: fixBoundingBox
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - nodeOverwriteCell
    - NCELL
    - fixBoundingBox
    - nodeParentIndex
    - cellUnion
    - nodeGetCell
    linkageType: ''
    returnType: int
    signature: int fixBoundingBox(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fixLeafParent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155098,1
    - Dst: nodeDeleteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155105,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155113,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155115,1
    - Dst: RTREE_MINCELLS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155115,1
    - Dst: removeNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155116,1
    - Dst: fixBoundingBox
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - int
    assertStmts:
    - condition: ( pParent || pNode->iNode==1 )
      pos:
        line_end: 155112
        line_start: 155112
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155123
      start: 155094
    functionDepth: 29
    functionLinenumber: 155094
    functionLinenumberEnd: 155123
    functionName: deleteCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - fixLeafParent
    - nodeDeleteCell
    - assert
    - NCELL
    - fixBoundingBox
    - RTREE_MINCELLS
    - removeNode
    linkageType: ''
    returnType: int
    signature: int deleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell, int iHeight)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155142,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155144,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155150,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155165,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155167,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155171,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155172,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155182,1
    - Dst: DCOORD
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155183,1
    - Dst: SortByDistance
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155188,1
    - Dst: nodeZero
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155189,1
    - Dst: RTREE_MINCELLS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155191,1
    - Dst: nodeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155193,1
    - Dst: rowidWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155196,1
    - Dst: parentWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155198,1
    - Dst: fixBoundingBox
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155203,1
    - Dst: ChooseLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155211,1
    - Dst: rtreeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155214,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155215,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155222,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155224
      start: 155125
    functionDepth: 29
    functionLinenumber: 155125
    functionLinenumberEnd: 155224
    functionName: Reinsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - DCOORD
    - memset
    - SortByDistance
    - nodeZero
    - rtreeInsertCell
    - sqlite3_free
    - rowidWrite
    - NCELL
    - fixBoundingBox
    - parentWrite
    - memcpy
    - sqlite3_malloc
    - RTREE_MINCELLS
    - ChooseLeaf
    - nodeGetCell
    - nodeRelease
    - nodeInsertCell
    linkageType: ''
    returnType: int
    signature: "int Reinsert(\n  Rtree *pRtree, \n  RtreeNode *pNode, \n  RtreeCell
      *pCell, \n  int iHeight\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155238,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155240,1
    - Dst: nodeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155241,1
    - Dst: nodeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155245,1
    - Dst: SplitNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155247,1
    - Dst: Reinsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155250,1
    - Dst: AdjustTree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155253,1
    - Dst: rowidWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155256,1
    - Dst: parentWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155263
      start: 155230
    functionDepth: 30
    functionLinenumber: 155230
    functionLinenumberEnd: 155263
    functionName: rtreeInsertCell
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - Reinsert
    - rowidWrite
    - AdjustTree
    - parentWrite
    - nodeHashLookup
    - nodeReference
    - nodeRelease
    - nodeInsertCell
    - SplitNode
    linkageType: ''
    returnType: int
    signature: "int rtreeInsertCell(\n  Rtree *pRtree,\n  RtreeNode *pNode,\n  RtreeCell
      *pCell,\n  int iHeight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155268,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155273,1
    - Dst: ChooseLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155278,1
    - Dst: rtreeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155281,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155289
      start: 155265
    functionDepth: 31
    functionLinenumber: 155265
    functionLinenumberEnd: 155289
    functionName: reinsertNodeContent
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeInsertCell
    - NCELL
    - ChooseLeaf
    - nodeGetCell
    - nodeRelease
    linkageType: ''
    returnType: int
    signature: int reinsertNodeContent(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155296,1
    - Dst: sqlite3_bind_null
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155297,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155298,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155299,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pRtree
    - piRowid
    argTypes:
    - Rtree*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155302
      start: 155294
    functionDepth: 26
    functionLinenumber: 155294
    functionLinenumberEnd: 155302
    functionName: newRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_last_insert_rowid
    - sqlite3_bind_null
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int newRowid(Rtree *pRtree, i64 *piRowid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155315,1
    - Dst: findLeafNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155321,1
    - Dst: nodeRowidIndex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155327,1
    - Dst: deleteCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155329,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155331,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155339,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155340,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155341,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155352,1
    - Dst: nodeGetRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155355,1
    - Dst: nodeAcquire
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155356,1
    - Dst: removeNode
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155358,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155360,1
    - Dst: writeInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155364,1
    - Dst: reinsertNodeContent
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155372,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155375,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155380,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155382,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - pRtree
    - iDelete
    argTypes:
    - Rtree*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155386
      start: 155307
    functionDepth: 32
    functionLinenumber: 155307
    functionLinenumberEnd: 155386
    functionName: rtreeDeleteRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeAcquire
    - reinsertNodeContent
    - writeInt16
    - sqlite3_free
    - sqlite3_step
    - NCELL
    - findLeafNode
    - removeNode
    - sqlite3_reset
    - deleteCell
    - nodeRowidIndex
    - nodeRelease
    - sqlite3_bind_int64
    - nodeGetRowid
    linkageType: ''
    returnType: int
    signature: int rtreeDeleteRowid(Rtree *pRtree, sqlite3_int64 iDelete)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155406
      start: 155399
    functionDepth: 4
    functionLinenumber: 155399
    functionLinenumberEnd: 155406
    functionName: rtreeValueDown
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: RtreeValue
    signature: RtreeValue rtreeValueDown(sqlite3_value *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155414
      start: 155407
    functionDepth: 4
    functionLinenumber: 155407
    functionLinenumberEnd: 155414
    functionName: rtreeValueUp
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: RtreeValue
    signature: RtreeValue rtreeValueUp(sqlite3_value *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155432,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155459,1
    - Dst: rtreeValueDown
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155464,1
    - Dst: rtreeValueUp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155465,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155475,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155476,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155486,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155487,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155488,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155489,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155492,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155493,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155494,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155496,1
    - Dst: rtreeDeleteRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155497,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155512,1
    - Dst: rtreeDeleteRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155513,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155513,1
    - Dst: newRowid
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155526,1
    - Dst: ChooseLeaf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155531,1
    - Dst: rtreeInsertCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155536,1
    - Dst: nodeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155537,1
    - Dst: rtreeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155545,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 4
    argNames:
    - pVtab
    - nData
    - azData
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: ( nData<=(pRtree->nDim*2 + 3) )
      pos:
        line_end: 155458
        line_start: 155458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (nData>=1)
      pos:
        line_end: 155432
        line_start: 155432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155547
      start: 155421
    functionDepth: 33
    functionLinenumber: 155421
    functionLinenumberEnd: 155547
    functionName: rtreeUpdate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - sqlite3_vtab_on_conflict
    - rtreeDeleteRowid
    - rtreeInsertCell
    - assert
    - sqlite3_step
    - rtreeReference
    - rtreeRelease
    - rtreeValueUp
    - ChooseLeaf
    - sqlite3_value_type
    - rtreeValueDown
    - sqlite3_reset
    - sqlite3_value_int64
    - nodeRelease
    - newRowid
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int rtreeUpdate(\n  sqlite3_vtab *pVtab, \n  int nData, \n  sqlite3_value
      **azData, \n  sqlite_int64 *pRowid\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155555,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155564,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pVtab
    - zNewName
    argTypes:
    - sqlite3_vtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155568
      start: 155552
    functionDepth: 27
    functionLinenumber: 155552
    functionLinenumberEnd: 155568
    functionName: rtreeRename
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_exec
    linkageType: ''
    returnType: int
    signature: int rtreeRename(sqlite3_vtab *pVtab, const char *zNewName)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155582,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155586,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155588,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155588,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155589,1
    - Dst: MAX
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155598,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - db
    - pRtree
    argTypes:
    - sqlite3*
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155605
      start: 155575
    functionDepth: 27
    functionLinenumber: 155575
    functionLinenumberEnd: 155605
    functionName: rtreeQueryStat1
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    - MAX
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    linkageType: ''
    returnType: int
    signature: int rtreeQueryStat1(sqlite3 *db, Rtree *pRtree)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155665,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155676,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155677,1
    - Dst: rtreeQueryStat1
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155693,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155695,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155697,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - pRtree
    - db
    - zDb
    - zPrefix
    - isCreate
    argTypes:
    - Rtree*
    - sqlite3*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155705
      start: 155633
    functionDepth: 28
    functionLinenumber: 155633
    functionLinenumberEnd: 155705
    functionName: rtreeSqlInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - rtreeQueryStat1
    - sqlite3_exec
    linkageType: ''
    returnType: int
    signature: "int rtreeSqlInit(\n  Rtree *pRtree, \n  sqlite3 *db, \n  const char
      *zDb, \n  const char *zPrefix, \n  int isCreate\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155718,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155720,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155721,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - db
    - zSql
    - piVal
    argTypes:
    - sqlite3*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155727
      start: 155714
    functionDepth: 27
    functionLinenumber: 155714
    functionLinenumberEnd: 155727
    functionName: getIntFromStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_prepare_v2
    - sqlite3_finalize
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int getIntFromStmt(sqlite3 *db, const char *zSql, int *piVal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155754,1
    - Dst: getIntFromStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155755,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155762,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155762,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155765,1
    - Dst: getIntFromStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155769,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155771,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155771,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - db
    - pRtree
    - isCreate
    - pzErr
    argTypes:
    - sqlite3*
    - Rtree*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155777
      start: 155744
    functionDepth: 28
    functionLinenumber: 155744
    functionLinenumberEnd: 155777
    functionName: getNodeSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_errmsg
    - getIntFromStmt
    linkageType: ''
    returnType: int
    signature: "int getNodeSize(\n  sqlite3 *db,                    /* Database handle
      */\n  Rtree *pRtree,                  /* Rtree handle */\n  int isCreate,                   /*
      True for xCreate, false for xConnect */\n  char **pzErr                    /*
      OUT: Error message, if any */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155811,1
    - Dst: sqlite3_vtab_config
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155815,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155818,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155819,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155820,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155824,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155832,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155833,1
    - Dst: getNodeSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155836,1
    - Dst: rtreeSqlInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155843,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155844,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155844,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155846,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155851,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155852,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155856,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155857,1
    - Dst: sqlite3_declare_vtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155861,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155862,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155862,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155871,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155872,1
    - Dst: rtreeRelease
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155873,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 7
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    - isCreate
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    - int
    assertStmts:
    - condition: ( *ppVtab==0 )
      pos:
        line_end: 155870
        line_start: 155870
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pRtree->nBusy==1 )
      pos:
        line_end: 155871
        line_start: 155871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155876
      start: 155788
    functionDepth: 29
    functionLinenumber: 155788
    functionLinenumberEnd: 155876
    functionName: rtreeInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 2
    functionsReached:
    - memset
    - sqlite3_free
    - assert
    - sqlite3_declare_vtab
    - sqlite3_mprintf
    - sqlite3_malloc
    - memcpy
    - rtreeRelease
    - getNodeSize
    - rtreeSqlInit
    - sqlite3_vtab_config
    - strlen
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int rtreeInit(\n  sqlite3 *db,                        /* Database
      connection */\n  void *pAux,                         /* One of the RTREE_COORD_*
      constants */\n  int argc, const char *const*argv,   /* Parameters to CREATE
      TABLE statement */\n  sqlite3_vtab **ppVtab,              /* OUT: New virtual
      table */\n  char **pzErr,                       /* OUT: Error message, if any
      */\n  int isCreate                        /* True for xCreate, false for xConnect
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155901,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155902,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155903,1
    - Dst: sqlite3_value_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155904,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155906,1
    - Dst: NCELL
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155908,1
    - Dst: nodeGetCell
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155914,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155915,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155916,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155919,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155922,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155925,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155929,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155930,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155933,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155938
      start: 155895
    functionDepth: 12
    functionLinenumber: 155895
    functionLinenumberEnd: 155938
    functionName: rtreenode
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - memset
    - sqlite3_free
    - NCELL
    - sqlite3_mprintf
    - sqlite3_result_text
    - UNUSED_PARAMETER
    - sqlite3_value_blob
    - nodeGetCell
    - strlen
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155950,1
    - Dst: sqlite3_value_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155951,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155952,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155954,1
    - Dst: sqlite3_value_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155956,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155957,1
    - Dst: readInt16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155959
      start: 155949
    functionDepth: 14
    functionLinenumber: 155949
    functionLinenumberEnd: 155959
    functionName: rtreedepth
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - readInt16
    - sqlite3_value_bytes
    - UNUSED_PARAMETER
    - sqlite3_value_blob
    - sqlite3_value_type
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: void rtreedepth(sqlite3_context *ctx, int nArg, sqlite3_value **apArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155970,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155972,1
    - Dst: sqlite3_create_module_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155980,1
    - Dst: sqlite3_create_module_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155988
      start: 155966
    functionDepth: 11
    functionLinenumber: 155966
    functionLinenumberEnd: 155988
    functionName: sqlite3RtreeInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module_v2
    - sqlite3_create_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RtreeInit(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RtreeGeomCallback*::xDestructor
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:155999,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156001
      start: 155997
    functionDepth: 3
    functionLinenumber: 155997
    functionLinenumberEnd: 156001
    functionName: rtreeFreeCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - RtreeGeomCallback*::xDestructor
    linkageType: ''
    returnType: void
    signature: void rtreeFreeCallback(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156010,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156013
      start: 156006
    functionDepth: 11
    functionLinenumber: 156006
    functionLinenumberEnd: 156013
    functionName: rtreeMatchArgFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_value_free
    linkageType: ''
    returnType: void
    signature: void rtreeMatchArgFree(void *pArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156030,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156037,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156039,1
    - Dst: sqlite3_value_dup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156047,1
    - Dst: sqlite3_value_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156050,1
    - Dst: sqlite3_value_double
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156052,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156056,1
    - Dst: rtreeMatchArgFree
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156057,1
    - Dst: sqlite3_result_blob
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - nArg
    - aArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156062
      start: 156029
    functionDepth: 12
    functionLinenumber: 156029
    functionLinenumberEnd: 156062
    functionName: geomCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_nomem
    - sqlite3_user_data
    - sqlite3_malloc
    - rtreeMatchArgFree
    - sqlite3_value_double
    - sqlite3_result_blob
    - sqlite3_value_int64
    - sqlite3_value_dup
    linkageType: ''
    returnType: void
    signature: void geomCallback(sqlite3_context *ctx, int nArg, sqlite3_value **aArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156076,1
    - Dst: sqlite3_create_function_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zGeom
    - pContext
    argTypes:
    - sqlite3*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156085
      start: 156067
    functionDepth: 11
    functionLinenumber: 156067
    functionLinenumberEnd: 156085
    functionName: sqlite3_rtree_geometry_callback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function_v2
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_geometry_callback(\n  sqlite3 *db,                  /*
      Register SQL function on this connection */\n  const char *zGeom,            /*
      Name of the new SQL function */\n  int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*),
      /* Callback */\n  void *pContext                /* Extra data associated with
      the callback */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156101,1
    - Dst: sqlite3_create_function_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zQueryFunc
    - pContext
    argTypes:
    - sqlite3*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156110
      start: 156091
    functionDepth: 11
    functionLinenumber: 156091
    functionLinenumberEnd: 156110
    functionName: sqlite3_rtree_query_callback
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function_v2
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_query_callback(\n  sqlite3 *db,                 /*
      Register SQL function on this connection */\n  const char *zQueryFunc,      /*
      Name of new SQL function */\n  int (*xQueryFunc)(sqlite3_rtree_query_info*),
      /* Callback */\n  void *pContext,              /* Extra data passed into the
      callback */\n  void (*xDestructor)(void*)   /* Destructor for the extra data
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156121,1
    - Dst: sqlite3RtreeInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156123
      start: 156114
    functionDepth: 12
    functionLinenumber: 156114
    functionLinenumberEnd: 156123
    functionName: sqlite3_rtree_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_EXTENSION_INIT2
    - sqlite3RtreeInit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_init(\n  sqlite3 *db,\n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156190
      start: 156188
    functionDepth: 3
    functionLinenumber: 156188
    functionLinenumberEnd: 156190
    functionName: xFree
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void xFree(void *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U8_NEXT_UNSAFE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156214,1
    - Dst: U8_FWD_1_UNSAFE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156234,1
    - Dst: icuLikeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156242,1
    - Dst: U8_FWD_1_UNSAFE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156245,1
    - Dst: U8_FWD_1_UNSAFE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156252,1
    - Dst: U8_NEXT_UNSAFE
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156261,1
    - Dst: u_foldCase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156262,1
    - Dst: u_foldCase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156263,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - zPattern
    - zString
    - uEsc
    argTypes:
    - uint8_t*
    - uint8_t*
    - UChar32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156272
      start: 156197
    functionDepth: 1
    functionLinenumber: 156197
    functionLinenumberEnd: 156272
    functionName: icuLikeCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - U8_NEXT_UNSAFE
    - u_foldCase
    - icuLikeCompare
    - U8_FWD_1_UNSAFE
    linkageType: ''
    returnType: int
    signature: "int icuLikeCompare(\n  const uint8_t *zPattern,   /* LIKE pattern
      */\n  const uint8_t *zString,    /* The UTF-8 string to compare against */\n
      \ const UChar32 uEsc         /* The escape character */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156292,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156293,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156299,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156300,1
    - Dst: sqlite3_value_bytes
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156309,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156310,1
    - Dst: U8_NEXT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156313,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156315,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156322,1
    - Dst: icuLikeCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156324
      start: 156287
    functionDepth: 14
    functionLinenumber: 156287
    functionLinenumberEnd: 156324
    functionName: icuLikeFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_value_bytes
    - U8_NEXT
    - sqlite3_value_text
    - sqlite3_result_error
    - icuLikeCompare
    linkageType: ''
    returnType: void
    signature: "void icuLikeFunc(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156339,1
    - Dst: u_errorName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156339,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - zName
    - e
    argTypes:
    - sqlite3_context*
    - char*
    - UErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156342
      start: 156333
    functionDepth: 11
    functionLinenumber: 156333
    functionLinenumberEnd: 156342
    functionName: icuFunctionError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error
    - u_errorName
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void icuFunctionError(\n  sqlite3_context *pCtx,       /* SQLite scalar
      function context */\n  const char *zName,           /* Name of ICU function
      that failed */\n  UErrorCode e                 /* Error code returned by ICU
      function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uregex_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156351
      start: 156348
    functionDepth: 0
    functionLinenumber: 156348
    functionLinenumberEnd: 156351
    functionName: icuRegexpDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - uregex_close
    linkageType: ''
    returnType: void
    signature: void icuRegexpDelete(void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156376,1
    - Dst: sqlite3_get_auxdata
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156387,1
    - Dst: sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156389,1
    - Dst: uregex_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156393,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156395,1
    - Dst: sqlite3_set_auxdata
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156396,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156398,1
    - Dst: icuFunctionError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156399,1
    - Dst: uregex_setText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156405,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156406,1
    - Dst: icuFunctionError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156407,1
    - Dst: uregex_matches
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156412,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156413,1
    - Dst: icuFunctionError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156414,1
    - Dst: uregex_setText
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156423,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (!pExpr)
      pos:
        line_end: 156397
        line_start: 156397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156427
      start: 156372
    functionDepth: 12
    functionLinenumber: 156372
    functionLinenumberEnd: 156427
    functionName: icuRegexpFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_get_auxdata
    - uregex_matches
    - assert
    - U_SUCCESS
    - icuFunctionError
    - uregex_setText
    - sqlite3_set_auxdata
    - sqlite3_value_text16
    - uregex_open
    linkageType: ''
    returnType: void
    signature: void icuRegexpFunc(sqlite3_context *p, int nArg, sqlite3_value **apArg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156464,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156466,1
    - Dst: sqlite3_value_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156469,1
    - Dst: sqlite3_value_bytes16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156473,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156476,1
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156481,1
    - Dst: u_strToUpper
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156482,1
    - Dst: u_strToLower
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156484,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156487,1
    - Dst: icuFunctionError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156488,1
    - Dst: sqlite3_result_text16
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (nArg==1 || nArg==2)
      pos:
        line_end: 156463
        line_start: 156463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156493
      start: 156455
    functionDepth: 14
    functionLinenumber: 156455
    functionLinenumberEnd: 156493
    functionName: icuCaseFunc16
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_user_data
    - sqlite3_result_text16
    - U_SUCCESS
    - icuFunctionError
    - u_strToLower
    - sqlite3_malloc
    - sqlite3_value_text
    - sqlite3_value_text16
    - sqlite3_value_bytes16
    - u_strToUpper
    linkageType: ''
    returnType: void
    signature: void icuCaseFunc16(sqlite3_context *p, int nArg, sqlite3_value **apArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156502
      start: 156499
    functionDepth: 0
    functionLinenumber: 156499
    functionLinenumberEnd: 156502
    functionName: icuCollationDel
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ucol_close
    linkageType: ''
    returnType: void
    signature: void icuCollationDel(void *pCtx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156517,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - pCtx
    - nLeft
    - zLeft
    - nRight
    - zRight
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts:
    - condition: (!"Unexpected return value from ucol_strcoll()")
      pos:
        line_end: 156522
        line_start: 156522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156525
      start: 156508
    functionDepth: 0
    functionLinenumber: 156508
    functionLinenumberEnd: 156525
    functionName: icuCollationColl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ucol_strcoll
    - assert
    linkageType: ''
    returnType: int
    signature: "int icuCollationColl(\n  void *pCtx,\n  int nLeft,\n  const void *zLeft,\n
      \ int nRight,\n  const void *zRight\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156545,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156552,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156554,1
    - Dst: sqlite3_value_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156555,1
    - Dst: ucol_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156561,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156562,1
    - Dst: icuFunctionError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156563,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156566,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156568,1
    - Dst: ucol_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156572,1
    - Dst: sqlite3_result_error
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (nArg==2)
      pos:
        line_end: 156551
        line_start: 156551
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: (p)
      pos:
        line_end: 156565
        line_start: 156565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156575
      start: 156540
    functionDepth: 12
    functionLinenumber: 156540
    functionLinenumberEnd: 156575
    functionName: icuLoadCollation
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ucol_open
    - assert
    - sqlite3_user_data
    - U_SUCCESS
    - icuFunctionError
    - sqlite3_value_text
    - ucol_close
    - sqlite3_result_error
    - sqlite3_create_collation_v2
    linkageType: ''
    returnType: void
    signature: "void icuLoadCollation(\n  sqlite3_context *p, \n  int nArg, \n  sqlite3_value
      **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156617
      start: 156580
    functionDepth: 2
    functionLinenumber: 156580
    functionLinenumberEnd: 156617
    functionName: sqlite3IcuInit
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IcuInit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156628,1
    - Dst: sqlite3IcuInit
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156630
      start: 156621
    functionDepth: 3
    functionLinenumber: 156621
    functionLinenumberEnd: 156630
    functionName: sqlite3_icu_init
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_EXTENSION_INIT2
    - sqlite3IcuInit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_icu_init(\n  sqlite3 *db, \n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156697,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156699,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156703,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156713
      start: 156688
    functionDepth: 0
    functionLinenumber: 156688
    functionLinenumberEnd: 156713
    functionName: icuCreate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - strlen
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int icuCreate(\n  int argc,                            /* Number of
      entries in argv[] */\n  const char * const *argv,            /* Tokenizer creation
      arguments */\n  sqlite3_tokenizer **ppTokenizer      /* OUT: Created tokenizer
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156722
      start: 156718
    functionDepth: 3
    functionLinenumber: 156718
    functionLinenumberEnd: 156722
    functionName: icuDestroy
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int icuDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156753,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156756,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156764,1
    - Dst: U8_NEXT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156769,1
    - Dst: u_foldCase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156772,1
    - Dst: U16_APPEND
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156773,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156775,1
    - Dst: U8_NEXT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156781,1
    - Dst: ubrk_open
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156787,1
    - Dst: U_SUCCESS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156788,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156789,1
    - Dst: ubrk_first
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 4
    argNames:
    - pTokenizer
    - zInput
    - nInput
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156797
      start: 156730
    functionDepth: 3
    functionLinenumber: 156730
    functionLinenumberEnd: 156797
    functionName: icuOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - ubrk_open
    - ubrk_first
    - U_SUCCESS
    - U8_NEXT
    - sqlite3_malloc
    - U16_APPEND
    - u_foldCase
    - strlen
    linkageType: ''
    returnType: int
    signature: "int icuOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *zInput,                    /* Input string */\n  int nInput,
      \                           /* Length of zInput in bytes */\n  sqlite3_tokenizer_cursor
      **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156804,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156805,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156808
      start: 156802
    functionDepth: 3
    functionLinenumber: 156802
    functionLinenumberEnd: 156808
    functionName: icuClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - ubrk_close
    linkageType: ''
    returnType: int
    signature: int icuClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_current
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156830,1
    - Dst: ubrk_next
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156831,1
    - Dst: U16_NEXT
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156838,1
    - Dst: u_isspace
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156839,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156845,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156851,1
    - Dst: u_strToUTF8
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:156859,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - pCursor
    - ppToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (iStart<=iEnd)
      pos:
        line_end: 156844
        line_start: 156844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156873
      start: 156813
    functionDepth: 0
    functionLinenumber: 156813
    functionLinenumberEnd: 156873
    functionName: icuNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - u_isspace
    - assert
    - sqlite3_realloc
    - ubrk_current
    - ubrk_next
    - U16_NEXT
    - u_strToUTF8
    linkageType: ''
    returnType: int
    signature: "int icuNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by simpleOpen */\n  const char **ppToken,               /* OUT: *ppToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156895
      start: 156891
    functionDepth: 0
    functionLinenumber: 156891
    functionLinenumberEnd: 156895
    functionName: sqlite3Fts3IcuTokenizerModule
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3IcuTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157427
      start: 157426
    functionDepth: 0
    functionLinenumber: 157426
    functionLinenumberEnd: 157427
    functionName: SWAP
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(TYPE,A,B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157702,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157704,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - db
    - ppStmt
    - pzErrmsg
    - zSql
    argTypes:
    - sqlite3*
    - sqlite3_stmt**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157708
      start: 157696
    functionDepth: 27
    functionLinenumber: 157696
    functionLinenumberEnd: 157708
    functionName: prepareAndCollectError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - sqlite3_mprintf
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int prepareAndCollectError(\n  sqlite3 *db, \n  sqlite3_stmt **ppStmt,\n
      \ char **pzErrmsg,\n  const char *zSql\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157719,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157721,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157721,1
    - Dst: sqlite3_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pStmt
    - pzErrmsg
    argTypes:
    - sqlite3_stmt*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157724
      start: 157718
    functionDepth: 24
    functionLinenumber: 157718
    functionLinenumberEnd: 157724
    functionName: resetAndCollectError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_db_handle
    - sqlite3_errmsg
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int resetAndCollectError(sqlite3_stmt *pStmt, char **pzErrmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157748,1
    - Dst: prepareAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157753,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - ppStmt
    - pzErrmsg
    - zSql
    argTypes:
    - sqlite3*
    - sqlite3_stmt**
    - char**
    - char*
    assertStmts:
    - condition: ( *pzErrmsg==0 )
      pos:
        line_end: 157747
        line_start: 157747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157757
      start: 157741
    functionDepth: 28
    functionLinenumber: 157741
    functionLinenumberEnd: 157757
    functionName: prepareFreeAndCollectError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - prepareAndCollectError
    - sqlite3_free
    - assert
    linkageType: ''
    returnType: int
    signature: "int prepareFreeAndCollectError(\n  sqlite3 *db, \n  sqlite3_stmt **ppStmt,\n
      \ char **pzErrmsg,\n  char *zSql\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157766,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157767,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157777
      start: 157763
    functionDepth: 3
    functionLinenumber: 157763
    functionLinenumberEnd: 157777
    functionName: rbuObjIterFreeCols
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuObjIterFreeCols(RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157786,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157787,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157788,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157789,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157793,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157804
      start: 157783
    functionDepth: 25
    functionLinenumber: 157783
    functionLinenumberEnd: 157804
    functionName: rbuObjIterClearStatements
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuObjIterClearStatements(RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterClearStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157811,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157812,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157813,1
    - Dst: rbuObjIterFreeCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157814,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157816
      start: 157810
    functionDepth: 26
    functionLinenumber: 157810
    functionLinenumberEnd: 157816
    functionName: rbuObjIterFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuObjIterClearStatements
    - memset
    - sqlite3_finalize
    - rbuObjIterFreeCols
    linkageType: ''
    returnType: void
    signature: void rbuObjIterFinalize(RbuObjIter *pIter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterClearStatements
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157831,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157833,1
    - Dst: rbuObjIterFreeCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157844,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157846,1
    - Dst: resetAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157848,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157851,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157857,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157860,1
    - Dst: resetAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157862,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157866,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157867,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157868,1
    - Dst: rbuObjIterFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157881
      start: 157826
    functionDepth: 27
    functionLinenumber: 157826
    functionLinenumberEnd: 157881
    functionName: rbuObjIterNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - resetAndCollectError
    - rbuObjIterClearStatements
    - sqlite3_step
    - sqlite3_column_text
    - sqlite3_bind_text
    - rbuObjIterFinalize
    - sqlite3_exec
    - rbuObjIterFreeCols
    linkageType: ''
    returnType: int
    signature: int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157893,1
    - Dst: prepareAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157895,1
    - Dst: prepareAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157901,1
    - Dst: rbuObjIterNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157911
      start: 157891
    functionDepth: 28
    functionLinenumber: 157891
    functionLinenumberEnd: 157911
    functionName: rbuObjIterFirst
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - rbuObjIterNext
    - prepareAndCollectError
    linkageType: ''
    returnType: int
    signature: int rbuObjIterFirst(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157925,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157926,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157930,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - zFmt
    argTypes:
    - sqlite3rbu*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157935
      start: 157922
    functionDepth: 3
    functionLinenumber: 157922
    functionLinenumberEnd: 157935
    functionName: rbuMPrintf
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3_free
    - sqlite3_vmprintf
    linkageType: ''
    returnType: char
    signature: char *rbuMPrintf(sqlite3rbu *p, const char *zFmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157950,1
    - Dst: sqlite3_vmprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157951,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157956,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157959,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - db
    - zFmt
    argTypes:
    - sqlite3rbu*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157962
      start: 157947
    functionDepth: 27
    functionLinenumber: 157947
    functionLinenumberEnd: 157962
    functionName: rbuMPrintfExec
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - va_start
    - sqlite3_vmprintf
    - sqlite3_exec
    - va_end
    linkageType: ''
    returnType: int
    signature: int rbuMPrintfExec(sqlite3rbu *p, sqlite3 *db, const char *zFmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157977,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157978,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 157976
        line_start: 157976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157986
      start: 157974
    functionDepth: 0
    functionLinenumber: 157974
    functionLinenumberEnd: 157986
    functionName: rbuMalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - assert
    linkageType: ''
    returnType: void
    signature: void *rbuMalloc(sqlite3rbu *p, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:157998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - pIter
    - nCol
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158007
      start: 157994
    functionDepth: 1
    functionLinenumber: 157994
    functionLinenumberEnd: 158007
    functionName: rbuAllocateIterArrays
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMalloc
    linkageType: ''
    returnType: void
    signature: void rbuAllocateIterArrays(sqlite3rbu *p, RbuObjIter *pIter, int nCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158022,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158024,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158025,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - zStr
    - pRc
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( *pRc==SQLITE_OK )
      pos:
        line_end: 158021
        line_start: 158021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158034
      start: 158019
    functionDepth: 0
    functionLinenumber: 158019
    functionLinenumberEnd: 158034
    functionName: rbuStrndup
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc
    - strlen
    - assert
    linkageType: ''
    returnType: char
    signature: char *rbuStrndup(const char *zStr, int *pRc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_handle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158044,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158045,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158048,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - pStmt
    argTypes:
    - sqlite3rbu*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158050
      start: 158043
    functionDepth: 25
    functionLinenumber: 158043
    functionLinenumberEnd: 158050
    functionName: rbuFinalize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3_db_handle
    linkageType: ''
    returnType: void
    signature: void rbuFinalize(sqlite3rbu *p, sqlite3_stmt *pStmt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158109,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158110,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158111,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158116,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158120,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158124,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158126,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158127,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158130,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158131,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158132,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158134,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158135,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158139,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158140,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158150,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158151,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158154,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158155,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158166,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 5
    argNames:
    - p
    - zTab
    - peType
    - piTnum
    - piPk
    argTypes:
    - sqlite3rbu*
    - char*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 158108
        line_start: 158108
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158169
      start: 158091
    functionDepth: 29
    functionLinenumber: 158091
    functionLinenumberEnd: 158169
    functionName: rbuTableType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - rbuFinalize
    - assert
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    linkageType: ''
    returnType: void
    signature: "void rbuTableType(\n  sqlite3rbu *p,\n  const char *zTab,\n  int *peType,\n
      \ int *piTnum,\n  int *piPk\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158180,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158181,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158182,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158186,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158187,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158190,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158191,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158193,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158194,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158197,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158203
      start: 158175
    functionDepth: 29
    functionLinenumber: 158175
    functionLinenumberEnd: 158203
    functionName: rbuObjIterCacheIndexedCols
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - rbuFinalize
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rbuObjIterCacheIndexedCols(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158225,1
    - Dst: rbuTableType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158226,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158229,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158234,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158242,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158243,1
    - Dst: sqlite3_column_count
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158246,1
    - Dst: rbuAllocateIterArrays
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158247,1
    - Dst: sqlite3_column_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158250,1
    - Dst: sqlite3_strnicmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158251,1
    - Dst: rbuStrndup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158252,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158256,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158260,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158267,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158277,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158278,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158281,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158282,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158285,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158289,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158293,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158294,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158295,1
    - Dst: rbuStrndup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158302,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158309,1
    - Dst: rbuObjIterCacheIndexedCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158310,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158311,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts:
    - condition: ( pIter->eType!=RBU_PK_VTAB || pIter->abIndexed==0 )
      pos:
        line_end: 158310
        line_start: 158310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIter->eType==0 )
      pos:
        line_end: 158224
        line_start: 158224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: "( pIter->eType==RBU_PK_NONE || pIter->eType==RBU_PK_IPK \n         ||
        pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_WITHOUT_ROWID\n         ||
        pIter->eType==RBU_PK_VTAB\n    )"
      pos:
        line_end: 158236
        line_start: 158233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158315
      start: 158215
    functionDepth: 30
    functionLinenumber: 158215
    functionLinenumberEnd: 158315
    functionName: rbuObjIterCacheTableInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_column_int
    - rbuFinalize
    - sqlite3_column_count
    - rbuTableType
    - assert
    - sqlite3_strnicmp
    - sqlite3_stricmp
    - rbuStrndup
    - sqlite3_mprintf
    - sqlite3_step
    - prepareFreeAndCollectError
    - sqlite3_column_text
    - rbuObjIterCacheIndexedCols
    - strcmp
    - sqlite3_column_name
    - rbuAllocateIterArrays
    linkageType: ''
    returnType: int
    signature: int rbuObjIterCacheTableInfo(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158335
      start: 158322
    functionDepth: 4
    functionLinenumber: 158322
    functionLinenumberEnd: 158335
    functionName: rbuObjIterGetCollist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetCollist(\n  sqlite3rbu *p,                  /*
      RBU object */\n  RbuObjIter *pIter               /* Object iterator for column
      names */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158381,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158382,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158383,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158387,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158388,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158389,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158390,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158400,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158411,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158412,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158414,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158418,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158421,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158430,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158434,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158435,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158436,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158437,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 6
    argNames:
    - p
    - pIter
    - pzImposterCols
    - pzImposterPk
    - pzWhere
    - pnBind
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char**
    - char**
    - char**
    - int*
    assertStmts:
    - condition: ( p->zErrmsg==0 )
      pos:
        line_end: 158380
        line_start: 158380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( i<pIter->nTblCol )
      pos:
        line_end: 158399
        line_start: 158399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158450
      start: 158361
    functionDepth: 29
    functionLinenumber: 158361
    functionLinenumberEnd: 158450
    functionName: rbuObjIterGetIndexCols
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - assert
    - sqlite3_free
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetIndexCols(\n  sqlite3rbu *p,                  /*
      RBU object */\n  RbuObjIter *pIter,              /* Object iterator for column
      names */\n  char **pzImposterCols,          /* OUT: Columns for imposter table
      */\n  char **pzImposterPk,            /* OUT: Imposter PK clause */\n  char
      **pzWhere,                 /* OUT: WHERE clause */\n  int *pnBind                     /*
      OUT: Trbul number of columns */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158475,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158477,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pIter
    - zObj
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158492
      start: 158463
    functionDepth: 4
    functionLinenumber: 158463
    functionLinenumberEnd: 158492
    functionName: rbuObjIterGetOldlist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - sqlite3_mprintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetOldlist(\n  sqlite3rbu *p, \n  RbuObjIter *pIter,\n
      \ const char *zObj\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158510,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158516,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158520,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158536
      start: 158504
    functionDepth: 4
    functionLinenumber: 158504
    functionLinenumberEnd: 158536
    functionName: rbuObjIterGetWhere
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetWhere(\n  sqlite3rbu *p, \n  RbuObjIter *pIter\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158548
      start: 158545
    functionDepth: 0
    functionLinenumber: 158545
    functionLinenumberEnd: 158548
    functionName: rbuBadControlError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: void
    signature: void rbuBadControlError(sqlite3rbu *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158577,1
    - Dst: rbuBadControlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158578,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158584,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - p
    - pIter
    - zMask
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158599
      start: 158568
    functionDepth: 4
    functionLinenumber: 158568
    functionLinenumberEnd: 158599
    functionName: rbuObjIterGetSetlist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - strlen
    - rbuBadControlError
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetSetlist(\n  sqlite3rbu *p,\n  RbuObjIter *pIter,\n
      \ const char *zMask\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - nBind
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158629
      start: 158616
    functionDepth: 1
    functionLinenumber: 158616
    functionLinenumberEnd: 158629
    functionName: rbuObjIterGetBindlist
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMalloc
    linkageType: ''
    returnType: char
    signature: char *rbuObjIterGetBindlist(sqlite3rbu *p, int nBind)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158645,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158651,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158652,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158654,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158655,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158656,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158657,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158659,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158660,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158666,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158668,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158669,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158671,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158672,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158673,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158677,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158678,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts:
    - condition: ( pIter->zIdx==0 )
      pos:
        line_end: 158644
        line_start: 158644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158681
      start: 158643
    functionDepth: 29
    functionLinenumber: 158643
    functionLinenumberEnd: 158681
    functionName: rbuWithoutRowidPK
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - rbuFinalize
    - assert
    - sqlite3_step
    - rbuMPrintf
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *rbuWithoutRowidPK(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepareAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158715,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158719,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158720,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158721,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158725,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158726,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158729,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158731,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158732,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158734,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158735,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158736,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158737,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158740,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158744,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158745,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158747,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158748,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158752,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158754
      start: 158702
    functionDepth: 29
    functionLinenumber: 158702
    functionLinenumberEnd: 158754
    functionName: rbuCreateImposterTable2
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - rbuFinalize
    - sqlite3_test_control
    - sqlite3_bind_int
    - sqlite3_step
    - rbuMPrintf
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    - rbuMPrintfExec
    - prepareAndCollectError
    linkageType: ''
    returnType: void
    signature: void rbuCreateImposterTable2(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158782,1
    - Dst: sqlite3_table_column_metadata
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158789,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158798,1
    - Dst: rbuWithoutRowidPK
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158806,1
    - Dst: rbuMPrintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158808,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158812,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158813,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158819
      start: 158776
    functionDepth: 30
    functionLinenumber: 158776
    functionLinenumberEnd: 158819
    functionName: rbuCreateImposterTable
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_test_control
    - rbuMPrintf
    - sqlite3_table_column_metadata
    - rbuWithoutRowidPK
    - rbuMPrintfExec
    linkageType: ''
    returnType: void
    signature: void rbuCreateImposterTable(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterGetBindlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158839,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158841,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158842,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - p
    - pIter
    - zCollist
    - zRbuRowid
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    - char*
    assertStmts:
    - condition: ( pIter->pTmpInsert==0 )
      pos:
        line_end: 158840
        line_start: 158840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158848
      start: 158832
    functionDepth: 29
    functionLinenumber: 158832
    functionLinenumberEnd: 158848
    functionName: rbuObjIterPrepareTmpInsert
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - assert
    - rbuObjIterGetBindlist
    - prepareFreeAndCollectError
    linkageType: ''
    returnType: void
    signature: "void rbuObjIterPrepareTmpInsert(\n  sqlite3rbu *p, \n  RbuObjIter
      *pIter,\n  const char *zCollist,\n  const char *zRbuRowid\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158855,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158860,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158863,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158864,1
    - Dst: sqlite3_result_error_code
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pCtx
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158870
      start: 158850
    functionDepth: 26
    functionLinenumber: 158850
    functionLinenumberEnd: 158870
    functionName: rbuTmpInsertFunc
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_value
    - sqlite3_user_data
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_result_error_code
    linkageType: ''
    returnType: void
    signature: "void rbuTmpInsertFunc(\n  sqlite3_context *pCtx, \n  int nVal,\n  sqlite3_value
      **apVal\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158882,1
    - Dst: rbuObjIterCacheTableInfo
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158883,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158891,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158903,1
    - Dst: rbuObjIterGetIndexCols
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158904,1
    - Dst: rbuObjIterGetBindlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158907,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158910,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158911,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158912,1
    - Dst: sqlite3_test_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158916,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158921,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158923,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158929,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158931,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158939,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158945,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158956,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158959,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158960,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158961,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158962,1
    - Dst: rbuObjIterGetBindlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158968,1
    - Dst: rbuObjIterGetWhere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158969,1
    - Dst: rbuObjIterGetOldlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158970,1
    - Dst: rbuObjIterGetOldlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158971,1
    - Dst: rbuObjIterGetCollist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158973,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158978,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158979,1
    - Dst: rbuCreateImposterTable
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158987,1
    - Dst: rbuCreateImposterTable2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158988,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158993,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:158994,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159003,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159004,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159017,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159025,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159046,1
    - Dst: rbuObjIterPrepareTmpInsert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159055,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159058,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159059,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159060,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159061,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159063,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159064,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 3
    argNames:
    - p
    - pIter
    - nOffset
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - int
    assertStmts:
    - condition: ( pIter->eType!=RBU_PK_VTAB )
      pos:
        line_end: 158902
        line_start: 158902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pIter->bCleanup==0 )
      pos:
        line_end: 158881
        line_start: 158881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159068
      start: 158877
    functionDepth: 31
    functionLinenumber: 158877
    functionLinenumberEnd: 159068
    functionName: rbuObjIterPrepareAll
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_test_control
    - rbuObjIterGetBindlist
    - assert
    - rbuObjIterGetIndexCols
    - sqlite3_free
    - rbuObjIterGetWhere
    - sqlite3_mprintf
    - rbuObjIterGetCollist
    - prepareFreeAndCollectError
    - rbuCreateImposterTable
    - rbuObjIterPrepareTmpInsert
    - rbuMPrintfExec
    - rbuObjIterCacheTableInfo
    - rbuObjIterGetOldlist
    - rbuCreateImposterTable2
    linkageType: ''
    returnType: int
    signature: "int rbuObjIterPrepareAll(\n  sqlite3rbu *p, \n  RbuObjIter *pIter,\n
      \ int nOffset                     /* Add \"LIMIT -1 OFFSET $nOffset\" to SELECT
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159098,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159107,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159112,1
    - Dst: rbuMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159115,1
    - Dst: rbuObjIterGetWhere
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159119,1
    - Dst: rbuObjIterGetSetlist
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159120,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159124,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159132,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159135,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159140,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - p
    - pIter
    - zMask
    - ppStmt
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    - sqlite3_stmt**
    assertStmts:
    - condition: ( pUp==0 || pUp->pNext==0 )
      pos:
        line_end: 159106
        line_start: 159106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159145
      start: 159079
    functionDepth: 29
    functionLinenumber: 159079
    functionLinenumberEnd: 159145
    functionName: rbuGetUpdateStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - assert
    - sqlite3_free
    - rbuObjIterGetWhere
    - sqlite3_mprintf
    - rbuObjIterGetSetlist
    - prepareFreeAndCollectError
    - memcpy
    - strcmp
    - rbuMalloc
    linkageType: ''
    returnType: int
    signature: "int rbuGetUpdateStmt(\n  sqlite3rbu *p,                  /* RBU handle
      */\n  RbuObjIter *pIter,              /* Object iterator */\n  const char *zMask,
      \             /* rbu_control value ('x.x.') */\n  sqlite3_stmt **ppStmt           /*
      OUT: UPDATE statement handle */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_open_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159151,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159153,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159153,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - sqlite3rbu*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159159
      start: 159147
    functionDepth: 14
    functionLinenumber: 159147
    functionLinenumberEnd: 159159
    functionName: rbuOpenDbhandle
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_close
    - sqlite3_mprintf
    - sqlite3_open_v2
    - sqlite3_errmsg
    linkageType: ''
    returnType: sqlite3
    signature: sqlite3 *rbuOpenDbhandle(sqlite3rbu *p, const char *zName)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159166,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159167,1
    - Dst: rbuOpenDbhandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159170,1
    - Dst: rbuOpenDbhandle
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159171,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159176,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159177,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159179,1
    - Dst: sqlite3_create_function
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159183,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159189,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159191,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159197,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 159165
        line_start: 159165
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->dbMain==0 && p->dbRbu==0 )
      pos:
        line_end: 159166
        line_start: 159166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159204
      start: 159165
    functionDepth: 28
    functionLinenumber: 159165
    functionLinenumberEnd: 159204
    functionName: rbuOpenDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file_control
    - assert
    - sqlite3_mprintf
    - rbuOpenDbhandle
    - memcpy
    - sqlite3_create_function
    - rbuMPrintfExec
    linkageType: ''
    returnType: void
    signature: void rbuOpenDatabase(sqlite3rbu *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_boolean
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159229,1
    - Dst: sqlite3Strlen30
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159233,1
    - Dst: ALWAYS
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159235,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - zBase
    - z
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159238
      start: 159226
    functionDepth: 6
    functionLinenumber: 159226
    functionLinenumberEnd: 159238
    functionName: rbuFileSuffix3
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3Strlen30
    - memmove
    - sqlite3_uri_boolean
    linkageType: ''
    returnType: void
    signature: void rbuFileSuffix3(const char *zBase, char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159258
      start: 159247
    functionDepth: 0
    functionLinenumber: 159247
    functionLinenumberEnd: 159258
    functionName: rbuShmChecksum
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmMap
    linkageType: ''
    returnType: i64
    signature: i64 rbuShmChecksum(sqlite3rbu *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159284,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159319,1
    - Dst: rbuMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159326,1
    - Dst: rbuShmChecksum
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pState
    argTypes:
    - sqlite3rbu*
    - RbuState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159334
      start: 159276
    functionDepth: 27
    functionLinenumber: 159276
    functionLinenumberEnd: 159334
    functionName: rbuSetupCheckpoint
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuShmChecksum
    - rbuMalloc
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void rbuSetupCheckpoint(sqlite3rbu *p, RbuState *pState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pRbu
    - iOff
    - iAmt
    argTypes:
    - sqlite3rbu*
    - i64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159366
      start: 159341
    functionDepth: 0
    functionLinenumber: 159341
    functionLinenumberEnd: 159366
    functionName: rbuCaptureWalRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: int rbuCaptureWalRead(sqlite3rbu *pRbu, i64 iOff, int iAmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pRbu
    - iOff
    argTypes:
    - sqlite3rbu*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159376
      start: 159373
    functionDepth: 0
    functionLinenumber: 159373
    functionLinenumberEnd: 159376
    functionName: rbuCaptureDbWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rbuCaptureDbWrite(sqlite3rbu *pRbu, i64 iOff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159388,1
    - Dst: sqlite3_file*::pMethods::xRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159390,1
    - Dst: sqlite3_file*::pMethods::xWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - pFrame
    argTypes:
    - sqlite3rbu*
    - RbuFrame*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 159387
        line_start: 159387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159395
      start: 159383
    functionDepth: 0
    functionLinenumber: 159383
    functionLinenumberEnd: 159395
    functionName: rbuCheckpointFrame
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xWrite
    - assert
    - sqlite3_file*::pMethods::xRead
    linkageType: ''
    returnType: void
    signature: void rbuCheckpointFrame(sqlite3rbu *p, RbuFrame *pFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159403,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159404,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 159402
        line_start: 159402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159408
      start: 159401
    functionDepth: 0
    functionLinenumber: 159401
    functionLinenumberEnd: 159408
    functionName: rbuLockDatabase
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xLock
    - assert
    linkageType: ''
    returnType: void
    signature: void rbuLockDatabase(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_filename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159418,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159420,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159421,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159423,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159424,1
    - Dst: rbuLockDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159435,1
    - Dst: rbuFileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159437,1
    - Dst: rbuFileSuffix3
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159438,1
    - Dst: rbuObjIterFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159441,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159442,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159443,1
    - Dst: rename
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159444,1
    - Dst: rbuOpenDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159448,1
    - Dst: rbuSetupCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159449,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159454,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK && p->zErrmsg==0 )
      pos:
        line_end: 159423
        line_start: 159423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->eStage==RBU_STAGE_MOVE )
      pos:
        line_end: 159422
        line_start: 159422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159456
      start: 159417
    functionDepth: 29
    functionLinenumber: 159417
    functionLinenumberEnd: 159456
    functionName: rbuMoveOalFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rename
    - assert
    - rbuLockDatabase
    - rbuFileSuffix3
    - sqlite3_free
    - sqlite3_mprintf
    - rbuSetupCheckpoint
    - rbuOpenDatabase
    - rbuObjIterFinalize
    - sqlite3_close
    - sqlite3_db_filename
    linkageType: ''
    returnType: void
    signature: void rbuMoveOalFile(sqlite3rbu *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159479,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159481,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159495,1
    - Dst: rbuBadControlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - p
    - pzMask
    argTypes:
    - sqlite3rbu*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159514
      start: 159475
    functionDepth: 6
    functionLinenumber: 159475
    functionLinenumberEnd: 159514
    functionName: rbuStepType
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_column_text
    - rbuBadControlError
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: int rbuStepType(sqlite3rbu *p, const char **pzMask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_name
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159521,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159522,1
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pStmt
    - iCol
    - zName
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    assertStmts:
    - condition: ( 0==sqlite3_stricmp(zName, zCol) )
      pos:
        line_end: 159521
        line_start: 159521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159523
      start: 159520
    functionDepth: 1
    functionLinenumber: 159520
    functionLinenumberEnd: 159523
    functionName: assertColumnName
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_name
    - sqlite3_stricmp
    - assert
    linkageType: ''
    returnType: void
    signature: void assertColumnName(sqlite3_stmt *pStmt, int iCol, const char *zName)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rbuStepType
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159543,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159546,1
    - Dst: rbuBadControlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159549,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159560,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159561,1
    - Dst: sqlite3_column_type
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159575,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159578,1
    - Dst: sqlite3_column_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159586,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159587,1
    - Dst: assertColumnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159600,1
    - Dst: sqlite3_column_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159601,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159602,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159605,1
    - Dst: resetAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159606,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159611,1
    - Dst: rbuGetUpdateStmt
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159612,1
    - Dst: sqlite3_column_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159616,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159618,1
    - Dst: assertColumnName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159625,1
    - Dst: sqlite3_column_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159626,1
    - Dst: sqlite3_bind_value
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159627,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159630,1
    - Dst: resetAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159631,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( eType!=RBU_UPDATE )
      pos:
        line_end: 159559
        line_start: 159559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType!=RBU_UPDATE || pIter->zIdx==0 )
      pos:
        line_end: 159545
        line_start: 159545
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType==RBU_UPDATE )
      pos:
        line_end: 159610
        line_start: 159610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( eType!=RBU_DELETE || pIter->zIdx==0 )
      pos:
        line_end: 159560
        line_start: 159560
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159639
      start: 159539
    functionDepth: 30
    functionLinenumber: 159539
    functionLinenumberEnd: 159639
    functionName: rbuStep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuStepType
    - assertColumnName
    - rbuGetUpdateStmt
    - sqlite3_bind_value
    - rbuBadControlError
    - assert
    - resetAndCollectError
    - sqlite3_step
    - sqlite3_mprintf
    - sqlite3_column_value
    - sqlite3_column_type
    linkageType: ''
    returnType: int
    signature: int rbuStep(sqlite3rbu *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepareAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159649,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159658,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159659,1
    - Dst: rbuFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159661,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159667
      start: 159644
    functionDepth: 28
    functionLinenumber: 159644
    functionLinenumberEnd: 159667
    functionName: rbuIncrSchemaCookie
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - rbuFinalize
    - sqlite3_step
    - rbuMPrintfExec
    - prepareAndCollectError
    linkageType: ''
    returnType: void
    signature: void rbuIncrSchemaCookie(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159679,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159680,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159681,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159702,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159705,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - p
    - eStage
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts:
    - condition: ( p->zErrmsg==0 )
      pos:
        line_end: 159678
        line_start: 159678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pInsert==0 || rc==SQLITE_OK )
      pos:
        line_end: 159701
        line_start: 159701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159710
      start: 159674
    functionDepth: 29
    functionLinenumber: 159674
    functionLinenumberEnd: 159710
    functionName: rbuSaveState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - assert
    - sqlite3_step
    - sqlite3_mprintf
    - prepareFreeAndCollectError
    linkageType: ''
    returnType: void
    signature: void rbuSaveState(sqlite3rbu *p, int eStage)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159728,1
    - Dst: rbuObjIterPrepareAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159733,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159737,1
    - Dst: rbuStep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159741,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159743,1
    - Dst: rbuObjIterNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159748,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159752,1
    - Dst: rbuSaveState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159753,1
    - Dst: rbuIncrSchemaCookie
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159754,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159756,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159759,1
    - Dst: rbuMoveOalFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159768,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159780,1
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159785,1
    - Dst: rbuCheckpointFrame
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159797,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( pIter->zTbl==0 )
      pos:
        line_end: 159751
        line_start: 159751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159812
      start: 159716
    functionDepth: 32
    functionLinenumber: 159716
    functionLinenumberEnd: 159812
    functionName: sqlite3rbu_step
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xSync
    - assert
    - rbuMoveOalFile
    - sqlite3_step
    - rbuCheckpointFrame
    - rbuObjIterPrepareAll
    - rbuIncrSchemaCookie
    - rbuStep
    - rbuSaveState
    - sqlite3_reset
    - rbuMPrintfExec
    - sqlite3_exec
    - sqlite3_file*::pMethods::xShmMap
    - rbuObjIterNext
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_step(sqlite3rbu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159819,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159820,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - RbuState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159823
      start: 159817
    functionDepth: 3
    functionLinenumber: 159817
    functionLinenumberEnd: 159823
    functionName: rbuFreeState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuFreeState(RbuState *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159840,1
    - Dst: prepareFreeAndCollectError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159843,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159844,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159846,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159847,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159849,1
    - Dst: rbuStrndup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159859,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159859,1
    - Dst: rbuStrndup
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159863,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159863,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159867,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159871,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159875,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159879,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159883,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159891,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159896
      start: 159834
    functionDepth: 29
    functionLinenumber: 159834
    functionLinenumberEnd: 159896
    functionName: rbuLoadState
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - sqlite3_step
    - rbuStrndup
    - sqlite3_mprintf
    - sqlite3_column_text
    - prepareFreeAndCollectError
    - sqlite3_column_int64
    - rbuMalloc
    linkageType: ''
    returnType: RbuState
    signature: RbuState *rbuLoadState(sqlite3rbu *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159906,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - z1
    - z2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159907
      start: 159903
    functionDepth: 1
    functionLinenumber: 159903
    functionLinenumberEnd: 159907
    functionName: rbuStrCompare
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int rbuStrCompare(const char *z1, const char *z2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159920,1
    - Dst: rbuStrCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159926,1
    - Dst: rbuStrCompare
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159927,1
    - Dst: rbuObjIterNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159929,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159934,1
    - Dst: rbuObjIterPrepareAll
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159939,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - p
    - pState
    argTypes:
    - sqlite3rbu*
    - RbuState*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 159919
        line_start: 159919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159944
      start: 159919
    functionDepth: 32
    functionLinenumber: 159919
    functionLinenumberEnd: 159944
    functionName: rbuSetupOal
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    - rbuObjIterPrepareAll
    - rbuStrCompare
    - rbuObjIterNext
    linkageType: ''
    returnType: void
    signature: void rbuSetupOal(sqlite3rbu *p, RbuState *pState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159952,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159953,1
    - Dst: unlink
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159954,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK && p->zErrmsg==0 )
      pos:
        line_end: 159952
        line_start: 159952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159956
      start: 159951
    functionDepth: 3
    functionLinenumber: 159951
    functionLinenumberEnd: 159956
    functionName: rbuDeleteOalFile
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_mprintf
    - unlink
    - assert
    linkageType: ''
    returnType: void
    signature: void rbuDeleteOalFile(sqlite3rbu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159968,1
    - Dst: sqlite3_randomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159969,1
    - Dst: sqlite3_snprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159970,1
    - Dst: sqlite3rbu_create_vfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159971,1
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159973,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 159967
        line_start: 159967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pVfs )
      pos:
        line_end: 159973
        line_start: 159973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159977
      start: 159964
    functionDepth: 3
    functionLinenumber: 159964
    functionLinenumberEnd: 159977
    functionName: rbuCreateVfs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3rbu_create_vfs
    - assert
    - sqlite3_randomness
    - sqlite3_vfs_find
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void rbuCreateVfs(sqlite3rbu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3rbu_destroy_vfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159988
      start: 159983
    functionDepth: 1
    functionLinenumber: 159983
    functionLinenumberEnd: 159988
    functionName: rbuDeleteVfs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3rbu_destroy_vfs
    linkageType: ''
    returnType: void
    signature: void rbuDeleteVfs(sqlite3rbu *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:159999,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160000,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160001,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160003,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160008,1
    - Dst: rbuCreateVfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160009,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160014,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160016,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160019,1
    - Dst: rbuOpenDatabase
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160021,1
    - Dst: rbuMPrintfExec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160025,1
    - Dst: rbuLoadState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160028,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160029,1
    - Dst: rbuDeleteOalFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160033,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160042,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160047,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160063,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160071,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160073,1
    - Dst: rbuObjIterFirst
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160078,1
    - Dst: rbuSetupOal
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160088,1
    - Dst: rbuSetupCheckpoint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160094,1
    - Dst: rbuFreeState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160102,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 3
    argNames:
    - zTarget
    - zRbu
    - zState
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: ( pState || p->rc!=SQLITE_OK )
      pos:
        line_end: 160028
        line_start: 160028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->rc!=SQLITE_OK || p->eStage!=0 )
      pos:
        line_end: 160041
        line_start: 160041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160106
      start: 159993
    functionDepth: 33
    functionLinenumber: 159993
    functionLinenumberEnd: 160106
    functionName: sqlite3rbu_open
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuFreeState
    - memset
    - rbuLoadState
    - assert
    - rbuDeleteOalFile
    - sqlite3_mprintf
    - rbuSetupCheckpoint
    - memcpy
    - sqlite3_malloc
    - rbuOpenDatabase
    - rbuCreateVfs
    - rbuSetupOal
    - sqlite3_exec
    - rbuMPrintfExec
    - rbuObjIterFirst
    - strlen
    linkageType: ''
    returnType: void
    signature: "void sqlite3rbu_open(\n  const char *zTarget, \n  const char *zRbu,\n
      \ const char *zState\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pRbu
    - bRbu
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160118
      start: 160112
    functionDepth: 0
    functionLinenumber: 160112
    functionLinenumberEnd: 160118
    functionName: SQLITE_STDCALL::sqlite3rbu_db
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *SQLITE_STDCALL sqlite3rbu_db(sqlite3rbu *pRbu, int bRbu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160129,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160131,1
    - Dst: memmove
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160139
      start: 160126
    functionDepth: 0
    functionLinenumber: 160126
    functionLinenumberEnd: 160139
    functionName: rbuEditErrmsg
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memmove
    - strlen
    linkageType: ''
    returnType: void
    signature: void rbuEditErrmsg(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160150,1
    - Dst: rbuSaveState
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160153,1
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160156,1
    - Dst: rbuObjIterFinalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160160,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160163,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160164,1
    - Dst: rbuDeleteVfs
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160165,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160166,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160167,1
    - Dst: rbuEditErrmsg
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160169,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - p
    - pzErrmsg
    argTypes:
    - sqlite3rbu*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160178
      start: 160144
    functionDepth: 30
    functionLinenumber: 160144
    functionLinenumberEnd: 160178
    functionName: sqlite3rbu_close
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - rbuObjIterFinalize
    - rbuSaveState
    - sqlite3_exec
    - sqlite3_close
    - rbuEditErrmsg
    - rbuDeleteVfs
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_close(sqlite3rbu *p, char **pzErrmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pRbu
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160187
      start: 160185
    functionDepth: 0
    functionLinenumber: 160185
    functionLinenumberEnd: 160187
    functionName: sqlite3rbu_progress
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_progress(sqlite3rbu *pRbu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - rbu_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160259
      start: 160248
    functionDepth: 0
    functionLinenumber: 160248
    functionLinenumberEnd: 160259
    functionName: rbuUnlockShm
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - xShmLock
    linkageType: ''
    returnType: void
    signature: void rbuUnlockShm(rbu_file *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160271,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160273,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160275,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160279,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160282,1
    - Dst: rbuUnlockShm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160283,1
    - Dst: rbu_file*::pReal::pMethods::xShmUnmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160284,1
    - Dst: rbu_file*::pReal::pMethods::xClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160290
      start: 160264
    functionDepth: 3
    functionLinenumber: 160264
    functionLinenumberEnd: 160290
    functionName: rbuVfsClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_free
    - rbuUnlockShm
    - rbu_file*::pReal::pMethods::xClose
    - sqlite3_mutex_leave
    - rbu_file*::pReal::pMethods::xShmUnmap
    linkageType: ''
    returnType: int
    signature: int rbuVfsClose(sqlite3_file *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aBuf
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160302
      start: 160297
    functionDepth: 0
    functionLinenumber: 160297
    functionLinenumberEnd: 160302
    functionName: rbuGetU32
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 rbuGetU32(u8 *aBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160318,1
    - Dst: rbuCaptureWalRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160319,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160326,1
    - Dst: rbu_file*::pReal::pMethods::xRead
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160328,1
    - Dst: rbuGetU32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - pFile
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( p->openFlags & SQLITE_OPEN_WAL )
      pos:
        line_end: 160317
        line_start: 160317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160339
      start: 160307
    functionDepth: 1
    functionLinenumber: 160307
    functionLinenumberEnd: 160339
    functionName: rbuVfsRead
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - rbuCaptureWalRead
    - rbuGetU32
    - rbu_file*::pReal::pMethods::xRead
    linkageType: ''
    returnType: int
    signature: "int rbuVfsRead(\n  sqlite3_file *pFile, \n  void *zBuf, \n  int iAmt,
      \n  sqlite_int64 iOfst\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160355,1
    - Dst: rbuCaptureDbWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160356,1
    - Dst: rbu_file*::pReal::pMethods::xWrite
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160364,1
    - Dst: rbuGetU32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - pFile
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( p->openFlags & SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 160354
        line_start: 160354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160374
      start: 160344
    functionDepth: 1
    functionLinenumber: 160344
    functionLinenumberEnd: 160374
    functionName: rbuVfsWrite
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuGetU32
    - rbu_file*::pReal::pMethods::xWrite
    - assert
    - rbuCaptureDbWrite
    linkageType: ''
    returnType: int
    signature: "int rbuVfsWrite(\n  sqlite3_file *pFile, \n  const void *zBuf, \n
      \ int iAmt, \n  sqlite_int64 iOfst\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xTruncate
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160382
      start: 160379
    functionDepth: 0
    functionLinenumber: 160379
    functionLinenumberEnd: 160382
    functionName: rbuVfsTruncate
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xTruncate
    linkageType: ''
    returnType: int
    signature: int rbuVfsTruncate(sqlite3_file *pFile, sqlite_int64 size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xSync
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160396
      start: 160387
    functionDepth: 0
    functionLinenumber: 160387
    functionLinenumberEnd: 160396
    functionName: rbuVfsSync
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xSync
    linkageType: ''
    returnType: int
    signature: int rbuVfsSync(sqlite3_file *pFile, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xFileSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160404
      start: 160401
    functionDepth: 0
    functionLinenumber: 160401
    functionLinenumberEnd: 160404
    functionName: rbuVfsFileSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xFileSize
    linkageType: ''
    returnType: int
    signature: int rbuVfsFileSize(sqlite3_file *pFile, sqlite_int64 *pSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160414,1
    - Dst: rbu_file*::pReal::pMethods::xLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - eLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 160413
        line_start: 160413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160424
      start: 160409
    functionDepth: 0
    functionLinenumber: 160409
    functionLinenumberEnd: 160424
    functionName: rbuVfsLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rbu_file*::pReal::pMethods::xLock
    linkageType: ''
    returnType: int
    signature: int rbuVfsLock(sqlite3_file *pFile, int eLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xUnlock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - eLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160432
      start: 160429
    functionDepth: 0
    functionLinenumber: 160429
    functionLinenumberEnd: 160432
    functionName: rbuVfsUnlock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xUnlock
    linkageType: ''
    returnType: int
    signature: int rbuVfsUnlock(sqlite3_file *pFile, int eLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xCheckReservedLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160440
      start: 160437
    functionDepth: 0
    functionLinenumber: 160437
    functionLinenumberEnd: 160440
    functionName: rbuVfsCheckReservedLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xCheckReservedLock
    linkageType: ''
    returnType: int
    signature: int rbuVfsCheckReservedLock(sqlite3_file *pFile, int *pResOut)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160450,1
    - Dst: xControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160459,1
    - Dst: xControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160465,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160468,1
    - Dst: xControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160479,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - pFile
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts:
    - condition: "( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB)\n       ||
        p->openFlags & (SQLITE_OPEN_TRANSIENT_DB|SQLITE_OPEN_TEMP_JOURNAL)\n  )"
      pos:
        line_end: 160451
        line_start: 160449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160489
      start: 160445
    functionDepth: 0
    functionLinenumber: 160445
    functionLinenumberEnd: 160489
    functionName: rbuVfsFileControl
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - assert
    - xControl
    linkageType: ''
    returnType: int
    signature: int rbuVfsFileControl(sqlite3_file *pFile, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xSectorSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160497
      start: 160494
    functionDepth: 0
    functionLinenumber: 160494
    functionLinenumberEnd: 160497
    functionName: rbuVfsSectorSize
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xSectorSize
    linkageType: ''
    returnType: int
    signature: int rbuVfsSectorSize(sqlite3_file *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xDeviceCharacteristics
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160505
      start: 160502
    functionDepth: 0
    functionLinenumber: 160502
    functionLinenumberEnd: 160505
    functionName: rbuVfsDeviceCharacteristics
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xDeviceCharacteristics
    linkageType: ''
    returnType: int
    signature: int rbuVfsDeviceCharacteristics(sqlite3_file *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160516,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160519,1
    - Dst: rbu_file*::pReal::pMethods::xShmLock
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160536,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 4
    argNames:
    - pFile
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( WAL_CKPT_LOCK==1 )
      pos:
        line_end: 160515
        line_start: 160515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 160518
        line_start: 160518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160544
      start: 160510
    functionDepth: 0
    functionLinenumber: 160510
    functionLinenumberEnd: 160544
    functionName: rbuVfsShmLock
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xShmLock
    - assert
    linkageType: ''
    returnType: int
    signature: int rbuVfsShmLock(sqlite3_file *pFile, int ofst, int n, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160563,1
    - Dst: sqlite3_realloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160567,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160571,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160578,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160582,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160593,1
    - Dst: rbu_file*::pReal::pMethods::xShmMap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - pFile
    - iRegion
    - szRegion
    - isWrite
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 160562
        line_start: 160562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( p->apShm==0 )
      pos:
        line_end: 160592
        line_start: 160592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160598
      start: 160549
    functionDepth: 0
    functionLinenumber: 160549
    functionLinenumberEnd: 160598
    functionName: rbuVfsShmMap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3_realloc
    - rbu_file*::pReal::pMethods::xShmMap
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: "int rbuVfsShmMap(\n  sqlite3_file *pFile, \n  int iRegion, \n  int
      szRegion, \n  int isWrite, \n  void volatile **pp\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xShmBarrier
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160606
      start: 160603
    functionDepth: 0
    functionLinenumber: 160603
    functionLinenumberEnd: 160606
    functionName: rbuVfsShmBarrier
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xShmBarrier
    linkageType: ''
    returnType: void
    signature: void rbuVfsShmBarrier(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160616,1
    - Dst: rbuUnlockShm
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160621,1
    - Dst: rbu_file*::pReal::pMethods::xShmUnmap
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - delFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 160615
        line_start: 160615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 160625
      start: 160611
    functionDepth: 1
    functionLinenumber: 160611
    functionLinenumberEnd: 160625
    functionName: rbuVfsShmUnmap
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuUnlockShm
    - rbu_file*::pReal::pMethods::xShmUnmap
    - assert
    linkageType: ''
    returnType: int
    signature: int rbuVfsShmUnmap(sqlite3_file *pFile, int delFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160635,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pRbuVfs
    - zWal
    argTypes:
    - rbu_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160639
      start: 160633
    functionDepth: 1
    functionLinenumber: 160633
    functionLinenumberEnd: 160639
    functionName: rbuFindMaindb
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: rbu_file
    signature: rbu_file *rbuFindMaindb(rbu_vfs *pRbuVfs, const char *zWal)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160676,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160687,1
    - Dst: rbuFindMaindb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160706,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160713,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160714,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160716,1
    - Dst: sqlite3_vfs*::xOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160732,1
    - Dst: sqlite3_mutex_enter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160740,1
    - Dst: sqlite3_mutex_leave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160743,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - pVfs
    - zName
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160750
      start: 160644
    functionDepth: 3
    functionLinenumber: 160644
    functionLinenumberEnd: 160750
    functionName: rbuVfsOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memset
    - sqlite3_free
    - memcpy
    - sqlite3_malloc
    - sqlite3_vfs*::xOpen
    - sqlite3_mutex_leave
    - rbuFindMaindb
    - strlen
    linkageType: ''
    returnType: int
    signature: "int rbuVfsOpen(\n  sqlite3_vfs *pVfs,\n  const char *zName,\n  sqlite3_file
      *pFile,\n  int flags,\n  int *pOutFlags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDelete
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160758
      start: 160755
    functionDepth: 0
    functionLinenumber: 160755
    functionLinenumberEnd: 160758
    functionName: rbuVfsDelete
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDelete
    linkageType: ''
    returnType: int
    signature: int rbuVfsDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xAccess
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160774,1
    - Dst: rbuFindMaindb
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160802
      start: 160764
    functionDepth: 2
    functionLinenumber: 160764
    functionLinenumberEnd: 160802
    functionName: rbuVfsAccess
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xAccess
    - rbuFindMaindb
    linkageType: ''
    returnType: int
    signature: "int rbuVfsAccess(\n  sqlite3_vfs *pVfs, \n  const char *zPath, \n
      \ int flags, \n  int *pResOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xFullPathname
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160817
      start: 160809
    functionDepth: 0
    functionLinenumber: 160809
    functionLinenumberEnd: 160817
    functionName: rbuVfsFullPathname
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xFullPathname
    linkageType: ''
    returnType: int
    signature: "int rbuVfsFullPathname(\n  sqlite3_vfs *pVfs, \n  const char *zPath,
      \n  int nOut, \n  char *zOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlOpen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - zPath
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160826
      start: 160823
    functionDepth: 0
    functionLinenumber: 160823
    functionLinenumberEnd: 160826
    functionName: rbuVfsDlOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlOpen
    linkageType: ''
    returnType: void
    signature: void *rbuVfsDlOpen(sqlite3_vfs *pVfs, const char *zPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlError
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zErrMsg
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160836
      start: 160833
    functionDepth: 0
    functionLinenumber: 160833
    functionLinenumberEnd: 160836
    functionName: rbuVfsDlError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlError
    linkageType: ''
    returnType: void
    signature: void rbuVfsDlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlSym
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160848
      start: 160841
    functionDepth: 0
    functionLinenumber: 160841
    functionLinenumberEnd: 160848
    functionName: "(*rbuVfsDlSym(\n  sqlite3_vfs *pVfs, \n  void *pArg, \n  const
      char *zSym\n))(void)"
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlSym
    linkageType: ''
    returnType: void
    signature: "void (*rbuVfsDlSym(\n  sqlite3_vfs *pVfs, \n  void *pArg, \n  const
      char *zSym\n))(void)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlClose
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160856
      start: 160853
    functionDepth: 0
    functionLinenumber: 160853
    functionLinenumberEnd: 160856
    functionName: rbuVfsDlClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlClose
    linkageType: ''
    returnType: void
    signature: void rbuVfsDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xRandomness
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160866
      start: 160863
    functionDepth: 0
    functionLinenumber: 160863
    functionLinenumberEnd: 160866
    functionName: rbuVfsRandomness
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xRandomness
    linkageType: ''
    returnType: int
    signature: int rbuVfsRandomness(sqlite3_vfs *pVfs, int nByte, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xSleep
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - nMicro
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160875
      start: 160872
    functionDepth: 0
    functionLinenumber: 160872
    functionLinenumberEnd: 160875
    functionName: rbuVfsSleep
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xSleep
    linkageType: ''
    returnType: int
    signature: int rbuVfsSleep(sqlite3_vfs *pVfs, int nMicro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xCurrentTime
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pTimeOut
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160883
      start: 160880
    functionDepth: 0
    functionLinenumber: 160880
    functionLinenumberEnd: 160883
    functionName: rbuVfsCurrentTime
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xCurrentTime
    linkageType: ''
    returnType: int
    signature: int rbuVfsCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - a
    - b
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160890
      start: 160888
    functionDepth: 0
    functionLinenumber: 160888
    functionLinenumberEnd: 160890
    functionName: rbuVfsGetLastError
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rbuVfsGetLastError(sqlite3_vfs *pVfs, int a, char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160897,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160899,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160900,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160903
      start: 160896
    functionDepth: 3
    functionLinenumber: 160896
    functionLinenumberEnd: 160903
    functionName: sqlite3rbu_destroy_vfs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_vfs_unregister
    - sqlite3_mutex_free
    - sqlite3_free
    - sqlite3_vfs_find
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_destroy_vfs(const char *zName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160947,1
    - Dst: sqlite3_malloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160949,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160954,1
    - Dst: sqlite3_vfs_find
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160955,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160960,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160965,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160968,1
    - Dst: sqlite3_vfs_register
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160972,1
    - Dst: sqlite3_mutex_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160977,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:160978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - zName
    - zParent
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160983
      start: 160910
    functionDepth: 3
    functionLinenumber: 160910
    functionLinenumberEnd: 160983
    functionName: sqlite3rbu_create_vfs
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3_mutex_alloc
    - sqlite3_free
    - sqlite3_mutex_free
    - sqlite3_vfs_find
    - sqlite3_malloc
    - memcpy
    - sqlite3_vfs_register
    - strlen
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_create_vfs(const char *zName, const char *zParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161121
      start: 161120
    functionDepth: 0
    functionLinenumber: 161120
    functionLinenumberEnd: 161121
    functionName: get2byte
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byte(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindDbName
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161138,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161140,1
    - Dst: sqlite3_declare_vtab
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161146,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161148,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161152,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pTab==0 )
      pos:
        line_end: 161151
        line_start: 161151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161161
      start: 161126
    functionDepth: 25
    functionLinenumber: 161126
    functionLinenumberEnd: 161161
    functionName: statConnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3_declare_vtab
    - sqlite3_mprintf
    - sqlite3_malloc64
    - sqlite3FindDbName
    linkageType: ''
    returnType: int
    signature: "int statConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161169
      start: 161166
    functionDepth: 3
    functionLinenumber: 161166
    functionLinenumberEnd: 161169
    functionName: statDisconnect
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int statDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161197
      start: 161175
    functionDepth: 0
    functionLinenumber: 161175
    functionLinenumberEnd: 161197
    functionName: statBestIndex
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161207,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161212,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161215,1
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161224,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161225,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161235
      start: 161202
    functionDepth: 27
    functionLinenumber: 161202
    functionLinenumberEnd: 161235
    functionName: statOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - sqlite3_malloc64
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    linkageType: ''
    returnType: int
    signature: int statOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161241,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161243,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161245,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161246,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - StatPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161248
      start: 161237
    functionDepth: 10
    functionLinenumber: 161237
    functionLinenumberEnd: 161248
    functionName: statClearPage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3PagerUnref
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void statClearPage(StatPage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161252,1
    - Dst: ArraySize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161253,1
    - Dst: statClearPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161254,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - StatCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161259
      start: 161250
    functionDepth: 24
    functionLinenumber: 161250
    functionLinenumberEnd: 161259
    functionName: statResetCsr
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - statClearPage
    - ArraySize
    - sqlite3_free
    - sqlite3_reset
    linkageType: ''
    returnType: void
    signature: void statResetCsr(StatCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: statResetCsr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161266,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161267,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161270
      start: 161264
    functionDepth: 25
    functionLinenumber: 161264
    functionLinenumberEnd: 161270
    functionName: statClose
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - statResetCsr
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int statClose(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - nUsable
    - flags
    - nTotal
    - pnLocal
    argTypes:
    - int
    - u8
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161293
      start: 161272
    functionDepth: 0
    functionLinenumber: 161272
    functionLinenumberEnd: 161293
    functionName: getLocalPayload
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void getLocalPayload(\n  int nUsable,                    /* Usable
      bytes per page */\n  u8 flags,                       /* Page flags */\n  int
      nTotal,                     /* Total record (payload) size */\n  int *pnLocal
      \                   /* OUT: Bytes stored locally */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161302,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161306,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161312,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161314,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161316,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161317,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161320,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161321,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161327,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161328,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161329,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161330,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161332,1
    - Dst: get2byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161337,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161339,1
    - Dst: getVarint32
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161347,1
    - Dst: sqlite3GetVarint
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161350,1
    - Dst: getLocalPayload
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161353,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161355,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161356,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161357,1
    - Dst: sqlite3_malloc64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161363,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161365,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161370,1
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161370,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161372,1
    - Dst: sqlite3Get4byte
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161375,1
    - Dst: sqlite3PagerGetData
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161375,1
    - Dst: sqlite3PagerUnref
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 2
    argNames:
    - pBt
    - p
    argTypes:
    - Btree*
    - StatPage*
    assertStmts:
    - condition: ( nLocal>=0 )
      pos:
        line_end: 161354
        line_start: 161354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nPayload>=(u32)nLocal )
      pos:
        line_end: 161355
        line_start: 161355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( nLocal<=(nUsable-35) )
      pos:
        line_end: 161356
        line_start: 161356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - condition: ( pPg==0 )
      pos:
        line_end: 161371
        line_start: 161371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161384
      start: 161295
    functionDepth: 10
    functionLinenumber: 161295
    functionLinenumberEnd: 161384
    functionName: statDecodePage
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3BtreePager
    - get2byte
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerGetData
    - sqlite3Get4byte
    - sqlite3BtreeLeave
    - sqlite3_malloc64
    - sqlite3GetVarint
    - getVarint32
    - sqlite3BtreeGetPageSize
    - sqlite3PagerGet
    - sqlite3PagerUnref
    - sqlite3BtreeGetReserveNoMutex
    - getLocalPayload
    linkageType: ''
    returnType: int
    signature: int statDecodePage(Btree *pBt, StatPage *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161393,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161398,1
    - Dst: sqlite3PagerFile
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161404,1
    - Dst: sqlite3OsFileControl
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - StatCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161410
      start: 161390
    functionDepth: 2
    functionLinenumber: 161390
    functionLinenumberEnd: 161410
    functionName: statSizeAndOffset
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFile
    - sqlite3BtreePager
    - sqlite3BtreeGetPageSize
    - sqlite3OsFileControl
    linkageType: ''
    returnType: void
    signature: void statSizeAndOffset(StatCursor *pCsr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161422,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161424,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161429,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161432,1
    - Dst: sqlite3PagerPagecount
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161433,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161436,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161438,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161441,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161446,1
    - Dst: sqlite3BtreeEnter
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161457,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161458,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161459,1
    - Dst: sqlite3BtreeLeave
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161460,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161461,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161466,1
    - Dst: statSizeAndOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161477,1
    - Dst: statClearPage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161485,1
    - Dst: statNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161486,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161491,1
    - Dst: sqlite3PagerGet
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161498,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161500,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161512,1
    - Dst: statDecodePage
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161515,1
    - Dst: statSizeAndOffset
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161517,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161535,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 106
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( p==&pCsr->aPage[pCsr->iPage-1] )
      pos:
        line_end: 161490
        line_start: 161490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161546
      start: 161415
    functionDepth: 26
    functionLinenumber: 161415
    functionLinenumberEnd: 161546
    functionName: statNext
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - statDecodePage
    - sqlite3BtreePager
    - statNext
    - assert
    - sqlite3_free
    - sqlite3BtreeEnter
    - sqlite3_step
    - sqlite3BtreeLeave
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3PagerPagecount
    - sqlite3_column_text
    - statSizeAndOffset
    - statClearPage
    - sqlite3BtreeGetPageSize
    - sqlite3_reset
    - sqlite3PagerGet
    - sqlite3BtreeGetReserveNoMutex
    linkageType: ''
    returnType: int
    signature: int statNext(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161551
      start: 161548
    functionDepth: 0
    functionLinenumber: 161548
    functionLinenumberEnd: 161551
    functionName: statEof
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statEof(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: statResetCsr
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161560,1
    - Dst: statNext
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161562
      start: 161553
    functionDepth: 27
    functionLinenumber: 161553
    functionLinenumberEnd: 161562
    functionName: statFilter
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - statResetCsr
    - statNext
    linkageType: ''
    returnType: int
    signature: "int statFilter(\n  sqlite3_vtab_cursor *pCursor, \n  int idxNum, const
      char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161572,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161575,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161578,1
    - Dst: sqlite3_result_text
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161581,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161584,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161587,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161590,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161593,1
    - Dst: sqlite3_result_int64
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161596,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161599,1
    - Dst: sqlite3_result_int
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - pCursor
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( i==9 )
      pos:
        line_end: 161598
        line_start: 161598
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161604
      start: 161564
    functionDepth: 12
    functionLinenumber: 161564
    functionLinenumberEnd: 161604
    functionName: statColumn
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_text
    - assert
    - sqlite3_result_int64
    linkageType: ''
    returnType: int
    signature: "int statColumn(\n  sqlite3_vtab_cursor *pCursor, \n  sqlite3_context
      *ctx, \n  int i\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161610
      start: 161606
    functionDepth: 0
    functionLinenumber: 161606
    functionLinenumberEnd: 161610
    functionName: statRowid
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/sleuthkit/tsk/auto/sqlite3.c:161638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161639
      start: 161615
    functionDepth: 11
    functionLinenumber: 161615
    functionLinenumberEnd: 161639
    functionName: sqlite3DbstatRegister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbstatRegister(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161641
      start: 161641
    functionDepth: 0
    functionLinenumber: 161641
    functionLinenumberEnd: 161641
    functionName: sqlite3DbstatRegister
    functionSourceFile: /src/sleuthkit/tsk/auto/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbstatRegister(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - a_db
    - a_NSRLDb
    - a_knownBadDb
    argTypes:
    - TskDb*
    - TSK_HDB_INFO*
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 68
    functionName: TskAutoDb::TskAutoDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_init_lock
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::TskAutoDb(TskDb * a_db, TSK_HDB_INFO * a_NSRLDb, TSK_HDB_INFO
      * a_knownBadDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::revertAddImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:74,1
    - Dst: TskAutoDb::closeImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:77,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: TskAutoDb::~TskAutoDb()
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDb::revertAddImage
    - tsk_deinit_lock
    - TskAutoDb::closeImage
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::~TskAutoDb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: TskAutoDb::closeImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - TskAuto::closeImage
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::closeImage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: TskAutoDb::createBlockMap
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::createBlockMap(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: TskAutoDb::hashFiles
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::hashFiles(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addFileSystems
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TskAutoDb::setAddFileSystems
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setAddFileSystems(bool addFileSystems)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - noFatFsOrphans
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: TskAutoDb::setNoFatFsOrphans
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setNoFatFsOrphans(bool noFatFsOrphans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::setAddUnallocSpace
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addUnallocSpace
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: TskAutoDb::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - TskAutoDb::setAddUnallocSpace
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setAddUnallocSpace(bool addUnallocSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addUnallocSpace
    - minChunkSize
    argTypes:
    - bool
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: TskAutoDb::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setAddUnallocSpace(bool addUnallocSpace, int64_t minChunkSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - minChunkSize
    - maxChunkSize
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: TskAutoDb::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setAddUnallocSpace(int64_t minChunkSize, int64_t maxChunkSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::openImageUtf8
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:146,1
    - Dst: TskAutoDb::addImageDetails
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - a_num
    - a_images
    - a_type
    - a_ssize
    - a_deviceId
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: TskAutoDb::openImageUtf8
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - TskAuto::openImageUtf8
    - TskAutoDb::addImageDetails
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDb::openImageUtf8(int a_num, const char *const a_images[],\n
      \   TSK_IMG_TYPE_ENUM a_type, unsigned int a_ssize, const char* a_deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::openImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:175,1
    - Dst: TskAutoDb::addImageDetails
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:181,1
    - Dst: TskAutoDb::openImageUtf8
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - a_num
    - a_images
    - a_type
    - a_ssize
    - a_deviceId
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: TskAutoDb::openImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - TskAuto::openImage
    - TskAutoDb::addImageDetails
    - TskAutoDb::openImageUtf8
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDb::openImage(int a_num, const TSK_TCHAR * const a_images[],\n
      \   TSK_IMG_TYPE_ENUM a_type, unsigned int a_ssize, const char* a_deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::addImageDetails
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_deviceId
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: TskAutoDb::openImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDb::addImageDetails
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDb::openImage(const char* a_deviceId)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ewf_get_details
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:226,1
    - Dst: addImageInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:236,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:238,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:245,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:251,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:254,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:255,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:265,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:266,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:269,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:270,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:271,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:272,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:274,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:275,1
    - Dst: addImageName
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:288,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:289,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:292,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:293,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:302,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:304,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - deviceId
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 308
    functionName: TskAutoDb::addImageDetails
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 3
    functionsReached:
    - tsk_error_set_errstr
    - tsk_UTF16toUTF8_lclorder
    - tsk_error_reset
    - ewf_get_details
    - addImageInfo
    - addImageName
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - registerError
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDb::addImageDetails(const char* deviceId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addVsInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:314,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vs_info
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: TskAutoDb::filterVs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - addVsInfo
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDb::filterVs(const TSK_VS_INFO * vs_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: addPoolInfoAndVS
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:329,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:330,1
    - Dst: addPoolInfoAndVS
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:338,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pool_info
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: TskAutoDb::filterPool
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - addPoolInfoAndVS
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDb::filterPool(const TSK_POOL_INFO * pool_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:362,1
    - Dst: find
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:364,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:364,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:365,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:366,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:367,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:374,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:375,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:376,1
    - Dst: addUnallocatedPoolVolume
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:390,1
    - Dst: tsk_pool_unallocated_runs
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:393,1
    - Dst: TskAutoDb::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:397,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:398,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:399,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - ' numPool'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 409
    functionName: TskAutoDb::addUnallocatedPoolBlocksToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - size
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - find
    - tsk_error_set_errno
    - tsk_pool_unallocated_runs
    - end
    - addUnallocatedPoolVolume
    - TskAutoDb::addUnallocBlockFileInChunks
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocatedPoolBlocksToDb(size_t & numPool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addPoolVolumeInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:415,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pool_vol
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: TskAutoDb::filterPoolVol
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - registerError
    - addPoolVolumeInfo
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDb::filterPoolVol(const TSK_POOL_VOLUME_INFO
      * pool_vol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addVolumeInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:430,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - vs_part
    argTypes:
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: TskAutoDb::filterVol
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - addVolumeInfo
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDb::filterVol(const TSK_VS_PART_INFO * vs_part)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: addFsInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:447,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:448,1
    - Dst: addFsInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:454,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:455,1
    - Dst: addFsInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:461,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:462,1
    - Dst: tsk_fs_file_open
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:469,1
    - Dst: TskAutoDb::processFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:470,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:471,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:484,1
    - Dst: setFileFilterFlags
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 491
    functionName: TskAutoDb::filterFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - setFileFilterFlags
    - TskAutoDb::processFile
    - TSK_FS_TYPE_ISFAT
    - tsk_fs_file_close
    - tsk_fs_file_open
    - addFsInfo
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDb::filterFs(TSK_FS_INFO * fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addFsFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:504,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - fs_file
    - fs_attr
    - path
    - md5
    - known
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - unsigned char*
    - TSK_DB_FILES_KNOWN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 511
    functionName: TskAutoDb::insertFileData
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - registerError
    - addFsFile
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDb::insertFileData(TSK_FS_FILE * fs_file,\n
      \   const TSK_FS_ATTR * fs_attr, const char *path,\n    const unsigned char
      *const md5,\n    const TSK_DB_FILES_KNOWN_ENUM known)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::isDbOpen
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:521,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:522,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:523,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:524,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:525,1
    - Dst: setVolFilterFlags
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:533,1
    - Dst: findFilesInImg
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:537,1
    - Dst: TskAutoDb::addUnallocSpaceToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 562
    functionName: TskAutoDb::addFilesInImgToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - setVolFilterFlags
    - tsk_error_set_errstr
    - tsk_error_reset
    - findFilesInImg
    - TskAutoDb::addUnallocSpaceToDb
    - tsk_error_set_errno
    - TskAutoDb::isDbOpen
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDb::addFilesInImgToDb()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:582,1
    - Dst: releaseSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:584,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:585,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:586,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:587,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:588,1
    - Dst: inTransaction
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:593,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:594,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:595,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:596,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:597,1
    - Dst: createSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:601,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:602,1
    - Dst: TskAutoDb::openImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:607,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:608,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:609,1
    - Dst: TskAutoDb::revertAddImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:610,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:611,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:616,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:617,1
    - Dst: TskAutoDb::addFilesInImgToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - numImg
    - imagePaths
    - imgType
    - sSize
    - deviceId
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 627
    functionName: TskAutoDb::startAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - releaseSavepoint
    - TskAutoDb::revertAddImage
    - TskAutoDb::openImage
    - inTransaction
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - createSavepoint
    - tsk_img_writer_create
    - tsk_error_set_errno
    - TskAutoDb::addFilesInImgToDb
    - tsk_error_set_errstr2
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDb::startAddImage(int numImg, const TSK_TCHAR * const
      imagePaths[],\n    TSK_IMG_TYPE_ENUM imgType, unsigned int sSize, const char*
      deviceId)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: openImageHandle
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:641,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:648,1
    - Dst: releaseSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:650,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:651,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:652,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:653,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:654,1
    - Dst: inTransaction
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:659,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:660,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:661,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:662,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:663,1
    - Dst: createSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:667,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:668,1
    - Dst: TskAutoDb::openImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:673,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:674,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:675,1
    - Dst: TskAutoDb::revertAddImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:676,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:677,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:682,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:683,1
    - Dst: TskAutoDb::addFilesInImgToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:689,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - img_info
    - deviceId
    argTypes:
    - TSK_IMG_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 694
    functionName: TskAutoDb::startAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - releaseSavepoint
    - TskAutoDb::revertAddImage
    - TskAutoDb::openImage
    - openImageHandle
    - inTransaction
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - createSavepoint
    - tsk_img_writer_create
    - tsk_error_set_errno
    - TskAutoDb::addFilesInImgToDb
    - tsk_error_set_errstr2
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDb::startAddImage(TSK_IMG_INFO * img_info, const char*
      deviceId)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:716,1
    - Dst: releaseSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:719,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:720,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:721,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:722,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:723,1
    - Dst: inTransaction
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:728,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:729,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:730,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:731,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:732,1
    - Dst: createSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:737,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:738,1
    - Dst: TskAutoDb::openImageUtf8
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:744,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:745,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:746,1
    - Dst: TskAutoDb::revertAddImage
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:747,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:748,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:752,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:753,1
    - Dst: TskAutoDb::addFilesInImgToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:759,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - numImg
    - imagePaths
    - imgType
    - sSize
    - deviceId
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 763
    functionName: TskAutoDb::startAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - releaseSavepoint
    - TskAutoDb::revertAddImage
    - inTransaction
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - createSavepoint
    - tsk_img_writer_create
    - tsk_error_set_errno
    - TskAutoDb::openImageUtf8
    - TskAutoDb::addFilesInImgToDb
    - tsk_error_set_errstr2
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDb::startAddImage(int numImg, const char *const imagePaths[],\n
      \   TSK_IMG_TYPE_ENUM imgType, unsigned int sSize, const char* deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:774,1
    - Dst: setStopProcessing
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 779
    functionName: TskAutoDb::stopAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - setStopProcessing
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::stopAddImage()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:789,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:792,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:793,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:794,1
    - Dst: revertSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:798,1
    - Dst: inTransaction
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:800,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:801,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:802,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 809
    functionName: TskAutoDb::revertAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 4
    functionsReached:
    - inTransaction
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - revertSavepoint
    linkageType: ''
    returnType: int
    signature: int TskAutoDb::revertAddImage()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:819,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:822,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:823,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:824,1
    - Dst: releaseSavepoint
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:828,1
    - Dst: inTransaction
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:833,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:834,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:835,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 842
    functionName: TskAutoDb::commitAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - releaseSavepoint
    - inTransaction
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int64_t
    signature: int64_t TskAutoDb::commitAddImage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tzone
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 851
    functionName: TskAutoDb::setTz
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDb::setTz(std::string tzone)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:860,1
    - Dst: isDir
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:870,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:872,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:873,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:874,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:878,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:880,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:892,1
    - Dst: processAttributes
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:893,1
    - Dst: TskAutoDb::insertFileData
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:898,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 908
    functionName: TskAutoDb::processFile
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - tsk_take_lock
    - tsk_fprintf
    - TskAutoDb::insertFileData
    - processAttributes
    - std::string
    - tsk_release_lock
    - tsk_fs_file_attr_getsize
    - isDir
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::processFile(TSK_FS_FILE * fs_file, const
      char *path)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: isDefaultType
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:917,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:922,1
    - Dst: isFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:926,1
    - Dst: TskAutoDb::md5HashAttr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:927,1
    - Dst: tsk_hdb_lookup_raw
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:934,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:936,1
    - Dst: tsk_hdb_lookup_raw
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:945,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:947,1
    - Dst: TskAutoDb::insertFileData
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:956,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:957,1
    - Dst: isNonResident
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:965,1
    - Dst: isDotDir
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:966,1
    - Dst: addFileLayoutRange
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:978,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:980,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - fs_file
    - fs_attr
    - path
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 988
    functionName: TskAutoDb::processAttribute
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - addFileLayoutRange
    - tsk_hdb_lookup_raw
    - memset
    - TskAutoDb::insertFileData
    - isDefaultType
    - isDotDir
    - isNonResident
    - isFile
    - registerError
    - TskAutoDb::md5HashAttr
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDb::processAttribute(TSK_FS_FILE * fs_file,\n
      \   const TSK_FS_ATTR * fs_attr, const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - size
    - ptr
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1006
    functionName: TskAutoDb::md5HashCallback
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - TSK_MD5_Update
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM TskAutoDb::md5HashCallback(TSK_FS_FILE * /*file*/,
      TSK_OFF_T /*offset*/,\n    TSK_DADDR_T /*addr*/, char *buf, size_t size,\n    TSK_FS_BLOCK_FLAG_ENUM
      /*a_flags*/, void *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Init
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1021,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1023,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1025,1
    - Dst: TSK_MD5_Final
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - md5Hash
    - fs_attr
    argTypes:
    - unsigned char[]
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1031
    functionName: TskAutoDb::md5HashAttr
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - tsk_fs_attr_walk
    - TSK_MD5_Init
    - TSK_MD5_Final
    - registerError
    linkageType: ''
    returnType: int
    signature: int TskAutoDb::md5HashAttr(unsigned char md5Hash[16], const TSK_FS_ATTR
      * fs_attr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNALLOC_BLOCK_WLK_TRACK*::ranges::push_back
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1073,1
    - Dst: TSK_DB_FILE_LAYOUT_RANGE
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1073,1
    - Dst: UNALLOC_BLOCK_WLK_TRACK*::tskAutoDb::m_db::addUnallocBlockFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1094,1
    - Dst: UNALLOC_BLOCK_WLK_TRACK*::ranges::clear
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - a_block
    - a_ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1110
    functionName: TskAutoDb::fsWalkUnallocBlocksCb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - UNALLOC_BLOCK_WLK_TRACK*::tskAutoDb::m_db::addUnallocBlockFile
    - UNALLOC_BLOCK_WLK_TRACK*::ranges::clear
    - UNALLOC_BLOCK_WLK_TRACK*::ranges::push_back
    - TSK_DB_FILE_LAYOUT_RANGE
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM TskAutoDb::fsWalkUnallocBlocksCb(const TSK_FS_BLOCK
      *a_block, void *a_ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1127,1
    - Dst: getFileSystemPassword
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1127,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1129,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1130,1
    - Dst: addUnallocFsBlockFilesParent
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1135,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1136,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1137,1
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1144,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1149,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1152,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1152,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1153,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1158,1
    - Dst: UNALLOC_BLOCK_WLK_TRACK::ranges::push_back
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1170,1
    - Dst: TSK_DB_FILE_LAYOUT_RANGE
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1170,1
    - Dst: addUnallocBlockFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1173,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1174,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1175,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - ' dbFsInfo'
    argTypes:
    - TSK_DB_FS_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1184
    functionName: TskAutoDb::addFsInfoUnalloc
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    - UNALLOC_BLOCK_WLK_TRACK::ranges::push_back
    - addUnallocBlockFile
    - getFileSystemPassword
    - addUnallocFsBlockFilesParent
    - tsk_fs_close
    - stringstream::str
    - TSK_DB_FILE_LAYOUT_RANGE
    - tsk_error_set_errstr2
    - registerError
    - tsk_fs_block_walk
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addFsInfoUnalloc(const TSK_DB_FS_INFO &
      dbFsInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::addUnallocFsSpaceToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1199,1
    - Dst: TskAutoDb::addUnallocVsSpaceToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1200,1
    - Dst: TskAutoDb::addUnallocatedPoolBlocksToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1201,1
    - Dst: TskAutoDb::addUnallocImageSpaceToDb
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1190
    functionDepth: 3
    functionLinenumber: 1190
    functionLinenumberEnd: 1214
    functionName: TskAutoDb::addUnallocSpaceToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - TskAutoDb::addUnallocImageSpaceToDb
    - TskAutoDb::addUnallocatedPoolBlocksToDb
    - TskAutoDb::addUnallocFsSpaceToDb
    - TskAutoDb::addUnallocVsSpaceToDb
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocSpaceToDb()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getFsInfos
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1230,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1232,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1233,1
    - Dst: vector::size
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1237,1
    - Dst: vector::begin
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1240,1
    - Dst: vector::end
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1240,1
    - Dst: TskAutoDb::addFsInfoUnalloc
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' numFs'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1251
    functionName: TskAutoDb::addUnallocFsSpaceToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - getFsInfos
    - vector::begin
    - vector::end
    - vector::size
    - tsk_error_set_errstr2
    - TskAutoDb::addFsInfoUnalloc
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocFsSpaceToDb(size_t & numFs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getVsPartInfos
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1262,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1264,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1265,1
    - Dst: vector::size
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1268,1
    - Dst: getFsInfos
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1272,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1274,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1275,1
    - Dst: vector::begin
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1279,1
    - Dst: vector::end
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1280,1
    - Dst: vector::begin
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1290,1
    - Dst: vector::end
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1291,1
    - Dst: getObjectInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1295,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1298,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1298,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1299,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1316,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1316,1
    - Dst: getObjectInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1332,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1335,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1335,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1336,1
    - Dst: getVsInfo
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1341,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1344,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1344,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1345,1
    - Dst: TskAutoDb::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1352,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1353,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - ' numVsP'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1359
    functionName: TskAutoDb::addUnallocVsSpaceToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - getFsInfos
    - getObjectInfo
    - begin
    - stringstream::str
    - getVsInfo
    - vector::begin
    - getVsPartInfos
    - vector::end
    - vector::size
    - end
    - TskAutoDb::addUnallocBlockFileInChunks
    - tsk_error_set_errstr2
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocVsSpaceToDb(size_t & numVsP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getImageSize
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1370,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1372,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1373,1
    - Dst: TskAutoDb::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1380
    functionName: TskAutoDb::addUnallocImageSpaceToDb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - TskAutoDb::addUnallocBlockFileInChunks
    - getImageSize
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocImageSpaceToDb()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1393,1
    - Dst: addUnallocBlockFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1395,1
    - Dst: vector::push_back
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1416,1
    - Dst: addUnallocBlockFile
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1419,1
    - Dst: vector::clear
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - byteStart
    - totalSize
    - parentObjId
    - dataSourceObjId
    argTypes:
    - uint64_t
    - TSK_OFF_T
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1427
    functionName: TskAutoDb::addUnallocBlockFileInChunks
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 3
    functionsReached:
    - vector::clear
    - addUnallocBlockFile
    - vector::push_back
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDb::addUnallocBlockFileInChunks(uint64_t byteStart,
      TSK_OFF_T totalSize, int64_t parentObjId, int64_t dataSourceObjId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1437,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1441
    functionName: TskAutoDb::getCurDir
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_release_lock
    linkageType: ''
    returnType: std::string
    signature: std::string TskAutoDb::getCurDir()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::isDbOpen
      Src: /src/sleuthkit/tsk/auto/auto_db.cpp:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1449
    functionName: TskAutoDb::isDbOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/auto_db.cpp
    functionUses: 2
    functionsReached:
    - TskAutoDb::isDbOpen
    linkageType: ''
    returnType: bool
    signature: bool TskAutoDb::isDbOpen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: TskIsImageSupported::TskIsImageSupported
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskIsImageSupported::TskIsImageSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: TskIsImageSupported::isImageSupported
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TskIsImageSupported::isImageSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: TskIsImageSupported::isImageEncrypted
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TskIsImageSupported::isImageEncrypted()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:60,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:61,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:67,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:68,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:76,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:77,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:82,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: TskIsImageSupported::getSingleLineErrorMessage
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - strnlen
    linkageType: ''
    returnType: std::string
    signature: std::string TskIsImageSupported::getSingleLineErrorMessage()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:95,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:97,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:101,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:104,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:109,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:112,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:115,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:117,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:118,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:119,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:121,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:122,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:125,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:127,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:130,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:132,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:135,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:136,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:137,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 141
    functionName: TskIsImageSupported::printResults
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached:
    - printf
    - strnlen
    linkageType: ''
    returnType: void
    signature: void TskIsImageSupported::printResults()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:146,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:151,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:158,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:162,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:166,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:170,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:176,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: TskIsImageSupported::handleError
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_get_info
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskIsImageSupported::handleError()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TskIsImageSupported::getSingleLineErrorMessage
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:207,1
    - Dst: TskIsImageSupported::isImageSupported
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:210,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:216,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:216,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:216,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:216,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:217,1
    - Dst: getline
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:222,1
    - Dst: std::string::empty
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:223,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:226,1
    - Dst: std::remove
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:226,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:226,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:226,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:226,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:227,1
    - Dst: std::remove
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:227,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:227,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:227,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:227,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:232,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:232,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:232,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:233,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:233,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:233,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:238,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:243,1
    - Dst: TskIsImageSupported::getSingleLineErrorMessage
      Src: /src/sleuthkit/tsk/auto/is_image_supported.cpp:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 248
    functionName: TskIsImageSupported::getMessageForIsImageSupportedNat
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached:
    - std::string::erase
    - tsk_img_close
    - std::string::end
    - TSTRICMP
    - tsk_img_open
    - std::string::empty
    - std::remove
    - std::string::begin
    - TskIsImageSupported::isImageSupported
    - TskIsImageSupported::getSingleLineErrorMessage
    - std::string
    - _TSK_T
    - count
    - TSTRLEN
    - getline
    linkageType: ''
    returnType: std::string
    signature: std::string TskIsImageSupported::getMessageForIsImageSupportedNat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: TskIsImageSupported::processFile
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskIsImageSupported::processFile(TSK_FS_FILE * /*fs_file*/,\n
      \                                                const char * /*path*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: TskIsImageSupported::filterFs
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskIsImageSupported::filterFs(TSK_FS_INFO * /*fs_info*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool_info
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: TskIsImageSupported::filterPool
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskIsImageSupported::filterPool(const TSK_POOL_INFO
      * pool_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool_vol
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: TskIsImageSupported::filterPoolVol
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskIsImageSupported::filterPoolVol(const TSK_POOL_VOLUME_INFO
      * pool_vol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: TskIsImageSupported::filterVol
    functionSourceFile: /src/sleuthkit/tsk/auto/is_image_supported.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskIsImageSupported::filterVol(const TSK_VS_PART_INFO
      * /*vs_part*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fileSystemPassword
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: TskAuto::setFileSystemPassword
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_auto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setFileSystemPassword(std::string fileSystemPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: TskAuto::getFileSystemPassword
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_auto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getFileSystemPassword() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setfill
      Src: /src/sleuthkit/tsk/auto/guid.cpp:48,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:49,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:50,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:51,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:52,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:54,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:55,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:57,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:58,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:60,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:61,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:63,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:64,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:65,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:66,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:67,1
    - Dst: setw
      Src: /src/sleuthkit/tsk/auto/guid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - guid
    argTypes:
    - ostream
    - TSKGuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: '&operator<<(ostream &s, const TSKGuid &guid)'
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - setfill
    - setw
    linkageType: ''
    returnType: ostream
    signature: ostream &operator<<(ostream &s, const TSKGuid &guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - vector<unsigned char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKGuid::TSKGuid(const vector<unsigned char> &bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/sleuthkit/tsk/auto/guid.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void TSKGuid::TSKGuid(const unsigned char *bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: hexDigitToChar
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char hexDigitToChar(char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hexDigitToChar
      Src: /src/sleuthkit/tsk/auto/guid.cpp:101,1
    - Dst: hexDigitToChar
      Src: /src/sleuthkit/tsk/auto/guid.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: hexPairToChar
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - hexDigitToChar
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char hexPairToChar(char a, char b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/auto/guid.cpp:107,1
    - Dst: string::begin
      Src: /src/sleuthkit/tsk/auto/guid.cpp:113,1
    - Dst: string::end
      Src: /src/sleuthkit/tsk/auto/guid.cpp:113,1
    - Dst: hexPairToChar
      Src: /src/sleuthkit/tsk/auto/guid.cpp:127,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/guid.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fromString
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 133
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - hexPairToChar
    - clear
    - push_back
    - string::end
    - string::begin
    linkageType: ''
    returnType: void
    signature: void TSKGuid::TSKGuid(const string &fromString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector<unsigned char>
      Src: /src/sleuthkit/tsk/auto/guid.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - vector<unsigned char>
    linkageType: ''
    returnType: void
    signature: void TSKGuid::TSKGuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - TSKGuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKGuid::TSKGuid(const TSKGuid &other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tsk/auto/guid.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: TSKGuid::str
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string TSKGuid::str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - TSKGuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: '&TSKGuid::operator=(const TSKGuid &other)'
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid &TSKGuid::operator=(const TSKGuid &other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - TSKGuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: TSKGuid::operator==(const TSKGuid &other) const
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TSKGuid::operator==(const TSKGuid &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - TSKGuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TSKGuid::operator!=(const TSKGuid &other) const
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TSKGuid::operator!=(const TSKGuid &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_generate
      Src: /src/sleuthkit/tsk/auto/guid.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: GuidGenerator::newGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - uuid_generate
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid GuidGenerator::newGuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFUUIDCreate
      Src: /src/sleuthkit/tsk/auto/guid.cpp:188,1
    - Dst: CFUUIDGetUUIDBytes
      Src: /src/sleuthkit/tsk/auto/guid.cpp:189,1
    - Dst: CFRelease
      Src: /src/sleuthkit/tsk/auto/guid.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 212
    functionName: GuidGenerator::newGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - CFUUIDGetUUIDBytes
    - CFRelease
    - CFUUIDCreate
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid GuidGenerator::newGuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateGuid
      Src: /src/sleuthkit/tsk/auto/guid.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 246
    functionName: GuidGenerator::newGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - CoCreateGuid
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid GuidGenerator::newGuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/tsk/auto/guid.cpp:254,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/sleuthkit/tsk/auto/guid.cpp:255,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/sleuthkit/tsk/auto/guid.cpp:256,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/sleuthkit/tsk/auto/guid.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: GuidGenerator::GuidGenerator
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::FindClass
    linkageType: ''
    returnType: void
    signature: void GuidGenerator::GuidGenerator(JNIEnv *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CallStaticObjectMethod
      Src: /src/sleuthkit/tsk/auto/guid.cpp:262,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/tsk/auto/guid.cpp:263,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/tsk/auto/guid.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 286
    functionName: GuidGenerator::newGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.cpp
    functionUses: 0
    functionsReached:
    - CallStaticObjectMethod
    - CallLongMethod
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid GuidGenerator::newGuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: TskDb::TskDb
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskDb::TskDb(const char * /*a_dbFilePathUtf8*/, bool /*a_blkMapFlag*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: TskDb::TskDb
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskDb::TskDb(const TSK_TCHAR * /*a_dbFilePath*/, bool /*a_blkMapFlag*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:50,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:52,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:53,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:54,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:62,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:72,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:75,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:78,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:79,1
    - Dst: tsk_cleanupUTF8
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:83,1
    - Dst: strrchr
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:88,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/tsk_db.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - path
    - ret_parent_path
    - ret_name
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 104
    functionName: TskDb::getParentPathAndName
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.cpp
    functionUses: 0
    functionsReached:
    - strncat
    - tsk_error_set_errstr
    - tsk_error_reset
    - strrchr
    - strcmp
    - tsk_error_set_errno
    - tsk_cleanupUTF8
    - snprintf
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool TskDb::getParentPathAndName(const char *path, const char **ret_parent_path,
      const char **ret_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' tskAutoDb'
    - ' fsInfo'
    - fsObjId
    - minChunkSize
    - maxChunkSize
    argTypes:
    - TskAutoDb
    - TSK_FS_INFO
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: TskAutoDb::_UNALLOC_BLOCK_WLK_TRACK
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_case_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _UNALLOC_BLOCK_WLK_TRACK(const TskAutoDb & tskAutoDb, const TSK_FS_INFO
      & fsInfo, const int64_t fsObjId, int64_t minChunkSize, int64_t maxChunkSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: _TSK_DB_FILE_LAYOUT_RANGE
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _TSK_DB_FILE_LAYOUT_RANGE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - byteStart
    - byteLen
    - sequence
    argTypes:
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: _TSK_DB_FILE_LAYOUT_RANGE
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _TSK_DB_FILE_LAYOUT_RANGE(uint64_t byteStart, uint64_t byteLen,
      int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - struct _TSK_DB_FILE_LAYOUT_RANGE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: operator< (const struct _TSK_DB_FILE_LAYOUT_RANGE & rhs) const
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator< (const struct _TSK_DB_FILE_LAYOUT_RANGE & rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: ~TskDb()
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskDb()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/sleuthkit/tsk/auto/tsk_db.h:231,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/tsk_db.h:235,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/auto/tsk_db.h:238,1
    - Dst: tolower
      Src: /src/sleuthkit/tsk/auto/tsk_db.h:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - name
    - extension
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: TskDb::extractExtension
    functionSourceFile: /src/sleuthkit/tsk/auto/tsk_db.h
    functionUses: 0
    functionsReached:
    - strrchr
    - strlen
    - tolower
    - strncpy
    linkageType: ''
    returnType: void
    signature: void extractExtension(char *name, char *extension )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TSKGuid::TSKGuid
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKGuid(TSKGuid &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '&operator=(TSKGuid &&)'
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid &operator=(TSKGuid &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: '& bytes() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<unsigned char>
    signature: std::vector<unsigned char> & bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: GuidGenerator::GuidGenerator
    functionSourceFile: /src/sleuthkit/tsk/auto/guid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GuidGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: TskAuto::TskAuto
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::TskAuto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/tsk/auto/auto.cpp:41,1
    - Dst: clear
      Src: /src/sleuthkit/tsk/auto/auto.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: TskAuto::~TskAuto()
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TskAuto::closeImage
    - clear
    linkageType: ''
    returnType: void
    signature: void TskAuto::~TskAuto()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - partInfo
    argTypes:
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: TskAuto::setCurVsPart
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::setCurVsPart(const TSK_VS_PART_INFO *partInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: TskAuto::getCurVsPartDescr
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TskAuto::getCurVsPartDescr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TskAuto::getCurVsPartFlag
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_VS_PART_FLAG_ENUM
    signature: TSK_VS_PART_FLAG_ENUM TskAuto::getCurVsPartFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: TskAuto::isCurVsValid
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TskAuto::isCurVsValid() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::resetErrorList
      Src: /src/sleuthkit/tsk/auto/auto.cpp:83,1
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/tsk/auto/auto.cpp:85,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/auto/auto.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - a_numImg
    - a_images
    - a_imgType
    - a_sSize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: TskAuto::openImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached:
    - TskAuto::closeImage
    - TskAuto::resetErrorList
    - tsk_img_open
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAuto::openImage(int a_numImg, const TSK_TCHAR * const a_images[],\n
      \   TSK_IMG_TYPE_ENUM a_imgType, unsigned int a_sSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::resetErrorList
      Src: /src/sleuthkit/tsk/auto/auto.cpp:111,1
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/tsk/auto/auto.cpp:113,1
    - Dst: tsk_img_open_utf8
      Src: /src/sleuthkit/tsk/auto/auto.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - a_numImg
    - a_images
    - a_imgType
    - a_sSize
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: TskAuto::openImageUtf8
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached:
    - TskAuto::closeImage
    - tsk_img_open_utf8
    - TskAuto::resetErrorList
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAuto::openImageUtf8(int a_numImg, const char *const a_images[],\n
      \   TSK_IMG_TYPE_ENUM a_imgType, unsigned int a_sSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::resetErrorList
      Src: /src/sleuthkit/tsk/auto/auto.cpp:133,1
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/tsk/auto/auto.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a_img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: TskAuto::openImageHandle
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TskAuto::closeImage
    - TskAuto::resetErrorList
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::openImageHandle(TSK_IMG_INFO * a_img_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tsk/auto/auto.cpp:151,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:152,1
    - Dst: clear
      Src: /src/sleuthkit/tsk/auto/auto.cpp:154,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: TskAuto::closeImage
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 5
    functionsReached:
    - clear
    - tsk_img_close
    - size
    - tsk_pool_close
    linkageType: ''
    returnType: void
    signature: void TskAuto::closeImage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vs_flags
    argTypes:
    - TSK_VS_PART_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: TskAuto::setVolFilterFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::setVolFilterFlags(TSK_VS_PART_FLAG_ENUM vs_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file_flags
    argTypes:
    - TSK_FS_DIR_WALK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: TskAuto::setFileFilterFlags
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::setFileFilterFlags(TSK_FS_DIR_WALK_FLAG_ENUM file_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sleuthkit/tsk/auto/auto.cpp:195,1
    - Dst: size
      Src: /src/sleuthkit/tsk/auto/auto.cpp:195,1
    - Dst: assign
      Src: /src/sleuthkit/tsk/auto/auto.cpp:196,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/auto.cpp:196,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/auto.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fsInfoList'
    argTypes:
    - std::list<TSK_FS_INFO *>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: TskAuto::setExternalFileSystemList
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - size
    - begin
    - resize
    - end
    - assign
    linkageType: ''
    returnType: void
    signature: void TskAuto::setExternalFileSystemList(const std::list<TSK_FS_INFO
      *>& fsInfoList)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: TskAuto::getImageSize
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T TskAuto::getImageSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: TskAuto::filterVs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAuto::filterVs(const TSK_VS_INFO * /*vs_info*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: TskAuto::filterVol
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAuto::filterVol(const TSK_VS_PART_INFO * /*vs_part*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/auto.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: TskAuto::filterPoolVol
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAuto::filterPoolVol(const TSK_POOL_VOLUME_INFO *
      /*pool_vol*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/auto.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: TskAuto::filterPool
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAuto::filterPool(const TSK_POOL_INFO * /*pool_info*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: TskAuto::filterFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAuto::filterFs(TSK_FS_INFO * /*fs_info*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:258,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:259,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:260,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:261,1
    - Dst: TskAuto::findFilesInFs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:266,1
    - Dst: TskAuto::findFilesInVs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 270
    functionName: TskAuto::findFilesInImg
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskAuto::findFilesInVs
    - tsk_error_set_errno
    - TskAuto::registerError
    - TskAuto::findFilesInFs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInImg()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto*::setCurVsPart
      Src: /src/sleuthkit/tsk/auto/auto.cpp:290,1
    - Dst: TskAuto*::filterVol
      Src: /src/sleuthkit/tsk/auto/auto.cpp:293,1
    - Dst: TskAuto*::getStopProcessing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:296,1
    - Dst: TskAuto*::hasPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:300,1
    - Dst: TskAuto*::findFilesInPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:301,1
    - Dst: TskAuto*::getStopProcessing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:302,1
    - Dst: TskAuto*::findFilesInFsRet
      Src: /src/sleuthkit/tsk/auto/auto.cpp:307,1
    - Dst: TskAuto*::getStopProcessing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - a_vs_part
    - a_ptr
    argTypes:
    - TSK_VS_PART_INFO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 317
    functionName: TskAuto::vsWalkCb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TskAuto*::setCurVsPart
    - TskAuto*::getStopProcessing
    - TskAuto*::findFilesInPool
    - TskAuto*::findFilesInFsRet
    - TskAuto*::hasPool
    - TskAuto*::filterVol
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM TskAuto::vsWalkCb(TSK_VS_INFO * /*a_vs_info*/,\n
      \   const TSK_VS_PART_INFO * a_vs_part, void *a_ptr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:332,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:333,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:334,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:335,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tsk/auto/auto.cpp:341,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:347,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:348,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:350,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:351,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:354,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/auto/auto.cpp:357,1
    - Dst: TskAuto::hasPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:361,1
    - Dst: TskAuto::findFilesInPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:362,1
    - Dst: TskAuto::findFilesInFs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:365,1
    - Dst: TskAuto::filterVs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:370,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:372,1
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/tsk/auto/auto.cpp:375,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:377,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:378,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:381,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - a_start
    - a_vtype
    argTypes:
    - TSK_OFF_T
    - TSK_VS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 384
    functionName: TskAuto::findFilesInVs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached:
    - empty
    - tsk_vs_close
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_vs_part_walk
    - tsk_error_set_errno
    - TskAuto::registerError
    - tsk_vs_open
    - tsk_error_get_errno
    - TskAuto::findFilesInFs
    - TskAuto::filterVs
    - TskAuto::findFilesInPool
    - TskAuto::hasPool
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInVs(TSK_OFF_T a_start, TSK_VS_TYPE_ENUM
      a_vtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::findFilesInVs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_start
    argTypes:
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: TskAuto::findFilesInVs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 2
    functionsReached:
    - TskAuto::findFilesInVs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInVs(TSK_OFF_T a_start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:408,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:409,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:410,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:411,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:415,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - a_start
    argTypes:
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 421
    functionName: TskAuto::hasPool
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached:
    - tsk_pool_close
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TskAuto::registerError
    - tsk_pool_open_img_sing
    linkageType: ''
    returnType: bool
    signature: bool TskAuto::hasPool(TSK_OFF_T a_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::findFilesInPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: TskAuto::findFilesInPool
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 2
    functionsReached:
    - TskAuto::findFilesInPool
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInPool(TSK_OFF_T start)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:449,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:450,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:451,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:452,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:456,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:458,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:460,1
    - Dst: TskAuto::filterPool
      Src: /src/sleuthkit/tsk/auto/auto.cpp:465,1
    - Dst: TskAuto::filterPoolVol
      Src: /src/sleuthkit/tsk/auto/auto.cpp:477,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:479,1
    - Dst: auto::get_img_info
      Src: /src/sleuthkit/tsk/auto/auto.cpp:484,1
    - Dst: apfs_open
      Src: /src/sleuthkit/tsk/auto/auto.cpp:486,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:488,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:489,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:492,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:493,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:499,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:500,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:501,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:503,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:504,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:507,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:509,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:513,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:516,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:517,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:519,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:528,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:529,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:530,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:531,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:532,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/auto.cpp:537,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 2
    argNames:
    - start
    - ptype
    argTypes:
    - TSK_OFF_T
    - TSK_POOL_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 540
    functionName: TskAuto::findFilesInPool
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 2
    functionsReached:
    - TskAuto::filterPoolVol
    - apfs_open
    - tsk_img_close
    - tsk_pool_close
    - tsk_error_set_errstr
    - tsk_error_reset
    - push_back
    - TskAuto::filterPool
    - tsk_fs_close
    - auto::get_img_info
    - tsk_error_set_errno
    - TskAuto::registerError
    - tsk_pool_open_img_sing
    - tsk_error_set_errstr2
    - TskAuto::findFilesInFsInt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInPool(TSK_OFF_T start, TSK_POOL_TYPE_ENUM
      ptype)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:555,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:556,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:557,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:558,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/auto.cpp:563,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/auto.cpp:563,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:566,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:567,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:575,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/auto.cpp:575,1
    - Dst: TskAuto::isCurVsValid
      Src: /src/sleuthkit/tsk/auto/auto.cpp:576,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:577,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:578,1
    - Dst: TskAuto::getCurVsPartFlag
      Src: /src/sleuthkit/tsk/auto/auto.cpp:581,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:582,1
    - Dst: TskAuto::getCurVsPartDescr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:584,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:586,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:590,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:595,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:596,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - a_start
    - a_ftype
    argTypes:
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 601
    functionName: TskAuto::findFilesInFsRet
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - empty
    - tsk_fs_open_img_decrypt
    - tsk_error_set_errstr
    - tsk_error_reset
    - begin
    - tsk_fs_close
    - TskAuto::getCurVsPartFlag
    - tsk_error_set_errno
    - TskAuto::registerError
    - end
    - TskAuto::isCurVsValid
    - tsk_error_set_errstr2
    - TskAuto::getCurVsPartDescr
    - TskAuto::findFilesInFsInt
    - c_str
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAuto::findFilesInFsRet(TSK_OFF_T a_start, TSK_FS_TYPE_ENUM
      a_ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::findFilesInFs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_start
    argTypes:
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 3
    functionsReached:
    - TskAuto::findFilesInFs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInFs(TSK_OFF_T a_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::findFilesInFsRet
      Src: /src/sleuthkit/tsk/auto/auto.cpp:633,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a_start
    - a_ftype
    argTypes:
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 3
    functionsReached:
    - empty
    - TskAuto::findFilesInFsRet
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInFs(TSK_OFF_T a_start, TSK_FS_TYPE_ENUM
      a_ftype)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:654,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:655,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:656,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:657,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/auto.cpp:662,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/auto.cpp:662,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:665,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:666,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:674,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/auto.cpp:674,1
    - Dst: TskAuto::isCurVsValid
      Src: /src/sleuthkit/tsk/auto/auto.cpp:675,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:676,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:677,1
    - Dst: TskAuto::getCurVsPartFlag
      Src: /src/sleuthkit/tsk/auto/auto.cpp:680,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:681,1
    - Dst: TskAuto::getCurVsPartDescr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:683,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:684,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:688,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:693,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/auto/auto.cpp:694,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - a_start
    - a_ftype
    - a_inum
    argTypes:
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 696
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 3
    functionsReached:
    - empty
    - tsk_fs_open_img_decrypt
    - tsk_error_set_errstr
    - tsk_error_reset
    - begin
    - tsk_fs_close
    - TskAuto::getCurVsPartFlag
    - tsk_error_set_errno
    - TskAuto::registerError
    - end
    - TskAuto::isCurVsValid
    - tsk_error_set_errstr2
    - TskAuto::getCurVsPartDescr
    - TskAuto::findFilesInFsInt
    - c_str
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAuto::findFilesInFs(TSK_OFF_T a_start, TSK_FS_TYPE_ENUM
      a_ftype,\n    TSK_INUM_T a_inum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::findFilesInFs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_start
    - a_inum
    argTypes:
    - TSK_OFF_T
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 714
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 4
    functionsReached:
    - TskAuto::findFilesInFs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInFs(TSK_OFF_T a_start, TSK_INUM_T a_inum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:728,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:729,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:730,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:731,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:735,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 4
    functionsReached:
    - empty
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TskAuto::registerError
    - TskAuto::findFilesInFsInt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInFs(TSK_FS_INFO * a_fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:752,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:753,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:754,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:755,1
    - Dst: TskAuto::findFilesInFsInt
      Src: /src/sleuthkit/tsk/auto/auto.cpp:759,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/auto.cpp:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a_fs_info
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 761
    functionName: TskAuto::findFilesInFs
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 4
    functionsReached:
    - empty
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TskAuto::registerError
    - TskAuto::findFilesInFsInt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::findFilesInFs(TSK_FS_INFO * a_fs_info, TSK_INUM_T
      inum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto*::processFile
      Src: /src/sleuthkit/tsk/auto/auto.cpp:780,1
    - Dst: TskAuto*::getStopProcessing
      Src: /src/sleuthkit/tsk/auto/auto.cpp:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - a_fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 785
    functionName: TskAuto::dirWalkCb
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TskAuto*::getStopProcessing
    - TskAuto*::processFile
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM TskAuto::dirWalkCb(TSK_FS_FILE * a_fs_file, const
      char *a_path,\n    void *a_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::filterFs
      Src: /src/sleuthkit/tsk/auto/auto.cpp:797,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/auto/auto.cpp:804,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:808,1
    - Dst: TskAuto::registerError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a_fs_info
    - a_inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 820
    functionName: TskAuto::findFilesInFsInt
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 5
    functionsReached:
    - TskAuto::filterFs
    - tsk_fs_dir_walk
    - TskAuto::registerError
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAuto::findFilesInFsInt(TSK_FS_INFO * a_fs_info,
      TSK_INUM_T a_inum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/auto/auto.cpp:835,1
    - Dst: TskAuto::processAttribute
      Src: /src/sleuthkit/tsk/auto/auto.cpp:838,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/auto/auto.cpp:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: TskAuto::processAttributes
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_fs_file_attr_getsize
    - TskAuto::processAttribute
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAuto::processAttributes(TSK_FS_FILE * fs_file, const
      char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 853
    functionName: TskAuto::processAttribute
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAuto::processAttribute(TSK_FS_FILE * /*fs_file*/,\n
      \                         const TSK_FS_ATTR * /*fs_attr*/,\n                          const
      char * /*path*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: TskAuto::setStopProcessing
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::setStopProcessing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: TskAuto::getStopProcessing
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TskAuto::getStopProcessing() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/auto.cpp:876,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/auto/auto.cpp:878,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tsk/auto/auto.cpp:886,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:889,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:890,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/auto.cpp:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - imagePath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 905
    functionName: TskAuto::enableImageWriter
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_UTF8toUTF16
    - free
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAuto::enableImageWriter(const char * imagePath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 910
    functionName: TskAuto::disableImageWriter
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAuto::disableImageWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:915,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:916,1
    - Dst: tsk_error_get_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:917,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/auto.cpp:918,1
    - Dst: TskAuto::handleError
      Src: /src/sleuthkit/tsk/auto/auto.cpp:921,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 925
    functionName: TskAuto::registerError
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 9
    functionsReached:
    - tsk_error_get_errstr2
    - tsk_error_reset
    - TskAuto::handleError
    - push_back
    - tsk_error_get_errstr
    - tsk_error_get_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::registerError()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 930
    functionName: TskAuto::getErrorList
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TskAuto::error_record>
    signature: std::vector<TskAuto::error_record> TskAuto::getErrorList()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/auto/auto.cpp:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 934
    functionName: TskAuto::resetErrorList
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 3
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void TskAuto::resetErrorList()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:937,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/auto.cpp:938,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/auto.cpp:939,1
    - Dst: error_record::msg1::c_str
      Src: /src/sleuthkit/tsk/auto/auto.cpp:939,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/auto/auto.cpp:940,1
    - Dst: error_record::msg2::c_str
      Src: /src/sleuthkit/tsk/auto/auto.cpp:940,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/auto/auto.cpp:941,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/auto.cpp:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - rec
    argTypes:
    - error_record
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 947
    functionName: TskAuto::errorRecordToString
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - error_record::msg2::c_str
    - error_record::msg1::c_str
    - tsk_error_set_errno
    - tsk_error_set_errstr2
    - tsk_error_get
    linkageType: ''
    returnType: std::string
    signature: std::string TskAuto::errorRecordToString(error_record &rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: TskAuto::handleError
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::handleError()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/auto/auto.cpp:964,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 970
    functionName: TskAuto::isNtfsSystemFiles
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISNTFS
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isNtfsSystemFiles(TSK_FS_FILE * a_fs_file, const char
      * /*a_path*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/auto/auto.cpp:981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 992
    functionName: TskAuto::isFATSystemFiles
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISFAT
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isFATSystemFiles(TSK_FS_FILE *a_fs_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1017
    functionName: TskAuto::isDotDir
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isDotDir(TSK_FS_FILE * a_fs_file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_IS_DIR_NAME
      Src: /src/sleuthkit/tsk/auto/auto.cpp:1028,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/auto/auto.cpp:1033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1039
    functionName: TskAuto::isDir
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_IS_DIR_META
    - TSK_FS_IS_DIR_NAME
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isDir(TSK_FS_FILE * a_fs_file)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1061
    functionName: TskAuto::isFile
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isFile(TSK_FS_FILE * a_fs_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_FILE*::fs_info::get_default_attr_type
      Src: /src/sleuthkit/tsk/auto/auto.cpp:1073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a_fs_file
    - a_fs_attr
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: TskAuto::isDefaultType
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_FILE*::fs_info::get_default_attr_type
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAuto::isDefaultType(TSK_FS_FILE * a_fs_file,\n    const
      TSK_FS_ATTR * a_fs_attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a_fs_attr
    argTypes:
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1092
    functionName: TskAuto::isNonResident
    functionSourceFile: /src/sleuthkit/tsk/auto/auto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAuto::isNonResident(const TSK_FS_ATTR * a_fs_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a_db
    argTypes:
    - TskDb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: TskCaseDb::TskCaseDb
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskCaseDb::TskCaseDb(TskDb * a_db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:36,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: TskCaseDb::~TskCaseDb()
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_close
    linkageType: ''
    returnType: void
    signature: void TskCaseDb::~TskCaseDb()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::TskDbSqlite
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:57,1
    - Dst: TskDb*::dbExists
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:60,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:61,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:62,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:63,1
    - Dst: TskDb*::open
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:70,1
    - Dst: TskCaseDb::TskCaseDb
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: TskCaseDb::newDb
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - TskDb*::open
    - TskCaseDb::TskCaseDb
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskDbSqlite::TskDbSqlite
    - tsk_error_set_errno
    - TskDb*::dbExists
    linkageType: ''
    returnType: TskCaseDb
    signature: 'TskCaseDb *

      TskCaseDb::newDb(const TSK_TCHAR * const path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::TskDbSqlite
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:87,1
    - Dst: TskDb*::dbExists
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:90,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:91,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:92,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:93,1
    - Dst: TskDb*::open
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:100,1
    - Dst: TskCaseDb::TskCaseDb
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: TskCaseDb::openDb
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - TskDb*::open
    - TskCaseDb::TskCaseDb
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskDbSqlite::TskDbSqlite
    - tsk_error_set_errno
    - TskDb*::dbExists
    linkageType: ''
    returnType: TskCaseDb
    signature: 'TskCaseDb *

      TskCaseDb::openDb(const TSK_TCHAR * path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::TskAutoDb
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: TskCaseDb::initAddImage
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDb::TskAutoDb
    linkageType: ''
    returnType: TskAutoDb
    signature: 'TskAutoDb *

      TskCaseDb::initAddImage()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDb::startAddImage
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:137,1
    - Dst: TskAutoDb::revertAddImage
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:138,1
    - Dst: TskAutoDb::commitAddImage
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - numImg
    - imagePaths
    - imgType
    - sSize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: TskCaseDb::addImage
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDb::revertAddImage
    - TskAutoDb::startAddImage
    - TskAutoDb::commitAddImage
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskCaseDb::addImage(int numImg, const TSK_TCHAR * const imagePaths[],\n
      \   TSK_IMG_TYPE_ENUM imgType, unsigned int sSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:157,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - indexFile
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: TskCaseDb::setNSRLHashDb
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_open
    - tsk_hdb_close
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCaseDb::setNSRLHashDb(TSK_TCHAR * const indexFile )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:174,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - indexFile
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: TskCaseDb::setKnownBadHashDb
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_open
    - tsk_hdb_close
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCaseDb::setKnownBadHashDb(TSK_TCHAR * const indexFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:190,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/auto/case_db.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: TskCaseDb::clearLookupDatabases
    functionSourceFile: /src/sleuthkit/tsk/auto/case_db.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_close
    linkageType: ''
    returnType: void
    signature: void TskCaseDb::clearLookupDatabases()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - a_dbFilePathUtf8
    - a_blkMapFlag
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: TskDbSqlite::TskDbSqlite
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 2
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void TskDbSqlite::TskDbSqlite(const char* a_dbFilePathUtf8, bool a_blkMapFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:48,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - a_dbFilePath
    - a_blkMapFlag
    argTypes:
    - TSK_TCHAR*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: TskDbSqlite::TskDbSqlite
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 2
    functionsReached:
    - wcsncpy
    - strcpy
    linkageType: ''
    returnType: void
    signature: void TskDbSqlite::TskDbSqlite(const TSK_TCHAR* a_dbFilePath, bool a_blkMapFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::close
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TskDbSqlite::~TskDbSqlite()
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::close
    linkageType: ''
    returnType: void
    signature: void TskDbSqlite::~TskDbSqlite()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::cleanupFilePreparedStmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:73,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 12
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TskDbSqlite::close
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_close
    - TskDbSqlite::cleanupFilePreparedStmt
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:87,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:88,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:89,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - resultCode
    - expectedResultCode
    - errfmt
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: TskDbSqlite::attempt
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::attempt(int resultCode, int expectedResultCode,\n
      \                    const char* errfmt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resultCode
    - errfmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: TskDbSqlite::attempt
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::attempt
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::attempt(int resultCode, const char* errfmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:119,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:122,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:123,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:124,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - sql
    - callback_arg
    - errfmt
    argTypes:
    - char*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 27
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: TskDbSqlite::attempt_exec
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - sqlite3_exec
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::attempt_exec(const char* sql, int (*callback)(void*,
      int,\n                                                           char**, char**),
      void* callback_arg, const char* errfmt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sql
    - errfmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: TskDbSqlite::attempt_exec
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::attempt_exec(const char* sql, const char* errfmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:148,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:150,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:151,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:152,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sql
    - ppStmt
    argTypes:
    - char*
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 27
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: TskDbSqlite::prepare_stmt
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite3_prepare_v2
    - tsk_error_set_errno
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::prepare_stmt(const char* sql, sqlite3_stmt** ppStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:167,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:167,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:169,1
    - Dst: sqlite3_bind_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:169,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:171,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:171,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:175,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:179,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:181,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - type
    - parObjId
    - ' objId'
    argTypes:
    - TSK_DB_OBJECT_TYPE_ENUM
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 26
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: TskDbSqlite::addObject
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_last_insert_rowid
    - sqlite3_reset
    - TskDbSqlite::attempt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskDbSqlite::addObject(TSK_DB_OBJECT_TYPE_ENUM type, int64_t
      parObjId,\n                       int64_t& objId)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:202,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:209,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:215,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:221,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:227,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:235,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:237,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:238,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:239,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:239,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:243,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:250,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:253,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:258,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:262,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:263,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:267,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:268,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:272,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:273,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:277,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:278,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:282,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:283,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:287,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:291,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:295,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:299,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:303,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:307,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:311,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:316,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:320,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:325,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:329,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:333,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:337,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:341,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:344,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:348,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:353,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:367,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:373,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:377,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:381,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:385,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:389,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:393,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:397,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:401,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:405,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:409,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:413,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:417,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:424,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:435,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:461,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:471,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:475,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:480,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:487,1
    - Dst: TskDbSqlite::createIndexes
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:493,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 195
    functionDepth: 28
    functionLinenumber: 195
    functionLinenumberEnd: 497
    functionName: TskDbSqlite::initialize
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_file_control
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TskDbSqlite::createIndexes
    - snprintf
    - TskDbSqlite::attempt_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::initialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:507,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:510,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:513,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:515,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:517,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:519,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:522,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:524,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:526,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:528,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:530,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:533,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:535,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:537,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:540,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:542,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:544,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:546,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:549,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 503
    functionDepth: 28
    functionLinenumber: 503
    functionLinenumberEnd: 551
    functionName: TskDbSqlite::createIndexes
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::createIndexes()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:564,1
    - Dst: sqlite3_open
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:564,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:567,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:573,1
    - Dst: sqlite3_open16
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:573,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:576,1
    - Dst: sqlite3_extended_result_codes
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:582,1
    - Dst: TskDbSqlite::initialize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:587,1
    - Dst: TskDbSqlite::setupFilePreparedStmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - a_toInit
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 559
    functionDepth: 29
    functionLinenumber: 559
    functionLinenumberEnd: 597
    functionName: TskDbSqlite::open
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_open
    - sqlite3_extended_result_codes
    - sqlite3_open16
    - sqlite3_close
    - TskDbSqlite::attempt
    - TskDbSqlite::setupFilePreparedStmt
    - TskDbSqlite::initialize
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::open(bool a_toInit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:605,1
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 602
    functionDepth: 28
    functionLinenumber: 602
    functionLinenumberEnd: 619
    functionName: TskDbSqlite::setupFilePreparedStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::prepare_stmt
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::setupFilePreparedStmt()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:630,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 25
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: TskDbSqlite::cleanupFilePreparedStmt
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void TskDbSqlite::cleanupFilePreparedStmt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addImageInfo
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - size
    - ' objId'
    - ' timezone'
    argTypes:
    - int
    - int
    - int64_t
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: TskDbSqlite::addImageInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::addImageInfo
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::addImageInfo(int type, int size, int64_t& objId, const
      string& timezone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addImageInfo
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - type
    - ssize
    - ' objId'
    - ' timezone'
    - size
    - md5
    - sha1
    - sha256
    argTypes:
    - int
    - int
    - int64_t
    - string
    - TSK_OFF_T
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: TskDbSqlite::addImageInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 2
    functionsReached:
    - TskDbSqlite::addImageInfo
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::addImageInfo(int type, int ssize, int64_t & objId,
      const string & timezone, TSK_OFF_T size, const string &md5, const string &sha1,
      const string &sha256)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:676,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:679,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:683,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:687,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:688,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:688,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:688,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:688,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:690,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:691,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:700,1
    - Dst: GuidGenerator::GuidGenerator
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:703,1
    - Dst: GuidGenerator::newGuid
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:704,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:714,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:714,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:714,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:714,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:715,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 10
    argNames:
    - type
    - ssize
    - ' objId'
    - ' timezone'
    - size
    - md5
    - ' sha1'
    - ' sha256'
    - ' deviceId'
    - ' collectionDetails'
    argTypes:
    - int
    - TSK_OFF_T
    - int64_t
    - string
    - TSK_OFF_T
    - string
    - string
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 670
    functionDepth: 28
    functionLinenumber: 670
    functionLinenumberEnd: 718
    functionName: TskDbSqlite::addImageInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 2
    functionsReached:
    - empty
    - sqlite3_free
    - sqlite3_last_insert_rowid
    - sqlite3_mprintf
    - stringstream::str
    - GuidGenerator::GuidGenerator
    - string::c_str
    - GuidGenerator::newGuid
    - snprintf
    - TskDbSqlite::attempt_exec
    - c_str
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addImageInfo(int type, TSK_OFF_T ssize, int64_t &
      objId, const string & timezone, TSK_OFF_T size, const string &md5, \n    const
      string& sha1, const string& sha256, const string& deviceId, const string& collectionDetails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:730,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:733,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - objId
    - imgName
    - sequence
    argTypes:
    - int64_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 723
    functionDepth: 28
    functionLinenumber: 723
    functionLinenumberEnd: 737
    functionName: TskDbSqlite::addImageName
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - TskDbSqlite::attempt_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addImageName(int64_t objId, char const* imgName,\n
      \                         int sequence)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:749,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:752,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - vs_info
    - parObjId
    - ' objId'
    argTypes:
    - TSK_VS_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 742
    functionDepth: 28
    functionLinenumber: 742
    functionLinenumberEnd: 757
    functionName: TskDbSqlite::addVsInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addVsInfo(const TSK_VS_INFO* vs_info, int64_t parObjId,\n
      \                      int64_t& objId)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:777,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:780,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:783,1
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:790,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:793,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pool_info
    - parObjId
    - ' vsObjId'
    argTypes:
    - TSK_POOL_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 769
    functionDepth: 28
    functionLinenumber: 769
    functionLinenumberEnd: 798
    functionName: TskDbSqlite::addPoolInfoAndVS
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::addPoolInfoAndVS(const TSK_POOL_INFO *pool_info, int64_t
      parObjId, int64_t& vsObjId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:815,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:818,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:824,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vol_index
    - parObjId
    - ' objId'
    argTypes:
    - int
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 809
    functionDepth: 28
    functionLinenumber: 809
    functionLinenumberEnd: 828
    functionName: TskDbSqlite::addUnallocatedPoolVolume
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::addUnallocatedPoolVolume(int vol_index, int64_t parObjId,
      int64_t& objId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:846,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:849,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:855,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pool_vol
    - parObjId
    - ' objId'
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 839
    functionDepth: 28
    functionLinenumber: 839
    functionLinenumberEnd: 859
    functionName: TskDbSqlite::addPoolVolumeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addPoolVolumeInfo(const TSK_POOL_VOLUME_INFO* pool_vol,\n
      \   int64_t parObjId, int64_t& objId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:872,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:875,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:881,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vs_part
    - parObjId
    - ' objId'
    argTypes:
    - TSK_VS_PART_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 865
    functionDepth: 28
    functionLinenumber: 865
    functionLinenumberEnd: 885
    functionName: TskDbSqlite::addVolumeInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addVolumeInfo(const TSK_VS_PART_INFO* vs_part,\n
      \                          int64_t parObjId, int64_t& objId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:897,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:900,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fs_info
    - parObjId
    - ' objId'
    argTypes:
    - TSK_FS_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 890
    functionDepth: 28
    functionLinenumber: 890
    functionLinenumberEnd: 912
    functionName: TskDbSqlite::addFsInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addFsInfo(const TSK_FS_INFO* fs_info, int64_t parObjId,\n
      \                      int64_t& objId)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:951,1
    - Dst: TskDbSqlite::findParObjId
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:957,1
    - Dst: TskDbSqlite::addFile
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 8
    argNames:
    - fs_file
    - fs_attr
    - path
    - md5
    - known
    - fsObjId
    - ' objId'
    - dataSourceObjId
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - unsigned char*
    - TSK_DB_FILES_KNOWN_ENUM
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 966
    functionName: TskDbSqlite::addFsFile
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addFile
    - TskDbSqlite::findParObjId
    - strlen
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addFsFile(TSK_FS_FILE* fs_file,\n                       const
      TSK_FS_ATTR* fs_attr, const char* path,\n                       const unsigned
      char*const md5, const TSK_DB_FILES_KNOWN_ENUM known,\n                       int64_t
      fsObjId, int64_t& objId, int64_t dataSourceObjId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: TskDbSqlite::hash
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TskDbSqlite::hash(const unsigned char* str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1002,1
    - Dst: TskDbSqlite::hash
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1008,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1013,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1027,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1034,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - ' fsObjId'
    - fs_file
    - path
    - ' objId'
    argTypes:
    - int64_t
    - TSK_FS_FILE*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1039
    functionName: TskDbSqlite::storeObjId
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - count
    - TSK_FS_TYPE_ISNTFS
    - TSK_FS_ISDOT
    - TskDbSqlite::hash
    linkageType: ''
    returnType: void
    signature: void TskDbSqlite::storeObjId(const int64_t& fsObjId, const TSK_FS_FILE*
      fs_file, const char* path, const int64_t& objId)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::hash
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1051,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1056,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1067,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1070,1
    - Dst: count
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1073,1
    - Dst: TskDb::getParentPathAndName
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1091,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1098,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1098,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1100,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1100,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1102,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1102,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1104,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1104,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1106,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1106,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1110,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1114,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1116,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1116,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - fs_file
    - parentPath
    - ' fsObjId'
    argTypes:
    - TSK_FS_FILE*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1048
    functionDepth: 26
    functionLinenumber: 1048
    functionLinenumberEnd: 1123
    functionName: TskDbSqlite::findParObjId
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_bind_text
    - TSK_FS_TYPE_ISNTFS
    - TskDb::getParentPathAndName
    - sqlite3_reset
    - count
    - TskDbSqlite::attempt
    - sqlite3_bind_int64
    - TskDbSqlite::hash
    linkageType: ''
    returnType: int64_t
    signature: int64_t TskDbSqlite::findParObjId(const TSK_FS_FILE* fs_file, const
      char* parentPath, const int64_t& fsObjId)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::time
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1129,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1146,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1160,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1164,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1168,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1169,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1172,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1183,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1187,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - data_source_obj_id
    - content_obj_id
    - timeMap
    - full_description
    argTypes:
    - int64_t
    - int64_t
    - std::map<int64_t, time_t>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1125
    functionDepth: 28
    functionLinenumber: 1125
    functionLinenumberEnd: 1194
    functionName: TskDbSqlite::addMACTimeEvents
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_last_insert_rowid
    - sqlite3_mprintf
    - std::time
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addMACTimeEvents(const int64_t data_source_obj_id,
      const int64_t content_obj_id,\n                                  std::map<int64_t,
      time_t> timeMap, const char* full_description)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1248,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1250,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1261,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1264,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1268,1
    - Dst: extractExtension
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1271,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1276,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1276,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1277,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1277,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1282,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1284,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1286,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1290,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1291,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1291,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1302,1
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1309,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1311,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1312,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1316,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1340,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1341,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1342,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1343,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1347,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1349,1
    - Dst: TskDbSqlite::addMACTimeEvents
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1360,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1360,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1362,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1363,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1364,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1370,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1372,1
    - Dst: TskDbSqlite::storeObjId
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1373,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1373,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1384,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1384,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1389,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1389,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1390,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1391,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1391,1
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1395,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1396,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1397,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1402,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1426,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1427,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1428,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1429,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1434,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1436,1
    - Dst: free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1437,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 94
    argCount: 9
    argNames:
    - fs_file
    - fs_attr
    - path
    - md5
    - known
    - fsObjId
    - parObjId
    - ' objId'
    - dataSourceObjId
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - unsigned char*
    - TSK_DB_FILES_KNOWN_ENUM
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1202
    functionDepth: 29
    functionLinenumber: 1202
    functionLinenumberEnd: 1440
    functionName: TskDbSqlite::addFile
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - strncat
    - TSK_FS_IS_DIR_META
    - sqlite3_free
    - std::string::c_str
    - sqlite3_mprintf
    - TskDbSqlite::storeObjId
    - TSK_FS_ISDOT
    - TskDbSqlite::addMACTimeEvents
    - strcmp
    - tsk_malloc
    - std::string
    - strncpy
    - extractExtension
    - free
    - snprintf
    - TskDbSqlite::attempt_exec
    - strlen
    - TskDbSqlite::addObject
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addFile(TSK_FS_FILE* fs_file,\n    const TSK_FS_ATTR*
      fs_attr, const char* path,\n    const unsigned char*const md5, const TSK_DB_FILES_KNOWN_ENUM
      known,\n    int64_t fsObjId, int64_t parObjId,\n    int64_t& objId, int64_t
      dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1455,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1449
    functionDepth: 28
    functionLinenumber: 1449
    functionLinenumberEnd: 1458
    functionName: TskDbSqlite::createSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::createSavepoint(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1471,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1473,1
    - Dst: TskDbSqlite::releaseSavepoint
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 28
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    functionName: TskDbSqlite::revertSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::attempt_exec
    - TskDbSqlite::releaseSavepoint
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::revertSavepoint(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1490,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1484
    functionDepth: 28
    functionLinenumber: 1484
    functionLinenumberEnd: 1493
    functionName: TskDbSqlite::releaseSavepoint
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - snprintf
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::releaseSavepoint(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1512,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a_fileObjId
    - a_byteStart
    - a_byteLen
    - a_sequence
    argTypes:
    - int64_t
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1505
    functionDepth: 28
    functionLinenumber: 1505
    functionLinenumberEnd: 1518
    functionName: TskDbSqlite::addFileLayoutRange
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - TskDbSqlite::attempt_exec
    linkageType: ''
    returnType: int
    signature: "int TskDbSqlite::addFileLayoutRange(int64_t a_fileObjId,\n                                uint64_t
      a_byteStart, uint64_t a_byteLen, int a_sequence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addFileLayoutRange
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fileLayoutRange'
    argTypes:
    - TSK_DB_FILE_LAYOUT_RANGE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1530
    functionName: TskDbSqlite::addFileLayoutRange
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - TskDbSqlite::addFileLayoutRange
    linkageType: ''
    returnType: int
    signature: int TskDbSqlite::addFileLayoutRange(const TSK_DB_FILE_LAYOUT_RANGE&
      fileLayoutRange)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1551,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1559,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1563,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1581,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1583,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - parObjId
    - fsObjId
    - dbFileType
    - fileName
    - size
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - TSK_DB_FILES_TYPE_ENUM
    - char*
    - uint64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1544
    functionDepth: 28
    functionLinenumber: 1544
    functionLinenumberEnd: 1589
    functionName: TskDbSqlite::addLayoutFileInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_mprintf
    - snprintf
    - TskDbSqlite::attempt_exec
    - TskDbSqlite::addObject
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addLayoutFileInfo(const int64_t parObjId,
      const int64_t fsObjId, const TSK_DB_FILES_TYPE_ENUM dbFileType,\n                               const
      char* fileName,\n                               const uint64_t size, int64_t&
      objId, int64_t dataSourceObjId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1602
    functionName: TskDbSqlite::isDbOpen
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TskDbSqlite::isDbOpen()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1610,1
    - Dst: TSTAT
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1625
    functionName: TskDbSqlite::dbExists
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - stat
    - TSTAT
    linkageType: ''
    returnType: bool
    signature: bool TskDbSqlite::dbExists()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_get_autocommit
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1627
    functionDepth: 11
    functionLinenumber: 1627
    functionLinenumberEnd: 1631
    functionName: TskDbSqlite::inTransaction
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: bool
    signature: bool TskDbSqlite::inTransaction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addFileWithLayoutRange
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1651
    functionName: TskDbSqlite::addUnallocBlockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addFileWithLayoutRange
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addUnallocBlockFile(const int64_t parentObjId,
      const int64_t fsObjId, const uint64_t size,\n                                                 vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n                                                 int64_t
      dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addFileWithLayoutRange
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1670
    functionName: TskDbSqlite::addUnusedBlockFile
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addFileWithLayoutRange
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addUnusedBlockFile(const int64_t parentObjId,
      const int64_t fsObjId, const uint64_t size,\n                                                vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n                                                int64_t
      dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addFileWithLayoutRange
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1683
    functionDepth: 1
    functionLinenumber: 1683
    functionLinenumberEnd: 1688
    functionName: TskDbSqlite::addCarvedFile
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addFileWithLayoutRange
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addCarvedFile(const int64_t parentObjId,
      const int64_t fsObjId, const uint64_t size,\n                                           vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n                                           int64_t
      dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ranges'
    argTypes:
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1696
    functionDepth: 0
    functionLinenumber: 1696
    functionLinenumberEnd: 1699
    functionName: _checkFileLayoutRangeOverlap
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _checkFileLayoutRangeOverlap(const vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1701
    functionName: getHasOverlap
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getHasOverlap() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1712,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - TSK_DB_FILE_LAYOUT_RANGE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1725
    functionName: operator()(const TSK_DB_FILE_LAYOUT_RANGE& range)
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void operator()(const TSK_DB_FILE_LAYOUT_RANGE& range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::addObject
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1743,1
    - Dst: sqlite3_mprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1745,1
    - Dst: TskDbSqlite::attempt_exec
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1768,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1770,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - fsObjId
    - parentDirId
    - name
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - char*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1738
    functionDepth: 28
    functionLinenumber: 1738
    functionLinenumberEnd: 1776
    functionName: TskDbSqlite::addVirtualDir
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::addObject
    - TskDbSqlite::attempt_exec
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addVirtualDir(const int64_t fsObjId,
      const int64_t parentDirId, const char* const name,\n                                           int64_t&
      objId, int64_t dataSourceObjId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::getFsRootDirObjectInfo
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1793,1
    - Dst: TskDbSqlite::addVirtualDir
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fsObjId
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1786
    functionDepth: 29
    functionLinenumber: 1786
    functionLinenumberEnd: 1799
    functionName: TskDbSqlite::addUnallocFsBlockFilesParent
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - TskDbSqlite::getFsRootDirObjectInfo
    - TskDbSqlite::addVirtualDir
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addUnallocFsBlockFilesParent(const int64_t
      fsObjId, int64_t& objId,\n                                                          int64_t
      dataSourceObjId)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1812,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1816,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1817,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1818,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1838,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1839,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1842,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1842,1
    - Dst: sort
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1847,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1847,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1847,1
    - Dst: for_each
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1852,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1852,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1852,1
    - Dst: checkFileLayoutRangeOverlap
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1852,1
    - Dst: getHasOverlap
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1853,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1855,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1856,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1857,1
    - Dst: TskDbSqlite::addLayoutFileInfo
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1866,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1866,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1872,1
    - Dst: end
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1873,1
    - Dst: TskDbSqlite::addFileLayoutRange
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 7
    argNames:
    - dbFileType
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - TSK_DB_FILES_TYPE_ENUM
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1807
    functionDepth: 29
    functionLinenumber: 1807
    functionLinenumberEnd: 1884
    functionName: TskDbSqlite::addFileWithLayoutRange
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 3
    functionsReached:
    - size
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskDbSqlite::addLayoutFileInfo
    - begin
    - stringstream::str
    - getHasOverlap
    - tsk_error_set_errno
    - end
    - TskDbSqlite::addFileLayoutRange
    - for_each
    - checkFileLayoutRangeOverlap
    - sort
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskDbSqlite::addFileWithLayoutRange(const TSK_DB_FILES_TYPE_ENUM
      dbFileType, const int64_t parentObjId,\n                                                    const
      int64_t fsObjId, const uint64_t size,\n                                                    vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n                                                    int64_t
      dataSourceObjId)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1894,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1903,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1905,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1906,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1907,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1908,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1911,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' fileLayouts'
    argTypes:
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1891
    functionDepth: 28
    functionLinenumber: 1891
    functionLinenumberEnd: 1922
    functionName: TskDbSqlite::getFileLayouts
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - sqlite3_column_int64
    - push_back
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getFileLayouts(vector<TSK_DB_FILE_LAYOUT_RANGE>&
      fileLayouts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' layoutRange'
    argTypes:
    - ostream
    - TSK_DB_FILE_LAYOUT_RANGE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1930
    functionName: '& operator <<(ostream& os, const TSK_DB_FILE_LAYOUT_RANGE& layoutRange)'
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ostream
    signature: ostream & operator <<(ostream& os, const TSK_DB_FILE_LAYOUT_RANGE&
      layoutRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' fsInfo'
    argTypes:
    - ostream
    - TSK_DB_FS_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1932
    functionDepth: 0
    functionLinenumber: 1932
    functionLinenumberEnd: 1939
    functionName: '& operator <<(ostream& os, const TSK_DB_FS_INFO& fsInfo)'
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ostream
    signature: ostream & operator <<(ostream& os, const TSK_DB_FS_INFO& fsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' vsInfo'
    argTypes:
    - ostream
    - TSK_DB_VS_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1947
    functionName: '& operator <<(ostream& os, const TSK_DB_VS_INFO& vsInfo)'
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ostream
    signature: ostream & operator <<(ostream& os, const TSK_DB_VS_INFO& vsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' vsPartInfo'
    argTypes:
    - ostream
    - TSK_DB_VS_PART_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1955
    functionName: '& operator <<(ostream& os, const TSK_DB_VS_PART_INFO& vsPartInfo)'
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ostream
    signature: ostream & operator <<(ostream& os, const TSK_DB_VS_PART_INFO& vsPartInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' dbObject'
    argTypes:
    - ostream
    - TSK_DB_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1962
    functionName: '& operator <<(ostream& os, const TSK_DB_OBJECT& dbObject)'
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ostream
    signature: ostream & operator <<(ostream& os, const TSK_DB_OBJECT& dbObject)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1973,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1982,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1984,1
    - Dst: TskDbSqlite::getParentImageId
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1988,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1990,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1991,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:1992,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2002,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2003,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2004,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2005,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2006,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2007,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2008,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2011,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - imgId
    - ' fsInfos'
    argTypes:
    - int64_t
    - vector<TSK_DB_FS_INFO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1970
    functionDepth: 28
    functionLinenumber: 1970
    functionLinenumberEnd: 2022
    functionName: TskDbSqlite::getFsInfos
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - tsk_error_reset
    - sqlite3_column_int64
    - tsk_error_set_errstr
    - push_back
    - TskDbSqlite::getParentImageId
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getFsInfos(int64_t imgId, vector<TSK_DB_FS_INFO>&
      fsInfos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2034,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2042,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2044,1
    - Dst: TskDbSqlite::getParentImageId
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2047,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2049,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2050,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2051,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2062,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2063,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2064,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2067,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2073,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - imgId
    - ' vsInfos'
    argTypes:
    - int64_t
    - vector<TSK_DB_VS_INFO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2031
    functionDepth: 28
    functionLinenumber: 2031
    functionLinenumberEnd: 2078
    functionName: TskDbSqlite::getVsInfos
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - tsk_error_reset
    - sqlite3_column_int64
    - tsk_error_set_errstr
    - push_back
    - TskDbSqlite::getParentImageId
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getVsInfos(int64_t imgId, vector<TSK_DB_VS_INFO>&
      vsInfos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2090,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2098,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2100,1
    - Dst: TskDbSqlite::getParentImageId
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2103,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2105,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2106,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2107,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2118,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2119,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2120,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2121,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2122,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2123,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2125,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - imgId
    - ' vsPartInfos'
    argTypes:
    - int64_t
    - vector<TSK_DB_VS_PART_INFO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2087
    functionDepth: 28
    functionLinenumber: 2087
    functionLinenumberEnd: 2136
    functionName: TskDbSqlite::getVsPartInfos
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    - sqlite3_finalize
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - tsk_error_reset
    - sqlite3_column_int64
    - tsk_error_set_errstr
    - sqlite3_column_text
    - push_back
    - TskDbSqlite::getParentImageId
    - tsk_error_set_errno
    - snprintf
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getVsPartInfos(int64_t imgId, vector<TSK_DB_VS_PART_INFO>&
      vsPartInfos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2147,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2153,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2153,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2155,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2155,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2158,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2162,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2163,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2164,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - objId
    - ' objectInfo'
    argTypes:
    - int64_t
    - TSK_DB_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2144
    functionDepth: 28
    functionLinenumber: 2144
    functionLinenumberEnd: 2174
    functionName: TskDbSqlite::getObjectInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_column_int
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - sqlite3_column_int64
    - TskDbSqlite::attempt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getObjectInfo(int64_t objId, TSK_DB_OBJECT&
      objectInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2185,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2191,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2191,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2193,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2193,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2196,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2200,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2201,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2202,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2203,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - objId
    - ' vsInfo'
    argTypes:
    - int64_t
    - TSK_DB_VS_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2182
    functionDepth: 28
    functionLinenumber: 2182
    functionLinenumberEnd: 2213
    functionName: TskDbSqlite::getVsInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_column_int
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - sqlite3_column_int64
    - TskDbSqlite::attempt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getVsInfo(int64_t objId, TSK_DB_VS_INFO&
      vsInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::getObjectInfo
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - objId
    - ' imageId'
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2222
    functionDepth: 29
    functionLinenumber: 2222
    functionLinenumberEnd: 2245
    functionName: TskDbSqlite::getParentImageId
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 3
    functionsReached:
    - TskDbSqlite::getObjectInfo
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getParentImageId(const int64_t objId,
      int64_t& imageId)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskDbSqlite::prepare_stmt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2257,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2265,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2265,1
    - Dst: TskDbSqlite::attempt
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2267,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2267,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2270,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2274,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2275,1
    - Dst: sqlite3_column_int
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2276,1
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/auto/db_sqlite.cpp:2282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - fsObjId
    - ' rootDirObjInfo'
    argTypes:
    - int64_t
    - TSK_DB_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2254
    functionDepth: 28
    functionLinenumber: 2254
    functionLinenumberEnd: 2287
    functionName: TskDbSqlite::getFsRootDirObjectInfo
    functionSourceFile: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    - sqlite3_column_int
    - TskDbSqlite::prepare_stmt
    - sqlite3_step
    - sqlite3_column_int64
    - TskDbSqlite::attempt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskDbSqlite::getFsRootDirObjectInfo(const int64_t fsObjId,
      TSK_DB_OBJECT& rootDirObjInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/base/tsk_list.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a_key
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: tsk_list_create
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_list.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: TSK_LIST
    signature: 'TSK_LIST *

      tsk_list_create(uint64_t a_key)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_list_create
      Src: /src/sleuthkit/tsk/base/tsk_list.c:57,1
    - Dst: tsk_list_create
      Src: /src/sleuthkit/tsk/base/tsk_list.c:80,1
    - Dst: tsk_list_create
      Src: /src/sleuthkit/tsk/base/tsk_list.c:123,1
    - Dst: tsk_list_create
      Src: /src/sleuthkit/tsk/base/tsk_list.c:146,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - a_tsk_list_head
    - a_key
    argTypes:
    - TSK_LIST**
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 159
    functionName: tsk_list_add
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_list.c
    functionUses: 0
    functionsReached:
    - tsk_list_create
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_list_add(TSK_LIST ** a_tsk_list_head, uint64_t a_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a_tsk_list_head
    - a_key
    argTypes:
    - TSK_LIST*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: tsk_list_find
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_list_find(TSK_LIST * a_tsk_list_head, uint64_t a_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_list.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_tsk_list_head
    argTypes:
    - TSK_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: tsk_list_free
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_list.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_list_free(TSK_LIST * a_tsk_list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/sleuthkit/tsk/base/mymalloc.c:32,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/mymalloc.c:33,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/mymalloc.c:34,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/mymalloc.c:35,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/base/mymalloc.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: tsk_malloc
    functionSourceFile: /src/sleuthkit/tsk/base/mymalloc.c
    functionUses: 21
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - strerror
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tsk_malloc(size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/sleuthkit/tsk/base/mymalloc.c:46,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/mymalloc.c:48,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/mymalloc.c:49,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/mymalloc.c:50,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/base/mymalloc.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: tsk_realloc
    functionSourceFile: /src/sleuthkit/tsk/base/mymalloc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - realloc
    - tsk_error_set_errno
    - strerror
    linkageType: ''
    returnType: void
    signature: 'void *

      tsk_realloc(void *ptr, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeCriticalSection
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: tsk_init_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - InitializeCriticalSection
    linkageType: ''
    returnType: void
    signature: void tsk_init_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: tsk_deinit_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void tsk_deinit_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: tsk_take_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: void
    signature: void tsk_take_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: tsk_release_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: void
    signature: void tsk_release_lock(tsk_lock_t * lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutexattr_init
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:48,1
    - Dst: pthread_mutex_init
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:71,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:72,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:74,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/sleuthkit/tsk/base/tsk_lock.c
    constantsTouched: []
    func_position:
      end: 77
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 77
    functionName: tsk_init_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_init
    - assert
    - fprintf
    - pthread_mutexattr_init
    - pthread_mutexattr_destroy
    linkageType: ''
    returnType: void
    signature: void tsk_init_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: tsk_deinit_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void tsk_deinit_lock(tsk_lock_t * lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:88,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:90,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/sleuthkit/tsk/base/tsk_lock.c
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: tsk_take_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - fprintf
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void tsk_take_lock(tsk_lock_t * lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:98,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:100,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/base/tsk_lock.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/sleuthkit/tsk/base/tsk_lock.c
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: tsk_release_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void tsk_release_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: tsk_init_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_init_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: tsk_deinit_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_deinit_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: tsk_take_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_take_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lock
    argTypes:
    - tsk_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: tsk_release_lock
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_lock.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_release_lock(tsk_lock_t * lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: TSK_ERROR_FORMAT_ATTRIBUTE
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_ERROR_FORMAT_ATTRIBUTE(n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_stack_create
      Src: /src/sleuthkit/tsk/base/tsk_base.h:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: TskStack::TskStack
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_stack_create
    linkageType: ''
    returnType: void
    signature: void TskStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/base/tsk_base.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: ~TskStack()
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_stack_free
    linkageType: ''
    returnType: void
    signature: void ~TskStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_stack_pop
      Src: /src/sleuthkit/tsk/base/tsk_base.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: TskStack::pop
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_stack_pop
    linkageType: ''
    returnType: void
    signature: void pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_stack_push
      Src: /src/sleuthkit/tsk/base/tsk_base.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: TskStack::push
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_stack_push
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t push(uint64_t a_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_stack_find
      Src: /src/sleuthkit/tsk/base/tsk_base.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 549
    functionName: TskStack::find
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_stack_find
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t find(uint64_t a_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: TskStack::length
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t length()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/base/tsk_base.h:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 577
    functionName: TskError::get
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_error_get
    linkageType: ''
    returnType: char
    signature: char *get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/base/tsk_base.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: TskError::print
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_error_print
    linkageType: ''
    returnType: void
    signature: void print(FILE * a_hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/tsk_base.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: TskError::reset
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base.h
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:37,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - flag
    - x
    - val
    argTypes:
    - TSK_ENDIAN_ENUM*
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: tsk_guess_end_u16
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_endian.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_guess_end_u16(TSK_ENDIAN_ENUM * flag, uint8_t * x, uint16_t
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:64,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - flag
    - x
    - val
    argTypes:
    - TSK_ENDIAN_ENUM*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: tsk_guess_end_u32
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_endian.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_guess_end_u32(TSK_ENDIAN_ENUM * flag, uint8_t * x, uint32_t
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:90,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/base/tsk_endian.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - flag
    - x
    - val
    argTypes:
    - TSK_ENDIAN_ENUM*
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: tsk_guess_end_u64
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_endian.c
    functionUses: 0
    functionsReached:
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_guess_end_u64(TSK_ENDIAN_ENUM * flag, uint8_t * x, uint64_t
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rounddown
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rounddown(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: tsk_getu16
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_getu16(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: tsk_gets16
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_gets16(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: tsk_getu24
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_getu24(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: tsk_getu32
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_getu32(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: tsk_gets32
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_gets32(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: tsk_getu48
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_getu48(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 192
    functionName: tsk_getu64
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_getu64(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - endian
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: tsk_gets64
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_gets64(endian, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: TSK_IS_CNTRL
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_base_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IS_CNTRL(x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:171,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:175,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:176,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tsk/base/XGetopt.c:183,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:183,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/base/XGetopt.c:197,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:199,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:200,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:203,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:204,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/XGetopt.c:213,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 218
    functionName: tsk_getopt
    functionSourceFile: /src/sleuthkit/tsk/base/XGetopt.c
    functionUses: 0
    functionsReached:
    - TSTRCMP
    - _TSK_T
    - TSTRCHR
    linkageType: ''
    returnType: int
    signature: int tsk_getopt(int argc, TSK_TCHAR * const argv[], const TSK_TCHAR
      * optstring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: f1
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: f1(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: f2
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: f2(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: f3
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: f3(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: f4
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: f4(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: ROTL
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(n,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - W
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: expand
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expand(W,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - k
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: subRound
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: subRound(a, b, c, d, e, f, k, data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - endian_ness
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: endianTest
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endianTest(int *endian_ness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endianTest
      Src: /src/sleuthkit/tsk/base/sha1c.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - shsInfo
    argTypes:
    - TSK_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: TSK_SHA_Init
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached:
    - endianTest
    linkageType: ''
    returnType: void
    signature: void TSK_SHA_Init(TSK_SHA_CTX * shsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/base/sha1c.c:171,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:174,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:175,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:176,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:177,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:178,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:179,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:180,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:181,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:182,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:183,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:184,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:185,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:186,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:187,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:188,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:189,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:190,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:190,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:191,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:191,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:192,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:192,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:193,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:193,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:195,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:195,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:196,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:196,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:197,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:197,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:198,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:198,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:199,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:199,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:200,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:200,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:201,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:201,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:202,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:202,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:203,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:203,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:204,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:204,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:205,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:205,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:206,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:206,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:207,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:207,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:208,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:208,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:209,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:209,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:210,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:210,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:211,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:211,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:212,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:212,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:213,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:213,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:214,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:214,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:216,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:216,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:217,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:217,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:218,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:218,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:219,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:219,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:220,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:220,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:221,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:221,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:222,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:222,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:223,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:223,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:224,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:224,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:225,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:225,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:226,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:226,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:227,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:227,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:228,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:228,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:229,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:229,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:230,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:230,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:231,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:231,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:232,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:232,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:233,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:233,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:234,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:234,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:235,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:235,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:237,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:237,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:238,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:238,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:239,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:239,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:240,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:240,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:241,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:241,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:242,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:242,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:243,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:243,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:244,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:244,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:245,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:245,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:246,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:246,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:247,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:247,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:248,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:248,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:249,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:249,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:250,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:250,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:251,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:251,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:252,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:252,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:253,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:253,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:254,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:254,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:255,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:255,1
    - Dst: subRound
      Src: /src/sleuthkit/tsk/base/sha1c.c:256,1
    - Dst: expand
      Src: /src/sleuthkit/tsk/base/sha1c.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - UINT4*
    - UINT4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 264
    functionName: SHSTransform
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached:
    - expand
    - subRound
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHSTransform(UINT4 *digest, UINT4 *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - byteCount
    - Endianness
    argTypes:
    - UINT4*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: longReverse
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longReverse(UINT4 * buffer, int byteCount, int Endianness)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/base/sha1c.c:313,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/base/sha1c.c:316,1
    - Dst: longReverse
      Src: /src/sleuthkit/tsk/base/sha1c.c:317,1
    - Dst: SHSTransform
      Src: /src/sleuthkit/tsk/base/sha1c.c:318,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/base/sha1c.c:325,1
    - Dst: longReverse
      Src: /src/sleuthkit/tsk/base/sha1c.c:326,1
    - Dst: SHSTransform
      Src: /src/sleuthkit/tsk/base/sha1c.c:327,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/base/sha1c.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - shsInfo
    - buffer
    - count
    argTypes:
    - TSK_SHA_CTX*
    - BYTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 334
    functionName: TSK_SHA_Update
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached:
    - longReverse
    - SHSTransform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TSK_SHA_Update(TSK_SHA_CTX * shsInfo, BYTE * buffer, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - BYTE[]
    - UINT4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: SHAtoByte
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHAtoByte(BYTE output[SHS_DIGESTSIZE], UINT4 * input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/sha1c.c:376,1
    - Dst: longReverse
      Src: /src/sleuthkit/tsk/base/sha1c.c:377,1
    - Dst: SHSTransform
      Src: /src/sleuthkit/tsk/base/sha1c.c:378,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/sha1c.c:381,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/sha1c.c:385,1
    - Dst: longReverse
      Src: /src/sleuthkit/tsk/base/sha1c.c:391,1
    - Dst: SHSTransform
      Src: /src/sleuthkit/tsk/base/sha1c.c:392,1
    - Dst: SHAtoByte
      Src: /src/sleuthkit/tsk/base/sha1c.c:395,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/sha1c.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - output
    - shsInfo
    argTypes:
    - BYTE[]
    - TSK_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 399
    functionName: TSK_SHA_Final
    functionSourceFile: /src/sleuthkit/tsk/base/sha1c.c
    functionUses: 0
    functionsReached:
    - longReverse
    - memset
    - SHSTransform
    - SHAtoByte
    linkageType: ''
    returnType: void
    signature: void TSK_SHA_Final(BYTE output[SHS_DIGESTSIZE], TSK_SHA_CTX * shsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_win32_get_per_thread_
      Src: /src/sleuthkit/tsk/base/tsk_error.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: tsk_error_get_info
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 1
    functionsReached:
    - tsk_error_win32_get_per_thread_
    linkageType: ''
    returnType: TSK_ERROR_INFO
    signature: 'TSK_ERROR_INFO *

      tsk_error_get_info()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_error.c:143,1
    - Dst: pthread_setspecific
      Src: /src/sleuthkit/tsk/base/tsk_error.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - per_thread_error_info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: free_error_info
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached:
    - free
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void free_error_info(void *per_thread_error_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/sleuthkit/tsk/base/tsk_error.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: make_pt_tls_key
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: void
    signature: void make_pt_tls_key()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/sleuthkit/tsk/base/tsk_error.c:158,1
    - Dst: pthread_getspecific
      Src: /src/sleuthkit/tsk/base/tsk_error.c:159,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/base/tsk_error.c:160,1
    - Dst: pthread_setspecific
      Src: /src/sleuthkit/tsk/base/tsk_error.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: tsk_error_get_info
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 1
    functionsReached:
    - malloc
    - pthread_getspecific
    - pthread_setspecific
    - pthread_once
    linkageType: ''
    returnType: TSK_ERROR_INFO
    signature: 'TSK_ERROR_INFO *

      tsk_error_get_info()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: tsk_error_get_info
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TSK_ERROR_INFO
    signature: 'TSK_ERROR_INFO *

      tsk_error_get_info()'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:202,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/tsk_error.c:210,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:213,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:217,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:223,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:227,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:233,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:237,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:243,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:247,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:253,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:257,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:263,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:267,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:273,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:277,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:282,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_error.c:285,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:289,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_error.c:291,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:295,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_error.c:297,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 300
    functionName: tsk_error_get
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 2
    functionsReached:
    - tsk_error_get_info
    - memset
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_error_get()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: tsk_error_get_errno
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 2
    functionsReached:
    - tsk_error_get_info
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tsk_error_get_errno()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t_errno
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: tsk_error_set_errno
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 56
    functionsReached:
    - tsk_error_get_info
    linkageType: ''
    returnType: void
    signature: void tsk_error_set_errno(uint32_t t_errno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: tsk_error_get_errstr
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 1
    functionsReached:
    - tsk_error_get_info
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_error_get_errstr()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/base/tsk_error.c:346,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:347,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:347,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/base/tsk_error.c:349,1
    - Dst: error_listener
      Src: /src/sleuthkit/tsk/base/tsk_error.c:351,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:351,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: tsk_error_set_errstr
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 57
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    - va_start
    - va_end
    - error_listener
    linkageType: ''
    returnType: void
    signature: void tsk_error_set_errstr(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:364,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:364,1
    - Dst: error_listener
      Src: /src/sleuthkit/tsk/base/tsk_error.c:367,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:367,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: tsk_error_vset_errstr
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    - error_listener
    linkageType: ''
    returnType: void
    signature: void tsk_error_vset_errstr(const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: tsk_error_get_errstr2
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 1
    functionsReached:
    - tsk_error_get_info
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_error_get_errstr2()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/base/tsk_error.c:393,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:394,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:394,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/base/tsk_error.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: tsk_error_set_errstr2
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 17
    functionsReached:
    - vsnprintf
    - va_end
    - va_start
    - tsk_error_get_info
    linkageType: ''
    returnType: void
    signature: void tsk_error_set_errstr2(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:408,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: tsk_error_vset_errstr2
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    linkageType: ''
    returnType: void
    signature: void tsk_error_vset_errstr2(const char *format, va_list args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:420,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_error.c:421,1
    - Dst: va_start
      Src: /src/sleuthkit/tsk/base/tsk_error.c:436,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:437,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/base/tsk_error.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 439
    functionName: tsk_error_errstr2_concat
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    - va_start
    - va_end
    - strlen
    linkageType: ''
    returnType: void
    signature: void tsk_error_errstr2_concat(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listener
    argTypes:
    - TSK_ERROR_LISTENER_CB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: tsk_error_set_error_listener
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_error_set_error_listener(TSK_ERROR_LISTENER_CB listener)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/base/tsk_error.c:465,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/base/tsk_error.c:468,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:470,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/base/tsk_error.c:473,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/base/tsk_error.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 477
    functionName: tsk_error_print
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 3
    functionsReached:
    - tsk_error_get
    - tsk_error_get_errno
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_error_print(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/base/tsk_error.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: tsk_error_reset
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error.c
    functionUses: 57
    functionsReached:
    - tsk_error_get_info
    linkageType: ''
    returnType: void
    signature: void tsk_error_reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:26,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:33,1
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: tsk_stack_create
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_stack.c
    functionUses: 1
    functionsReached:
    - free
    - tsk_malloc
    linkageType: ''
    returnType: TSK_STACK
    signature: 'TSK_STACK *

      tsk_stack_create()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a_tsk_stack
    - a_val
    argTypes:
    - TSK_STACK*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: tsk_stack_push
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_stack.c
    functionUses: 1
    functionsReached:
    - tsk_realloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_stack_push(TSK_STACK * a_tsk_stack, uint64_t a_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a_tsk_stack
    argTypes:
    - TSK_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: tsk_stack_pop
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_stack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_stack_pop(TSK_STACK * a_tsk_stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a_tsk_stack
    - a_val
    argTypes:
    - TSK_STACK*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: tsk_stack_find
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_stack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_stack_find(TSK_STACK * a_tsk_stack, uint64_t a_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:106,1
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_stack.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_tsk_stack
    argTypes:
    - TSK_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: tsk_stack_free
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_stack.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_stack_free(TSK_STACK * a_tsk_stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: roundup
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: roundup(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: roundup
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: roundup(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: roundup
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: roundup(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string1
    - ','
    - string2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: strcasecmp
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcasecmp(string1, string2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: roundup
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: roundup(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: _TSK_T
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TSK_T(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: atoll
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atoll(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: strtok_r
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strtok_r(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: _TSK_T
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_os.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TSK_T(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: tsk::GetTlsIndex::GetTlsIndex
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: void
    signature: void GetTlsIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: ~GetTlsIndex()
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: void
    signature: void ~GetTlsIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: tsk::GetTlsIndex::GetIndex
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD GetIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: tsk::GetTlsIndex::GetTlsIndex
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: void
    signature: void GetTlsIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: ~GetTlsIndex()
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: void
    signature: void ~GetTlsIndex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: tsk::GetTlsIndex::GetIndex
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD GetIndex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetIndex
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:48,1
    - Dst: TlsGetValue
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:49,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:51,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:55,1
    - Dst: TlsSetValue
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - struct_size
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: tsk_error_win32_get_per_thread_
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 1
    functionsReached:
    - TlsSetValue
    - memset
    - malloc
    - GetIndex
    - TlsGetValue
    linkageType: ''
    returnType: void
    signature: void *tsk_error_win32_get_per_thread_(unsigned struct_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetIndex
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:67,1
    - Dst: TlsGetValue
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:68,1
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:70,1
    - Dst: TlsSetValue
      Src: /src/sleuthkit/tsk/base/tsk_error_win32.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: tsk_error_win32_thread_cleanup
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
    functionUses: 0
    functionsReached:
    - free
    - TlsSetValue
    - TlsGetValue
    - GetIndex
    linkageType: ''
    returnType: void
    signature: void tsk_error_win32_thread_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: P_
    functionSourceFile: /src/sleuthkit/tsk/base/crc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: BITMASK
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMASK(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITMASK
      Src: /src/sleuthkit/tsk/base/crc.c:69,1
    - Dst: BITMASK
      Src: /src/sleuthkit/tsk/base/crc.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - b
    argTypes:
    - ulong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: reflect
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - BITMASK
    linkageType: ''
    returnType: LOCAL
    signature: LOCAL reflect (ulong v,int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_cm
    argTypes:
    - p_cm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: widmask
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LOCAL
    signature: LOCAL widmask (p_cm_t p_cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_cm
    argTypes:
    - p_cm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: cm_ini
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cm_ini (p_cm_t p_cm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BITMASK
      Src: /src/sleuthkit/tsk/base/crc.c:99,1
    - Dst: reflect
      Src: /src/sleuthkit/tsk/base/crc.c:102,1
    - Dst: widmask
      Src: /src/sleuthkit/tsk/base/crc.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p_cm
    - ch
    argTypes:
    - p_cm_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: cm_nxt
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - BITMASK
    - reflect
    - widmask
    linkageType: ''
    returnType: void
    signature: void cm_nxt (p_cm_t p_cm, int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cm_nxt
      Src: /src/sleuthkit/tsk/base/crc.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - p_cm
    - blk_adr
    - blk_len
    argTypes:
    - p_cm_t
    - p_ubyte_
    - ulong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: cm_blk
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - cm_nxt
    linkageType: ''
    returnType: void
    signature: void cm_blk (p_cm_t p_cm, p_ubyte_ blk_adr, ulong blk_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reflect
      Src: /src/sleuthkit/tsk/base/crc.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p_cm
    argTypes:
    - p_cm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: cm_crc
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - reflect
    linkageType: ''
    returnType: ulong
    signature: ulong cm_crc (p_cm_t p_cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cm_nxt
      Src: /src/sleuthkit/tsk/base/crc.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crc_context
    - buff
    - size
    argTypes:
    - p_cm_t
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: crc16
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - cm_nxt
    linkageType: ''
    returnType: void
    signature: void crc16(p_cm_t crc_context, unsigned char const *buff, unsigned
      int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cm_ini
      Src: /src/sleuthkit/tsk/base/crc.c:161,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/crc.c:165,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/base/crc.c:168,1
    - Dst: cm_nxt
      Src: /src/sleuthkit/tsk/base/crc.c:169,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/base/crc.c:171,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/base/crc.c:172,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/base/crc.c:173,1
    - Dst: cm_crc
      Src: /src/sleuthkit/tsk/base/crc.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/sleuthkit/tsk/base/crc.c
    functionUses: 0
    functionsReached:
    - cm_ini
    - printf
    - cm_crc
    - cm_nxt
    - strlen
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:179,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:187,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 6
    argNames:
    - endian
    - sourceStart
    - sourceEnd
    - targetStart
    - targetEnd
    - flags
    argTypes:
    - TSK_ENDIAN_ENUM
    - UTF16**
    - UTF16*
    - UTF8**
    - UTF8*
    - TSKConversionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 269
    functionName: tsk_UTF16toUTF8
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 1
    functionsReached:
    - tsk_getu16
    linkageType: ''
    returnType: TSKConversionResult
    signature: "TSKConversionResult tsk_UTF16toUTF8(TSK_ENDIAN_ENUM endian, const
      UTF16 ** sourceStart,\n    const UTF16 * sourceEnd, UTF8 ** targetStart,\n    UTF8
      * targetEnd, TSKConversionFlags flags)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 5
    argNames:
    - sourceStart
    - sourceEnd
    - targetStart
    - targetEnd
    - flags
    argTypes:
    - UTF16**
    - UTF16*
    - UTF8**
    - UTF8*
    - TSKConversionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 383
    functionName: tsk_UTF16toUTF8_lclorder
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TSKConversionResult
    signature: "TSKConversionResult tsk_UTF16toUTF8_lclorder(const UTF16 ** sourceStart,\n
      \   const UTF16 * sourceEnd, UTF8 ** targetStart,\n    UTF8 * targetEnd, TSKConversionFlags
      flags)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 5
    argNames:
    - sourceStart
    - sourceEnd
    - targetStart
    - targetEnd
    - flags
    argTypes:
    - wchar_t**
    - wchar_t*
    - UTF8**
    - UTF8*
    - TSKConversionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 486
    functionName: tsk_UTF16WtoUTF8_lclorder
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSKConversionResult
    signature: "TSKConversionResult tsk_UTF16WtoUTF8_lclorder(const wchar_t ** sourceStart,\n
      \   const wchar_t * sourceEnd, UTF8 ** targetStart,\n    UTF8 * targetEnd, TSKConversionFlags
      flags)"
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 2
    argNames:
    - source
    - length
    argTypes:
    - UTF8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 553
    functionName: isLegalUTF8
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Boolean
    signature: Boolean isLegalUTF8(const UTF8 * source, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isLegalUTF8
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - source
    - sourceEnd
    argTypes:
    - UTF8*
    - UTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: tsk_isLegalUTF8Sequence
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 0
    functionsReached:
    - isLegalUTF8
    linkageType: ''
    returnType: Boolean
    signature: Boolean tsk_isLegalUTF8Sequence(const UTF8 * source, const UTF8 * sourceEnd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:580,1
    - Dst: isLegalUTF8
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - source
    - replacement
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 600
    functionName: tsk_cleanupUTF8
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 1
    functionsReached:
    - strlen
    - isLegalUTF8
    linkageType: ''
    returnType: void
    signature: void tsk_cleanupUTF8(char *source, const char replacement)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:616,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - endian
    - source
    - source_len
    - replacement
    argTypes:
    - TSK_ENDIAN_ENUM
    - wchar_t*
    - size_t
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 643
    functionName: tsk_cleanupUTF16
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    linkageType: ''
    returnType: void
    signature: void tsk_cleanupUTF16(TSK_ENDIAN_ENUM endian, wchar_t *source, size_t
      source_len, const wchar_t replacement)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: isLegalUTF8
      Src: /src/sleuthkit/tsk/base/tsk_unicode.c:676,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 5
    argNames:
    - sourceStart
    - sourceEnd
    - targetStart
    - targetEnd
    - flags
    argTypes:
    - UTF8**
    - UTF8*
    - UTF16**
    - UTF16*
    - TSKConversionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 755
    functionName: tsk_UTF8toUTF16
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_unicode.c
    functionUses: 1
    functionsReached:
    - isLegalUTF8
    linkageType: ''
    returnType: TSKConversionResult
    signature: "TSKConversionResult tsk_UTF8toUTF16(const UTF8 ** sourceStart,\n    const
      UTF8 * sourceEnd, UTF16 ** targetStart,\n    UTF16 * targetEnd, TSKConversionFlags
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:37,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:38,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:39,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:40,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:46,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:50,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:51,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:52,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:53,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:67,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:69,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:70,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:71,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - a_offset_str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 78
    functionName: tsk_parse_offset
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_parse.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSTRNCPY
    - TSTRCHR
    - tsk_error_set_errno
    - TSTRTOULL
    - TSTRLEN
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T tsk_parse_offset(const TSK_TCHAR * a_offset_str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:101,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:103,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:104,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/base/tsk_parse.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a_pnum_str
    - a_pnum
    argTypes:
    - TSK_TCHAR*
    - TSK_PNUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: tsk_parse_pnum
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_parse.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSTRTOUL
    linkageType: ''
    returnType: int
    signature: int tsk_parse_pnum(const TSK_TCHAR * a_pnum_str, TSK_PNUM_T * a_pnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: F
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: G
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: H
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: I
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: ROTATE_LEFT
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_LEFT(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - s
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: FF
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF(a, b, c, d, x, s, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - s
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: GG
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG(a, b, c, d, x, s, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - s
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: HH
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HH(a, b, c, d, x, s, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - s
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: II
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: II(a, b, c, d, x, s, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - TSK_MD5_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: TSK_MD5_Init
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSK_MD5_Init(TSK_MD5_CTX * context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD5_memcpy
      Src: /src/sleuthkit/tsk/base/md5c.c:146,1
    - Dst: MD5Transform
      Src: /src/sleuthkit/tsk/base/md5c.c:148,1
    - Dst: MD5Transform
      Src: /src/sleuthkit/tsk/base/md5c.c:151,1
    - Dst: MD5_memcpy
      Src: /src/sleuthkit/tsk/base/md5c.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - context
    - input
    - inputLen
    argTypes:
    - TSK_MD5_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 162
    functionName: TSK_MD5_Update
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached:
    - MD5_memcpy
    - MD5Transform
    linkageType: ''
    returnType: void
    signature: "void TSK_MD5_Update(TSK_MD5_CTX * context, unsigned char *input,\n
      \   unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/sleuthkit/tsk/base/md5c.c:178,1
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/tsk/base/md5c.c:184,1
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/tsk/base/md5c.c:187,1
    - Dst: Encode
      Src: /src/sleuthkit/tsk/base/md5c.c:189,1
    - Dst: MD5_memset
      Src: /src/sleuthkit/tsk/base/md5c.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char[]
    - TSK_MD5_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: TSK_MD5_Final
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached:
    - TSK_MD5_Update
    - Encode
    - MD5_memset
    linkageType: ''
    returnType: void
    signature: void TSK_MD5_Final(unsigned char digest[16], TSK_MD5_CTX * context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/sleuthkit/tsk/base/md5c.c:203,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:206,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:207,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:208,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:209,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:210,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:211,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:212,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:213,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:214,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:215,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:216,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:217,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:218,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:219,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:220,1
    - Dst: FF
      Src: /src/sleuthkit/tsk/base/md5c.c:221,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:224,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:225,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:226,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:227,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:228,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:229,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:230,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:231,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:232,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:233,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:234,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:235,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:236,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:237,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:238,1
    - Dst: GG
      Src: /src/sleuthkit/tsk/base/md5c.c:239,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:242,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:243,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:244,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:245,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:246,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:247,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:248,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:249,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:250,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:251,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:252,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:253,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:254,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:255,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:256,1
    - Dst: HH
      Src: /src/sleuthkit/tsk/base/md5c.c:257,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:260,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:261,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:262,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:263,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:264,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:265,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:266,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:267,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:268,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:269,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:270,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:271,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:272,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:273,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:274,1
    - Dst: II
      Src: /src/sleuthkit/tsk/base/md5c.c:275,1
    - Dst: MD5_memset
      Src: /src/sleuthkit/tsk/base/md5c.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - UINT4[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 285
    functionName: MD5Transform
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached:
    - HH
    - Decode
    - FF
    - II
    - GG
    - MD5_memset
    linkageType: ''
    returnType: void
    signature: void MD5Transform(UINT4 state[4], unsigned char block[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - unsigned char*
    - UINT4*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: Encode
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encode(unsigned char *output, UINT4 *input, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - UINT4*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: Decode
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decode(UINT4 *output, unsigned char *input, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - POINTER
    - POINTER
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: MD5_memcpy
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5_memcpy(POINTER output, POINTER input, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - output
    - value
    - len
    argTypes:
    - POINTER
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: MD5_memset
    functionSourceFile: /src/sleuthkit/tsk/base/md5c.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5_memset(POINTER output, int value, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/base/tsk_version.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: tsk_version_print
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_version.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_version_print(FILE * hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: tsk_version_get_str
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_version_get_str()'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:46,1
    - Dst: vsnprintf_s
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:51,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:53,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:55,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:61,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:66,1
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - wbuf
    - wlen
    - msg
    - args
    argTypes:
    - WCHAR*
    - int
    - char*
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: tsk_printf_conv
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_printf.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - tsk_fprintf
    - vsnprintf_s
    - tsk_malloc
    - tsk_UTF8toUTF16
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int tsk_printf_conv(WCHAR * wbuf, int wlen, const char *msg, va_list
      * args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:89,1
    - Dst: tsk_printf_conv
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:94,1
    - Dst: fwprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:95,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:95,1
    - Dst: vfprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:98,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: tsk_fprintf
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_printf.c
    functionUses: 30
    functionsReached:
    - tsk_printf_conv
    - fwprintf
    - va_start
    - _TSK_T
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void tsk_fprintf(FILE * fd, const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:116,1
    - Dst: tsk_printf_conv
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:121,1
    - Dst: wprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:122,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:122,1
    - Dst: vprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:125,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: tsk_printf
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_printf.c
    functionUses: 0
    functionsReached:
    - vprintf
    - tsk_printf_conv
    - va_start
    - _TSK_T
    - va_end
    - wprintf
    linkageType: ''
    returnType: void
    signature: void tsk_printf(const char *msg, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:149,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:150,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:154,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:157,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:160,1
    - Dst: free
      Src: /src/sleuthkit/tsk/base/tsk_printf.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: tsk_print_sanitized
    functionSourceFile: /src/sleuthkit/tsk/base/tsk_printf.c
    functionUses: 0
    functionsReached:
    - TSK_IS_CNTRL
    - tsk_fprintf
    - strcpy
    - tsk_malloc
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int tsk_print_sanitized(FILE * fd, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:32,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:33,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:36,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:44,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:45,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:46,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 51
    functionName: md5sum_test
    functionSourceFile: /src/sleuthkit/tsk/hashdb/md5sum.c
    functionUses: 0
    functionsReached:
    - isxdigit
    - isspace
    - fgets
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t md5sum_test(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: md5sum_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/md5sum.c
    functionUses: 0
    functionsReached:
    - hdb_binsrch_open
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *md5sum_open(FILE *hDb, const TSK_TCHAR *db_path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:87,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:88,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:89,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:90,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:96,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:97,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:98,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:100,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:133,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:134,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:147,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:148,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:149,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:150,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:158,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:159,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:160,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:161,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:167,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:169,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:170,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:171,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:181,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:182,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:183,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 3
    argNames:
    - str
    - md5
    - name
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: md5sum_parse_md5
    functionSourceFile: /src/sleuthkit/tsk/hashdb/md5sum.c
    functionUses: 0
    functionsReached:
    - isxdigit
    - isspace
    - strchr
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t md5sum_parse_md5(char *str, char **md5, char **name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_idx_initialize
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:214,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:215,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:221,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:221,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:225,1
    - Dst: fseek
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:228,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:229,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:232,1
    - Dst: md5sum_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:235,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:242,1
    - Dst: hdb_binsrch_idx_add_entry_str
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:247,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:248,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:255,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:261,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:262,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:265,1
    - Dst: hdb_binsrch_idx_finalize
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:270,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:271,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:276,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:277,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - hdb_info_base
    - dbtype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 284
    functionName: md5sum_makeindex
    functionSourceFile: /src/sleuthkit/tsk/hashdb/md5sum.c
    functionUses: 0
    functionsReached:
    - memcmp
    - hdb_binsrch_idx_finalize
    - memset
    - tsk_error_set_errstr2
    - snprintf
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - fgets
    - fseek
    - tsk_error_set_errno
    - _TSK_T
    - md5sum_parse_md5
    - hdb_binsrch_idx_initialize
    - hdb_binsrch_idx_add_entry_str
    - strlen
    - TFPRINTF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t md5sum_makeindex(TSK_HDB_INFO *hdb_info_base, TSK_TCHAR * dbtype)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:312,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:316,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:317,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:318,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:319,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:324,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:330,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:331,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:332,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:333,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:339,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:340,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:343,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:344,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:345,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:350,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:352,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:353,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:354,1
    - Dst: md5sum_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:360,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:361,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:362,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:363,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:370,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:374,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:376,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:384,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:392,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:393,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/md5sum.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - offset
    - flags
    - action
    - cb_ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_OFF_T
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 401
    functionName: md5sum_getentry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/md5sum.c
    functionUses: 0
    functionsReached:
    - memset
    - action
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - fgets
    - feof
    - tsk_error_set_errno
    - strcmp
    - strcasecmp
    - md5sum_parse_md5
    - snprintf
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t md5sum_getentry(TSK_HDB_INFO * hdb_info, const char *hash,\n
      \   TSK_OFF_T offset, TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action,
      void *cb_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:33,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:36,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:37,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:38,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:43,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:44,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:45,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:46,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:48,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:50,1
    - Dst: hdb_base_db_name_from_path
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:52,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:55,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - hdb_binsrch_info
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 63
    functionName: idxonly_name
    functionSourceFile: /src/sleuthkit/tsk/hashdb/idxonly.c
    functionUses: 0
    functionsReached:
    - memset
    - strncmp
    - strchr
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - fgets
    - tsk_error_set_errno
    - hdb_base_db_name_from_path
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t idxonly_name(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:76,1
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:84,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:84,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:86,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:87,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:88,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:91,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:91,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:94,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:94,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:98,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:99,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:100,1
    - Dst: hdb_binsrch_open_idx
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:104,1
    - Dst: idxonly_name
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:108,1
    - Dst: hdb_binsrch_close
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:109,1
    - Dst: hdb_binsrch_open_idx
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:118,1
    - Dst: hdb_binsrch_close
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - db_path
    - idx_path
    argTypes:
    - TSK_TCHAR*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 124
    functionName: idxonly_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/idxonly.c
    functionUses: 0
    functionsReached:
    - TSTRRCHR
    - hdb_binsrch_close
    - hdb_binsrch_open
    - idxonly_name
    - TSTRICMP
    - tsk_error_set_errstr
    - tsk_error_reset
    - hdb_binsrch_open_idx
    - tsk_error_set_errno
    - _TSK_T
    - TSTRLEN
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *idxonly_open(const TSK_TCHAR *db_path, const TSK_TCHAR
      *idx_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: idxonly_get_db_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/idxonly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    idxonly_get_db_path(TSK_HDB_INFO *hdb_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/idxonly.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - offset
    - flags
    - action
    - cb_ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_OFF_T
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: idxonly_getentry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/idxonly.c
    functionUses: 0
    functionsReached:
    - action
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t idxonly_getentry(TSK_HDB_INFO * hdb_info, const char *hash,\n
      \   TSK_OFF_T offset, TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action,
      void *cb_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: TSK_HDB_IDX_LEN
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_HDB_IDX_LEN(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/encase.c:30,1
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/encase.c:31,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/hashdb/encase.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: encase_test
    functionSourceFile: /src/sleuthkit/tsk/hashdb/encase.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fread
    - fseeko
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encase_test(FILE * hFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:53,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:56,1
    - Dst: hdb_base_db_name_from_path
      Src: /src/sleuthkit/tsk/hashdb/encase.c:58,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:62,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/encase.c:64,1
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/encase.c:65,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:67,1
    - Dst: hdb_base_db_name_from_path
      Src: /src/sleuthkit/tsk/hashdb/encase.c:69,1
    - Dst: wcslen
      Src: /src/sleuthkit/tsk/hashdb/encase.c:74,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/hashdb/encase.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: encase_name
    functionSourceFile: /src/sleuthkit/tsk/hashdb/encase.c
    functionUses: 0
    functionsReached:
    - memset
    - fread
    - fprintf
    - wcslen
    - tsk_UTF16toUTF8
    - fseeko
    - hdb_base_db_name_from_path
    linkageType: ''
    returnType: void
    signature: void encase_name(TSK_HDB_BINSRCH_INFO * hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open
      Src: /src/sleuthkit/tsk/hashdb/encase.c:91,1
    - Dst: encase_name
      Src: /src/sleuthkit/tsk/hashdb/encase.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: encase_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/encase.c
    functionUses: 0
    functionsReached:
    - hdb_binsrch_open
    - encase_name
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *encase_open(FILE *hDb, const TSK_TCHAR *db_path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_idx_initialize
      Src: /src/sleuthkit/tsk/hashdb/encase.c:125,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/encase.c:126,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/hashdb/encase.c:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/encase.c:132,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:135,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:136,1
    - Dst: fseek
      Src: /src/sleuthkit/tsk/hashdb/encase.c:139,1
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/encase.c:140,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/hashdb/encase.c:144,1
    - Dst: hdb_binsrch_idx_add_entry_bin
      Src: /src/sleuthkit/tsk/hashdb/encase.c:149,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/encase.c:150,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/hashdb/encase.c:157,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:163,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:164,1
    - Dst: hdb_binsrch_idx_finalize
      Src: /src/sleuthkit/tsk/hashdb/encase.c:169,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/encase.c:170,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:175,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/encase.c:176,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/encase.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - hdb_info_base
    - dbtype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 183
    functionName: encase_make_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/encase.c
    functionUses: 0
    functionsReached:
    - memcmp
    - hdb_binsrch_idx_finalize
    - memset
    - tsk_error_set_errstr2
    - fread
    - fprintf
    - hdb_binsrch_idx_add_entry_bin
    - tsk_error_reset
    - tsk_error_set_errstr
    - memcpy
    - fseek
    - tsk_error_set_errno
    - _TSK_T
    - hdb_binsrch_idx_initialize
    - TFPRINTF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encase_make_index(TSK_HDB_INFO * hdb_info_base, TSK_TCHAR *
      dbtype)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:210,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/encase.c:214,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:215,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/encase.c:216,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/encase.c:217,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:222,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/encase.c:225,1
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/encase.c:230,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/encase.c:231,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:234,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/encase.c:235,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/encase.c:236,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/encase.c:241,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/encase.c:246,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/encase.c:250,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/encase.c:264,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/encase.c:265,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/encase.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - offset
    - flags
    - action
    - cb_ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_OFF_T
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 273
    functionName: encase_get_entry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/encase.c
    functionUses: 0
    functionsReached:
    - memset
    - fread
    - action
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - feof
    - tsk_error_set_errno
    - strcasecmp
    - snprintf
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t encase_get_entry(TSK_HDB_INFO * hdb_info, const char *hash,\n
      \   TSK_OFF_T offset, TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action,
      void *cb_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:54,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:55,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:56,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: get_format_ver
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int
    signature: int get_format_ver(char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:73,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:74,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:77,1
    - Dst: get_format_ver
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:86,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: nsrl_test
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - fgets
    - get_format_ver
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t nsrl_test(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: nsrl_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - hdb_binsrch_open
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *nsrl_open(FILE *hDb, const TSK_TCHAR *db_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: is_valid_nsrl
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_valid_nsrl(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_nsrl
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:140,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:141,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:142,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:143,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:155,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:156,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:157,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:158,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:175,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:176,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:177,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:178,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:195,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:196,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:197,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - str
    - sha1
    - name
    - ver
    argTypes:
    - char*
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 210
    functionName: nsrl_parse_sha1
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - strchr
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - is_valid_nsrl
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t nsrl_parse_sha1(char *str, char **sha1, char **name, int ver)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_nsrl
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:230,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:231,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:232,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:233,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:254,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:266,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:267,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:268,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:282,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:285,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:286,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:287,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:298,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:299,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:300,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:301,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:314,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:315,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:316,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:317,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:335,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:336,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:337,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:338,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:354,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:355,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:356,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:357,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:369,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:370,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:371,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 4
    argNames:
    - str
    - md5
    - name
    - ver
    argTypes:
    - char*
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 374
    functionName: nsrl_parse_md5
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - strchr
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - is_valid_nsrl
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t nsrl_parse_md5(char *str, char **md5, char **name, int ver)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_idx_initialize
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:397,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:398,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:404,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:404,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:408,1
    - Dst: fseek
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:411,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:412,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:415,1
    - Dst: get_format_ver
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:419,1
    - Dst: nsrl_parse_sha1
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:428,1
    - Dst: nsrl_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:434,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:443,1
    - Dst: hdb_binsrch_idx_add_entry_str
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:448,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:449,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:456,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:461,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:462,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:465,1
    - Dst: hdb_binsrch_idx_finalize
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:470,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:471,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:476,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:477,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:478,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - hdb_info_base
    - dbtype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 484
    functionName: nsrl_makeindex
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memset
    - fprintf
    - get_format_ver
    - fgets
    - fseek
    - tsk_error_set_errno
    - _TSK_T
    - strlen
    - TFPRINTF
    - hdb_binsrch_idx_initialize
    - hdb_binsrch_idx_add_entry_str
    - hdb_binsrch_idx_finalize
    - tsk_error_reset
    - nsrl_parse_sha1
    - nsrl_parse_md5
    - tsk_error_set_errstr
    - strncpy
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t nsrl_makeindex(TSK_HDB_INFO * hdb_info_base, TSK_TCHAR * dbtype)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:513,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:518,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:519,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:520,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:521,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:527,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:528,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:529,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:530,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:537,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:538,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:539,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:540,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:541,1
    - Dst: get_format_ver
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:546,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:547,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:551,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:557,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:558,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:559,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:560,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:566,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:567,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:570,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:571,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:572,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:577,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:579,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:580,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:581,1
    - Dst: nsrl_parse_sha1
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:589,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:590,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:591,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:592,1
    - Dst: nsrl_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:599,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:600,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:601,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:602,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:610,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:615,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:617,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:624,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:632,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:633,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/nsrl.c:634,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 6
    argNames:
    - hdb_info_base
    - hash
    - offset
    - flags
    - action
    - cb_ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_OFF_T
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 641
    functionName: nsrl_getentry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/nsrl.c
    functionUses: 0
    functionsReached:
    - memset
    - action
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - snprintf
    - get_format_ver
    - fgets
    - feof
    - tsk_error_set_errno
    - nsrl_parse_sha1
    - strcmp
    - strcasecmp
    - tsk_error_set_errstr2
    - nsrl_parse_md5
    - fseeko
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t nsrl_getentry(TSK_HDB_INFO * hdb_info_base, const char *hash,
      TSK_OFF_T offset,\n    TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action,
      void *cb_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wsopen_s
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:29,1
    - Dst: _wfdopen
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:30,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: hdb_open_file
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - _wfdopen
    - fopen
    - _wsopen_s
    linkageType: ''
    returnType: FILE
    signature: "FILE *\n    hdb_open_file(TSK_TCHAR *file_path)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_is_sqlite_file
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:44,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:45,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:51,1
    - Dst: nsrl_test
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:52,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:56,1
    - Dst: md5sum_test
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:57,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:59,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:65,1
    - Dst: encase_test
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:66,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:68,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:74,1
    - Dst: hk_test
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:75,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:77,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 85
    functionName: hdb_determine_db_type
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - md5sum_test
    - sqlite_hdb_is_sqlite_file
    - hk_test
    - encase_test
    - fseeko
    - nsrl_test
    linkageType: ''
    returnType: TSK_HDB_DBTYPE_ENUM
    signature: TSK_HDB_DBTYPE_ENUM hdb_determine_db_type(FILE *hDb, const TSK_TCHAR
      *db_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:99,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:100,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:101,1
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:105,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:106,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:106,1
    - Dst: sqlite_hdb_create_db
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:107,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:110,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: tsk_hdb_create
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - TSTRRCHR
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite_hdb_create_db
    - tsk_error_set_errno
    - _TSK_T
    - TSTRCMP
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_create(TSK_TCHAR *file_path)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:138,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:139,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:140,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:150,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:151,1
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:156,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:158,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:158,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:159,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:159,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:159,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:159,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:166,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:167,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:170,1
    - Dst: hdb_open_file
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:175,1
    - Dst: hdb_determine_db_type
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:177,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:179,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:180,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:181,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:182,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:191,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:192,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:193,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:194,1
    - Dst: nsrl_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:205,1
    - Dst: md5sum_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:208,1
    - Dst: encase_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:211,1
    - Dst: hk_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:214,1
    - Dst: hdb_open_file
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:217,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:219,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:220,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:221,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:222,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:226,1
    - Dst: idxonly_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:228,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:232,1
    - Dst: sqlite_hdb_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:234,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:242,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 2
    argNames:
    - file_path
    - flags
    argTypes:
    - TSK_TCHAR*
    - TSK_HDB_OPEN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 125
    functionDepth: 6
    functionLinenumber: 125
    functionLinenumberEnd: 245
    functionName: tsk_hdb_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 2
    functionsReached:
    - TSTRRCHR
    - tsk_error_set_errno
    - _TSK_T
    - nsrl_open
    - TSTRCMP
    - idxonly_open
    - TSTRNCPY
    - md5sum_open
    - hdb_open_file
    - hk_open
    - tsk_error_reset
    - encase_open
    - tsk_malloc
    - hdb_determine_db_type
    - tsk_error_set_errstr
    - fclose
    - free
    - sqlite_hdb_open
    - TSTRLEN
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: "TSK_HDB_INFO *\n    tsk_hdb_open(TSK_TCHAR *file_path, TSK_HDB_OPEN_ENUM
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:251,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:252,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:253,1
    - Dst: TSK_HDB_INFO*::get_db_path
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: tsk_hdb_get_db_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::get_db_path
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    tsk_hdb_get_db_path(TSK_HDB_INFO * hdb_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:264,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:265,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:266,1
    - Dst: TSK_HDB_INFO*::get_display_name
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: tsk_hdb_get_display_name
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::get_display_name
    linkageType: ''
    returnType: char
    signature: "char *\n    tsk_hdb_get_display_name(TSK_HDB_INFO * hdb_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:277,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:278,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:279,1
    - Dst: TSK_HDB_INFO*::uses_external_indexes
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: tsk_hdb_uses_external_indexes
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::uses_external_indexes
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_uses_external_indexes(TSK_HDB_INFO *hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:290,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:291,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:292,1
    - Dst: TSK_HDB_INFO*::get_index_path
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: tsk_hdb_get_idx_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::get_index_path
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    tsk_hdb_get_idx_path(TSK_HDB_INFO * hdb_info, TSK_HDB_HTYPE_ENUM
      htype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:302,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:303,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:304,1
    - Dst: TSK_HDB_INFO*::open_index
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: tsk_hdb_open_idx
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::open_index
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_open_idx(TSK_HDB_INFO *hdb_info, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:324,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:325,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:326,1
    - Dst: TSK_HDB_INFO*::open_index
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: tsk_hdb_has_idx
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::open_index
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_has_idx(TSK_HDB_INFO * hdb_info, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:346,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:347,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: tsk_hdb_is_idx_only
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_is_idx_only(TSK_HDB_INFO *hdb_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:366,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:367,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:368,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:373,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:374,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:375,1
    - Dst: TSK_HDB_INFO*::make_index
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - hdb_info
    - type
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: tsk_hdb_make_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_HDB_INFO*::make_index
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_make_index(TSK_HDB_INFO *hdb_info, TSK_TCHAR *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:400,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:401,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:402,1
    - Dst: TSK_HDB_INFO*::lookup_str
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - hdb_info
    - hash
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: tsk_hdb_lookup_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::lookup_str
    linkageType: ''
    returnType: int8_t
    signature: "int8_t tsk_hdb_lookup_str(TSK_HDB_INFO *hdb_info, const char *hash,\n
      \   TSK_HDB_FLAG_ENUM flags, TSK_HDB_LOOKUP_FN action,\n    void *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:429,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:430,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:431,1
    - Dst: TSK_HDB_INFO*::lookup_raw
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - len
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - uint8_t*
    - uint8_t
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: tsk_hdb_lookup_raw
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::lookup_raw
    linkageType: ''
    returnType: int8_t
    signature: "int8_t tsk_hdb_lookup_raw(TSK_HDB_INFO * hdb_info, uint8_t * hash,
      uint8_t len,\n    TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action, void
      *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:442,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:443,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:444,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:449,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:450,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:451,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:456,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:457,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:458,1
    - Dst: TSK_HDB_INFO*::lookup_verbose_str
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - hdb_info
    - hash
    - result
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 463
    functionName: tsk_hdb_lookup_verbose_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::lookup_verbose_str
    linkageType: ''
    returnType: int8_t
    signature: int8_t tsk_hdb_lookup_verbose_str(TSK_HDB_INFO *hdb_info, const char
      *hash, void *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:477,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:478,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:479,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:484,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:485,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:486,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 491
    functionName: tsk_hdb_accepts_updates
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::accepts_updates
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_accepts_updates(TSK_HDB_INFO *hdb_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:511,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:512,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:513,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:518,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:519,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:520,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:524,1
    - Dst: TSK_HDB_INFO*::add_entry
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:525,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:528,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:529,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - hdb_info
    - filename
    - md5
    - sha1
    - sha256
    - comment
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 533
    functionName: tsk_hdb_add_entry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::accepts_updates
    - TSK_HDB_INFO*::add_entry
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_hdb_add_entry(TSK_HDB_INFO *hdb_info, const char *filename,
      const char *md5, \n    const char *sha1, const char *sha256, const char *comment)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:547,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:548,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:549,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:554,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:555,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:556,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:560,1
    - Dst: TSK_HDB_INFO*::begin_transaction
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:562,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:571,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:572,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:573,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:578,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:579,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 583
    functionName: tsk_hdb_begin_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::begin_transaction
    - TSK_HDB_INFO*::accepts_updates
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_begin_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:597,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:598,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:599,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:604,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:605,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:606,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:610,1
    - Dst: TSK_HDB_INFO*::commit_transaction
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:612,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:621,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:622,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:623,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:628,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:629,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 633
    functionName: tsk_hdb_commit_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_HDB_INFO*::commit_transaction
    - tsk_error_set_errno
    - TSK_HDB_INFO*::accepts_updates
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_commit_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:647,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:648,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:649,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:654,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:655,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:656,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:660,1
    - Dst: TSK_HDB_INFO*::commit_transaction
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:662,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:671,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:672,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:673,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:678,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:679,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 683
    functionName: tsk_hdb_rollback_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_HDB_INFO*::commit_transaction
    - tsk_error_set_errno
    - TSK_HDB_INFO*::accepts_updates
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_hdb_rollback_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:694,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:695,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:696,1
    - Dst: TSK_HDB_INFO*::close_db
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: tsk_hdb_close
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
    functionUses: 4
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_HDB_INFO*::close_db
    linkageType: ''
    returnType: void
    signature: void tsk_hdb_close(TSK_HDB_INFO *hdb_info)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:33,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:36,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:39,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:46,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:46,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:50,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:54,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:54,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:58,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:58,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:62,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:62,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:66,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:66,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: hk_test
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hashkeeper.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strchr
    - fgets
    - fseek
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hk_test(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 93
    functionName: hk_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hashkeeper.c
    functionUses: 1
    functionsReached:
    - hdb_binsrch_open
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *hk_open(FILE *hDb, const TSK_TCHAR *db_path)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:115,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:141,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:157,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:205,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:206,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:209,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:220,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:232,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:243,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 6
    argNames:
    - str
    - md5
    - name
    - n_len
    - other
    - o_len
    argTypes:
    - char*
    - char**
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 253
    functionName: hk_parse_md5
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hashkeeper.c
    functionUses: 0
    functionsReached:
    - strncat
    - strchr
    - strncpy
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int hk_parse_md5(char *str, char **md5, char *name, int n_len,\n    char
      *other, int o_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_idx_initialize
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:276,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:277,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:283,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:283,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:287,1
    - Dst: fseek
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:290,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:291,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:300,1
    - Dst: hk_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:303,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:311,1
    - Dst: hdb_binsrch_idx_add_entry_str
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:316,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:317,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:324,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:329,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:330,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:333,1
    - Dst: hdb_binsrch_idx_finalize
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:338,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:339,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:344,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:345,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - hdb_info_base
    - dbtype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 352
    functionName: hk_makeindex
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hashkeeper.c
    functionUses: 0
    functionsReached:
    - memcmp
    - hdb_binsrch_idx_finalize
    - memset
    - tsk_error_set_errstr2
    - snprintf
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - fgets
    - fseek
    - tsk_error_set_errno
    - _TSK_T
    - hk_parse_md5
    - hdb_binsrch_idx_initialize
    - hdb_binsrch_idx_add_entry_str
    - strlen
    - TFPRINTF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hk_makeindex(TSK_HDB_INFO * hdb_info_base, TSK_TCHAR * dbtype)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:383,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:387,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:388,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:389,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:390,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:395,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:401,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:402,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:403,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:404,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:411,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:412,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:415,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:416,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:417,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:422,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:424,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:425,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:426,1
    - Dst: hk_parse_md5
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:432,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:436,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:437,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:438,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:444,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:448,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:450,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:459,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:467,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:468,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hashkeeper.c:469,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - offset
    - flags
    - action
    - cb_ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_OFF_T
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 476
    functionName: hk_getentry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hashkeeper.c
    functionUses: 0
    functionsReached:
    - memset
    - action
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - fgets
    - feof
    - tsk_error_set_errno
    - strcmp
    - strcasecmp
    - snprintf
    - fseeko
    - strlen
    - hk_parse_md5
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hk_getentry(TSK_HDB_INFO * hdb_info, const char *hash, TSK_OFF_T
      offset,\n    TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action, void *cb_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:36,1
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:40,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:49,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:56,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:56,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:56,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:56,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:57,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 69
    functionName: hdb_base_db_name_from_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 2
    functionsReached:
    - TSTRRCHR
    - _TSK_T
    - TSTRLEN
    - TSTRICMP
    linkageType: ''
    returnType: void
    signature: void hdb_base_db_name_from_path(TSK_HDB_INFO *hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:84,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:85,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:89,1
    - Dst: hdb_base_db_name_from_path
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:92,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - hdb_info
    - db_path
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 117
    functionName: hdb_info_base_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_init_lock
    - TSTRNCPY
    - tsk_malloc
    - hdb_base_db_name_from_path
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_info_base_open(TSK_HDB_INFO *hdb_info, const TSK_TCHAR
      *db_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: hdb_base_get_db_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    hdb_base_get_db_path(TSK_HDB_INFO *hdb_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: hdb_base_get_display_name
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    hdb_base_get_display_name(TSK_HDB_INFO *hdb_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: hdb_base_uses_external_indexes
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_uses_external_indexes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: hdb_base_get_index_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    hdb_base_get_index_path(TSK_HDB_INFO *hdb_info, TSK_HDB_HTYPE_ENUM
      htype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: hdb_base_has_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_has_index(TSK_HDB_INFO *hdb_info, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: hdb_base_make_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_make_index(TSK_HDB_INFO *hdb_info, TSK_TCHAR *htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: hdb_base_open_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_open_index(TSK_HDB_INFO *hdb_info, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:191,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:192,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - hdb_info
    - hash
    - flag
    - callback
    - data
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: hdb_base_lookup_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int8_t
    signature: int8_t hdb_base_lookup_str(TSK_HDB_INFO *hdb_info, const char *hash,
      TSK_HDB_FLAG_ENUM flag, TSK_HDB_LOOKUP_FN callback, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:201,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:202,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - hash_len
    - flag
    - callback
    - data
    argTypes:
    - TSK_HDB_INFO*
    - uint8_t*
    - uint8_t
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: hdb_base_lookup_bin
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int8_t
    signature: int8_t hdb_base_lookup_bin(TSK_HDB_INFO *hdb_info, uint8_t *hash, uint8_t
      hash_len, TSK_HDB_FLAG_ENUM flag, TSK_HDB_LOOKUP_FN callback, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:211,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:212,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hdb_info
    - hash
    - result
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: hdb_base_lookup_verbose_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int8_t
    signature: int8_t hdb_base_lookup_verbose_str(TSK_HDB_INFO *hdb_info, const char
      *hash, void *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: hdb_base_accepts_updates
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_accepts_updates()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:231,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:232,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - hdb_info
    - file_name
    - md5
    - sha1
    - sha2_256
    - comment
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: hdb_base_add_entry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_add_entry(TSK_HDB_INFO *hdb_info, const char *file_name,
      const char *md5, const char *sha1, const char *sha2_256, const char *comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:241,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:242,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: hdb_base_begin_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_begin_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:251,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:252,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: hdb_base_commit_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_commit_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:261,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:262,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: hdb_base_rollback_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_base_rollback_transaction(TSK_HDB_INFO *hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:279,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/hashdb/hdb_base.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: hdb_info_base_close
    functionSourceFile: /src/sleuthkit/tsk/hashdb/hdb_base.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_deinit_lock
    linkageType: ''
    returnType: void
    signature: void hdb_info_base_close(TSK_HDB_INFO *hdb_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:42,1
    - Dst: hdb_info_base_open
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - hDb
    - db_path
    argTypes:
    - FILE*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: hdb_binsrch_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 5
    functionsReached:
    - tsk_malloc
    - hdb_info_base_open
    linkageType: ''
    returnType: TSK_HDB_BINSRCH_INFO
    signature: TSK_HDB_BINSRCH_INFO *hdb_binsrch_open(FILE *hDb, const TSK_TCHAR *db_path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:94,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:96,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:103,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:113,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:114,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:117,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:123,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:124,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:124,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:126,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:127,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:127,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:138,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:139,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - hdb_binsrch_info
    - htype
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 143
    functionName: hdb_binsrch_idx_init_hash_type_info
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSNPRINTF
    - tsk_malloc
    - tsk_error_set_errno
    - _TSK_T
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_idx_init_hash_type_info(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info,
      TSK_HDB_HTYPE_ENUM htype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: hdb_binsrch_uses_external_indexes
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_uses_external_indexes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open_idx
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: hdb_binsrch_get_index_path
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - hdb_binsrch_open_idx
    linkageType: ''
    returnType: TSK_TCHAR
    signature: "TSK_TCHAR *\n    hdb_binsrch_get_index_path(TSK_HDB_INFO *hdb_info,
      TSK_HDB_HTYPE_ENUM htype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hdb_binsrch_open_idx
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hdb_info
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: hdb_binsrch_has_index
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - hdb_binsrch_open_idx
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_has_index(TSK_HDB_INFO *hdb_info, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:180,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:181,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:182,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:187,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:188,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:189,1
    - Dst: GetFileAttributes
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:201,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:206,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:209,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:210,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:211,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:213,1
    - Dst: _fdopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:217,1
    - Dst: _open_osfhandle
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:217,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:219,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:220,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:221,1
    - Dst: GetFileSize
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:228,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:230,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:231,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:232,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:234,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:242,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:248,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:249,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:250,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:251,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:263,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:264,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:265,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:269,1
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:274,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:275,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:276,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:277,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:280,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 66
    argCount: 1
    argNames:
    - hdb_binsrch_info
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 283
    functionName: hdb_binsrch_load_index_offsets
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - _open_osfhandle
    - fopen
    - fread
    - CreateFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - GetFileAttributes
    - fclose
    - stat
    - GetLastError
    - tsk_malloc
    - tsk_error_set_errno
    - _fdopen
    - GetFileSize
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_load_index_offsets(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:307,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:308,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:309,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:310,1
    - Dst: hdb_binsrch_idx_init_hash_type_info
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:315,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:316,1
    - Dst: GetFileAttributes
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:326,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:327,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:328,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:329,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:330,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:336,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:339,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:340,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:341,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:342,1
    - Dst: _fdopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:348,1
    - Dst: _open_osfhandle
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:348,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:350,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:351,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:352,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:353,1
    - Dst: GetFileSize
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:358,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:360,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:363,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:364,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:365,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:366,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:368,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:377,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:378,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:379,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:380,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:381,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:388,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:389,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:390,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:391,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:392,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:401,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:402,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:405,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:406,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:407,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:408,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:413,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:413,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:415,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:418,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:419,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:420,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:421,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:427,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:428,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:431,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:432,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:433,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:434,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:440,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:440,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:442,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:444,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:444,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:449,1
    - Dst: TSK_HDB_IDX_LEN
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:452,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:453,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:454,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:454,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:455,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:460,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:463,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:466,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:467,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:468,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:469,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:475,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:478,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:481,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:482,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:483,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:484,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:490,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:493,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:496,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:497,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:498,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:499,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:505,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:508,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:511,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:512,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:513,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:514,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:521,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:524,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:525,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:526,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:527,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:536,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:539,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:540,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:541,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:542,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:548,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:549,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:552,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 170
    argCount: 2
    argNames:
    - hdb_info_base
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 557
    functionName: hdb_binsrch_open_idx_file
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - GetFileAttributes
    - fgets
    - tsk_error_set_errno
    - strlen
    - TSK_HDB_IDX_LEN
    - GetLastError
    - tsk_release_lock
    - _open_osfhandle
    - strncmp
    - CreateFile
    - tsk_error_reset
    - hdb_binsrch_idx_init_hash_type_info
    - strcmp
    - tsk_malloc
    - GetFileSize
    - fopen
    - tsk_error_set_errstr
    - fclose
    - stat
    - _fdopen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_open_idx_file(TSK_HDB_INFO *hdb_info_base, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:573,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:577,1
    - Dst: hdb_binsrch_open_idx_file
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:581,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:583,1
    - Dst: hdb_binsrch_load_index_offsets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:589,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:590,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - hdb_info_base
    - htype
    argTypes:
    - TSK_HDB_INFO*
    - TSK_HDB_HTYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 597
    functionName: hdb_binsrch_open_idx
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 3
    functionsReached:
    - tsk_take_lock
    - hdb_binsrch_load_index_offsets
    - hdb_binsrch_open_idx_file
    - tsk_release_lock
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_open_idx(TSK_HDB_INFO *hdb_info_base, TSK_HDB_HTYPE_ENUM
      htype)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:627,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:630,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:631,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:632,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:639,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:641,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:642,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:643,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:650,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:652,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:653,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:654,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:661,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:663,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:664,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:665,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:672,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:674,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:675,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:676,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:684,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:685,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:686,1
    - Dst: hdb_binsrch_idx_init_hash_type_info
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:693,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:698,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:700,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:704,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:705,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:705,1
    - Dst: TSK_HDB_HTYPE_STR
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:706,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:714,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:717,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:718,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:719,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:721,1
    - Dst: _fdopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:726,1
    - Dst: _open_osfhandle
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:726,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:728,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:729,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:730,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:736,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:737,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:738,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:739,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:747,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:751,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:755,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:759,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:763,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:769,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:770,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:771,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 106
    argCount: 2
    argNames:
    - hdb_binsrch_info
    - htype
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 776
    functionName: hdb_binsrch_idx_initialize
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 4
    functionsReached:
    - _open_osfhandle
    - fopen
    - CreateFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_HDB_HTYPE_STR
    - hdb_binsrch_idx_init_hash_type_info
    - fprintf
    - GetLastError
    - TSNPRINTF
    - strcmp
    - tsk_malloc
    - tsk_error_set_errno
    - _fdopen
    - _TSK_T
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_idx_initialize(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info,
      TSK_TCHAR *htype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: islower
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:809,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:810,1
    - Dst: toupper
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:810,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:812,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - hdb_binsrch_info
    - hvalue
    - offset
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    - char*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 819
    functionName: hdb_binsrch_idx_add_entry_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 3
    functionsReached:
    - fprintf
    - toupper
    - islower
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_idx_add_entry_str(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info,
      char *hvalue, TSK_OFF_T offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:836,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hdb_binsrch_info
    - hvalue
    - hlen
    - offset
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    - unsigned char*
    - int
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 843
    functionName: hdb_binsrch_idx_add_entry_bin
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_idx_add_entry_bin(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info,
      unsigned char *hvalue, int hlen, TSK_OFF_T offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:851,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:852,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:853,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:858,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:859,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:860,1
    - Dst: hdb_binsrch_open_idx_file
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:867,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:877,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:879,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:880,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:881,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:882,1
    - Dst: _fdopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:889,1
    - Dst: _open_osfhandle
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:889,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:891,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:892,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:893,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:900,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:901,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:902,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:903,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:912,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:916,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:925,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:926,1
    - Dst: strtol
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:927,1
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:936,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 1
    argNames:
    - hdb_binsrch_info
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 845
    functionDepth: 5
    functionLinenumber: 845
    functionLinenumberEnd: 940
    functionName: hdb_binsrch_make_idx_idx
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - fwrite
    - _open_osfhandle
    - memset
    - fopen
    - CreateFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - fclose
    - GetLastError
    - fgets
    - hdb_binsrch_open_idx_file
    - tsk_error_set_errno
    - _fdopen
    - tsk_malloc
    - strncpy
    - strtol
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_make_idx_idx(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:953,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:958,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:964,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:968,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:973,1
    - Dst: GetFileAttributes
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:978,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:980,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:980,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:984,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:985,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:986,1
    - Dst: GetStartupInfo
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:990,1
    - Dst: CreateProcess
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:993,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:995,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:996,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:997,1
    - Dst: WaitForSingleObject
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1002,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1003,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1004,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1005,1
    - Dst: DeleteFile
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1010,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1011,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1012,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1013,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1014,1
    - Dst: GetFileAttributes
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1019,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1021,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1022,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1023,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1034,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1035,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1038,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1039,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1042,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1043,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1047,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1048,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1049,1
    - Dst: system
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1053,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1054,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1055,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1056,1
    - Dst: unlink
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1061,1
    - Dst: stat
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1062,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1063,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1064,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1065,1
    - Dst: hdb_binsrch_make_idx_idx
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1072,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1073,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 1
    argNames:
    - hdb_binsrch_info
    argTypes:
    - TSK_HDB_BINSRCH_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 949
    functionDepth: 6
    functionLinenumber: 949
    functionLinenumberEnd: 1079
    functionName: hdb_binsrch_idx_finalize
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 4
    functionsReached:
    - tsk_error_set_errstr2
    - tsk_fprintf
    - GetFileAttributes
    - GetStartupInfo
    - WaitForSingleObject
    - tsk_error_set_errno
    - _TSK_T
    - CreateProcess
    - snprintf
    - hdb_binsrch_make_idx_idx
    - GetLastError
    - DeleteFile
    - system
    - tsk_error_reset
    - unlink
    - tsk_error_set_errstr
    - fclose
    - stat
    - TSNPRINTF
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_idx_finalize(TSK_HDB_BINSRCH_INFO *hdb_binsrch_info)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1111,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1114,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1118,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1119,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1120,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1125,1
    - Dst: isxdigit
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1126,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1127,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1128,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1129,1
    - Dst: hdb_binsrch_open_idx
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1137,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1141,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1142,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1143,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1144,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1146,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1150,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1151,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1152,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1154,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1159,1
    - Dst: islower
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1160,1
    - Dst: toupper
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1161,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1167,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1178,1
    - Dst: strtol
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1179,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1181,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1182,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1183,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1184,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1224,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1231,1
    - Dst: rounddown
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1236,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1240,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1241,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1242,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1243,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1253,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1258,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1259,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1260,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1261,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1262,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1269,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1271,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1272,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1275,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1276,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1277,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1278,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1285,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1287,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1288,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1289,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1290,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1299,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1318,1
    - Dst: _atoi64
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1326,1
    - Dst: strtoull
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1329,1
    - Dst: TSK_HDB_BINSRCH_INFO*::get_entry
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1334,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1336,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1337,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1354,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1355,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1356,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1357,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1358,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1365,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1368,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1369,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1370,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1371,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1376,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1378,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1379,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1380,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1381,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1388,1
    - Dst: _atoi64
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1394,1
    - Dst: strtoull
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1399,1
    - Dst: TSK_HDB_BINSRCH_INFO*::get_entry
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1403,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1406,1
    - Dst: fseeko
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1416,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1417,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1418,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1419,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1420,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1427,1
    - Dst: feof
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1430,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1432,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1433,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1434,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1435,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1440,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1442,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1443,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1444,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1445,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1452,1
    - Dst: _atoi64
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1457,1
    - Dst: strtoull
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1461,1
    - Dst: TSK_HDB_BINSRCH_INFO*::get_entry
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1465,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1468,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1479,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 215
    argCount: 5
    argNames:
    - hdb_info_base
    - hash
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1094
    functionDepth: 6
    functionLinenumber: 1094
    functionLinenumberEnd: 1482
    functionName: hdb_binsrch_lookup_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - isxdigit
    - rounddown
    - hdb_binsrch_open_idx
    - fgets
    - tsk_error_set_errno
    - toupper
    - feof
    - _atoi64
    - snprintf
    - strlen
    - tsk_take_lock
    - TSK_HDB_BINSRCH_INFO*::get_entry
    - tsk_release_lock
    - strtoull
    - strcasecmp
    - tsk_error_reset
    - strtol
    - tsk_error_set_errstr
    - tsk_error_set_errstr2
    - fseeko
    - islower
    linkageType: ''
    returnType: int8_t
    signature: "int8_t hdb_binsrch_lookup_str(TSK_HDB_INFO * hdb_info_base, const
      char *hash,\n    TSK_HDB_FLAG_ENUM flags, TSK_HDB_LOOKUP_FN action,\n    void
      *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1508,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1509,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1510,1
    - Dst: tsk_hdb_lookup_str
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - hdb_info
    - hash
    - len
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - uint8_t*
    - uint8_t
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1498
    functionDepth: 4
    functionLinenumber: 1498
    functionLinenumberEnd: 1522
    functionName: hdb_binsrch_lookup_bin
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_hdb_lookup_str
    - tsk_error_set_errno
    linkageType: ''
    returnType: int8_t
    signature: "int8_t hdb_binsrch_lookup_bin(TSK_HDB_INFO * hdb_info, uint8_t * hash,
      uint8_t len,\n    TSK_HDB_FLAG_ENUM flags,\n    TSK_HDB_LOOKUP_FN action, void
      *ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1540,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1548,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1549,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1550,1
    - Dst: hdb_binsrch_lookup_str
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1556,1
    - Dst: static_cast<TskHashInfo*>
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - hdb_info_base
    - hash
    - lookup_result
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1535
    functionDepth: 7
    functionLinenumber: 1535
    functionLinenumberEnd: 1567
    functionName: hdb_binsrch_lookup_verbose_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - hdb_binsrch_lookup_str
    - static_cast<TskHashInfo*>
    - tsk_error_set_errno
    - strlen
    linkageType: ''
    returnType: int8_t
    signature: int8_t hdb_binsrch_lookup_verbose_str(TSK_HDB_INFO *hdb_info_base,
      const char *hash, void *lookup_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 0
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: hdb_binsrch_accepts_updates
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hdb_binsrch_accepts_updates()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1581,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1585,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1589,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1594,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1598,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1601,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1604,1
    - Dst: hdb_info_base_close
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1607,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp:1609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - hdb_info_base
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1610
    functionName: hdb_binsrch_close
    functionSourceFile: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
    functionUses: 1
    functionsReached:
    - fclose
    - free
    - hdb_info_base_close
    linkageType: ''
    returnType: void
    signature: void hdb_binsrch_close(TSK_HDB_INFO *hdb_info_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: TSK_HDB_HTYPE_STR
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_HDB_HTYPE_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: TSK_HDB_HTYPE_LEN
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_HDB_HTYPE_LEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: ~TskHdbInfo()
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_close
    linkageType: ''
    returnType: void
    signature: void ~TskHdbInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_dbFile
    - a_flags
    argTypes:
    - TSK_TCHAR*
    - TSK_HDB_OPEN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 7
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: TskHdbInfo::open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t open(TSK_TCHAR * a_dbFile, TSK_HDB_OPEN_ENUM a_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_lookup_str
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - a_hash
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - char*
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: TskHdbInfo::lookupStr
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_lookup_str
    linkageType: ''
    returnType: int8_t
    signature: "int8_t lookupStr(const char *a_hash,\n        TSK_HDB_FLAG_ENUM a_flags,
      TSK_HDB_LOOKUP_FN a_action, void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_lookup_raw
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - a_hash
    - a_len
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - uint8_t*
    - uint8_t
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: TskHdbInfo::lookupRaw
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_lookup_raw
    linkageType: ''
    returnType: int8_t
    signature: "int8_t lookupRaw(uint8_t * a_hash, uint8_t a_len,\n        TSK_HDB_FLAG_ENUM
      a_flags, TSK_HDB_LOOKUP_FN a_action, void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_make_index
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a_type
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: TskHdbInfo::createIndex
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_make_index
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t createIndex(TSK_TCHAR * a_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_hdb_has_idx
      Src: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a_htype
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: TskHdbInfo::hasIndex
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached:
    - tsk_hdb_has_idx
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hasIndex(uint8_t a_htype)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: TskHdbInfo::getDbType
    functionSourceFile: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_HDB_DBTYPE_ENUM
    signature: TSK_HDB_DBTYPE_ENUM getDbType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:48,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:49,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:50,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - resultCode
    - expectedResultCode
    - errfmt
    - sqlite
    argTypes:
    - int
    - int
    - char*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: sqlite_hdb_attempt
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - sqlite3_errmsg
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t sqlite_hdb_attempt(int resultCode, int expectedResultCode,
      const char *errfmt, \n    sqlite3 *sqlite)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:60,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:61,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:62,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:63,1
    - Dst: sqlite3_free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - sql
    - errfmt
    - sqlite
    argTypes:
    - char*
    - char*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 27
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: sqlite_hdb_attempt_exec
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - sqlite3_exec
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_attempt_exec(const char *sql, const char *errfmt,
      sqlite3 *sqlite)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:73,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:78,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:79,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:83,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:87,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:91,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 28
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: sqlite_hdb_create_tables
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_attempt_exec
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_create_tables(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:105,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:106,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:107,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:108,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sql
    - stmt
    - db
    argTypes:
    - char*
    - sqlite3_stmt**
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 27
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: sqlite_hdb_prepare_stmt
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite3_prepare_v2
    - tsk_error_set_errno
    - sqlite3_errmsg
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_prepare_stmt(const char *sql, sqlite3_stmt **stmt,
      sqlite3 *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:117,1
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:121,1
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:125,1
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:129,1
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:133,1
    - Dst: sqlite_hdb_prepare_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_SQLITE_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 114
    functionDepth: 28
    functionLinenumber: 114
    functionLinenumberEnd: 142
    functionName: prepare_statements
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_prepare_stmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t prepare_statements(TSK_SQLITE_HDB_INFO *hdb_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:147,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:148,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:149,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:150,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - stmt
    - db
    argTypes:
    - sqlite3_stmt**
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 25
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: sqlite_hdb_finalize_stmt
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - sqlite3_errmsg
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_finalize_stmt(sqlite3_stmt **stmt, sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:161,1
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:162,1
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:163,1
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:164,1
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:165,1
    - Dst: sqlite_hdb_finalize_stmt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hdb_info
    argTypes:
    - TSK_SQLITE_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 26
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: finalize_statements
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_finalize_stmt
    linkageType: ''
    returnType: void
    signature: void finalize_statements(TSK_SQLITE_HDB_INFO *hdb_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:173,1
    - Dst: sqlite3_open16
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:173,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:174,1
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:178,1
    - Dst: sqlite3_open
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:178,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:179,1
    - Dst: sqlite3_extended_result_codes
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:183,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:185,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:186,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:190,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:191,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:195,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:196,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:200,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:201,1
    - Dst: sqlite3_file_control
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:207,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:208,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:209,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:210,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:210,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:211,1
    - Dst: sqlite_hdb_create_tables
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:215,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - db_file_path
    - create_tables
    argTypes:
    - TSK_TCHAR*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 169
    functionDepth: 29
    functionLinenumber: 169
    functionLinenumberEnd: 221
    functionName: sqlite_hdb_open_db
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite_hdb_attempt_exec
    - sqlite3_file_control
    - tsk_error_set_errstr
    - sqlite3_open
    - tsk_error_reset
    - sqlite_hdb_create_tables
    - sqlite3_extended_result_codes
    - tsk_error_set_errno
    - sqlite3_open16
    - sqlite3_close
    - sqlite_hdb_attempt
    linkageType: ''
    returnType: sqlite3
    signature: sqlite3 *sqlite_hdb_open_db(TSK_TCHAR *db_file_path, bool create_tables)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_open_db
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:233,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db_file_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 30
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: sqlite_hdb_create_db
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 1
    functionsReached:
    - sqlite3_close
    - sqlite_hdb_open_db
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_create_db(TSK_TCHAR *db_file_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:255,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:259,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: sqlite_hdb_is_sqlite_file
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 1
    functionsReached:
    - strncmp
    - fread
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_is_sqlite_file(FILE *hFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_open_db
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:272,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:277,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:279,1
    - Dst: hdb_info_base_open
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:283,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:284,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:285,1
    - Dst: prepare_statements
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:290,1
    - Dst: finalize_statements
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:291,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - db_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 30
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: sqlite_hdb_open
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 1
    functionsReached:
    - prepare_statements
    - sqlite_hdb_open_db
    - finalize_statements
    - tsk_malloc
    - hdb_info_base_open
    - sqlite3_close
    - free
    linkageType: ''
    returnType: TSK_HDB_INFO
    signature: TSK_HDB_INFO *sqlite_hdb_open(TSK_TCHAR *db_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:312,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:313,1
    - Dst: sscanf
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: sqlite_hdb_str_to_blob
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - sscanf
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * \n    sqlite_hdb_str_to_blob(const char *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:329,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - binblob
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: sqlite_hdb_blob_to_string
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string sqlite_hdb_blob_to_string(std::string binblob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:348,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:348,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:349,1
    - Dst: sqlite3_column_int64
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:352,1
    - Dst: sqlite_hdb_blob_to_string
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:353,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:353,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:361,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:362,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:363,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:363,1
    - Dst: sqlite3_clear_bindings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:366,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - md5Blob
    - len
    - hdb_info
    - result
    argTypes:
    - uint8_t*
    - size_t
    - TSK_SQLITE_HDB_INFO*
    - TskHashInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 344
    functionDepth: 26
    functionLinenumber: 344
    functionLinenumberEnd: 369
    functionName: sqlite_hdb_hash_lookup_by_md5
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_column_int64
    - tsk_error_reset
    - sqlite3_column_text
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - sqlite3_reset
    - sqlite_hdb_blob_to_string
    - sqlite3_clear_bindings
    - sqlite_hdb_attempt
    linkageType: ''
    returnType: int8_t
    signature: int8_t sqlite_hdb_hash_lookup_by_md5(uint8_t *md5Blob, size_t len,
      TSK_SQLITE_HDB_INFO *hdb_info, TskHashInfo &result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:375,1
    - Dst: sqlite3_bind_blob
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:375,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:376,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:378,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:381,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:382,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:383,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:383,1
    - Dst: sqlite3_clear_bindings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:386,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - md5Blob
    - len
    - hdb_info
    argTypes:
    - uint8_t*
    - size_t
    - TSK_SQLITE_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 371
    functionDepth: 26
    functionLinenumber: 371
    functionLinenumberEnd: 389
    functionName: sqlite_hdb_insert_md5_hash
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_step
    - sqlite3_bind_blob
    - tsk_error_reset
    - sqlite3_last_insert_rowid
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - sqlite3_reset
    - sqlite3_clear_bindings
    - sqlite_hdb_attempt
    linkageType: ''
    returnType: int64_t
    signature: int64_t sqlite_hdb_insert_md5_hash(uint8_t *md5Blob, size_t len, TSK_SQLITE_HDB_INFO
      *hdb_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:395,1
    - Dst: sqlite3_bind_text
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:395,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:395,1
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:396,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:396,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:397,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:399,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:400,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:401,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:401,1
    - Dst: sqlite3_clear_bindings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:408,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - stmt
    - value
    - id
    - db
    argTypes:
    - sqlite3_stmt*
    - char*
    - int64_t
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 391
    functionDepth: 26
    functionLinenumber: 391
    functionLinenumberEnd: 411
    functionName: sqlite_hdb_insert_value_and_id
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_step
    - tsk_error_reset
    - tsk_error_set_errstr
    - sqlite_hdb_attempt
    - sqlite3_bind_text
    - tsk_error_set_errno
    - sqlite3_reset
    - sqlite3_clear_bindings
    - sqlite3_bind_int64
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_insert_value_and_id(sqlite3_stmt *stmt, const char
      *value, int64_t id, sqlite3 *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:431,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:433,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:434,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:435,1
    - Dst: sqlite_hdb_str_to_blob
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:441,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:447,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:451,1
    - Dst: sqlite_hdb_hash_lookup_by_md5
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:452,1
    - Dst: sqlite_hdb_insert_md5_hash
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:459,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:462,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:463,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:469,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:470,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:474,1
    - Dst: sqlite_hdb_insert_value_and_id
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:477,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:478,1
    - Dst: sqlite_hdb_insert_value_and_id
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:483,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:484,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - hdb_info_base
    - filename
    - md5
    - comment
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 425
    functionDepth: 27
    functionLinenumber: 425
    functionLinenumberEnd: 490
    functionName: sqlite_hdb_add_entry
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite_hdb_insert_value_and_id
    - sqlite_hdb_str_to_blob
    - sqlite_hdb_hash_lookup_by_md5
    - tsk_error_set_errno
    - sqlite_hdb_insert_md5_hash
    - tsk_release_lock
    - free
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t sqlite_hdb_add_entry(TSK_HDB_INFO *hdb_info_base, const char
      *filename, \n    const char *md5, const char * /*sha1*/, const char * /*sha256*/,\n
      \   const char *comment)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:508,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:510,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:511,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:512,1
    - Dst: sqlite_hdb_str_to_blob
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:516,1
    - Dst: sqlite_hdb_lookup_bin
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:521,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - hdb_info_base
    - hash
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 524
    functionName: sqlite_hdb_lookup_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite_hdb_str_to_blob
    - sqlite_hdb_lookup_bin
    - tsk_error_set_errno
    - free
    - strlen
    linkageType: ''
    returnType: int8_t
    signature: "int8_t sqlite_hdb_lookup_str(TSK_HDB_INFO * hdb_info_base, const char*
      hash,\n    TSK_HDB_FLAG_ENUM flags, TSK_HDB_LOOKUP_FN action, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:544,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:545,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:546,1
    - Dst: sqlite_hdb_lookup_verbose_bin
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:552,1
    - Dst: TskHashInfo::fileNames::size
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:556,1
    - Dst: TskHashInfo::fileNames::begin
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:557,1
    - Dst: TskHashInfo::fileNames::end
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:557,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:558,1
    - Dst: TskHashInfo::hashMd5::c_str
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:558,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:558,1
    - Dst: action
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:562,1
    - Dst: TskHashInfo::hashMd5::c_str
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - hdb_info_base
    - hash
    - len
    - flags
    - action
    - ptr
    argTypes:
    - TSK_HDB_INFO*
    - uint8_t*
    - uint8_t
    - TSK_HDB_FLAG_ENUM
    - TSK_HDB_LOOKUP_FN
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 567
    functionName: sqlite_hdb_lookup_bin
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 1
    functionsReached:
    - sqlite_hdb_lookup_verbose_bin
    - action
    - TskHashInfo::hashMd5::c_str
    - TskHashInfo::fileNames::end
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskHashInfo::fileNames::size
    - TskHashInfo::fileNames::begin
    - tsk_error_set_errno
    - c_str
    linkageType: ''
    returnType: int8_t
    signature: "int8_t sqlite_hdb_lookup_bin(TSK_HDB_INFO *hdb_info_base, uint8_t
      *hash, \n    uint8_t len, TSK_HDB_FLAG_ENUM flags, TSK_HDB_LOOKUP_FN action,
      void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_hdb_attempt
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:573,1
    - Dst: sqlite3_bind_int64
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:573,1
    - Dst: sqlite3_step
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:575,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:577,1
    - Dst: sqlite3_column_text
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:577,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:585,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:586,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:587,1
    - Dst: sqlite3_errmsg
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:587,1
    - Dst: sqlite3_clear_bindings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:593,1
    - Dst: sqlite3_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - db
    - stmt
    - hash_id
    - out
    argTypes:
    - sqlite3*
    - sqlite3_stmt*
    - int64_t
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 569
    functionDepth: 26
    functionLinenumber: 569
    functionLinenumberEnd: 596
    functionName: sqlite_hdb_get_assoc_strings
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_step
    - tsk_error_reset
    - tsk_error_set_errstr
    - sqlite3_column_text
    - std::vector<std::string>::push_back
    - tsk_error_set_errno
    - sqlite3_reset
    - sqlite3_clear_bindings
    - sqlite3_bind_int64
    - sqlite_hdb_attempt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_get_assoc_strings(sqlite3 *db, sqlite3_stmt *stmt,
      int64_t hash_id, std::vector<std::string> &out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:612,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:614,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:615,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:616,1
    - Dst: sqlite_hdb_str_to_blob
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:620,1
    - Dst: sqlite_hdb_lookup_verbose_bin
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:625,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - hdb_info_base
    - hash
    - result
    argTypes:
    - TSK_HDB_INFO*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 628
    functionName: sqlite_hdb_lookup_verbose_str
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_lookup_verbose_bin
    - tsk_error_set_errstr
    - tsk_error_reset
    - sqlite_hdb_str_to_blob
    - tsk_error_set_errno
    - free
    - strlen
    linkageType: ''
    returnType: int8_t
    signature: int8_t sqlite_hdb_lookup_verbose_str(TSK_HDB_INFO *hdb_info_base, const
      char *hash, void *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:646,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:647,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:648,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:653,1
    - Dst: static_cast<TskHashInfo*>
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:655,1
    - Dst: sqlite_hdb_hash_lookup_by_md5
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:656,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:658,1
    - Dst: sqlite_hdb_get_assoc_strings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:663,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:664,1
    - Dst: sqlite_hdb_get_assoc_strings
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:669,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:670,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - hdb_info_base
    - hash
    - hash_len
    - lookup_result
    argTypes:
    - TSK_HDB_INFO*
    - uint8_t*
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 642
    functionDepth: 27
    functionLinenumber: 642
    functionLinenumberEnd: 676
    functionName: sqlite_hdb_lookup_verbose_bin
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 2
    functionsReached:
    - tsk_take_lock
    - sqlite_hdb_get_assoc_strings
    - tsk_error_set_errstr
    - tsk_error_reset
    - static_cast<TskHashInfo*>
    - sqlite_hdb_hash_lookup_by_md5
    - tsk_error_set_errno
    - tsk_release_lock
    linkageType: ''
    returnType: int8_t
    signature: int8_t sqlite_hdb_lookup_verbose_bin(TSK_HDB_INFO *hdb_info_base, uint8_t
      *hash, uint8_t hash_len, void *lookup_result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TSK_SQLITE_HDB_INFO*>
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:687,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdb_info_base
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 685
    functionDepth: 28
    functionLinenumber: 685
    functionLinenumberEnd: 694
    functionName: sqlite_hdb_begin_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_attempt_exec
    - reinterpret_cast<TSK_SQLITE_HDB_INFO*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_begin_transaction(TSK_HDB_INFO *hdb_info_base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TSK_SQLITE_HDB_INFO*>
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:705,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdb_info_base
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 703
    functionDepth: 28
    functionLinenumber: 703
    functionLinenumberEnd: 712
    functionName: sqlite_hdb_commit_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_attempt_exec
    - reinterpret_cast<TSK_SQLITE_HDB_INFO*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_commit_transaction(TSK_HDB_INFO *hdb_info_base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TSK_SQLITE_HDB_INFO*>
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:723,1
    - Dst: sqlite_hdb_attempt_exec
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdb_info_base
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 721
    functionDepth: 28
    functionLinenumber: 721
    functionLinenumberEnd: 730
    functionName: sqlite_hdb_rollback_transaction
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite_hdb_attempt_exec
    - reinterpret_cast<TSK_SQLITE_HDB_INFO*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t sqlite_hdb_rollback_transaction(TSK_HDB_INFO *hdb_info_base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finalize_statements
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:741,1
    - Dst: sqlite3_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:742,1
    - Dst: hdb_info_base_close
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:746,1
    - Dst: free
      Src: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hdb_info_base
    argTypes:
    - TSK_HDB_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 27
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: sqlite_hdb_close
    functionSourceFile: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    functionUses: 0
    functionsReached:
    - sqlite3_close
    - finalize_statements
    - free
    - hdb_info_base_close
    linkageType: ''
    returnType: void
    signature: void sqlite_hdb_close(TSK_HDB_INFO *hdb_info_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fsi
    - ','
    - de
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: FATXXFS_DENTRY_CLUST
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATXXFS_DENTRY_CLUST(fsi, de)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - fatfs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: FATXXFS_IS_DELETED
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATXXFS_IS_DELETED(name, fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: FATXXFS_IS_83_NAME_STRICT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATXXFS_IS_83_NAME_STRICT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: FATXXFS_IS_83_NAME_RELAXED
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATXXFS_IS_83_NAME_RELAXED(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: FATXXFS_IS_83_NAME
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATXXFS_IS_83_NAME(c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:51,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:53,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:54,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:55,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - fs_file
    - a_path
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: find_file_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ffind_lib.c
    functionUses: 0
    functionsReached:
    - tsk_print_sanitized
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM find_file_act(TSK_FS_FILE * fs_file, const char *a_path,
      void *ptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:85,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:93,1
    - Dst: ntfs_find_file
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:94,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:99,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:109,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:111,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:115,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:117,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:118,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:121,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:124,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ffind_lib.c:127,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 8
    argNames:
    - fs
    - lclflags
    - a_inode
    - type
    - type_used
    - id
    - id_used
    - flags
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FFIND_FLAG_ENUM
    - TSK_INUM_T
    - TSK_FS_ATTR_TYPE_ENUM
    - uint8_t
    - uint16_t
    - uint8_t
    - TSK_FS_DIR_WALK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 131
    functionName: tsk_fs_ffind
    functionSourceFile: /src/sleuthkit/tsk/fs/ffind_lib.c
    functionUses: 0
    functionsReached:
    - tsk_print_sanitized
    - tsk_printf
    - tsk_fs_dir_walk
    - TSK_FS_TYPE_ISFAT
    - ntfs_find_file
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_ffind(TSK_FS_INFO * fs, TSK_FS_FFIND_FLAG_ENUM lclflags,\n
      \   TSK_INUM_T a_inode,\n    TSK_FS_ATTR_TYPE_ENUM type, uint8_t type_used,\n
      \   uint16_t id, uint8_t id_used, TSK_FS_DIR_WALK_FLAG_ENUM flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: stats
    functionSourceFile: /src/sleuthkit/tsk/fs/dcat_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    linkageType: ''
    returnType: void
    signature: void stats(TSK_FS_INFO * fs)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: stats
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:69,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:70,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:71,1
    - Dst: _setmode
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:78,1
    - Dst: _fileno
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:78,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:79,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:80,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:81,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:83,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:89,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:90,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:91,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:93,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:94,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:99,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:101,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:108,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:111,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:112,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:114,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:127,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:130,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:138,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:140,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:144,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:146,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:151,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:155,1
    - Dst: isascii
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:157,1
    - Dst: iscntrl
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:158,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:159,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:161,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:165,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:167,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:172,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:173,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:182,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:184,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:189,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:190,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:193,1
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:199,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:200,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:201,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:202,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:204,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:205,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:211,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:215,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:217,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:221,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:222,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:226,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcat_lib.c:230,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 110
    argCount: 4
    argNames:
    - fs
    - lclflags
    - addr
    - read_num_units
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLKCAT_FLAG_ENUM
    - TSK_DADDR_T
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 233
    functionName: tsk_fs_blkcat
    functionSourceFile: /src/sleuthkit/tsk/fs/dcat_lib.c
    functionUses: 0
    functionsReached:
    - fwrite
    - _setmode
    - tsk_printf
    - tsk_fs_read_block
    - isascii
    - tsk_error_set_errstr
    - tsk_error_reset
    - _fileno
    - iscntrl
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - isprint
    - strerror
    - stats
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_blkcat(TSK_FS_INFO * fs, TSK_FS_BLKCAT_FLAG_ENUM lclflags,\n
      \   TSK_DADDR_T addr, TSK_DADDR_T read_num_units)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser::BitlockerParser
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:40,1
    - Dst: BitlockerParser*::initialize
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:41,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:51,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:52,1
    - Dst: BitlockerParser*::getRecoveryKeyIdStr
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:53,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:54,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:54,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:59,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:60,1
    - Dst: BitlockerParser*::getRecoveryKeyIdStr
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:61,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:62,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:62,1
    - Dst: BitlockerParser*::getUnsupportedProtectionTypes
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:67,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:68,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:69,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:70,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:70,1
    - Dst: BitlockerParser*::getSectorSize
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - a_fs_info
    - a_pass
    argTypes:
    - TSK_FS_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 89
    functionName: handleBitlocker
    functionSourceFile: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - BitlockerParser*::getUnsupportedProtectionTypes
    - BitlockerParser*::getSectorSize
    - BitlockerParser*::getRecoveryKeyIdStr
    - tsk_error_set_errno
    - BitlockerParser*::initialize
    - string::c_str
    - BitlockerParser::BitlockerParser
    linkageType: ''
    returnType: int
    signature: int handleBitlocker(TSK_FS_INFO* a_fs_info, const char* a_pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleBitlocker
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a_fs_info
    - a_pass
    argTypes:
    - TSK_FS_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: handleVolumeEncryption
    functionSourceFile: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
    functionUses: 0
    functionsReached:
    - handleBitlocker
    linkageType: ''
    returnType: int
    signature: int handleVolumeEncryption(TSK_FS_INFO* a_fs_info, const char* a_pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser*::readAndDecryptSectors
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - a_fs_info
    - offsetInVolume
    - len
    - data
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: read_and_decrypt_bitlocker_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
    functionUses: 0
    functionsReached:
    - BitlockerParser*::readAndDecryptSectors
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_and_decrypt_bitlocker_blocks(TSK_FS_INFO* a_fs_info, TSK_DADDR_T
      offsetInVolume, size_t len, void* data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:153,1
    - Dst: BitlockerParser*::getDescription
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:160,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:161,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/fs/encryptionHelper.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a_fs_info
    - a_desc
    - a_descLen
    argTypes:
    - TSK_FS_INFO*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: tsk_fs_get_encryption_description
    functionSourceFile: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
    functionUses: 0
    functionsReached:
    - memset
    - string::c_str
    - BitlockerParser*::getDescription
    - strncpy
    linkageType: ''
    returnType: void
    signature: void tsk_fs_get_encryption_description(TSK_FS_INFO* a_fs_info, char*
      a_desc, size_t a_descLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: freeEncryptionData
    functionSourceFile: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void freeEncryptionData(TSK_FS_INFO* a_fs_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_journal.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: hfs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_journal.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_journal.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fs
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: hfs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_journal.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_jentry_walk(TSK_FS_INFO * fs, int flags, TSK_FS_JENTRY_WALK_CB
      action,\n    void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_journal.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: hfs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_journal.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      end,\n    int flags, TSK_FS_JBLK_WALK_CB action, void *ptr)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:43,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fatfs.c:45,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:46,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:47,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:48,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:53,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:54,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:55,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:60,1
    - Dst: handleVolumeEncryption
      Src: /src/sleuthkit/tsk/fs/fatfs.c:75,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:76,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatfs.c:101,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:104,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:105,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs.c:107,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:108,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/fatfs.c:114,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatfs.c:116,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:120,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:121,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:122,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:124,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:126,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:134,1
    - Dst: fatxxfs_open
      Src: /src/sleuthkit/tsk/fs/fatfs.c:141,1
    - Dst: exfatfs_open
      Src: /src/sleuthkit/tsk/fs/fatfs.c:141,1
    - Dst: exfatfs_open
      Src: /src/sleuthkit/tsk/fs/fatfs.c:142,1
    - Dst: fatxxfs_open
      Src: /src/sleuthkit/tsk/fs/fatfs.c:143,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:147,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 5
    argNames:
    - a_img_info
    - a_offset
    - a_ftype
    - a_pass
    - a_test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 150
    functionName: fatfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 1
    functionsReached:
    - handleVolumeEncryption
    - exfatfs_open
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - TSK_FS_TYPE_ISFAT
    - tsk_fs_guessu16
    - tsk_fs_free
    - tsk_getu16
    - tsk_error_set_errno
    - fatxxfs_open
    - tsk_fs_malloc
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      fatfs_open(TSK_IMG_INFO *a_img_info, TSK_OFF_T a_offset, TSK_FS_TYPE_ENUM a_ftype,
      const char* a_pass, uint8_t a_test)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatfs.c:205,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:209,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:210,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs.c:212,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - fatfs
    - sect
    argTypes:
    - FATFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 232
    functionName: getFATCacheIdx
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - tsk_fs_read
    - tsk_error_set_errstr2
    - tsk_error_set_errno
    linkageType: ''
    returnType: int
    signature: int getFATCacheIdx(FATFS_INFO * fatfs, TSK_DADDR_T sect)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:262,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:267,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:268,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:269,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:277,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:278,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:279,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:289,1
    - Dst: getFATCacheIdx
      Src: /src/sleuthkit/tsk/fs/fatfs.c:293,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:294,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatfs.c:311,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:314,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:316,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:317,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs.c:319,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatfs.c:332,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:334,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:346,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:358,1
    - Dst: getFATCacheIdx
      Src: /src/sleuthkit/tsk/fs/fatfs.c:360,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:361,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatfs.c:371,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:373,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:379,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:391,1
    - Dst: getFATCacheIdx
      Src: /src/sleuthkit/tsk/fs/fatfs.c:393,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:394,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatfs.c:403,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:405,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:411,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:420,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:421,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:422,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 3
    argNames:
    - fatfs
    - clust
    - value
    argTypes:
    - FATFS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 426
    functionName: fatfs_getFAT
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - getFATCacheIdx
    - tsk_release_lock
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_getFAT(FATFS_INFO * fatfs, TSK_DADDR_T clust, TSK_DADDR_T
      * value)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:457,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:463,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:464,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:465,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:470,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:471,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:472,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:478,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:496,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:509,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:513,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:514,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/fatfs.c:523,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:527,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:528,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs.c:530,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:533,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:534,1
    - Dst: tsk_fs_block_set
      Src: /src/sleuthkit/tsk/fs/fatfs.c:567,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fatfs.c:571,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:573,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:574,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:578,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:579,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:585,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:589,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs.c:606,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/fatfs.c:606,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:608,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:609,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs.c:614,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:623,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:625,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:626,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/fatfs.c:661,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:665,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:666,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs.c:668,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:670,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:671,1
    - Dst: tsk_fs_block_set
      Src: /src/sleuthkit/tsk/fs/fatfs.c:685,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fatfs.c:689,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:691,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:692,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:696,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:697,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:703,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:704,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 147
    argCount: 6
    argNames:
    - fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 706
    functionName: fatfs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - tsk_fs_block_alloc
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - FATFS_SECT_2_CLUST
    - fatfs_is_sectalloc
    - a_action
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - FATFS_CLUST_2_SECT
    - tsk_fs_block_free
    - tsk_fs_block_set
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T a_start_blk,\n
      \   TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n    TSK_FS_BLOCK_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 736
    functionName: fatfs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - fatfs_is_sectalloc
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM fatfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FATFS_INFO*::is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs.c:761,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/fatfs.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - fatfs
    - sect
    argTypes:
    - FATFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 762
    functionName: fatfs_is_sectalloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 2
    functionsReached:
    - FATFS_SECT_2_CLUST
    - FATFS_INFO*::is_cluster_alloc
    linkageType: ''
    returnType: int8_t
    signature: int8_t fatfs_is_sectalloc(FATFS_INFO * fatfs, TSK_DADDR_T sect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:768,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:769,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 772
    functionName: fatfs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:778,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:779,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 803
    functionName: fatfs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:810,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:811,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fs
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 814
    functionName: fatfs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_jentry_walk(TSK_FS_INFO * fs, int a_flags,\n    TSK_FS_JENTRY_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:821,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs.c:822,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: fatfs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      end,\n    int a_flags, TSK_FS_JBLK_WALK_CB a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_dir_buf_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:833,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fatfs.c:836,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:837,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/fatfs.c:838,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/fatfs.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 841
    functionName: fatfs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    - memset
    - tsk_deinit_lock
    - fatfs_dir_buf_free
    linkageType: ''
    returnType: void
    signature: void fatfs_close(TSK_FS_INFO *fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: ISODCL
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISODCL(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: XSWAP
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSWAP(a,b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:112,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:115,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fs
    - buf
    - len
    - offs
    argTypes:
    - TSK_FS_INFO*
    - char*
    - size_t
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: hfs_checked_read_random
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - tsk_fs_read
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_checked_read_random(TSK_FS_INFO * fs, char *buf, size_t
      len,\n    TSK_OFF_T offs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hfsdate
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: hfs_convert_2_unix_time
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hfs_convert_2_unix_time(uint32_t hfsdate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cnid
    - array
    argTypes:
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: cnid_to_array
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cnid_to_array(uint32_t cnid, uint8_t array[4])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:177,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - hfs
    - cnid
    - key
    argTypes:
    - HFS_INFO*
    - uint32_t
    - hfs_btree_key_ext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: hfs_ext_compare_keys
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    linkageType: ''
    returnType: int
    signature: "int hfs_ext_compare_keys(HFS_INFO * hfs, uint32_t cnid,\n    const
      hfs_btree_key_ext * key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:227,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - hfs
    - keylen
    - header
    argTypes:
    - HFS_INFO*
    - uint16_t
    - hfs_btree_header_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: hfs_get_idxkeylen
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    - tsk_getu32
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t hfs_get_idxkeylen(HFS_INFO * hfs, uint16_t keylen,\n    const
      hfs_btree_header_record * header)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:252,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:255,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:262,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:263,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:266,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:275,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:276,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - a_fs
    - a_extents
    - a_start_off
    argTypes:
    - TSK_FS_INFO*
    - hfs_ext_desc*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: hfs_extents_to_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_reset
    - error_returned
    - tsk_getu32
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_FS_ATTR_RUN
    signature: "TSK_FS_ATTR_RUN *\nhfs_extents_to_attr(TSK_FS_INFO * a_fs, const hfs_ext_desc
      * a_extents,\n    TSK_OFF_T a_start_off)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:317,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:320,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:339,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/hfs.c:346,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:349,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:355,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:360,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:361,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:363,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:370,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:371,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:376,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:384,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:386,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:391,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:404,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:406,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:407,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:410,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:417,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:421,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:425,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:426,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:428,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:431,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:437,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:438,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:440,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:444,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:447,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:448,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:451,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:463,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:476,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:477,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:480,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:485,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:488,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:489,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:493,1
    - Dst: hfs_ext_compare_keys
      Src: /src/sleuthkit/tsk/fs/hfs.c:498,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:501,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:505,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:506,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:508,1
    - Dst: hfs_get_idxkeylen
      Src: /src/sleuthkit/tsk/fs/hfs.c:514,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:514,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:517,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:518,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:522,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:528,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:540,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:554,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:571,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:572,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:575,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:580,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:584,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:585,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:589,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:595,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:596,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:600,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:607,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:611,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:612,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:613,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:616,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:650,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:652,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:653,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:657,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:662,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:668,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:669,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:670,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:672,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:676,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:677,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:679,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:683,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:690,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:691,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:694,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:698,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 194
    argCount: 4
    argNames:
    - hfs
    - cnid
    - a_attr
    - dataForkQ
    argTypes:
    - HFS_INFO*
    - uint32_t
    - TSK_FS_ATTR*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 700
    functionName: hfs_ext_find_extent_record_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_error_errstr2_concat
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - free
    - hfs_get_idxkeylen
    - hfs_ext_compare_keys
    - hfs_extents_to_attr
    - tsk_error_get_errno
    - tsk_error_set_errstr2
    - tsk_fs_attr_add_run
    - tsk_fs_attr_read
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_ext_find_extent_record_attr(HFS_INFO * hfs, uint32_t cnid,\n
      \   TSK_FS_ATTR * a_attr, unsigned char dataForkQ)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:723,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:724,1
    - Dst: hfs_unicode_compare
      Src: /src/sleuthkit/tsk/fs/hfs.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - hfs
    - key1
    - keylen1
    - key2
    argTypes:
    - HFS_INFO*
    - hfs_btree_key_cat*
    - int
    - hfs_btree_key_cat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 732
    functionName: hfs_cat_compare_keys
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_unicode_compare
    - tsk_getu32
    linkageType: ''
    returnType: int
    signature: "int hfs_cat_compare_keys(HFS_INFO * hfs, const hfs_btree_key_cat *
      key1,\n    int keylen1, const hfs_btree_key_cat * key2)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:756,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:758,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:759,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:763,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:771,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:773,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:778,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:791,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:793,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:794,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:796,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:802,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:806,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:807,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:809,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:812,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:818,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:819,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:821,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:825,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:828,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:833,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:834,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:836,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:855,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:856,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:859,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:864,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:869,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:870,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:874,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:879,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:883,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:884,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:887,1
    - Dst: a_cb
      Src: /src/sleuthkit/tsk/fs/hfs.c:903,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:906,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:907,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:909,1
    - Dst: hfs_get_idxkeylen
      Src: /src/sleuthkit/tsk/fs/hfs.c:917,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:917,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:920,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:921,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:925,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:929,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:930,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:931,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:937,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:946,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:947,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:955,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:956,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:978,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:979,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:982,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:987,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:992,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:993,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:997,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1002,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1006,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1007,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1010,1
    - Dst: a_cb
      Src: /src/sleuthkit/tsk/fs/hfs.c:1027,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1034,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1035,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1037,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1044,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1049,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1054,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1055,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1058,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1062,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 165
    argCount: 3
    argNames:
    - hfs
    - a_cb
    - ptr
    argTypes:
    - HFS_INFO*
    - TSK_HFS_BTREE_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 745
    functionDepth: 4
    functionLinenumber: 745
    functionLinenumberEnd: 1064
    functionName: hfs_cat_traverse
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr2
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - a_cb
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - hfs_get_idxkeylen
    - free
    - tsk_fs_attr_read
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_cat_traverse(HFS_INFO * hfs,\n    TSK_HFS_BTREE_CB a_cb,
      void *ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1080,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1084,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1085,1
    - Dst: hfs_cat_compare_keys
      Src: /src/sleuthkit/tsk/fs/hfs.c:1088,1
    - Dst: hfs_cat_compare_keys
      Src: /src/sleuthkit/tsk/fs/hfs.c:1095,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 7
    argNames:
    - hfs
    - level_type
    - cur_key
    - cur_keylen
    - node_size
    - key_off
    - ptr
    argTypes:
    - HFS_INFO*
    - int8_t
    - hfs_btree_key_cat*
    - int
    - size_t
    - TSK_OFF_T
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1108
    functionName: hfs_cat_get_record_offset_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    - hfs_cat_compare_keys
    - tsk_getu32
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_cat_get_record_offset_cb(HFS_INFO * hfs, int8_t level_type,\n
      \   const hfs_btree_key_cat * cur_key, int cur_keylen, size_t node_size,\n    TSK_OFF_T
      key_off, void *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hfs_cat_traverse
      Src: /src/sleuthkit/tsk/fs/hfs.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hfs
    - needle
    argTypes:
    - HFS_INFO*
    - hfs_btree_key_cat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1119
    functionDepth: 5
    functionLinenumber: 1119
    functionLinenumberEnd: 1129
    functionName: hfs_cat_get_record_offset
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_cat_traverse
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T hfs_cat_get_record_offset(HFS_INFO * hfs, const hfs_btree_key_cat
      * needle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1148,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:1149,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1152,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1153,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1155,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1161,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1162,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1163,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1164,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1166,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1170,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1173,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1174,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:1181,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1185,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1186,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - hfs
    - 'off'
    - thread
    argTypes:
    - HFS_INFO*
    - TSK_OFF_T
    - hfs_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1195
    functionName: hfs_cat_read_thread_record
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_error_set_errstr2
    - tsk_fs_attr_read
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_cat_read_thread_record(HFS_INFO * hfs, TSK_OFF_T off,\n
      \   hfs_thread * thread)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1213,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:1215,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1218,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1219,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1221,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1227,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:1229,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1233,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1234,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1236,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1242,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:1244,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1248,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1249,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1251,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1258,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1259,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - hfs
    - 'off'
    - record
    argTypes:
    - HFS_INFO*
    - TSK_OFF_T
    - hfs_file_folder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1266
    functionName: hfs_cat_read_file_folder_record
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_error_set_errstr2
    - tsk_fs_attr_read
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_cat_read_file_folder_record(HFS_INFO * hfs, TSK_OFF_T
      off,\n    hfs_file_folder * record)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:1368,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1373,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:1381,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1381,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1385,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1386,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1403,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1406,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1416,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1428,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1450,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1454,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1465,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1478,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 48
    argCount: 3
    argNames:
    - hfs
    - cat
    - is_error
    argTypes:
    - HFS_INFO*
    - hfs_file*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1354
    functionDepth: 4
    functionLinenumber: 1354
    functionLinenumberEnd: 1489
    functionName: hfs_follow_hard_link
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_convert_2_unix_time
    - error_detected
    - tsk_getu32
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_INUM_T
    signature: "TSK_INUM_T hfs_follow_hard_link(HFS_INFO * hfs, hfs_file * cat,\n
      \   unsigned char *is_error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1513,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1516,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1525,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1526,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1536,1
    - Dst: cnid_to_array
      Src: /src/sleuthkit/tsk/fs/hfs.c:1537,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1540,1
    - Dst: hfs_cat_get_record_offset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1545,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1548,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1549,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1550,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1555,1
    - Dst: hfs_cat_read_thread_record
      Src: /src/sleuthkit/tsk/fs/hfs.c:1563,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1564,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1572,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1573,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1575,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1578,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1580,1
    - Dst: hfs_cat_get_record_offset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1584,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1587,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1588,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1589,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1594,1
    - Dst: hfs_cat_read_file_folder_record
      Src: /src/sleuthkit/tsk/fs/hfs.c:1601,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:1602,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1608,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1611,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1613,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1614,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1616,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:1618,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1621,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1623,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1624,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1628,1
    - Dst: hfs_follow_hard_link
      Src: /src/sleuthkit/tsk/fs/hfs.c:1637,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1639,1
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:1647,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1649,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1661,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 4
    argNames:
    - hfs
    - inum
    - entry
    - follow_hard_link
    argTypes:
    - HFS_INFO*
    - TSK_INUM_T
    - HFS_ENTRY*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1503
    functionDepth: 6
    functionLinenumber: 1503
    functionLinenumberEnd: 1663
    functionName: hfs_cat_file_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 1
    functionsReached:
    - hfs_cat_file_lookup
    - memset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - error_returned
    - tsk_getu32
    - memcpy
    - tsk_getu16
    - tsk_error_set_errno
    - hfs_follow_hard_link
    - tsk_error_get_errno
    - cnid_to_array
    - tsk_error_set_errstr2
    - hfs_cat_read_file_folder_record
    - hfs_cat_get_record_offset
    - hfs_cat_read_thread_record
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_cat_file_lookup(HFS_INFO * hfs, TSK_INUM_T inum, HFS_ENTRY
      * entry,\n    unsigned char follow_hard_link)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - hfs
    - level_type
    - cur_key
    - cur_keylen
    - node_size
    - key_off
    - ptr
    argTypes:
    - HFS_INFO*
    - int8_t
    - hfs_btree_key_cat*
    - int
    - size_t
    - TSK_OFF_T
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1682
    functionName: hfs_find_highest_inum_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_find_highest_inum_cb(HFS_INFO * hfs, int8_t level_type,\n
      \   const hfs_btree_key_cat * cur_key, int cur_keylen, size_t node_size,\n    TSK_OFF_T
      key_off, void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hfs_cat_traverse
      Src: /src/sleuthkit/tsk/fs/hfs.c:1694,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1701,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hfs
    argTypes:
    - HFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1689
    functionDepth: 5
    functionLinenumber: 1689
    functionLinenumberEnd: 1708
    functionName: hfs_find_highest_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_cat_traverse
    - tsk_getu32
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T hfs_find_highest_inum(HFS_INFO * hfs)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1745
    functionName: hfs_mode_to_tsk_mode
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_MODE_ENUM
    signature: TSK_FS_META_MODE_ENUM hfs_mode_to_tsk_mode(uint16_t a_mode)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1773
    functionName: hfs_mode_to_tsk_meta_type
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_TYPE_ENUM
    signature: TSK_FS_META_TYPE_ENUM hfs_mode_to_tsk_meta_type(uint16_t a_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:1792,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1793,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/hfs.c:1801,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:1804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1807
    functionName: hfs_make_specialbase
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_alloc
    - tsk_malloc
    - error_returned
    - tsk_fs_attrlist_markunused
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_specialbase(TSK_FS_FILE * fs_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1828,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:1831,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1832,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1837,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1841,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1846,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1847,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1848,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:1853,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1855,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1856,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:1861,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1863,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1864,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1865,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1866,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1867,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1872,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1874,1
    - Dst: hfs_load_extended_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:1879,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1882,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:1884,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1817
    functionDepth: 6
    functionLinenumber: 1817
    functionLinenumberEnd: 1889
    functionName: hfs_make_catalog
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_reset
    - error_returned
    - tsk_fs_attr_set_run
    - hfs_ext_find_extent_record_attr
    - hfs_load_extended_attrs
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - strncpy
    - tsk_fs_attrlist_getnew
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_catalog(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1907,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:1910,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1911,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1916,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1920,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1924,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1925,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1926,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:1931,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1933,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1934,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:1939,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1941,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1942,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1943,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1944,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:1945,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1899
    functionDepth: 5
    functionLinenumber: 1899
    functionLinenumberEnd: 1955
    functionName: hfs_make_extents
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - error_returned
    - tsk_fs_attr_set_run
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - strncpy
    - tsk_fs_attrlist_getnew
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_extents(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:1977,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:1980,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1981,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:1986,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:1990,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:1993,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:1994,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:1995,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:2000,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2002,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2003,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:2008,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2010,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2011,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2012,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2013,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2014,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2019,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2021,1
    - Dst: hfs_load_extended_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:2027,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2030,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2032,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1966
    functionDepth: 6
    functionLinenumber: 1966
    functionLinenumberEnd: 2037
    functionName: hfs_make_blockmap
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_reset
    - error_returned
    - tsk_fs_attr_set_run
    - hfs_ext_find_extent_record_attr
    - hfs_load_extended_attrs
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - strncpy
    - tsk_fs_attrlist_getnew
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_blockmap(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2058,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:2061,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2062,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2067,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2071,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2074,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:2075,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2076,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:2081,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2083,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2084,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:2089,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2091,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2092,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2093,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2094,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2095,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2100,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2102,1
    - Dst: hfs_load_extended_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:2107,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2110,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2047
    functionDepth: 6
    functionLinenumber: 2047
    functionLinenumberEnd: 2117
    functionName: hfs_make_startfile
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_reset
    - error_returned
    - tsk_fs_attr_set_run
    - hfs_ext_find_extent_record_attr
    - hfs_load_extended_attrs
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - strncpy
    - tsk_fs_attrlist_getnew
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_startfile(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2136,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:2139,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2140,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2145,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2149,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2152,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:2153,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2154,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:2159,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2161,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2162,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:2167,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2169,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2170,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2171,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2172,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2173,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2178,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2128
    functionDepth: 6
    functionLinenumber: 2128
    functionLinenumberEnd: 2189
    functionName: hfs_make_attrfile
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - error_returned
    - tsk_fs_attr_set_run
    - hfs_ext_find_extent_record_attr
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - strncpy
    - tsk_fs_attrlist_getnew
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_attrfile(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2210,1
    - Dst: hfs_make_specialbase
      Src: /src/sleuthkit/tsk/fs/hfs.c:2213,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2214,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2219,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:2225,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2227,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:2232,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2236,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2241,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2243,1
    - Dst: hfs_load_extended_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:2256,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2259,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - hfs
    - fs_file
    argTypes:
    - HFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2201
    functionDepth: 6
    functionLinenumber: 2201
    functionLinenumberEnd: 2266
    functionName: hfs_make_badblockfile
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_make_specialbase
    - tsk_fprintf
    - tsk_error_reset
    - error_returned
    - tsk_fs_attr_set_run
    - hfs_ext_find_extent_record_attr
    - strncpy
    - hfs_load_extended_attrs
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_make_badblockfile(HFS_INFO * hfs, TSK_FS_FILE * fs_file)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2293,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2303,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2306,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:2311,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2312,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2320,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2322,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2326,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/hfs.c:2333,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:2340,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:2342,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2347,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:2349,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:2355,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2359,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2360,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2364,1
    - Dst: hfs_mode_to_tsk_mode
      Src: /src/sleuthkit/tsk/fs/hfs.c:2379,1
    - Dst: hfs_mode_to_tsk_meta_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:2380,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2381,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2382,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2386,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2387,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:2392,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2392,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:2394,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2394,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:2396,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2396,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:2398,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2398,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:2400,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2400,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2405,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2433,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2437,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2444,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2448,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 3
    argNames:
    - a_hfs
    - a_hfs_entry
    - a_fs_file
    argTypes:
    - HFS_INFO*
    - HFS_ENTRY*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2276
    functionDepth: 4
    functionLinenumber: 2276
    functionLinenumberEnd: 2455
    functionName: hfs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_fs_meta_realloc
    - tsk_getu32
    - memcpy
    - tsk_fs_file_read
    - hfs_mode_to_tsk_mode
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - error_detected
    - free
    - tsk_fs_attrlist_markunused
    - hfs_mode_to_tsk_meta_type
    - hfs_convert_2_unix_time
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_dinode_copy(HFS_INFO * a_hfs, const HFS_ENTRY * a_hfs_entry,\n
      \   TSK_FS_FILE * a_fs_file)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:2474,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:2475,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2480,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2487,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2491,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2500,1
    - Dst: hfs_make_extents
      Src: /src/sleuthkit/tsk/fs/hfs.c:2505,1
    - Dst: hfs_make_catalog
      Src: /src/sleuthkit/tsk/fs/hfs.c:2508,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2513,1
    - Dst: hfs_make_badblockfile
      Src: /src/sleuthkit/tsk/fs/hfs.c:2517,1
    - Dst: hfs_make_blockmap
      Src: /src/sleuthkit/tsk/fs/hfs.c:2520,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2524,1
    - Dst: hfs_make_startfile
      Src: /src/sleuthkit/tsk/fs/hfs.c:2528,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2532,1
    - Dst: hfs_make_attrfile
      Src: /src/sleuthkit/tsk/fs/hfs.c:2536,1
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:2540,1
    - Dst: hfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2545,1
    - Dst: hfs_load_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:2557,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2466
    functionDepth: 7
    functionLinenumber: 2466
    functionLinenumberEnd: 2561
    functionName: hfs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_cat_file_lookup
    - hfs_make_catalog
    - hfs_make_attrfile
    - tsk_fprintf
    - tsk_error_set_errstr
    - hfs_make_blockmap
    - tsk_fs_meta_reset
    - tsk_fs_meta_alloc
    - hfs_make_badblockfile
    - hfs_load_attrs
    - tsk_error_set_errno
    - error_detected
    - hfs_make_startfile
    - hfs_dinode_copy
    - hfs_make_extents
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T inum)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2593,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2596,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2602,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2611,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2614,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2619,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2622,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2624,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2630,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2633,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2638,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2641,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2650,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2652,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2655,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2663,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 4
    argNames:
    - rAttr
    - offsetTableOut
    - tableSizeOut
    - tableOffsetOut
    argTypes:
    - TSK_FS_ATTR*
    - CMP_OFFSET_ENTRY**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2580
    functionDepth: 2
    functionLinenumber: 2580
    functionLinenumberEnd: 2666
    functionName: hfs_read_zlib_block_table
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - error_returned
    - tsk_getu32
    - tsk_malloc
    - free
    - tsk_fs_attr_read
    linkageType: ''
    returnType: int
    signature: int hfs_read_zlib_block_table(const TSK_FS_ATTR *rAttr, CMP_OFFSET_ENTRY**
      offsetTableOut, uint32_t* tableSizeOut, uint32_t* tableOffsetOut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2691,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2694,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2700,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2705,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2710,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2712,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:2721,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2724,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2729,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2732,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:2744,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2750,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2758,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:2759,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 4
    argNames:
    - rAttr
    - offsetTableOut
    - tableSizeOut
    - tableOffsetOut
    argTypes:
    - TSK_FS_ATTR*
    - CMP_OFFSET_ENTRY**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2679
    functionDepth: 2
    functionLinenumber: 2679
    functionLinenumberEnd: 2761
    functionName: hfs_read_lzvn_block_table
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - error_returned
    - tsk_getu32
    - tsk_malloc
    - free
    - tsk_fs_attr_read
    linkageType: ''
    returnType: int
    signature: int hfs_read_lzvn_block_table(const TSK_FS_ATTR *rAttr, CMP_OFFSET_ENTRY**
      offsetTableOut, uint32_t* tableSizeOut, uint32_t* tableOffsetOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2777,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2781,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:2787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2774
    functionDepth: 4
    functionLinenumber: 2774
    functionLinenumberEnd: 2790
    functionName: hfs_decompress_noncompressed_block
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - error_detected
    - tsk_fprintf
    - memcpy
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_noncompressed_block(char* rawBuf, uint32_t len,
      char* uncBuf, uint64_t* uncLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2810,1
    - Dst: zlib_inflate
      Src: /src/sleuthkit/tsk/fs/hfs.c:2814,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2818,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2825,1
    - Dst: hfs_decompress_noncompressed_block
      Src: /src/sleuthkit/tsk/fs/hfs.c:2835,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2804
    functionDepth: 5
    functionLinenumber: 2804
    functionLinenumberEnd: 2837
    functionName: hfs_decompress_zlib_block
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - hfs_decompress_noncompressed_block
    - error_returned
    - error_detected
    - zlib_inflate
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_zlib_block(char* rawBuf, uint32_t len, char* uncBuf,
      uint64_t* uncLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzvn_decode_buffer
      Src: /src/sleuthkit/tsk/fs/hfs.c:2855,1
    - Dst: hfs_decompress_noncompressed_block
      Src: /src/sleuthkit/tsk/fs/hfs.c:2860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2851
    functionDepth: 5
    functionLinenumber: 2851
    functionLinenumberEnd: 2862
    functionName: hfs_decompress_lzvn_block
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - lzvn_decode_buffer
    - hfs_decompress_noncompressed_block
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_lzvn_block(char* rawBuf, uint32_t len, char* uncBuf,
      uint64_t* uncLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2901,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2915,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:2921,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:2929,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2932,1
    - Dst: decompress_block
      Src: /src/sleuthkit/tsk/fs/hfs.c:2937,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:2948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 7
    argNames:
    - rAttr
    - rawBuf
    - uncBuf
    - offsetTable
    - offsetTableSize
    - offsetTableOffset
    - indx
    argTypes:
    - TSK_FS_ATTR*
    - char*
    - char*
    - CMP_OFFSET_ENTRY*
    - uint32_t
    - uint32_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2880
    functionDepth: 4
    functionLinenumber: 2880
    functionLinenumberEnd: 2957
    functionName: read_and_decompress_block
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - decompress_block
    - error_returned
    - error_detected
    - tsk_fs_attr_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read_and_decompress_block(\n  const TSK_FS_ATTR* rAttr,\n
      \ char* rawBuf,\n  char* uncBuf,\n  const CMP_OFFSET_ENTRY* offsetTable,\n  uint32_t
      offsetTableSize,\n  uint32_t offsetTableOffset,\n  size_t indx,\n  int (*decompress_block)(char*
      rawBuf,\n                          uint32_t len,\n                          char*
      uncBuf,\n                          uint64_t* uncLen)\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:2995,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:2999,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3003,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3004,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3012,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3021,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:3034,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3037,1
    - Dst: read_block_table
      Src: /src/sleuthkit/tsk/fs/hfs.c:3043,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3051,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3053,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3058,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3060,1
    - Dst: read_and_decompress_block
      Src: /src/sleuthkit/tsk/fs/hfs.c:3073,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3098,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3103,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/hfs.c:3108,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3113,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3129,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3130,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3131,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3135,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3136,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3137,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 2971
    functionDepth: 4
    functionLinenumber: 2971
    functionLinenumberEnd: 3139
    functionName: hfs_attr_walk_compressed_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - read_and_decompress_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - error_returned
    - a_action
    - tsk_malloc
    - tsk_error_set_errno
    - error_detected
    - tsk_fs_file_attr_get_type
    - free
    - read_block_table
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_attr_walk_compressed_rsrc(const TSK_FS_ATTR * fs_attr,\n
      \   int flags, TSK_FS_FILE_WALK_CB a_action, void *ptr,\n    int (*read_block_table)(const
      TSK_FS_ATTR *rAttr,\n                            CMP_OFFSET_ENTRY** offsetTableOut,\n
      \                           uint32_t* tableSizeOut,\n                            uint32_t*
      tableOffsetOut),\n    int (*decompress_block)(char* rawBuf,\n                            uint32_t
      len,\n                            char* uncBuf,\n                            uint64_t*
      uncLen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_attr_walk_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3154
    functionDepth: 5
    functionLinenumber: 3154
    functionLinenumberEnd: 3163
    functionName: hfs_attr_walk_zlib_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_attr_walk_compressed_rsrc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_attr_walk_zlib_rsrc(const TSK_FS_ATTR * fs_attr,\n    int
      flags, TSK_FS_FILE_WALK_CB a_action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_attr_walk_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3176
    functionDepth: 5
    functionLinenumber: 3176
    functionLinenumberEnd: 3185
    functionName: hfs_attr_walk_lzvn_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_attr_walk_compressed_rsrc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_attr_walk_lzvn_rsrc(const TSK_FS_ATTR * fs_attr,\n    int
      flags, TSK_FS_FILE_WALK_CB a_action, void *ptr)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3227,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3235,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3242,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3251,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3258,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3268,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:3281,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3284,1
    - Dst: read_block_table
      Src: /src/sleuthkit/tsk/fs/hfs.c:3290,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3300,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3310,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3319,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3321,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3326,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3328,1
    - Dst: read_and_decompress_block
      Src: /src/sleuthkit/tsk/fs/hfs.c:3339,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:3367,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs.c:3381,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3384,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3385,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3386,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3391,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3392,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3393,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3201
    functionDepth: 4
    functionLinenumber: 3201
    functionLinenumberEnd: 3395
    functionName: hfs_file_read_compressed_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    - read_and_decompress_block
    - error_returned
    - memcpy
    - tsk_malloc
    - error_detected
    - tsk_fs_file_attr_get_type
    - free
    - read_block_table
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t hfs_file_read_compressed_rsrc(const TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_OFF_T a_offset, char *a_buf, size_t a_len,\n    int (*read_block_table)(const
      TSK_FS_ATTR *rAttr,\n                            CMP_OFFSET_ENTRY** offsetTableOut,\n
      \                           uint32_t* tableSizeOut,\n                            uint32_t*
      tableOffsetOut),\n    int (*decompress_block)(char* rawBuf,\n                            uint32_t
      len,\n                            char* uncBuf,\n                            uint64_t*
      uncLen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_file_read_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3411
    functionDepth: 5
    functionLinenumber: 3411
    functionLinenumberEnd: 3420
    functionName: hfs_file_read_zlib_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_file_read_compressed_rsrc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t hfs_file_read_zlib_rsrc(const TSK_FS_ATTR * a_fs_attr,\n    TSK_OFF_T
      a_offset, char *a_buf, size_t a_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_file_read_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3443
      start: 3434
    functionDepth: 5
    functionLinenumber: 3434
    functionLinenumberEnd: 3443
    functionName: hfs_file_read_lzvn_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_file_read_compressed_rsrc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t hfs_file_read_lzvn_rsrc(const TSK_FS_ATTR * a_fs_attr,\n    TSK_OFF_T
      a_offset, char *a_buf, size_t a_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3460
    functionDepth: 4
    functionLinenumber: 3460
    functionLinenumberEnd: 3470
    functionName: hfs_decompress_noncompressed_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_noncompressed_attr(char* rawBuf, uint32_t rawSize,
      uint64_t uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hfs_decompress_noncompressed_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3490,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3501,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3506,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3508,1
    - Dst: zlib_inflate
      Src: /src/sleuthkit/tsk/fs/hfs.c:3513,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3517,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3519,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3524,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3527,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3485
    functionDepth: 5
    functionLinenumber: 3485
    functionLinenumberEnd: 3554
    functionName: hfs_decompress_zlib_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - error_returned
    - tsk_malloc
    - error_detected
    - hfs_decompress_noncompressed_attr
    - free
    - zlib_inflate
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_zlib_attr(char* rawBuf, uint32_t rawSize, uint64_t
      uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hfs_decompress_noncompressed_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3575,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3579,1
    - Dst: lzvn_decode_buffer
      Src: /src/sleuthkit/tsk/fs/hfs.c:3580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3570
    functionDepth: 5
    functionLinenumber: 3570
    functionLinenumberEnd: 3585
    functionName: hfs_decompress_lzvn_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - lzvn_decode_buffer
    - tsk_malloc
    - hfs_decompress_noncompressed_attr
    linkageType: ''
    returnType: int
    signature: int hfs_decompress_lzvn_attr(char* rawBuf, uint32_t rawSize, uint64_t
      uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3616,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3621,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:3633,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3636,1
    - Dst: decompress_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3644,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3650,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3656,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:3663,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3669,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3674,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3680,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - fs_file
    - cmpType
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - uint8_t
    - char*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3600
    functionDepth: 4
    functionLinenumber: 3600
    functionLinenumberEnd: 3683
    functionName: hfs_file_read_compressed_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - error_returned
    - error_detected
    - decompress_attr
    - tsk_fs_attr_set_str
    - free
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: int
    signature: "int hfs_file_read_compressed_attr(TSK_FS_FILE* fs_file,\n                              uint8_t
      cmpType,\n                              char* buffer,\n                              uint32_t
      attributeLength,\n                              uint64_t uncSize,\n                              int
      (*decompress_attr)(char* rawBuf,\n                                                     uint32_t
      rawSize,\n                                                     uint64_t uncSize,\n
      \                                                    char** dstBuf,\n                                                     uint64_t*
      dstSize,\n                                                     int* dstBufFree))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_file_read_compressed_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_file
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - char*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3697
    functionDepth: 5
    functionLinenumber: 3697
    functionLinenumberEnd: 3707
    functionName: hfs_file_read_zlib_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_file_read_compressed_attr
    linkageType: ''
    returnType: int
    signature: "int hfs_file_read_zlib_attr(TSK_FS_FILE* fs_file,\n                            char*
      buffer,\n                            uint32_t attributeLength,\n                            uint64_t
      uncSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_file_read_compressed_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_file
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - char*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3720
    functionDepth: 5
    functionLinenumber: 3720
    functionLinenumberEnd: 3730
    functionName: hfs_file_read_lzvn_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_file_read_compressed_attr
    linkageType: ''
    returnType: int
    signature: "int hfs_file_read_lzvn_attr(TSK_FS_FILE* fs_file,\n                            char*
      buffer,\n                            uint32_t attributeLength,\n                            uint64_t
      uncSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:3764,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3767,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3768,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3773,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3774,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:3780,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3783,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3784,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3792,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3795,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3796,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:3802,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3807,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3808,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:3810,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3811,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:3819,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:3820,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:3821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - fs
    - attr_file
    argTypes:
    - TSK_FS_INFO*
    - ATTR_FILE_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3755
    functionDepth: 3
    functionLinenumber: 3755
    functionLinenumberEnd: 3824
    functionName: open_attr_file
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - malloc
    - tsk_getu32
    - tsk_fs_file_read
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t open_attr_file(TSK_FS_INFO * fs, ATTR_FILE_T * attr_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:3834,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:3835,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:3840,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:3844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - attr_file
    argTypes:
    - ATTR_FILE_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3830
    functionDepth: 3
    functionLinenumber: 3830
    functionLinenumberEnd: 3851
    functionName: close_attr_file
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - free
    - tsk_error_set_errno
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t close_attr_file(ATTR_FILE_T * attr_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - typeNum
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3854
    functionDepth: 0
    functionLinenumber: 3854
    functionLinenumberEnd: 3871
    functionName: hfs_attrTypeName
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      hfs_attrTypeName(uint32_t typeNum)'
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:3896,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3903,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3916,1
    - Dst: open_attr_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:3922,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3923,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3931,1
    - Dst: close_attr_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:3933,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3940,1
    - Dst: close_attr_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:3942,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:3947,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3949,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:3969,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/hfs.c:3975,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3976,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:3983,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:3988,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/hfs.c:3994,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:3995,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4015,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4023,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4026,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4040,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4047,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4052,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4067,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4081,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4104,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4109,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4123,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4147,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4150,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4157,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4163,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4171,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4183,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4200,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4219,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4224,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4240,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4242,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4249,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4254,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4260,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4262,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4269,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4275,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4277,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:4282,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs.c:4292,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4295,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/hfs.c:4303,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4304,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4308,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:4309,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4313,1
    - Dst: decmpfs_file_read_zlib_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:4324,1
    - Dst: decmpfs_file_read_lzvn_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:4332,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4343,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:4353,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4355,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4360,1
    - Dst: hfs_attrTypeName
      Src: /src/sleuthkit/tsk/fs/hfs.c:4363,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:4367,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4370,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4374,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4406,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4410,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4417,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4423,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:4429,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4434,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4444,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4455,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4456,1
    - Dst: close_attr_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:4457,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4461,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4462,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4463,1
    - Dst: close_attr_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:4464,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 296
    argCount: 4
    argNames:
    - fs_file
    - isCompressed
    - cmpType
    - uncompressedSize
    argTypes:
    - TSK_FS_FILE*
    - unsigned char*
    - unsigned char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4466
      start: 3876
    functionDepth: 4
    functionLinenumber: 3876
    functionLinenumberEnd: 4466
    functionName: hfs_load_extended_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 4
    functionsReached:
    - tsk_fprintf
    - hfs_attrTypeName
    - tsk_fs_file_read
    - error_detected
    - tsk_getu64
    - tsk_fs_attrlist_getnew
    - close_attr_file
    - memcpy
    - decmpfs_file_read_lzvn_attr
    - open_attr_file
    - tsk_error_reset
    - error_returned
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - strcmp
    - decmpfs_file_read_zlib_attr
    - hfs_UTF16toUTF8
    - malloc
    - tsk_list_find
    - tsk_list_free
    - tsk_fs_attr_set_str
    - tsk_list_add
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_load_extended_attrs(TSK_FS_FILE * fs_file,\n    unsigned
      char *isCompressed, unsigned char *cmpType,\n    uint64_t *uncompressedSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4485,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4486,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rd
    argTypes:
    - RES_DESCRIPTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4477
    functionDepth: 1
    functionLinenumber: 4477
    functionLinenumberEnd: 4488
    functionName: free_res_descriptor
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 1
    functionsReached:
    - free
    - free_res_descriptor
    linkageType: ''
    returnType: void
    signature: void free_res_descriptor(RES_DESCRIPTOR * rd)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4532,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4539,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4546,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4554,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:4564,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:4577,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4582,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:4591,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4596,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4603,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4604,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4606,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4609,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4611,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:4617,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4621,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4623,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4629,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4631,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4642,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4652,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4653,1
    - Dst: tsk_gets16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4666,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4675,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4677,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4686,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4688,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4691,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4693,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4695,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:4698,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4702,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4704,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4706,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:4709,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4713,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4715,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4717,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:4729,1
    - Dst: tsk_getu24
      Src: /src/sleuthkit/tsk/fs/hfs.c:4731,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:4736,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4740,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:4742,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4745,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs.c:4749,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 127
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4501
    functionDepth: 2
    functionLinenumber: 4501
    functionLinenumberEnd: 4759
    functionName: hfs_parse_resource_fork
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_gets16
    - tsk_getu24
    - fprintf
    - error_returned
    - tsk_getu32
    - free_res_descriptor
    - memcpy
    - tsk_getu16
    - tsk_malloc
    - error_detected
    - tsk_fs_file_attr_get_type
    - free
    - tsk_fs_attr_read
    - tsk_getu64
    linkageType: ''
    returnType: RES_DESCRIPTOR
    signature: 'RES_DESCRIPTOR *

      hfs_parse_resource_fork(TSK_FS_FILE * fs_file)'
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:4779,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:4783,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4792,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4800,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4806,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/hfs.c:4813,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:4816,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4824,1
    - Dst: hfs_load_extended_attrs
      Src: /src/sleuthkit/tsk/fs/hfs.c:4827,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4829,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4854,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4860,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:4883,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4891,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:4895,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4897,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:4908,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:4910,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4911,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:4918,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:4921,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4924,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:4925,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:4930,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4933,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:4942,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4945,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:4964,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:4970,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:4978,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4980,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:4990,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:4992,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:4993,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:4998,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:5000,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:5001,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5002,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5004,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5005,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5010,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5012,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5023,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/hfs.c:5027,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5029,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5047,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:5050,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5053,1
    - Dst: hfs_extents_to_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5069,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5071,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5072,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5078,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/hfs.c:5082,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5086,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5089,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5091,1
    - Dst: hfs_ext_find_extent_record_attr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5096,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5098,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5105,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5115,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 162
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5124
      start: 4762
    functionDepth: 6
    functionLinenumber: 4762
    functionLinenumberEnd: 5124
    functionName: hfs_load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_reset
    - tsk_fs_attrlist_getnew
    - error_returned
    - tsk_fs_attr_set_run
    - tsk_getu32
    - hfs_ext_find_extent_record_attr
    - tsk_fs_attrlist_alloc
    - error_detected
    - tsk_error_get_errno
    - hfs_extents_to_attr
    - tsk_fs_attrlist_markunused
    - hfs_load_extended_attrs
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_load_attrs(TSK_FS_FILE * fs_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:5146,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:5148,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/hfs.c:5154,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:5157,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5168,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5169,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:5179,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:5183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - hfs
    - a_addr
    argTypes:
    - HFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5193
      start: 5136
    functionDepth: 3
    functionLinenumber: 5136
    functionLinenumberEnd: 5193
    functionName: hfs_block_is_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - tsk_error_errstr2_concat
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_error_set_errstr2
    - tsk_fs_attr_read
    linkageType: ''
    returnType: int8_t
    signature: int8_t hfs_block_is_alloc(HFS_INFO * hfs, TSK_DADDR_T a_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hfs_block_is_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5201
      start: 5196
    functionDepth: 4
    functionLinenumber: 5196
    functionLinenumberEnd: 5201
    functionName: hfs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_block_is_alloc
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM hfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5215,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5221,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5227,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5228,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5233,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5234,1
    - Dst: XSWAP
      Src: /src/sleuthkit/tsk/fs/hfs.c:5240,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5255,1
    - Dst: hfs_block_is_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5267,1
    - Dst: tsk_fs_block_get_flag
      Src: /src/sleuthkit/tsk/fs/hfs.c:5281,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5283,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/hfs.c:5287,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5292,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5297,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 6
    argNames:
    - fs
    - start_blk
    - end_blk
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5299
      start: 5204
    functionDepth: 4
    functionLinenumber: 5204
    functionLinenumberEnd: 5299
    functionName: hfs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_fprintf
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - hfs_block_is_alloc
    - XSWAP
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_fs_block_get_flag
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T start_blk,\n
      \   TSK_DADDR_T end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM flags,\n    TSK_FS_BLOCK_WALK_CB
      action, void *ptr)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5311,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5319,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5320,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5321,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5327,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5328,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5329,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5357,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5360,1
    - Dst: XSWAP
      Src: /src/sleuthkit/tsk/fs/hfs.c:5364,1
    - Dst: hfs_inode_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:5369,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5371,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5372,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/hfs.c:5384,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:5386,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:5390,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:5395,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5397
      start: 5302
    functionDepth: 8
    functionLinenumber: 5302
    functionLinenumberEnd: 5397
    functionName: hfs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - action
    - hfs_inode_lookup
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_meta_alloc
    - XSWAP
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_error_get_errno
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,\n
      \   TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM flags,\n    TSK_FS_META_WALK_CB
      action, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:5409,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:5412,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs.c:5416,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5417,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:5419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5424
      start: 5402
    functionDepth: 7
    functionLinenumber: 5402
    functionLinenumberEnd: 5424
    functionName: hfs_get_inode_name
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - hfs_cat_file_lookup
    - malloc
    - tsk_getu16
    - free
    - hfs_UTF16toUTF8
    linkageType: ''
    returnType: char
    signature: 'char *

      hfs_get_inode_name(TSK_FS_INFO * fs, TSK_INUM_T inum)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:5435,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs.c:5438,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5439,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hFile
    - fs
    - inum
    argTypes:
    - FILE*
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5446
      start: 5428
    functionDepth: 7
    functionLinenumber: 5428
    functionLinenumberEnd: 5446
    functionName: print_inode_name
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    - hfs_cat_file_lookup
    - hfs_UTF16toUTF8
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t print_inode_name(FILE * hFile, TSK_FS_INFO * fs, TSK_INUM_T
      inum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5463,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5464,1
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:5469,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs.c:5472,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5473,1
    - Dst: print_parent_path
      Src: /src/sleuthkit/tsk/fs/hfs.c:5478,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5478,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - hFile
    - fs
    - inum
    argTypes:
    - FILE*
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5484
      start: 5452
    functionDepth: 7
    functionLinenumber: 5452
    functionLinenumberEnd: 5484
    functionName: print_parent_path
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 1
    functionsReached:
    - hfs_cat_file_lookup
    - print_parent_path
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - hfs_UTF16toUTF8
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t print_parent_path(FILE * hFile, TSK_FS_INFO * fs, TSK_INUM_T
      inum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5493,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5495,1
    - Dst: print_parent_path
      Src: /src/sleuthkit/tsk/fs/hfs.c:5497,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5498,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - hFile
    - fs
    - inum
    argTypes:
    - FILE*
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5504
      start: 5490
    functionDepth: 8
    functionLinenumber: 5490
    functionLinenumberEnd: 5504
    functionName: print_inode_file
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - print_parent_path
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t print_inode_file(FILE * hFile, TSK_FS_INFO * fs, TSK_INUM_T
      inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5509,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:5510,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5513
      start: 5506
    functionDepth: 3
    functionLinenumber: 5506
    functionLinenumberEnd: 5513
    functionName: hfs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5527,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5529,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5530,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5532,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5533,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5534,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5535,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5536,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5538,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5541,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5542,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5544,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5547,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5550,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5551,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5555,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5556,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5561,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5566,1
    - Dst: print_inode_name
      Src: /src/sleuthkit/tsk/fs/hfs.c:5567,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5569,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5571,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5572,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5573,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5577,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5578,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5579,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5580,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5581,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5582,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5583,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5584,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5585,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5586,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5587,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5589,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5590,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5593,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5594,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5596,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5598,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5600,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5601,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:5607,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5607,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5608,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:5609,1
    - Dst: mktime
      Src: /src/sleuthkit/tsk/fs/hfs.c:5609,1
    - Dst: gmtime
      Src: /src/sleuthkit/tsk/fs/hfs.c:5609,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:5612,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5612,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5613,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:5614,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:5617,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5617,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5619,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:5620,1
    - Dst: hfs_convert_2_unix_time
      Src: /src/sleuthkit/tsk/fs/hfs.c:5623,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5623,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5624,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:5625,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5628,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5629,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5632,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5633,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5634,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5637,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5638,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5640,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5643,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5644,1
    - Dst: print_inode_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:5646,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5647,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5649,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5650,1
    - Dst: print_inode_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:5652,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5653,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5655,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5656,1
    - Dst: print_inode_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:5658,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5659,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5661,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5662,1
    - Dst: print_inode_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:5665,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5666,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5668,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5669,1
    - Dst: print_inode_file
      Src: /src/sleuthkit/tsk/fs/hfs.c:5672,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5673,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5675,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5676,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5677,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5678,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5681,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5682,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5684,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5688,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5692,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5694,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5695,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5697,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5698,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5516
    functionDepth: 9
    functionLinenumber: 5516
    functionLinenumberEnd: 5701
    functionName: hfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_getu32
    - tsk_fs_time_to_str
    - gmtime
    - print_inode_name
    - tsk_getu16
    - print_inode_file
    - hfs_convert_2_unix_time
    - mktime
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hfs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 43
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 1
    argNames:
    - enc
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5797
      start: 5710
    functionDepth: 0
    functionLinenumber: 5710
    functionLinenumberEnd: 5797
    functionName: text_encoding_name
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      text_encoding_name(uint32_t enc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5814,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5818,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - print
    argTypes:
    - HFS_PRINT_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5826
      start: 5808
    functionDepth: 4
    functionLinenumber: 5808
    functionLinenumberEnd: 5826
    functionName: output_print_addr
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void output_print_addr(HFS_PRINT_ADDR * print)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: output_print_addr
      Src: /src/sleuthkit/tsk/fs/hfs.c:5839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5828
    functionDepth: 5
    functionLinenumber: 5828
    functionLinenumberEnd: 5852
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - output_print_addr
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *ptr)"
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:5879,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5882,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:5886,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:5887,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5893,1
    - Dst: print_parent_path
      Src: /src/sleuthkit/tsk/fs/hfs.c:5894,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5896,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5898,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5905,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5909,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5910,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5913,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5915,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/hfs.c:5916,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5917,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5919,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/hfs.c:5921,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5922,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5923,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5926,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5928,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5931,1
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs.c:5933,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5938,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs.c:5939,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:5939,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5942,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5945,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/hfs.c:5948,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/hfs.c:5949,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5953,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5958,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5966,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5967,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5969,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5972,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5977,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:5978,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5981,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5984,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5986,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5988,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5990,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5992,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5994,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5997,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:5999,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6001,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6003,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6005,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6007,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6009,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6011,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6013,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6014,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6016,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6017,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6019,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/hfs.c:6022,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6024,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6026,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6031,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6033,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6035,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6036,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6038,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6042,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6044,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6046,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6049,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6051,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6052,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6054,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6055,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6057,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6058,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6060,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6062,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6063,1
    - Dst: text_encoding_name
      Src: /src/sleuthkit/tsk/fs/hfs.c:6064,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6064,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6067,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6069,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:6070,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6075,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6087,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6088,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6089,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6090,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6091,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6092,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6093,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6094,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6095,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6096,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6116,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6117,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6118,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6119,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6120,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6121,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6122,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6123,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6124,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/hfs.c:6125,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6128,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6135,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:6142,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6147,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/hfs.c:6148,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:6149,1
    - Dst: output_print_addr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6152,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6154,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:6160,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6163,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/hfs.c:6171,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6176,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/hfs.c:6177,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:6178,1
    - Dst: output_print_addr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6181,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6183,1
    - Dst: tsk_fs_file_attr_get
      Src: /src/sleuthkit/tsk/fs/hfs.c:6190,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6193,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/hfs.c:6198,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/hfs.c:6202,1
    - Dst: hfs_attrTypeName
      Src: /src/sleuthkit/tsk/fs/hfs.c:6206,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6215,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/hfs.c:6229,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6230,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/hfs.c:6231,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:6232,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6237,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:6257,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6268,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6273,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:6288,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:6290,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:6293,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs.c:6297,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6298,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/hfs.c:6302,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6304,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6309,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:6310,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6312,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6313,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6337,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6346,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6352,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6357,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6361,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/hfs.c:6365,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6366,1
    - Dst: hfs_parse_resource_fork
      Src: /src/sleuthkit/tsk/fs/hfs.c:6372,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6376,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6378,1
    - Dst: free_res_descriptor
      Src: /src/sleuthkit/tsk/fs/hfs.c:6385,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6387,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 279
    argCount: 6
    argNames:
    - fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 5865
    functionDepth: 8
    functionLinenumber: 5865
    functionLinenumberEnd: 6389
    functionName: hfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - output_print_addr
    - tsk_error_print
    - tsk_fprintf
    - hfs_parse_resource_fork
    - hfs_attrTypeName
    - tsk_fs_file_walk_type
    - error_detected
    - tsk_getu64
    - tsk_fs_file_attr_get_idx
    - tsk_fs_attr_print
    - free_res_descriptor
    - tsk_fs_time_to_str
    - tsk_fs_file_open_meta
    - TSK_FS_IS_DIR_META
    - hfs_cat_file_lookup
    - strncmp
    - print_parent_path
    - tsk_fs_file_attr_get
    - tsk_error_reset
    - error_returned
    - tsk_getu32
    - text_encoding_name
    - tsk_getu16
    - tsk_malloc
    - hfs_UTF16toUTF8
    - tsk_fs_attr_read
    - tsk_fs_file_attr_getsize
    - tsk_fs_meta_make_ls
    - tsk_fs_file_close
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_istat(TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6415
    functionName: hfs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM hfs_get_default_attr_type(const TSK_FS_FILE *
      a_file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/hfs.c:6422,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6425,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6428,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6433,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6438,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6443,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6448,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/hfs.c:6452,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/hfs.c:6453,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6456
      start: 6417
    functionDepth: 1
    functionLinenumber: 6417
    functionLinenumberEnd: 6456
    functionName: hfs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_deinit_lock
    - tsk_fs_free
    - tsk_release_lock
    - tsk_fs_file_close
    - free
    - tsk_fs_dir_close
    linkageType: ''
    returnType: void
    signature: void hfs_close(TSK_FS_INFO * fs)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:6475,1
    - Dst: TSK_FS_TYPE_ISHFS
      Src: /src/sleuthkit/tsk/fs/hfs.c:6477,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6478,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6479,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:6483,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs.c:6500,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6502,1
    - Dst: hfs_checked_read_random
      Src: /src/sleuthkit/tsk/fs/hfs.c:6506,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:6508,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6510,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6511,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6518,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6519,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6520,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6523,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6524,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6525,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6526,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6534,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6539,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6541,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6547,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6551,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6554,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6566,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6571,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6572,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6576,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6577,1
    - Dst: hfs_open
      Src: /src/sleuthkit/tsk/fs/hfs.c:6581,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6591,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6592,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6593,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6594,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6600,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6610,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6615,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/hfs.c:6616,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6617,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs.c:6618,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/hfs.c:6627,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6660,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6663,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6669,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6673,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6675,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6681,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6686,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6688,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6694,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:6700,1
    - Dst: hfs_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6702,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/hfs.c:6708,1
    - Dst: hfs_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6711,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs.c:6712,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/hfs.c:6718,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs.c:6723,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs.c:6724,1
    - Dst: hfs_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6726,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/hfs.c:6727,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6731,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6733,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6740,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6749,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs.c:6751,1
    - Dst: hfs_find_highest_inum
      Src: /src/sleuthkit/tsk/fs/hfs.c:6756,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6759,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6760,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs.c:6761,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:6774,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6778,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/hfs.c:6801,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:6805,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6810,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/hfs.c:6821,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs.c:6824,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/hfs.c:6829,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6836,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6841,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6846,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6852,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6855,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6858,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6861,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 223
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6870
      start: 6463
    functionDepth: 6
    functionLinenumber: 6463
    functionLinenumberEnd: 6870
    functionName: hfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr2
    - tsk_fprintf
    - tsk_init_lock
    - tsk_error_set_errno
    - snprintf
    - hfs_open
    - tsk_fs_path2inum
    - hfs_find_highest_inum
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - hfs_close
    - tsk_error_reset
    - tsk_getu32
    - tsk_fs_guessu16
    - tsk_fs_free
    - tsk_malloc
    - tsk_getu16
    - tsk_fs_malloc
    - tsk_fs_attr_read
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - TSK_FS_TYPE_ISHFS
    - tsk_fs_file_close
    - free
    - hfs_checked_read_random
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\nhfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,\n
      \   TSK_FS_TYPE_ENUM ftype, const char* a_pass, uint8_t test)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/fs/hfs.c:6893,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/fs/hfs.c:6896,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/hfs.c:6904,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6905,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/hfs.c:6909,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6910,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/fs/hfs.c:6915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - errnum
    - errstr
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6917
      start: 6888
    functionDepth: 2
    functionLinenumber: 6888
    functionLinenumberEnd: 6917
    functionName: error_detected
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 14
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    - va_start
    - va_end
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void error_detected(uint32_t errnum, const char *errstr, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tsk/fs/hfs.c:6932,1
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/tsk/fs/hfs.c:6935,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/hfs.c:6941,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tsk/fs/hfs.c:6942,1
    - Dst: va_end
      Src: /src/sleuthkit/tsk/fs/hfs.c:6946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - errstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6928
    functionDepth: 2
    functionLinenumber: 6928
    functionLinenumberEnd: 6947
    functionName: error_returned
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs.c
    functionUses: 21
    functionsReached:
    - vsnprintf
    - tsk_error_get_info
    - va_start
    - va_end
    - strlen
    linkageType: ''
    returnType: void
    signature: void error_returned(const char *errstr, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:111,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:115,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:118,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:140,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:144,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:148,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:152,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:154,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - fs
    - uni
    - ulen
    - asc
    - alen
    - flags
    argTypes:
    - TSK_FS_INFO*
    - uint8_t*
    - int
    - char*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 161
    functionName: hfs_UTF16toUTF8
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_dent.c
    functionUses: 5
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_UTF16toUTF8
    - memcpy
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_UTF16toUTF8(TSK_FS_INFO * fs, uint8_t * uni, int ulen,
      char *asc,\n    int alen, uint32_t flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 189
    functionName: hfsmode2tsknametype
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_dent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_TYPE_ENUM
    signature: TSK_FS_NAME_TYPE_ENUM hfsmode2tsknametype(uint16_t a_mode)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:208,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:210,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:215,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:228,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:232,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:238,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:239,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:242,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:245,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:246,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:249,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:253,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:254,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:262,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:263,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:267,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:269,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:277,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:278,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:284,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:292,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:294,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:295,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:299,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:309,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:310,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:317,1
    - Dst: hfs_follow_hard_link
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:319,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:321,1
    - Dst: hfs_cat_file_lookup
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:333,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:336,1
    - Dst: hfsmode2tsknametype
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:341,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:341,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:347,1
    - Dst: hfsmode2tsknametype
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:349,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:349,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:358,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:359,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:360,1
    - Dst: hfs_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:364,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:371,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:373,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:379,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 101
    argCount: 7
    argNames:
    - hfs
    - level_type
    - cur_key
    - cur_keylen
    - nodesize
    - key_off
    - ptr
    argTypes:
    - HFS_INFO*
    - int8_t
    - hfs_btree_key_cat*
    - int
    - size_t
    - TSK_OFF_T
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 384
    functionName: hfs_dir_open_meta_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_dent.c
    functionUses: 0
    functionsReached:
    - hfs_cat_file_lookup
    - fprintf
    - tsk_error_set_errstr
    - error_returned
    - tsk_getu32
    - strcpy
    - tsk_getu16
    - tsk_error_set_errno
    - hfs_follow_hard_link
    - hfsmode2tsknametype
    - hfs_UTF16toUTF8
    - tsk_fs_dir_add
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t hfs_dir_open_meta_cb(HFS_INFO * hfs, int8_t level_type,\n
      \   const hfs_btree_key_cat * cur_key, int cur_keylen, size_t nodesize,\n    TSK_OFF_T
      key_off, void *ptr)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:411,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:416,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:420,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:421,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:422,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:427,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:428,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:429,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:435,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:441,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:445,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:449,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:456,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:457,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:458,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:470,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:475,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:483,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:488,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:495,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:502,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:519,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:520,1
    - Dst: hfs_cat_traverse
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:527,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:528,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:532,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 4
    argNames:
    - fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 534
    functionName: hfs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - hfs_cat_traverse
    - tsk_fprintf
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - tsk_fs_dir_reset
    - tsk_error_errstr2_concat
    - tsk_fs_name_free
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - strncpy
    - tsk_fs_name_alloc
    - tsk_fs_dir_add
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM hfs_dir_open_meta(TSK_FS_INFO * fs, TSK_FS_DIR **
      a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:541,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/hfs_dent.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_fs_info
    - s1
    - s2
    argTypes:
    - TSK_FS_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: hfs_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_dent.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int hfs_name_cmp(TSK_FS_INFO * a_fs_info, const char *s1, const char
      *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:59,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:61,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:63,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:67,1
    - Dst: time
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:69,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:74,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:75,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:80,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: print_header
    functionSourceFile: /src/sleuthkit/tsk/fs/ils_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    - tsk_fprintf
    - time
    - strcpy
    - gethostname
    linkageType: ''
    returnType: void
    signature: void print_header(TSK_FS_INFO * fs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:92,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:94,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:95,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:99,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 107
    functionName: print_header_mac
    functionSourceFile: /src/sleuthkit/tsk/fs/ils_lib.c
    functionUses: 0
    functionsReached:
    - strcpy
    - tsk_printf
    - gethostname
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_header_mac()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:139,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:154,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 159
    functionName: ils_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ils_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM ils_act(TSK_FS_FILE * fs_file, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:182,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:182,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:183,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:190,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 214
    functionName: ils_mac_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ils_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_meta_make_ls
    - tsk_printf
    - _TSK_T
    - TFPRINTF
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM ils_mac_act(TSK_FS_FILE * fs_file, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:265,1
    - Dst: strrchr
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:267,1
    - Dst: print_header_mac
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:273,1
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:275,1
    - Dst: print_header
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:279,1
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/ils_lib.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - fs
    - lclflags
    - istart
    - ilast
    - flags
    - skew
    - img
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ILS_FLAG_ENUM
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - int32_t
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 285
    functionName: tsk_fs_ils
    functionSourceFile: /src/sleuthkit/tsk/fs/ils_lib.c
    functionUses: 0
    functionsReached:
    - print_header
    - print_header_mac
    - TSK_FS_INFO*::inode_walk
    - strrchr
    - TSTRCHR
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_ils(TSK_FS_INFO * fs, TSK_FS_ILS_FLAG_ENUM lclflags,\n
      \   TSK_INUM_T istart, TSK_INUM_T ilast, TSK_FS_META_FLAG_ENUM flags,\n    int32_t
      skew, const TSK_TCHAR * img)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: APFSJObject::APFSJObject
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: APFSJObject::APFSJObject
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObject(const APFSJObject &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '&operator=(const APFSJObject &)'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSJObject
    signature: APFSJObject &operator=(const APFSJObject &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: APFSJObject::APFSJObject
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObject(APFSJObject &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '&operator=(APFSJObject &&)'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSJObject
    signature: APFSJObject &operator=(APFSJObject &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: APFSJObject::valid
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObject::size
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: APFSJObject::child_count
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached:
    - APFSJObject::size
    linkageType: ''
    returnType: auto
    signature: auto child_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: '&inode() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apfs_inode
    signature: apfs_inode &inode() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: '&name() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &name() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: '&extents() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<extent>
    signature: std::vector<extent> &extents() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: '&inline_xattrs() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<inline_xattr>
    signature: std::vector<inline_xattr> &inline_xattrs() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: '&nonres_xattrs() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<nonres_xattr>
    signature: std::vector<nonres_xattr> &nonres_xattrs() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: '&children() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<child_entry>
    signature: std::vector<child_entry> &children() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: APFSJObject::size
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: APFSJObject::size_on_disk
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t size_on_disk() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: APFSJObject::is_clone
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_clone() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_range
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:119,1
    - Dst: template as<APFSJObject::key_type>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:121,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: APFSJObjTree::jobjs
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached:
    - find_range
    - auto::oid
    - template as<APFSJObject::key_type>
    linkageType: ''
    returnType: auto
    signature: auto jobjs(uint64_t oid) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: APFSJObjTree::APFSJObjTree
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree(APFSJObjTree &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObjTree::jobjs
      Src: /src/sleuthkit/tsk/fs/apfs_fs.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: APFSJObjTree::obj
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached:
    - APFSJObjTree::jobjs
    linkageType: ''
    returnType: APFSJObject
    signature: APFSJObject obj(uint64_t oid) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: APFSJObjTree::iterator::iterator
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: APFSJObjTree::iterator::iterator
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iterator(const iterator &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: '&operator=(const iterator &)'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator
    signature: iterator &operator=(const iterator &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: APFSJObjTree::iterator::iterator
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iterator(iterator &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: '&operator=(iterator &&)'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator
    signature: iterator &operator=(iterator &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: operator*() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator*() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: operator->() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: operator==(const iterator &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iterator &rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: operator!=(const iterator &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iterator &rhs) const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:46,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:50,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:52,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:64,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:66,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - norm_namelen
    - shrt_namelen
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: tsk_fs_name_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 1
    functionsReached:
    - free
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_NAME
    signature: 'TSK_FS_NAME *

      tsk_fs_name_alloc(size_t norm_namelen, size_t shrt_namelen)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - fs_name
    - namelen
    argTypes:
    - TSK_FS_NAME*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: tsk_fs_name_realloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - tsk_realloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_name_realloc(TSK_FS_NAME * fs_name, size_t namelen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a_fs_name
    argTypes:
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: tsk_fs_name_reset
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsk_fs_name_reset(TSK_FS_NAME * a_fs_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:136,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:139,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_name.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fs_name
    argTypes:
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: tsk_fs_name_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_name_free(TSK_FS_NAME * fs_name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_name.c:161,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:166,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_name.c:174,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_name.c:187,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_name.c:190,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_name.c:191,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_name.c:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - a_fs_name_to
    - a_fs_name_from
    argTypes:
    - TSK_FS_NAME*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 216
    functionName: tsk_fs_name_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - tsk_realloc
    - strlen
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_name_copy(TSK_FS_NAME * a_fs_name_to,\n    const TSK_FS_NAME
      * a_fs_name_from)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/fs_name.c:243,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - a_fs_meta
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_META*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 294
    functionName: tsk_fs_meta_make_ls
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 2
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_meta_make_ls(const TSK_FS_META * a_fs_meta, char *a_buf,\n
      \   size_t a_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/sleuthkit/tsk/fs/fs_name.c:310,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_name.c:311,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - time
    - buf
    argTypes:
    - time_t
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: tsk_fs_time_to_str
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 2
    functionsReached:
    - localtime
    - snprintf
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_fs_time_to_str(time_t time, char buf[128])'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/sleuthkit/tsk/fs/fs_name.c:339,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_name.c:340,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - time
    - subsecs
    - buf
    argTypes:
    - time_t
    - unsigned int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: tsk_fs_time_to_str_subsecs
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 1
    functionsReached:
    - localtime
    - snprintf
    - strncpy
    linkageType: ''
    returnType: char
    signature: "char *\ntsk_fs_time_to_str_subsecs(time_t time, unsigned int subsecs,\n
      \   char buf[128])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fs_name.c:358,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hFile
    - time
    argTypes:
    - FILE*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: tsk_fs_print_time
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_fs_time_to_str
    linkageType: ''
    returnType: void
    signature: void tsk_fs_print_time(FILE * hFile, time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/sleuthkit/tsk/fs/fs_name.c:380,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:381,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hFile
    - time
    argTypes:
    - FILE*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: tsk_fs_print_day
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - localtime
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_fs_print_day(FILE * hFile, time_t time)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:412,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:415,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fs_name.c:430,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:431,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:435,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:438,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:442,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:448,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:450,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:454,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:457,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:463,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:465,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_name.c:475,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:476,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:477,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 6
    argNames:
    - hFile
    - fs_file
    - a_path
    - fs
    - fs_attr
    - print_path
    argTypes:
    - FILE*
    - TSK_FS_FILE*
    - char*
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 480
    functionName: tsk_fs_name_print
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - strcmp
    - tsk_print_sanitized
    - TSK_FS_IS_DIR_META
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: "void tsk_fs_name_print(FILE * hFile, const TSK_FS_FILE * fs_file,\n
      \   const char *a_path, TSK_FS_INFO * fs, const TSK_FS_ATTR * fs_attr,\n    uint8_t
      print_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_print
      Src: /src/sleuthkit/tsk/fs/fs_name.c:497,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:501,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:502,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:503,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:504,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:505,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:506,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:507,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:508,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:511,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:516,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:518,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:520,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:522,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fs_name.c:524,1
    - Dst: tsk_fs_print_day
      Src: /src/sleuthkit/tsk/fs/fs_name.c:525,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:527,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:529,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:531,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:533,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:535,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:537,1
    - Dst: tsk_fs_print_time
      Src: /src/sleuthkit/tsk/fs/fs_name.c:539,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:543,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:545,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - hFile
    - fs_file
    - a_path
    - fs
    - fs_attr
    - print_path
    - sec_skew
    argTypes:
    - FILE*
    - TSK_FS_FILE*
    - char*
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - uint8_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 550
    functionName: tsk_fs_name_print_long
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - TSK_FS_TYPE_ISFAT
    - tsk_fs_print_time
    - tsk_fs_print_day
    - tsk_fs_name_print
    linkageType: ''
    returnType: void
    signature: "void tsk_fs_name_print_long(FILE * hFile, const TSK_FS_FILE * fs_file,\n
      \   const char *a_path, TSK_FS_INFO * fs, const TSK_FS_ATTR * fs_attr,\n    uint8_t
      print_path, int32_t sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_print_mac_md5
      Src: /src/sleuthkit/tsk/fs/fs_name.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hFile
    - fs_file
    - a_path
    - fs_attr
    - prefix
    - time_skew
    argTypes:
    - FILE*
    - TSK_FS_FILE*
    - char*
    - TSK_FS_ATTR*
    - char*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: tsk_fs_name_print_mac
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 0
    functionsReached:
    - tsk_fs_name_print_mac_md5
    linkageType: ''
    returnType: void
    signature: "void tsk_fs_name_print_mac(FILE * hFile, const TSK_FS_FILE * fs_file,\n
      \   const char *a_path, const TSK_FS_ATTR * fs_attr,\n    const char *prefix,
      int32_t time_skew)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_name.c:617,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:625,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:629,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:631,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:635,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:639,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:641,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:645,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/fs_name.c:646,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:651,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:657,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:663,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:668,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:670,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:673,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:678,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:681,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:684,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/fs_name.c:688,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:689,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:692,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:697,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:699,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:703,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:710,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:713,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:717,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:720,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:724,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:727,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:731,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:734,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:740,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:743,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:746,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:749,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:752,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:755,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:758,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_name.c:761,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 7
    argNames:
    - hFile
    - fs_file
    - a_path
    - fs_attr
    - prefix
    - time_skew
    - hash_results
    argTypes:
    - FILE*
    - TSK_FS_FILE*
    - char*
    - TSK_FS_ATTR*
    - char*
    - int32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 598
    functionDepth: 5
    functionLinenumber: 598
    functionLinenumberEnd: 764
    functionName: tsk_fs_name_print_mac_md5
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_name.c
    functionUses: 1
    functionsReached:
    - strcmp
    - tsk_print_sanitized
    - tsk_fprintf
    - tsk_fs_meta_make_ls
    linkageType: ''
    returnType: void
    signature: "void tsk_fs_name_print_mac_md5(FILE * hFile, const TSK_FS_FILE * fs_file,\n
      \   const char *a_path, const TSK_FS_ATTR * fs_attr,\n    const char *prefix,
      int32_t time_skew,\n    const unsigned char *hash_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: NTFS_RUNL_LENSZ
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NTFS_RUNL_LENSZ(runl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: NTFS_RUNL_OFFSZ
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NTFS_RUNL_OFFSZ(runl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: GET_IDXENTRY_SUB
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IDXENTRY_SUB(fs, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: FFS_ATTR_CONT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFS_ATTR_CONT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: FFS_DIRSIZ_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFS_DIRSIZ_lcl(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: cgbase_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgbase_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: cgstart_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgstart_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: cgtod_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgtod_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: cgimin_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgimin_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: cgdmin_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgdmin_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: cgsblock_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgsblock_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - blks
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: blkstofrags_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blkstofrags_lcl(fsi, fs, blks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: itod_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itod_lcl(fsi, fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: itoo_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itoo_lcl(fsi, fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: itog_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itog_lcl(fsi, fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: dtog_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dtog_lcl(fsi, fs, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fsi
    - ','
    - cgp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: cg_inosused_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cg_inosused_lcl(fsi, cgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fsi
    - ','
    - cgp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: cg_blksfree_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ffs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cg_blksfree_lcl(fsi, cgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: __builtin_expect
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_expect(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/lzvn.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: load2
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: LZFSE_INLINE load2(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/lzvn.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: load4
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: LZFSE_INLINE load4(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/lzvn.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: load8
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: LZFSE_INLINE load8(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/lzvn.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: store4
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: LZFSE_INLINE store4(void *ptr, uint32_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/lzvn.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: store8
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: LZFSE_INLINE store8(void *ptr, uint64_t data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/lzvn.c:120,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/lzvn.c:121,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/lzvn.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - container
    - lsb
    - width
    argTypes:
    - uintmax_t
    - unsigned
    - unsigned
    assertStmts:
    - condition: (lsb < container_width)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
    - condition: (width > 0 && width <= container_width)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
    - condition: (lsb + width <= container_width)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: extract
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: LZFSE_INLINE
    signature: "LZFSE_INLINE extract(uintmax_t container, unsigned lsb,\n                               unsigned
      width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _pointer
    - ','
    - _length
    - ','
    - _increment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: PTR_LEN_INC
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_LEN_INC(_pointer, _length, _increment)
  - BBCount: 278
    BranchProfiles: []
    Callsites:
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:365,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:366,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:374,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:420,1
    - Dst: load2
      Src: /src/sleuthkit/tsk/fs/lzvn.c:423,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:424,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:424,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:425,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:458,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:459,1
    - Dst: load2
      Src: /src/sleuthkit/tsk/fs/lzvn.c:462,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:489,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:490,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:500,1
    - Dst: __builtin_expect
      Src: /src/sleuthkit/tsk/fs/lzvn.c:502,1
    - Dst: store4
      Src: /src/sleuthkit/tsk/fs/lzvn.c:506,1
    - Dst: load4
      Src: /src/sleuthkit/tsk/fs/lzvn.c:506,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:536,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:537,1
    - Dst: __builtin_expect
      Src: /src/sleuthkit/tsk/fs/lzvn.c:555,1
    - Dst: store8
      Src: /src/sleuthkit/tsk/fs/lzvn.c:563,1
    - Dst: load8
      Src: /src/sleuthkit/tsk/fs/lzvn.c:563,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:589,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:630,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:631,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:649,1
    - Dst: extract
      Src: /src/sleuthkit/tsk/fs/lzvn.c:680,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:707,1
    - Dst: store8
      Src: /src/sleuthkit/tsk/fs/lzvn.c:715,1
    - Dst: load8
      Src: /src/sleuthkit/tsk/fs/lzvn.c:715,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:740,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:741,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:762,1
    - Dst: PTR_LEN_INC
      Src: /src/sleuthkit/tsk/fs/lzvn.c:779,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 456
    argCount: 1
    argNames:
    - state
    argTypes:
    - lzvn_decoder_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 834
    functionName: lzvn_decode
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 0
    functionsReached:
    - load4
    - __builtin_expect
    - store8
    - load8
    - load2
    - extract
    - PTR_LEN_INC
    - store4
    linkageType: ''
    returnType: void
    signature: void lzvn_decode(lzvn_decoder_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/lzvn.c:840,1
    - Dst: lzvn_decode
      Src: /src/sleuthkit/tsk/fs/lzvn.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - dst
    - dst_size
    - src
    - src_size
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 856
    functionName: lzvn_decode_buffer
    functionSourceFile: /src/sleuthkit/tsk/fs/lzvn.c
    functionUses: 2
    functionsReached:
    - lzvn_decode
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t lzvn_decode_buffer(void *dst, size_t dst_size,\n                          const
      void *src, size_t src_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitfield
    - bitmask
    argTypes:
    - T
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: bit_is_set
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: bool
    signature: bool bit_is_set(T bitfield, U bitmask) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitfield
    - bits
    - shift
    argTypes:
    - T
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: bitfield_value
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T bitfield_value(T bitfield, int bits, int shift) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: operator bool() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: get
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 19
    functionsReached:
    - get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * get() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_obj_header *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:59,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: APFSObject::obj
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_obj_header *>
    - data
    linkageType: ''
    returnType: apfs_obj_header
    signature: apfs_obj_header *obj() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFS_OBJ_TYPE_ENUM
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:69,1
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: APFSObject::obj_type
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFS_OBJ_TYPE_ENUM
    - APFSObject::obj
    linkageType: ''
    returnType: APFS_OBJ_TYPE_ENUM
    signature: APFS_OBJ_TYPE_ENUM obj_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: APFSObject::obj_type_and_flags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSObject::obj
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obj_type_and_flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: APFSObject::oid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSObject::obj
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t oid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: APFSObject::xid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSObject::obj
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: APFSObject::subtype
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSObject::obj
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t subtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_omap *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:86,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: APFSOmap::omap
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_omap *>
    - data
    linkageType: ''
    returnType: apfs_omap
    signature: apfs_omap *omap() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSOmap::omap
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: APFSOmap::snapshot_count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSOmap::omap
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t snapshot_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFS_OMAP_TREE_TYPE_ENUM
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:100,1
    - Dst: APFSOmap::omap
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: APFSOmap::tree_type
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFS_OMAP_TREE_TYPE_ENUM
    - APFSOmap::omap
    linkageType: ''
    returnType: APFS_OMAP_TREE_TYPE_ENUM
    signature: APFS_OMAP_TREE_TYPE_ENUM tree_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSOmap::omap
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: APFSOmap::root_block
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSOmap::omap
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num root_block() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSOmap::root_block
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: APFSOmap::root
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSOmap::root_block
    linkageType: ''
    returnType: T
    signature: T root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNodeIterator::own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:140,1
    - Dst: Node*::block_num
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: APFSBtreeNodeIterator::own_node
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSBtreeNodeIterator::own_node
    - Node*::block_num
    linkageType: ''
    returnType: lw_shared_ptr<Node>
    signature: lw_shared_ptr<Node> own_node(const Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node*::_pool::template get_block<Node>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - block_num
    argTypes:
    - Node*
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: APFSBtreeNodeIterator::own_node
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - Node*::_pool::template get_block<Node>
    linkageType: ''
    returnType: lw_shared_ptr<Node>
    signature: "lw_shared_ptr<Node> own_node(const Node *node,\n                                      apfs_block_num
      block_num)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:153,1
    - Dst: APFSBtreeNodeIterator::_node::has_fixed_kv_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:155,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:156,1
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:161,1
    - Dst: _storage::size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:161,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:162,1
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:164,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:165,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:170,1
    - Dst: std::make_unique<typename Node::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:177,1
    - Dst: APFSBtreeNodeIterator::own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:178,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - recursion_depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 180
    functionName: APFSBtreeNodeIterator::init_value
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - _storage::data
    - _storage::size
    - std::make_unique<typename Node::iterator>
    - APFSBtreeNodeIterator::_node::has_fixed_kv_size
    - get
    - std::runtime_error
    - is_leaf
    - APFSBtreeNodeIterator::own_node
    linkageType: ''
    returnType: auto
    signature: "auto init_value(int recursion_depth)\n      -> std::enable_if_t<Node::is_variable_kv_node::value,
      Void>"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:185,1
    - Dst: APFSBtreeNodeIterator::_node::has_fixed_kv_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:187,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:188,1
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:193,1
    - Dst: _storage::size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:193,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:194,1
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:196,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:197,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:200,1
    - Dst: std::make_unique<typename Node::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:206,1
    - Dst: APFSBtreeNodeIterator::own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:207,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:207,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - recursion_depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 209
    functionName: APFSBtreeNodeIterator::init_value
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - _storage::data
    - _storage::size
    - std::make_unique<typename Node::iterator>
    - APFSBtreeNodeIterator::_node::has_fixed_kv_size
    - get
    - std::runtime_error
    - is_leaf
    - APFSBtreeNodeIterator::own_node
    linkageType: ''
    returnType: auto
    signature: auto init_value(int recursion_depth) -> std::enable_if_t<Node::is_fixed_kv_node::value,
      Void>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: APFSBtreeNodeIterator::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSBtreeNodeIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: ~APFSBtreeNodeIterator()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~APFSBtreeNodeIterator()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:226,1
    - Dst: std::make_unique<typename Node::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: APFSBtreeNodeIterator::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - std::make_unique<typename Node::iterator>
    - is_leaf
    linkageType: ''
    returnType: void
    signature: void APFSBtreeNodeIterator(const APFSBtreeNodeIterator &rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:235,1
    - Dst: APFSBtreeNodeIterator::APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: '&operator=(const APFSBtreeNodeIterator &rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNodeIterator::APFSBtreeNodeIterator
    - ~APFSBtreeNodeIterator
    linkageType: ''
    returnType: APFSBtreeNodeIterator
    signature: APFSBtreeNodeIterator &operator=(const APFSBtreeNodeIterator &rhs)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:243,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:243,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:244,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:245,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: APFSBtreeNodeIterator::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - std::move
    - is_leaf
    linkageType: ''
    returnType: void
    signature: void APFSBtreeNodeIterator(APFSBtreeNodeIterator &&rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:253,1
    - Dst: std::forward<APFSBtreeNodeIterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:255,1
    - Dst: APFSBtreeNodeIterator::APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: '&operator=(APFSBtreeNodeIterator &&rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNodeIterator::APFSBtreeNodeIterator
    - ~APFSBtreeNodeIterator
    - std::forward<APFSBtreeNodeIterator>
    linkageType: ''
    returnType: APFSBtreeNodeIterator
    signature: APFSBtreeNodeIterator &operator=(APFSBtreeNodeIterator &&rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: APFSBtreeNodeIterator::is_valid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - key_count
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:270,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:275,1
    - Dst: _child_it
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: operator*() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - key_count
    - _child_it
    - is_leaf
    linkageType: ''
    returnType: reference
    signature: reference operator*() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:284,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:289,1
    - Dst: _child_it
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: operator->() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - key_count
    - _child_it
    - is_leaf
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:299,1
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:300,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:303,1
    - Dst: ~APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:306,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:307,1
    - Dst: APFSBtreeNodeIterator::APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:307,1
    - Dst: _child_it
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:312,1
    - Dst: _node::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:314,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:320,1
    - Dst: ~APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:323,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:324,1
    - Dst: APFSBtreeNodeIterator::APFSBtreeNodeIterator
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 327
    functionName: '&operator++()'
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNodeIterator::APFSBtreeNodeIterator
    - ~APFSBtreeNodeIterator
    - key_count
    - _child_it
    - std::move
    - is_leaf
    - _node::end
    linkageType: ''
    returnType: APFSBtreeNodeIterator
    signature: APFSBtreeNodeIterator &operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSBtreeNodeIterator
    signature: APFSBtreeNodeIterator operator++(int)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 361
    functionName: operator==(const APFSBtreeNodeIterator &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - is_leaf
    linkageType: ''
    returnType: bool
    signature: bool operator==(const APFSBtreeNodeIterator &rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - APFSBtreeNodeIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: operator!=(const APFSBtreeNodeIterator &rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const APFSBtreeNodeIterator &rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_btree_node *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:397,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: APFSBtreeNode::bn
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_btree_node *>
    - data
    linkageType: ''
    returnType: apfs_btree_node
    signature: apfs_btree_node *bn() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: APFSBtreeNode::toffset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::bn
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t toffset() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::toffset
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:407,1
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: APFSBtreeNode::koffset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::bn
    - APFSBtreeNode::toffset
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t koffset() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:413,1
    - Dst: APFSBtreeNode::is_root
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: APFSBtreeNode::voffset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::is_root
    - block_size
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t voffset() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: APFSBtreeNode::key
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "auto key(uint32_t index) const\n      -> std::enable_if_t<is_variable_kv_node::value,
      KeyType>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<KeyType>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: APFSBtreeNode::key
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<KeyType>
    linkageType: ''
    returnType: auto
    signature: "auto key(uint32_t index) const\n      -> std::enable_if_t<is_fixed_kv_node::value,
      KeyType>"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:442,1
    - Dst: APFSBtreeNode::key
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:443,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:444,1
    - Dst: APFSBtreeNode::key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - key
    - comp
    argTypes:
    - key_type
    - Compare
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: APFSBtreeNode::contains_key
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - comp
    - APFSBtreeNode::key_count
    - APFSBtreeNode::key
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t contains_key(const key_type &key, Compare comp) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:462,1
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:465,1
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:466,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:467,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:470,1
    - Dst: APFSBtreeNode::toffset
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:470,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:471,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:471,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:472,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:474,1
    - Dst: APFSBtreeNode::voffset
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:474,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:475,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:475,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:476,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:478,1
    - Dst: APFSBtreeNode::koffset
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:478,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:479,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:479,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - pool
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 482
    functionName: APFSBtreeNode::APFSBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - size
    - decrypt
    - APFSBtreeNode::koffset
    - APFSBtreeNode::toffset
    - data
    - std::runtime_error
    - APFSBtreeNode::voffset
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void APFSBtreeNode(const APFSPool &pool, const apfs_block_num block_num,\n
      \               const uint8_t *key = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:485,1
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 486
    functionName: APFSBtreeNode::is_root
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSBtreeNode::bn
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool is_root() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:489,1
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: APFSBtreeNode::is_leaf
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::bn
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:493,1
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: APFSBtreeNode::has_fixed_kv_size
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::bn
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool has_fixed_kv_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: APFSBtreeNode::level
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::bn
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: APFSBtreeNode::key_count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSBtreeNode::bn
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t key_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:504,1
    - Dst: APFSBtreeNode::begin
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:504,1
    - Dst: APFSBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:504,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: APFSBtreeNode::entries
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::end
    - std::for_each
    - APFSBtreeNode::begin
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto entries() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::is_root
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:514,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:520,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:520,1
    - Dst: reinterpret_cast<const apfs_btree_info *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: APFSBtreeNode::info
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - size
    - APFSBtreeNode::is_root
    - reinterpret_cast<const apfs_btree_info *>
    - data
    linkageType: ''
    returnType: apfs_btree_info
    signature: apfs_btree_info *info() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 530
    functionName: APFSBtreeNode::begin
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 531
    functionName: APFSBtreeNode::end
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 1
    functionsReached:
    - APFSBtreeNode::key_count
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:542,1
    - Dst: APFSBtreeNode::key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:544,1
    - Dst: APFSBtreeNode::key
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:545,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:547,1
    - Dst: APFSBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:561,1
    - Dst: APFSBtreeNode::key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:568,1
    - Dst: APFSBtreeNode::key
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:569,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:571,1
    - Dst: iterator::_child_it::_node::find
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:574,1
    - Dst: iterator::_child_it::_node::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:575,1
    - Dst: APFSBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:576,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:579,1
    - Dst: APFSBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - value
    - comp
    argTypes:
    - T
    - Compare
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 585
    functionName: APFSBtreeNode::find
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - iterator::_child_it::_node::find
    - std::move
    - APFSBtreeNode::key_count
    - APFSBtreeNode::end
    - APFSBtreeNode::is_leaf
    - comp
    - iterator::_child_it::_node::end
    - APFSBtreeNode::key
    linkageType: ''
    returnType: iterator
    signature: iterator find(const T &value, Compare comp) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snap_xid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 604
    functionName: APFSObjectBtreeNode::snapshot
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void snapshot(uint64_t snap_xid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 620
    functionName: APFSJObjBtreeNode::APFSJObjBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObjBtreeNode(APFSJObjBtreeNode &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 624
    functionName: APFSJObjBtreeNode::is_leaf
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bn
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 626
    functionName: APFSJObjBtreeNode::begin
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: APFSJObjBtreeNode::end
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - key_count
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObjBtreeNode::is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:632,1
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:634,1
    - Dst: key
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:635,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:637,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:651,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:657,1
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:659,1
    - Dst: key
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:660,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:662,1
    - Dst: iterator::_child_it::_node::find
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:675,1
    - Dst: iterator::_child_it::_node::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:676,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:677,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:685,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:687,1
    - Dst: iterator::_child_it::_node::find
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:692,1
    - Dst: iterator::_child_it::_node::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:693,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:694,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:697,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - value
    - comp
    argTypes:
    - T
    - Compare
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 698
    functionName: APFSJObjBtreeNode::find
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - key
    - iterator::_child_it::_node::find
    - std::move
    - key_count
    - std::numeric_limits<uint32_t>::max
    - APFSJObjBtreeNode::end
    - APFSJObjBtreeNode::is_leaf
    - comp
    - iterator::_child_it::_node::end
    linkageType: ''
    returnType: iterator
    signature: iterator find(const T &value, Compare comp) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObjBtreeNode::find
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:703,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:705,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:707,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:707,1
    - Dst: std::find_if
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:710,1
    - Dst: APFSJObjBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:711,1
    - Dst: noexcept
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:711,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:711,1
    - Dst: comp
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:712,1
    - Dst: std::make_pair
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:715,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:715,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - comp
    argTypes:
    - T
    - Compare
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 716
    functionName: APFSJObjBtreeNode::find_range
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - std::move
    - APFSJObjBtreeNode::find
    - std::find_if
    - APFSJObjBtreeNode::end
    - comp
    - noexcept
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: "std::pair<iterator, iterator> find_range(const T &value,\n                                                  Compare
      comp) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_spaceman_cib *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:724,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 725
    functionName: APFSSpacemanCIB::cib
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - data
    - reinterpret_cast<const apfs_spaceman_cib *>
    linkageType: ''
    returnType: apfs_spaceman_cib
    signature: apfs_spaceman_cib *cib() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_spaceman_cab *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:744,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: APFSSpacemanCAB::cab
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_spaceman_cab *>
    - data
    linkageType: ''
    returnType: apfs_spaceman_cab
    signature: apfs_spaceman_cab *cab() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSpacemanCAB::cab
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 751
    functionName: APFSSpacemanCAB::index
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSpacemanCAB::cab
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t index() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSpacemanCAB::cab
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 753
    functionName: APFSSpacemanCAB::cib_count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSpacemanCAB::cab
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cib_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_spaceman *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:767,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: APFSSpaceman::sm
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - data
    - reinterpret_cast<const apfs_spaceman *>
    linkageType: ''
    returnType: apfs_spaceman
    signature: apfs_spaceman *sm() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_block_num *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:771,1
    - Dst: APFSSpaceman::sm
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:772,1
    - Dst: APFSSpaceman::sm
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: APFSSpaceman::entries
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_block_num *>
    - APFSSpaceman::sm
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num *entries() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSpaceman::sm
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 785
    functionName: APFSSpaceman::num_free_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSpaceman::sm
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t num_free_blocks() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    functionName: APFSBitmapBlock::done
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 810
    functionName: APFSBitmapBlock::reset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:826,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 840
    functionName: APFSBitmapBlock::cache_next
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t *>
    - data
    linkageType: ''
    returnType: void
    signature: void cache_next() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 857
    functionName: APFSBitmapBlock::toggle_mode
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void toggle_mode() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_keybag *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:870,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: APFSKeybag::kb
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_keybag *>
    - data
    linkageType: ''
    returnType: apfs_keybag
    signature: apfs_keybag *kb() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_nx_superblock *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:897,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: APFSSuperblock::sb
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - data
    - reinterpret_cast<const apfs_nx_superblock *>
    linkageType: ''
    returnType: apfs_nx_superblock
    signature: apfs_nx_superblock *sb() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: APFSSuperblock::omap
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSuperblock::sb
    linkageType: ''
    returnType: APFSOmap
    signature: APFSOmap omap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 914
    functionName: APFSSuperblock::block_size
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSuperblock::sb
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 916
    functionName: APFSSuperblock::num_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSuperblock::sb
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t num_blocks() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spaceman
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: APFSSuperblock::num_free_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - spaceman
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t num_free_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 922
    functionName: APFSSuperblock::uuid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSSuperblock::sb
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid uuid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spaceman
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 928
    functionName: APFSSuperblock::unallocated_ranges
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - spaceman
    linkageType: ''
    returnType: std::vector<APFSSpaceman::range>
    signature: std::vector<APFSSpaceman::range> unallocated_ranges() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_checkpoint_map *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:942,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 943
    functionName: APFSCheckpointMap::map
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const apfs_checkpoint_map *>
    - data
    linkageType: ''
    returnType: apfs_checkpoint_map
    signature: apfs_checkpoint_map *map() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<apfs_phys_extent_kind>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:956,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: kind
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - static_cast<apfs_phys_extent_kind>
    - bitfield_value
    linkageType: ''
    returnType: apfs_phys_extent_kind
    signature: apfs_phys_extent_kind kind() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: block_count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t block_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 965
    functionName: owner_oid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t owner_oid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 967
    functionName: ref_count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ref_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: start_block
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num start_block() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: APFSFileSystem::hw_crypt
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool hw_crypt() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1022
    functionName: APFSFileSystem::cs
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool cs() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1039
    functionName: APFSFileSystem::unk16
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t unk16() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1044
    functionName: APFSFileSystem::hw_crypt
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool hw_crypt() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: APFSFileSystem::cs
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    linkageType: ''
    returnType: bool
    signature: bool cs() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const apfs_superblock *>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1059,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1060
    functionName: APFSFileSystem::fs
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - data
    - reinterpret_cast<const apfs_superblock *>
    linkageType: ''
    returnType: apfs_superblock
    signature: apfs_superblock *fs() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1062
    functionName: APFSFileSystem::rdo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rdo() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1078
    functionName: APFSFileSystem::uuid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: TSKGuid
    signature: TSKGuid uuid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1080
    functionName: APFSFileSystem::name
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: std::string
    signature: std::string name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1082
    functionName: APFSFileSystem::formatted_by
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: std::string
    signature: std::string formatted_by() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    functionName: '&password_hint() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &password_hint() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1088
    functionName: '&crypto_info() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto &crypto_info() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: APFSFileSystem::decryption_key
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *decryption_key() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFS_VOLUME_ROLE
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1099,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1100
    functionName: APFSFileSystem::role
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFS_VOLUME_ROLE
    - APFSFileSystem::fs
    linkageType: ''
    returnType: APFS_VOLUME_ROLE
    signature: APFS_VOLUME_ROLE role() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1103,1
    - Dst: block_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1104
    functionName: APFSFileSystem::reserved
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - block_size
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reserved() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1107,1
    - Dst: block_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: APFSFileSystem::quota
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - block_size
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quota() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1111,1
    - Dst: block_size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1112
    functionName: APFSFileSystem::used
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - block_size
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t used() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1116
    functionName: APFSFileSystem::reserved_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reserved_blocks() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1118
    functionName: APFSFileSystem::quota_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quota_blocks() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    functionName: APFSFileSystem::alloc_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t alloc_blocks() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1122
    functionName: APFSFileSystem::last_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_inum() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1125,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    functionName: APFSFileSystem::encrypted
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    - APFSFileSystem::fs
    linkageType: ''
    returnType: bool
    signature: bool encrypted() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1129,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1131
    functionName: APFSFileSystem::case_sensitive
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - bit_is_set
    - APFSFileSystem::fs
    linkageType: ''
    returnType: bool
    signature: bool case_sensitive() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1133
    functionName: APFSFileSystem::created
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t created() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1135
    functionName: APFSFileSystem::changed
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t changed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1144,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1145
    functionName: APFSFileSystem::extent_ref_tree
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - pool
    - APFSFileSystem::fs
    linkageType: ''
    returnType: APFSExtentRefBtreeNode
    signature: APFSExtentRefBtreeNode extent_ref_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1148,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1149
    functionName: APFSFileSystem::snap_meta_tree
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - pool
    - APFSFileSystem::fs
    linkageType: ''
    returnType: APFSSnapshotMetaBtreeNode
    signature: APFSSnapshotMetaBtreeNode snap_meta_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1159
    functionName: oid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 4
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t oid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1163
    functionName: type
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 50
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObjBtreeNode*::_pool::template get_block<APFSJObjBtreeNode>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - block_num
    argTypes:
    - APFSJObjBtreeNode*
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1177
    functionName: APFSBtreeNodeIterator<APFSJObjBtreeNode>::own_node
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSJObjBtreeNode*::_pool::template get_block<APFSJObjBtreeNode>
    linkageType: ''
    returnType: lw_shared_ptr<APFSJObjBtreeNode>
    signature: "lw_shared_ptr<APFSJObjBtreeNode> APFSBtreeNodeIterator<APFSJObjBtreeNode>::own_node(\n
      \   const APFSJObjBtreeNode *node, apfs_block_num block_num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1185,1
    - Dst: _storage::size
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1185,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1186,1
    - Dst: _storage::data
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1188,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1189,1
    - Dst: is_leaf
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1194,1
    - Dst: _obj_root::find
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1201,1
    - Dst: _obj_root::end
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1203,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1204,1
    - Dst: std::make_unique<typename APFSJObjBtreeNode::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1207,1
    - Dst: APFSBtreeNodeIterator<APFSJObjBtreeNode>::own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1208,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - recursion_depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1210
    functionName: APFSBtreeNodeIterator<APFSJObjBtreeNode>::init_value<void>(int recursion_depth)
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNodeIterator<APFSJObjBtreeNode>::own_node
    - _storage::data
    - _obj_root::find
    - _storage::size
    - std::make_unique<typename APFSJObjBtreeNode::iterator>
    - get
    - _obj_root::end
    - std::runtime_error
    - is_leaf
    linkageType: ''
    returnType: void
    signature: void APFSBtreeNodeIterator<APFSJObjBtreeNode>::init_value<void>(int
      recursion_depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1215,1
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1217,1
    - Dst: init_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node
    - index
    - recursion_depth
    argTypes:
    - Node*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1222
    functionName: APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - init_value
    - key_count
    - own_node
    linkageType: ''
    returnType: void
    signature: "void APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator(const Node
      *node,\n                                                   uint32_t index, int
      recursion_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<lw_shared_ptr<Node>>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1227,1
    - Dst: key_count
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1229,1
    - Dst: init_value
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - node
    - index
    - recursion_depth
    argTypes:
    - lw_shared_ptr<Node>
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1234
    functionName: APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - init_value
    - key_count
    - std::forward<lw_shared_ptr<Node>>
    linkageType: ''
    returnType: void
    signature: "void APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator(lw_shared_ptr<Node>
      &&node,\n                                                   uint32_t index,
      int recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: own_node
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1239,1
    - Dst: std::make_unique<typename Node::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1240,1
    - Dst: std::forward<typename Node::iterator>
      Src: /src/sleuthkit/tsk/fs/tsk_apfs.hpp:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - node
    - index
    - child
    argTypes:
    - Node*
    - uint32_t
    - typename Node::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1242
    functionName: APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    functionUses: 0
    functionsReached:
    - std::make_unique<typename Node::iterator>
    - own_node
    - std::forward<typename Node::iterator>
    linkageType: ''
    returnType: void
    signature: "void APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator(\n    const
      Node *node, uint32_t index, typename Node::iterator &&child)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:64,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:71,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:78,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:81,1
    - Dst: tsk_fs_name_print_long
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:89,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:91,1
    - Dst: tsk_fs_name_print
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:94,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:96,1
    - Dst: tsk_fs_name_print_long
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:105,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:107,1
    - Dst: tsk_fs_name_print
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:110,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:112,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 122
    functionName: ifind_par_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_name_print_long
    - tsk_fs_file_attr_get_idx
    - tsk_printf
    - tsk_fs_name_print
    - tsk_fs_name_free
    - tsk_fs_file_attr_getsize
    - strncpy
    - tsk_fs_name_alloc
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM ifind_par_act(TSK_FS_FILE * fs_file, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fs
    - lclflags
    - par
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_IFIND_FLAG_ENUM
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: tsk_fs_ifind_par
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - TSK_FS_INFO*::inode_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_ifind_par(TSK_FS_INFO * fs, TSK_FS_IFIND_FLAG_ENUM
      lclflags,\n    TSK_INUM_T par)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: tsk_logical_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:191,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:197,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:198,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:201,1
    - Dst: strtok_r
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:204,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:209,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:228,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:229,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:235,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:251,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:252,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:260,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:261,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:262,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:263,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:265,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:270,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:275,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:276,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:277,1
    - Dst: TSK_FS_INFO*::name_cmp
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:286,1
    - Dst: TSK_FS_INFO*::name_cmp
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:291,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:297,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:305,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:308,1
    - Dst: TSK_FS_INFO*::name_cmp
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:313,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:335,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:342,1
    - Dst: strtok_r
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:362,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:366,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:375,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:379,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:381,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:383,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:384,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:389,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:390,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:399,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:403,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:413,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:417,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 132
    argCount: 4
    argNames:
    - a_fs
    - a_path
    - a_result
    - a_fs_name
    argTypes:
    - TSK_FS_INFO*
    - char*
    - TSK_INUM_T*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 419
    functionName: tsk_fs_path2inum
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_fs_dir_open_meta
    - tsk_error_set_errno
    - tsk_logical_fs_path2inum
    - strlen
    - tsk_fs_name_copy
    - tsk_fs_file_attr_get_idx
    - tsk_fs_dir_getsize
    - TSK_FS_TYPE_ISNTFS
    - strtok_r
    - TSK_FS_IS_DIR_META
    - TSK_FS_INFO*::name_cmp
    - strchr
    - tsk_error_reset
    - tsk_malloc
    - tsk_fs_dir_close
    - tsk_fs_dir_get
    - tsk_error_set_errstr
    - tsk_fs_file_attr_getsize
    - tsk_fs_file_close
    - strncpy
    - free
    linkageType: ''
    returnType: int8_t
    signature: "int8_t tsk_fs_path2inum(TSK_FS_INFO * a_fs, const char *a_path,\n
      \   TSK_INUM_T * a_result, TSK_FS_NAME * a_fs_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:443,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:444,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:451,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:452,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:455,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:456,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:457,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:460,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:465,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:466,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - fs
    - tpath
    - result
    argTypes:
    - TSK_FS_INFO*
    - TSK_TCHAR*
    - TSK_INUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 472
    functionName: tsk_fs_ifind_path
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_path2inum
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_UTF16toUTF8_lclorder
    - TSTRLEN
    linkageType: ''
    returnType: int8_t
    signature: int8_t tsk_fs_ifind_path(TSK_FS_INFO * fs, TSK_TCHAR * tpath, TSK_INUM_T
      * result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:510,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:511,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 519
    functionName: ifind_data_file_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISNTFS
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM ifind_data_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off,\n    TSK_DADDR_T addr, char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags,\n    void *ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:538,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:540,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:547,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:550,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:555,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 568
    functionName: ifind_data_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_fprintf
    - tsk_error_reset
    - tsk_fs_file_attr_getsize
    - tsk_fs_attr_walk
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM ifind_data_act(TSK_FS_FILE * fs_file, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:582,1
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:586,1
    - Dst: tsk_fs_block_get
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:597,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:599,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:602,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ifind_lib.c:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - fs
    - lclflags
    - blk
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_IFIND_FLAG_ENUM
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 610
    functionName: tsk_fs_ifind_data
    functionSourceFile: /src/sleuthkit/tsk/fs/ifind_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_printf
    - tsk_fs_block_get
    - TSK_FS_INFO*::inode_walk
    - tsk_fs_block_free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_ifind_data(TSK_FS_INFO * fs, TSK_FS_IFIND_FLAG_ENUM
      lclflags,\n    TSK_DADDR_T blk)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:51,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:52,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:53,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:65,1
    - Dst: cgtod_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:70,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:74,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:77,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:78,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:80,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:88,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:89,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:90,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:91,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ffs
    - grp_num
    argTypes:
    - FFS_INFO*
    - FFS_GRPNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 101
    functionName: ffs_group_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_gets32
    - tsk_malloc
    - tsk_error_set_errno
    - cgtod_lcl
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_group_load(FFS_INFO * ffs, FFS_GRPNUM_T grp_num)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:121,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:122,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:123,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:132,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:135,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:136,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:152,1
    - Dst: itog_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:159,1
    - Dst: ffs_group_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:160,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:161,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:168,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:169,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ffs.c:171,1
    - Dst: itod_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:176,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:180,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:183,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:185,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:186,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:188,1
    - Dst: itoo_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:196,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:198,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:204,1
    - Dst: itod_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:208,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:212,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:215,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:217,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:218,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:220,1
    - Dst: itoo_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:228,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:230,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:234,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 3
    argNames:
    - ffs
    - inum
    - dino_buf
    argTypes:
    - FFS_INFO*
    - TSK_INUM_T
    - ffs_inode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 237
    functionName: ffs_dinode_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - memset
    - tsk_fs_read_block
    - itog_lcl
    - itod_lcl
    - tsk_error_set_errstr
    - tsk_error_reset
    - itoo_lcl
    - tsk_getu32
    - memcpy
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_release_lock
    - ffs_group_load
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_dinode_load(FFS_INFO * ffs, TSK_INUM_T inum, ffs_inode
      * dino_buf)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 265
    functionName: ffsmode2tsktype
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_TYPE_ENUM
    signature: TSK_FS_META_TYPE_ENUM ffsmode2tsktype(uint16_t a_mode)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: ffsmode2tskmode
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ffsmode2tskmode(uint16_t a_mode)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:320,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:321,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:322,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/ffs.c:328,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:336,1
    - Dst: ffsmode2tskmode
      Src: /src/sleuthkit/tsk/fs/ffs.c:348,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:348,1
    - Dst: ffsmode2tsktype
      Src: /src/sleuthkit/tsk/fs/ffs.c:350,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:350,1
    - Dst: tsk_gets16
      Src: /src/sleuthkit/tsk/fs/ffs.c:352,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:353,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:354,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:355,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:357,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:358,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:359,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:366,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:374,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:378,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:390,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ffs.c:418,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:427,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:446,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:450,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:451,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:453,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:456,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:460,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tsk/fs/ffs.c:470,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:475,1
    - Dst: ffsmode2tskmode
      Src: /src/sleuthkit/tsk/fs/ffs.c:485,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:485,1
    - Dst: ffsmode2tsktype
      Src: /src/sleuthkit/tsk/fs/ffs.c:487,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:487,1
    - Dst: tsk_gets16
      Src: /src/sleuthkit/tsk/fs/ffs.c:489,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:490,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:491,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:492,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:494,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:495,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:496,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:503,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:511,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:515,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ffs.c:544,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:553,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:557,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:559,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:578,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:582,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:583,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:585,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:588,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:592,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:600,1
    - Dst: ffsmode2tskmode
      Src: /src/sleuthkit/tsk/fs/ffs.c:609,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:609,1
    - Dst: ffsmode2tsktype
      Src: /src/sleuthkit/tsk/fs/ffs.c:611,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs.c:611,1
    - Dst: tsk_gets16
      Src: /src/sleuthkit/tsk/fs/ffs.c:613,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:614,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:615,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:616,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:618,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:619,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:620,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:622,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:623,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:624,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:625,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:629,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:637,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:641,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:652,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ffs.c:682,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:691,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:708,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:712,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:713,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:715,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:718,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:722,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:729,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:734,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:735,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:736,1
    - Dst: itog_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:741,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:743,1
    - Dst: ffs_group_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:744,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:745,1
    - Dst: cg_inosused_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:751,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:752,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ffs.c:755,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:758,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 240
    argCount: 4
    argNames:
    - ffs
    - fs_meta
    - dino_inum
    - dino_buf
    argTypes:
    - FFS_INFO*
    - TSK_FS_META*
    - TSK_INUM_T
    - ffs_inode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 765
    functionName: ffs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - memset
    - isset
    - free
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - tsk_gets64
    - tsk_getu64
    - tsk_take_lock
    - memcpy
    - tsk_release_lock
    - tsk_fs_read_block
    - tsk_error_reset
    - tsk_fs_meta_realloc
    - tsk_getu32
    - ffsmode2tskmode
    - tsk_getu16
    - tsk_malloc
    - tsk_gets32
    - ffs_group_load
    - cg_inosused_lcl
    - TSK_IS_CNTRL
    - tsk_gets16
    - itog_lcl
    - tsk_error_set_errstr
    - ffsmode2tsktype
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_dinode_copy(FFS_INFO * ffs, TSK_FS_META * fs_meta,\n    TSK_INUM_T
      dino_inum, const ffs_inode * dino_buf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:783,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:784,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:790,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:795,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ffs.c:799,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ffs.c:800,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:807,1
    - Dst: ffs_dinode_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:810,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:811,1
    - Dst: ffs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ffs.c:815,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:816,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:820,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 775
    functionDepth: 5
    functionLinenumber: 775
    functionLinenumberEnd: 823
    functionName: ffs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_reset
    - tsk_fs_meta_alloc
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_dir_make_orphan_dir_meta
    - ffs_dinode_load
    - ffs_dinode_copy
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T inum)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:859,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:865,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:866,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:867,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:873,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:874,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:875,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/ffs.c:909,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ffs.c:910,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:916,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:919,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ffs.c:924,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:929,1
    - Dst: itog_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:943,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:945,1
    - Dst: ffs_group_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:946,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:947,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:948,1
    - Dst: cg_inosused_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:952,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:954,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ffs.c:959,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:962,1
    - Dst: ffs_dinode_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:968,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:969,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:970,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:983,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:994,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/ffs.c:1005,1
    - Dst: ffs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ffs.c:1014,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1015,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1016,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ffs.c:1020,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1022,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1023,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1027,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1028,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ffs.c:1034,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ffs.c:1039,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1040,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1041,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ffs.c:1045,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1047,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1048,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1052,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1053,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1061,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1062,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 112
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - a_flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 842
    functionDepth: 5
    functionLinenumber: 842
    functionLinenumberEnd: 1065
    functionName: ffs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - isset
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - ffs_dinode_copy
    - tsk_gets64
    - tsk_take_lock
    - action
    - tsk_fs_dir_load_inum_named
    - tsk_error_errstr2_concat
    - tsk_release_lock
    - ffs_dinode_load
    - tsk_error_reset
    - tsk_malloc
    - tsk_fs_dir_find_inum_named
    - tsk_gets32
    - ffs_group_load
    - cg_inosused_lcl
    - itog_lcl
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_alloc
    - tsk_fs_file_close
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,\n
      \   TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM a_flags,\n    TSK_FS_META_WALK_CB
      action, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dtog_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1084,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1086,1
    - Dst: ffs_group_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:1087,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1088,1
    - Dst: cg_blksfree_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1093,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1096,1
    - Dst: cgdmin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1099,1
    - Dst: cgsblock_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1102,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1109,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1068
    functionDepth: 4
    functionLinenumber: 1068
    functionLinenumberEnd: 1120
    functionName: ffs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - dtog_lcl
    - cgbase_lcl
    - isset
    - cg_blksfree_lcl
    - cgdmin_lcl
    - tsk_release_lock
    - ffs_group_load
    - cgsblock_lcl
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM ffs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1151,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1157,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1158,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1159,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1166,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1167,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1168,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:1188,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:1191,1
    - Dst: ffs_block_getflags
      Src: /src/sleuthkit/tsk/fs/ffs.c:1201,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1205,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:1235,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1239,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1240,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:1242,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1244,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1245,1
    - Dst: tsk_fs_block_set
      Src: /src/sleuthkit/tsk/fs/ffs.c:1258,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ffs.c:1260,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1265,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1266,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1272,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1273,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 74
    argCount: 6
    argNames:
    - fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1136
    functionDepth: 5
    functionLinenumber: 1136
    functionLinenumberEnd: 1275
    functionName: ffs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - tsk_fs_block_alloc
    - tsk_fprintf
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_fs_block_free
    - tsk_fs_block_set
    - ffs_block_getflags
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T a_start_blk,\n
      \   TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n    TSK_FS_BLOCK_WALK_CB
      action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1285,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1286,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1282
    functionDepth: 3
    functionLinenumber: 1282
    functionLinenumberEnd: 1289
    functionName: ffs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1315,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1317,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1318,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1322,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1324,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1325,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1327,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1332,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1333,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1334,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1335,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1337,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1338,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1339,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1340,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1341,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1347,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1353,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1357,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1360,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1364,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1367,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1371,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1374,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1379,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1380,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1382,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1384,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1387,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1388,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1389,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1390,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1393,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1394,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1395,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1396,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1400,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1401,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1403,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1407,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1411,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1412,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1416,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1417,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1418,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1419,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1422,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1423,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1424,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1425,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1428,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1429,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1431,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1433,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1434,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1435,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1436,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1440,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:1443,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1443,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:1451,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1451,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1452,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1455,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1457,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1458,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:1460,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1462,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:1467,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1468,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1469,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1471,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1473,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1474,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:1476,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1478,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1486,1
    - Dst: ffs_group_load
      Src: /src/sleuthkit/tsk/fs/ffs.c:1487,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1488,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1493,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1497,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1501,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1503,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1504,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1507,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1509,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1510,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1511,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1513,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1517,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1519,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1520,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1521,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1529,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1533,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1540,1
    - Dst: cgsblock_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1542,1
    - Dst: cgsblock_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1543,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1546,1
    - Dst: cgtod_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1548,1
    - Dst: cgtod_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1548,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1553,1
    - Dst: cgimin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1555,1
    - Dst: cgimin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1556,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ffs.c:1557,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1558,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1564,1
    - Dst: cgimin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1566,1
    - Dst: cgimin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1567,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ffs.c:1568,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1569,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1575,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1581,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1582,1
    - Dst: cgsblock_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1582,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1584,1
    - Dst: cgdmin_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1585,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1586,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1587,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1591,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1593,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1595,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1596,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1597,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1598,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1599,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1600,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1601,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1602,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1606,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1608,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1609,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1610,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1611,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1612,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1613,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1614,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1615,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1616,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1618,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1619,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1620,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1622,1
    - Dst: cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ffs.c:1623,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1624,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1625,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1626,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 146
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1631
    functionName: ffs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errno
    - cgtod_lcl
    - tsk_getu64
    - tsk_take_lock
    - cgbase_lcl
    - tsk_fs_time_to_str
    - tsk_release_lock
    - cgsblock_lcl
    - tsk_fs_read_block
    - tsk_error_reset
    - tsk_getu32
    - cgimin_lcl
    - tsk_malloc
    - ffs_group_load
    - tsk_gets32
    - roundup
    - cgdmin_lcl
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1657,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1659,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - a_flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1643
    functionDepth: 4
    functionLinenumber: 1643
    functionLinenumberEnd: 1669
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      a_flags, void *ptr)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1698,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ffs.c:1700,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1705,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1706,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1709,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1710,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1711,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1714,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1716,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/ffs.c:1720,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1721,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1723,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1724,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1728,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1736,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1737,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1738,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1739,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1740,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1741,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1750,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1753,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1756,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1757,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1758,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1759,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1760,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ffs.c:1761,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:1763,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1769,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:1775,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1776,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1777,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1781,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1782,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1783,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1785,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1786,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1791,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1792,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:1798,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1798,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1802,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1803,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:1805,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1807,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1808,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1809,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1810,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1828,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:1829,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1831,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1834,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1835,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ffs.c:1841,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1841,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1845,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1846,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:1848,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ffs.c:1850,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1851,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1852,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1853,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:1867,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ffs.c:1868,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1870,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1873,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1875,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1883,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/ffs.c:1886,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1889,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1890,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1891,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1892,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/ffs.c:1900,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1902,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1903,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1904,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1909,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/ffs.c:1912,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1915,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1917,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1918,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1919,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1920,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ffs.c:1926,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1928,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ffs.c:1929,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1930,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:1933,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ffs.c:1938,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 154
    argCount: 6
    argNames:
    - fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1684
    functionDepth: 4
    functionLinenumber: 1684
    functionLinenumberEnd: 1940
    functionName: ffs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - free
    - tsk_error_set_errno
    - tsk_fs_file_walk
    - tsk_fs_file_attr_get_type
    - tsk_getu64
    - tsk_take_lock
    - tsk_fs_attr_print
    - tsk_fs_time_to_str
    - memcpy
    - tsk_fs_file_open_meta
    - tsk_release_lock
    - tsk_fs_read_block
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_fs_attr_walk
    - tsk_fs_meta_make_ls
    - tsk_fs_file_close
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_istat(TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1946,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1947,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1943
    functionDepth: 3
    functionLinenumber: 1943
    functionLinenumberEnd: 1950
    functionName: ffs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1956,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1957,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fs
    - a_flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1952
    functionDepth: 3
    functionLinenumber: 1952
    functionLinenumberEnd: 1960
    functionName: ffs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_jentry_walk(TSK_FS_INFO * fs, int a_flags,\n    TSK_FS_JENTRY_WALK_CB
      action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:1967,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:1968,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - a_flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1963
    functionDepth: 3
    functionLinenumber: 1963
    functionLinenumberEnd: 1971
    functionName: ffs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ffs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      end,\n    int a_flags, TSK_FS_JBLK_WALK_CB action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1982,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1983,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:1985,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1987,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 1989
    functionName: ffs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    - free
    - tsk_deinit_lock
    linkageType: ''
    returnType: void
    signature: void ffs_close(TSK_FS_INFO * fs)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2012,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/ffs.c:2014,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2015,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2016,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2017,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2022,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2023,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2024,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:2028,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ffs.c:2042,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs.c:2043,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2046,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ffs.c:2055,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2060,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2061,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2063,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2066,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2067,1
    - Dst: tsk_fs_guessu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2072,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2074,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ffs.c:2076,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2081,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2082,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:2084,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2087,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2088,1
    - Dst: tsk_fs_guessu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2093,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2095,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ffs.c:2097,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2101,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2102,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ffs.c:2104,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2107,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2108,1
    - Dst: tsk_fs_guessu32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2111,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2112,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2113,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2114,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2116,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2118,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2119,1
    - Dst: tsk_gets64
      Src: /src/sleuthkit/tsk/fs/ffs.c:2141,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2142,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2143,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2144,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2145,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2148,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2149,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2150,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2151,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2152,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2158,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2159,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2160,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2163,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2165,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2166,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs.c:2171,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs.c:2172,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs.c:2173,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2175,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2177,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ffs.c:2178,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2199,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ffs.c:2202,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs.c:2246,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/ffs.c:2251,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 167
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2002
    functionDepth: 4
    functionLinenumber: 2002
    functionLinenumberEnd: 2254
    functionName: ffs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr2
    - tsk_fprintf
    - tsk_init_lock
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_gets32
    - TSK_FS_TYPE_ISFFS
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_free
    - tsk_fs_guessu32
    - tsk_fs_malloc
    - tsk_fs_read
    - free
    - tsk_gets64
    - roundup
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      ffs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, TSK_FS_TYPE_ENUM ftype,
      const char* a_pass, uint8_t test)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_BLOCK_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_block
    - a_ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: tsk_fs_block_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_BLOCK_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM tsk_fs_block_cpp_c_cb (const TSK_FS_BLOCK *a_block,
      void *a_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_FILE_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - a_file
    - a_off
    - a_addr
    - a_buf
    - a_len
    - a_flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: tsk_fs_file_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_FILE_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_file_cpp_c_cb (TSK_FS_FILE *a_file, TSK_OFF_T
      a_off, TSK_DADDR_T a_addr, char *a_buf,\n                                        size_t
      a_len, TSK_FS_BLOCK_FLAG_ENUM a_flags, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_JBLK_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fsInfo
    - a_string
    - a_num
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: tsk_fs_jblk_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_JBLK_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_jblk_cpp_c_cb (TSK_FS_INFO *a_fsInfo, char
      *a_string,\n                                        int a_num, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_JENTRY_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fsInfo
    - a_jentry
    - a_num
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_JENTRY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: tsk_fs_jentry_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_JENTRY_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_jentry_cpp_c_cb (TSK_FS_INFO *a_fsInfo, TSK_FS_JENTRY
      *a_jentry,\n                                          int a_num, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_META_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_file
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: tsk_fs_meta_walk_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_META_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM tsk_fs_meta_walk_cpp_c_cb (TSK_FS_FILE *a_file, void
      *a_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_DIR_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: tsk_fs_dir_walk_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_DIR_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM tsk_fs_dir_walk_cpp_c_cb (TSK_FS_FILE *a_file,  const
      char *a_path, void *a_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSK_VS_PART_WALK_CPP_DATA*::cppAction
      Src: /src/sleuthkit/tsk/fs/walk_cpp.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_vs
    - a_vs_part
    - a_ptr
    argTypes:
    - TSK_VS_INFO*
    - TSK_VS_PART_INFO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: tsk_vs_part_walk_cpp_c_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/walk_cpp.cpp
    functionUses: 0
    functionsReached:
    - TSK_VS_PART_WALK_CPP_DATA*::cppAction
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM tsk_vs_part_walk_cpp_c_cb (TSK_VS_INFO *a_vs, const
      TSK_VS_PART_INFO * a_vs_part, void *a_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_types.c:100,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_types.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: tsk_fs_type_toid_utf8
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_types.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM tsk_fs_type_toid_utf8(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_type_toid_utf8
      Src: /src/sleuthkit/tsk/fs/fs_types.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: tsk_fs_type_toid
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_types.c
    functionUses: 0
    functionsReached:
    - tsk_fs_type_toid_utf8
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM tsk_fs_type_toid(const TSK_TCHAR * str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_types.c:146,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_types.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: tsk_fs_type_print
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_types.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_fs_type_print(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ftype
    argTypes:
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: tsk_fs_type_toname
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_fs_type_toname(TSK_FS_TYPE_ENUM ftype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: tsk_fs_type_supported
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM tsk_fs_type_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - secs
    - subsecs
    argTypes:
    - time_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: print_date
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_time_to_str_subsecs
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_date(time_t secs, time_t subsecs)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:58,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:61,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:64,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:67,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:70,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:73,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:76,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:79,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:82,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:85,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:88,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:91,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:94,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:97,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:100,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:103,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:106,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:109,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 1
    argNames:
    - reason
    argTypes:
    - TSK_FS_USN_REASON
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 112
    functionName: print_usn_reason
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_usn_reason(TSK_FS_USN_REASON reason)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:127,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:130,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:133,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:136,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - sinfo
    argTypes:
    - TSK_FS_USN_SOURCE_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 142
    functionName: print_usn_source_info
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_usn_source_info(TSK_FS_USN_SOURCE_INFO sinfo)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:157,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:160,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:163,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:166,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:169,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:172,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:175,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:178,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:181,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:184,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:187,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:190,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:193,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:196,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:202,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:205,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:208,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - TSK_FS_NTFS_FILE_ATTRIBUTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 211
    functionName: print_usn_attributes
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_usn_attributes(TSK_FS_NTFS_FILE_ATTRIBUTES attributes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:217,1
    - Dst: print_usn_reason
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:221,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:222,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - header
    - record
    argTypes:
    - TSK_USN_RECORD_HEADER*
    - TSK_USN_RECORD_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: print_v2_record
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_print_sanitized
    - print_usn_reason
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_v2_record(TSK_USN_RECORD_HEADER *header, TSK_USN_RECORD_V2
      *record)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:234,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:242,1
    - Dst: print_date
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:244,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:245,1
    - Dst: print_usn_reason
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:246,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:247,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:248,1
    - Dst: print_usn_source_info
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:249,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:250,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:251,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:252,1
    - Dst: print_usn_attributes
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:253,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:254,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:255,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:256,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - header
    - record
    argTypes:
    - TSK_USN_RECORD_HEADER*
    - TSK_USN_RECORD_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: print_v2_record_long
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_print_sanitized
    - print_usn_reason
    - tsk_fprintf
    - print_date
    - print_usn_source_info
    - print_usn_attributes
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_v2_record_long(TSK_USN_RECORD_HEADER *header,
      TSK_USN_RECORD_V2 *record)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:267,1
    - Dst: tsk_print_sanitized
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:277,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - record
    argTypes:
    - TSK_USN_RECORD_HEADER*
    - TSK_USN_RECORD_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: print_v2_record_mac
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_print_sanitized
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_v2_record_mac(TSK_USN_RECORD_HEADER *header,
      TSK_USN_RECORD_V2 *record)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: print_v2_record
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:299,1
    - Dst: print_v2_record_long
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:301,1
    - Dst: print_v2_record_mac
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - a_header
    - a_record
    - a_ptr
    argTypes:
    - TSK_USN_RECORD_HEADER*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: print_usnjent_act
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - print_v2_record_long
    - print_v2_record_mac
    - print_v2_record
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_usnjent_act(TSK_USN_RECORD_HEADER *a_header,
      void *a_record, void *a_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:319,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:322,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:323,1
    - Dst: tsk_ntfs_usnjopen
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:327,1
    - Dst: tsk_ntfs_usnjentry_walk
      Src: /src/sleuthkit/tsk/fs/usnjls_lib.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fs
    - inode
    - flags
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_FS_USNJLS_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 332
    functionName: tsk_fs_usnjls
    functionSourceFile: /src/sleuthkit/tsk/fs/usnjls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_ntfs_usnjopen
    - tsk_error_set_errno
    - tsk_ntfs_usnjentry_walk
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_usnjls(TSK_FS_INFO * fs, TSK_INUM_T inode, TSK_FS_USNJLS_FLAG_ENUM
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:42,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:48,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - a_buf_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: tsk_fs_meta_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_inode.c
    functionUses: 4
    functionsReached:
    - free
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_META
    signature: 'TSK_FS_META *

      tsk_fs_meta_alloc(size_t a_buf_len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_META*::reset_content
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:76,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a_fs_meta
    - a_buf_len
    argTypes:
    - TSK_FS_META*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: tsk_fs_meta_realloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_inode.c
    functionUses: 2
    functionsReached:
    - TSK_FS_META*::reset_content
    - tsk_realloc
    linkageType: ''
    returnType: TSK_FS_META
    signature: 'TSK_FS_META *

      tsk_fs_meta_realloc(TSK_FS_META * a_fs_meta, size_t a_buf_len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_META*::reset_content
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:110,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:113,1
    - Dst: tsk_fs_attrlist_free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:120,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:123,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:130,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fs_meta
    argTypes:
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: tsk_fs_meta_close
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_inode.c
    functionUses: 0
    functionsReached:
    - TSK_FS_META*::reset_content
    - free
    - tsk_fs_attrlist_free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_meta_close(TSK_FS_META * fs_meta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_META*::reset_content
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:152,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - a_fs_meta
    argTypes:
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 190
    functionName: tsk_fs_meta_reset
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_inode.c
    functionUses: 2
    functionsReached:
    - TSK_FS_META*::reset_content
    - memset
    linkageType: ''
    returnType: void
    signature: void tsk_fs_meta_reset(TSK_FS_META * a_fs_meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/fs_inode.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - a_fs
    - a_start
    - a_end
    - a_flags
    - a_cb
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: tsk_fs_meta_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_inode.c
    functionUses: 0
    functionsReached:
    - TSK_FS_INFO*::inode_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_meta_walk(TSK_FS_INFO * a_fs, TSK_INUM_T a_start,\n
      \   TSK_INUM_T a_end, TSK_FS_META_FLAG_ENUM a_flags,\n    TSK_FS_META_WALK_CB
      a_cb, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<APFSPoolCompat*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool_info
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: to_pool
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<APFSPoolCompat*>
    linkageType: ''
    returnType: APFSPoolCompat
    signature: "APFSPoolCompat & to_pool(\n    const TSK_POOL_INFO* pool_info) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fs_info_to_pool
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - to_pool
    linkageType: ''
    returnType: APFSPoolCompat
    signature: "APFSPoolCompat & fs_info_to_pool(\n    const TSK_FS_INFO* fs_info)
      noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: to_pool_vol_block
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: "TSK_DADDR_T to_pool_vol_block(\n    const TSK_FS_INFO* fs_info) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<APFSFSCompat*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: to_fs
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<APFSFSCompat*>
    linkageType: ''
    returnType: APFSFSCompat
    signature: APFSFSCompat & to_fs(const TSK_FS_INFO* fs_info) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:56,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:57,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: unsupported_function
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t unsupported_function(const char* func) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: xattribute_type
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM xattribute_type(const std::string& name) noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - APFS_ITEM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: to_name_type
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_TYPE_ENUM
    signature: TSK_FS_NAME_TYPE_ENUM to_name_type(APFS_ITEM_TYPE type) noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - APFS_ITEM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: to_meta_type
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_TYPE_ENUM
    signature: TSK_FS_META_TYPE_ENUM to_meta_type(APFS_ITEM_TYPE type) noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_FS_META_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: to_string
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * to_string(TSK_FS_META_TYPE_ENUM type) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - typeNum
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: attr_type_name
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * attr_type_name(uint32_t typeNum) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:170,1
    - Dst: to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:171,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:181,1
    - Dst: first_img_offset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:186,1
    - Dst: APFSFileSystem::alloc_blocks
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:187,1
    - Dst: block_size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:188,1
    - Dst: dev_block_size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:189,1
    - Dst: num_blocks
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:191,1
    - Dst: num_blocks
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:192,1
    - Dst: APFSFileSystem::last_inum
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:194,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:197,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:198,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:204,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:208,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:214,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:219,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:225,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:230,1
    - Dst: unsupported_function
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:234,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:238,1
    - Dst: static_cast<APFSFSCompat*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:242,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:247,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:255,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 4
    argNames:
    - img_info
    - pool_info
    - vol_block
    - pass
    argTypes:
    - TSK_IMG_INFO*
    - TSK_POOL_INFO*
    - apfs_block_num
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 263
    functionName: APFSFSCompat::APFSFSCompat
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::alloc_blocks
    - dev_block_size
    - num_blocks
    - tsk_init_lock
    - static_cast<APFSFSCompat*>
    - to_fs
    - unsupported_function
    - APFSFileSystem::last_inum
    - to_pool
    - block_size
    - first_img_offset
    - APFSFileSystem::encrypted
    linkageType: ''
    returnType: void
    signature: "void APFSFSCompat::APFSFSCompat(TSK_IMG_INFO* img_info, const TSK_POOL_INFO*
      pool_info,\n                           apfs_block_num vol_block, const char*
      pass)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fs_info_to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:266,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:268,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:273,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:274,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:275,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:277,1
    - Dst: APFSFileSystem::uuid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:277,1
    - Dst: APFSFileSystem::role
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:280,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:297,1
    - Dst: APFSFileSystem::block_num
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:297,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:298,1
    - Dst: APFSFileSystem::oid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:298,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:299,1
    - Dst: APFSFileSystem::xid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:299,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:300,1
    - Dst: APFSFileSystem::name
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:300,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:302,1
    - Dst: APFSFileSystem::used
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:302,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:304,1
    - Dst: APFSFileSystem::reserved
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:305,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:306,1
    - Dst: APFSFileSystem::reserved
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:306,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:308,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:311,1
    - Dst: APFSFileSystem::quota
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:312,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:313,1
    - Dst: APFSFileSystem::quota
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:313,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:315,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:317,1
    - Dst: APFSFileSystem::case_sensitive
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:318,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:319,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:319,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:320,1
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:320,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:323,1
    - Dst: APFSFileSystem::formatted_by
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:324,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:327,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:328,1
    - Dst: APFSFileSystem::created
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:328,1
    - Dst: APFSFileSystem::created
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:329,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:330,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:331,1
    - Dst: APFSFileSystem::changed
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:331,1
    - Dst: APFSFileSystem::changed
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:332,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:334,1
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:334,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:335,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:336,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:337,1
    - Dst: APFSFileSystem::crypto_info
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:339,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:342,1
    - Dst: auto::password::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:342,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:344,1
    - Dst: auto::password_hint::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:344,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:347,1
    - Dst: uuid::str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:347,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:352,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:354,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:356,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:358,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:360,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:362,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:365,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:368,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:370,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:372,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:375,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:378,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:380,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:382,1
    - Dst: APFSFileSystem::snapshots
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:386,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:387,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:388,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:389,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:390,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:392,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:394,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:396,1
    - Dst: APFSFileSystem::unmount_log
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:400,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:401,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:402,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:403,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:404,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:405,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:407,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:409,1
    - Dst: logstr::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:411,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:417,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:418,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:419,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:419,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 108
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 421
    functionName: APFSFSCompat::fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::xid
    - tsk_fprintf
    - APFSFileSystem::uuid
    - tsk_fs_time_to_str_subsecs
    - tsk_error_set_errno
    - APFSFileSystem::name
    - to_pool_vol_block
    - APFSFileSystem::snapshots
    - APFSFileSystem::changed
    - name::c_str
    - auto::password::c_str
    - APFSFileSystem::oid
    - APFSFileSystem::created
    - APFSFileSystem::case_sensitive
    - auto::password_hint::c_str
    - APFSFileSystem::used
    - APFSFileSystem::formatted_by
    - APFSFileSystem::role
    - APFSFileSystem::reserved
    - what
    - tsk_error_reset
    - fs_info_to_pool
    - APFSFileSystem::crypto_info
    - APFSFileSystem::quota
    - hardware_crypto
    - logstr::c_str
    - auto::empty
    - tsk_error_set_errstr
    - APFSFileSystem::block_num
    - APFSFileSystem::unmount_log
    - uuid::str
    - APFSFileSystem::encrypted
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t APFSFSCompat::fsstat(FILE* hFile) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:425,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:426,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:427,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:432,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:433,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:434,1
    - Dst: fs_info_to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:438,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:438,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:440,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:442,1
    - Dst: APFSFileSystem::name
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:442,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:443,1
    - Dst: APFSFileSystem::uuid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:443,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:444,1
    - Dst: APFSFileSystem::password_hint
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:444,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:446,1
    - Dst: APFSFileSystem::formatted_by
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:446,1
    - Dst: APFSFileSystem::block_num
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:449,1
    - Dst: APFSFileSystem::oid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:450,1
    - Dst: APFSFileSystem::xid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:451,1
    - Dst: APFSFileSystem::used
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:452,1
    - Dst: APFSFileSystem::reserved
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:453,1
    - Dst: APFSFileSystem::quota
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:454,1
    - Dst: APFSFileSystem::created
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:455,1
    - Dst: APFSFileSystem::changed
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:456,1
    - Dst: APFSFileSystem::unmount_log
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:458,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:462,1
    - Dst: logstr::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:462,1
    - Dst: APFSFileSystem::role
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:467,1
    - Dst: APFSFileSystem::case_sensitive
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:468,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:469,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:474,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:475,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:476,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 2
    argNames:
    - fs_info
    - info
    argTypes:
    - TSK_FS_INFO*
    - apfs_fsstat_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 478
    functionName: tsk_apfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::xid
    - memset
    - APFSFileSystem::uuid
    - tsk_error_set_errno
    - APFSFileSystem::name
    - to_pool_vol_block
    - APFSFileSystem::changed
    - APFSFileSystem::oid
    - APFSFileSystem::created
    - APFSFileSystem::case_sensitive
    - memcpy
    - APFSFileSystem::encrypted
    - APFSFileSystem::formatted_by
    - APFSFileSystem::role
    - APFSFileSystem::reserved
    - what
    - tsk_error_reset
    - fs_info_to_pool
    - APFSFileSystem::quota
    - logstr::c_str
    - tsk_error_set_errstr
    - APFSFileSystem::block_num
    - APFSFileSystem::password_hint
    - APFSFileSystem::unmount_log
    - strncpy
    - APFSFileSystem::used
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_apfs_fsstat(TSK_FS_INFO* fs_info, apfs_fsstat_info* info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:486,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:487,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:488,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:493,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:500,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:503,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:510,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:512,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:513,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:514,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:520,1
    - Dst: auto::valid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:521,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:522,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:523,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:524,1
    - Dst: auto::children
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:530,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:531,1
    - Dst: name::length
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:531,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:537,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:540,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:540,1
    - Dst: to_name_type
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:542,1
    - Dst: APFS_ITEM_TYPE
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:542,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:546,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:547,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:551,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:556,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:557,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:558,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 3
    argNames:
    - a_fs_dir
    - inode_num
    - recursion_depth
    argTypes:
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 560
    functionName: APFSFSCompat::dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - auto::valid
    - tsk_fprintf
    - bitfield_value
    - name::length
    - tsk_error_set_errno
    - name::c_str
    - tsk_fs_file_open_meta
    - tsk_fs_dir_add
    - static_cast<APFSJObject*>
    - what
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_fs_name_free
    - auto::children
    - tsk_fs_name_alloc
    - APFS_ITEM_TYPE
    - to_name_type
    - tsk_error_set_errstr
    - strncpy
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM APFSFSCompat::dir_open_meta(TSK_FS_DIR** a_fs_dir,\n
      \                                           TSK_INUM_T inode_num,\n                                            int
      recursion_depth) const\n    noexcept"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:569,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:570,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:571,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:579,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:595,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:598,1
    - Dst: TSK_FS_INFO*::file_add_meta
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:603,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:607,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:609,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:613,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 627
    functionName: APFSFSCompat::inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_FS_INFO*::file_add_meta
    - tsk_fs_meta_alloc
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t APFSFSCompat::inode_walk(TSK_FS_INFO* fs, TSK_INUM_T start_inum,
      TSK_INUM_T end_inum,\n    TSK_FS_META_FLAG_ENUM flags, TSK_FS_META_WALK_CB action,
      void* ptr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:632,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:633,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:634,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:640,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:644,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:651,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:654,1
    - Dst: obj
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:656,1
    - Dst: APFSJObject::APFSJObject
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:656,1
    - Dst: auto::valid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:657,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:658,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:659,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:660,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:665,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:667,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:669,1
    - Dst: to_meta_type
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:674,1
    - Dst: APFS_ITEM_TYPE
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:674,1
    - Dst: TSK_FS_META_MODE_ENUM
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:675,1
    - Dst: auto::size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:677,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:692,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:694,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:697,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:699,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:700,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:712,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:713,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:714,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:714,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 2
    argNames:
    - fs_file
    - addr
    argTypes:
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 716
    functionName: APFSFSCompat::file_add_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - bitfield_value
    - APFSJObject::APFSJObject
    - tsk_error_set_errno
    - auto::inode
    - tsk_fs_file_attr_get_idx
    - TSK_FS_META_MODE_ENUM
    - static_cast<APFSJObject*>
    - what
    - tsk_error_reset
    - tsk_fs_meta_reset
    - obj
    - auto::size
    - strcmp
    - tsk_malloc
    - to_meta_type
    - APFS_ITEM_TYPE
    - tsk_fs_attr_read
    - tsk_error_set_errstr
    - tsk_fs_meta_alloc
    - tsk_fs_file_attr_getsize
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t APFSFSCompat::file_add_meta(TSK_FS_FILE* fs_file, TSK_INUM_T
      addr) const\n    noexcept"
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:732,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:734,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:738,1
    - Dst: auto::extents
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:741,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:742,1
    - Dst: auto::extents
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:752,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:753,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:756,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:785,1
    - Dst: auto::size_on_disk
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:787,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:790,1
    - Dst: auto::is_clone
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:793,1
    - Dst: obj
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:794,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:794,1
    - Dst: auto::extents
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:797,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:798,1
    - Dst: auto::extents
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:808,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:809,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:812,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:841,1
    - Dst: auto::size_on_disk
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:844,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:846,1
    - Dst: auto::inline_xattrs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:857,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:858,1
    - Dst: xattribute_type
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:864,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:872,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:872,1
    - Dst: data::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:873,1
    - Dst: data::length
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:874,1
    - Dst: auto::nonres_xattrs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:881,1
    - Dst: obj
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:882,1
    - Dst: auto::valid
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:884,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:887,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:890,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:895,1
    - Dst: auto::extents
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:905,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:906,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:909,1
    - Dst: xattribute_type
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:937,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:947,1
    - Dst: name::c_str
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:947,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:951,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:961,1
    - Dst: std::make_unique<char[]>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:965,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:967,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:967,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:972,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:977,1
    - Dst: reinterpret_cast<DECMPFS_DISK_HEADER*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:984,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:984,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:986,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:988,1
    - Dst: decmpfs_file_read_zlib_attr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:994,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:994,1
    - Dst: decmpfs_file_read_lzvn_attr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1001,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1001,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1009,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1014,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1029,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1033,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1036,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1049,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1052,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1069,1
    - Dst: TSK_FS_ATTR_FLAG_ENUM
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1073,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1076,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1090,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1091,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1092,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1092,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 225
    argCount: 1
    argNames:
    - file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 718
    functionDepth: 4
    functionLinenumber: 718
    functionLinenumberEnd: 1094
    functionName: APFSFSCompat::load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - auto::get
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - data::length
    - reinterpret_cast<DECMPFS_DISK_HEADER*>
    - error_detected
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - auto::inode
    - tsk_fs_attr_run_alloc
    - tsk_fs_attrlist_getnew
    - auto::inline_xattrs
    - name::c_str
    - tsk_getu64
    - tsk_fs_attr_set_run
    - xattribute_type
    - std::make_unique<char[]>
    - static_cast<APFSJObject*>
    - auto::size_on_disk
    - auto::extents
    - decmpfs_file_read_lzvn_attr
    - what
    - tsk_error_reset
    - obj
    - error_returned
    - tsk_getu32
    - auto::is_clone
    - decmpfs_file_read_zlib_attr
    - TSK_FS_ATTR_FLAG_ENUM
    - tsk_fs_attr_read
    - data::c_str
    - auto::nonres_xattrs
    - tsk_error_set_errstr
    - tsk_fs_attrlist_alloc
    - tsk_fs_attr_set_str
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t APFSFSCompat::load_attrs(TSK_FS_FILE* file) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1107,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1114
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *ptr)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1119,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1125,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1129,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1131,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1135,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1137,1
    - Dst: auto::is_clone
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1138,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1139,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1140,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1142,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1145,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1145,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1147,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1148,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1150,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1153,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1156,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1159,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1165,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1167,1
    - Dst: auto::name
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1167,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1169,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1171,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1174,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1176,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1179,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1182,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1185,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1188,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1190,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1194,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1196,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1202,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1205,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1208,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1211,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1214,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1217,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1219,1
    - Dst: APFSFSCompat::date_added
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1223,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1226,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1233,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1234,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1236,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1237,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1239,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1240,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1242,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1247,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1248,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1258,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1260,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1263,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1266,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1267,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1269,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1272,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1273,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1277,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1278,1
    - Dst: tsk_fs_file_attr_get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1283,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1288,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1291,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1293,1
    - Dst: attr_type_name
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1299,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1305,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1316,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1317,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1318,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1319,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1326,1
    - Dst: TSK_FS_FILE_WALK_FLAG_ENUM
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1328,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1331,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1332,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1333,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1336,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1340,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1356,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1366,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1373,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1380,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1383,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1384,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1385,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1385,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 165
    argCount: 5
    argNames:
    - istat_flags
    - hFile
    - inode_num
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1116
    functionDepth: 4
    functionLinenumber: 1116
    functionLinenumberEnd: 1387
    functionName: APFSFSCompat::istat
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - tsk_fs_time_to_str_subsecs
    - tsk_fs_file_walk_type
    - to_string
    - error_detected
    - tsk_error_set_errno
    - auto::inode
    - auto::name
    - tsk_fs_file_attr_get_idx
    - tsk_fs_attr_print
    - APFSFSCompat::date_added
    - tsk_fs_file_open_meta
    - static_cast<APFSJObject*>
    - what
    - tsk_fs_file_attr_get
    - tsk_error_reset
    - error_returned
    - attr_type_name
    - auto::is_clone
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - tsk_error_set_errstr
    - tsk_fs_file_attr_getsize
    - tsk_fs_meta_make_ls
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t APFSFSCompat::istat(TSK_FS_ISTAT_FLAG_ENUM istat_flags, FILE*
      hFile,\n                            TSK_INUM_T inode_num, TSK_DADDR_T numblock,\n
      \                           int32_t sec_skew) const noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1391,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1392,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1393,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1398,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1399,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1400,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1404,1
    - Dst: static_cast<APFSJObject*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1406,1
    - Dst: auto::is_clone
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1408,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1409,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1412,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1414,1
    - Dst: date_added
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1417,1
    - Dst: auto::inode
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1417,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1422,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1423,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1424,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - fs_file
    - info
    argTypes:
    - TSK_FS_FILE*
    - apfs_istat_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1389
    functionDepth: 3
    functionLinenumber: 1389
    functionLinenumberEnd: 1426
    functionName: tsk_apfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - memset
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - to_fs
    - auto::is_clone
    - tsk_error_set_errno
    - auto::inode
    - date_added
    - static_cast<APFSJObject*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_apfs_istat(TSK_FS_FILE* fs_file, apfs_istat_info* info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<APFSPoolCompat*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1442,1
    - Dst: APFSPoolCompat*::nx
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - fs
    - addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1452
    functionName: APFSFSCompat::block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<APFSPoolCompat*>
    - APFSPoolCompat*::nx
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM APFSFSCompat::block_getflags(TSK_FS_INFO* fs,
      TSK_DADDR_T addr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1462,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1468,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1469,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1470,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1476,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1477,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1478,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1497,1
    - Dst: TSK_FS_INFO*::block_getflags
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1509,1
    - Dst: tsk_fs_block_get
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1521,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1522,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1524,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1529,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1534,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1541,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - flags
    - cb
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1454
    functionDepth: 3
    functionLinenumber: 1454
    functionLinenumberEnd: 1544
    functionName: APFSFSCompat::block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - cb
    - tsk_fs_block_alloc
    - tsk_fs_block_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_block_free
    - TSK_FS_INFO*::block_getflags
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t APFSFSCompat::block_walk(TSK_FS_INFO * fs, TSK_DADDR_T start,
      TSK_DADDR_T end,\n    TSK_FS_BLOCK_WALK_FLAG_ENUM flags, TSK_FS_BLOCK_WALK_CB
      cb,\n    void *ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decryptor::decrypt_buffer
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1550,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1559,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1560,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1561,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1561,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1565,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1566,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - block_num
    - data
    argTypes:
    - TSK_DADDR_T
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1570
    functionName: APFSFSCompat::decrypt_block
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - decryptor::decrypt_buffer
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t APFSFSCompat::decrypt_block(TSK_DADDR_T block_num, void* data)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fs_info_to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1574,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1574,1
    - Dst: fs_info_to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1577,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1577,1
    - Dst: APFSFileSystem::case_sensitive
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1580,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1581,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1584,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1586,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1587,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1588,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1572
    functionDepth: 3
    functionLinenumber: 1572
    functionLinenumberEnd: 1590
    functionName: APFSFSCompat::name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - fs_info_to_pool
    - APFSFileSystem::case_sensitive
    - strcmp
    - tsk_error_set_errno
    - strcasecmp
    - to_pool_vol_block
    linkageType: ''
    returnType: int
    signature: int APFSFSCompat::name_cmp(const char* s1, const char* s2) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1595,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1596,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1597,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1602,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1603,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1604,1
    - Dst: fs_info_to_pool
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1609,1
    - Dst: to_pool_vol_block
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1609,1
    - Dst: snapshots
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1609,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1612,1
    - Dst: auto::size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1613,1
    - Dst: auto::size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1615,1
    - Dst: auto::size
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1617,1
    - Dst: name::length
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1622,1
    - Dst: char::char
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1622,1
    - Dst: name::copy
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1623,1
    - Dst: name::length
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1623,1
    - Dst: name::length
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1624,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1630,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1631,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1632,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - fs_info
    - list
    argTypes:
    - TSK_FS_INFO*
    - apfs_snapshot_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1592
    functionDepth: 3
    functionLinenumber: 1592
    functionLinenumberEnd: 1634
    functionName: tsk_apfs_list_snapshots
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - snapshots
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - fs_info_to_pool
    - auto::size
    - name::length
    - name::copy
    - tsk_malloc
    - tsk_error_set_errno
    - to_pool_vol_block
    - char::char
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_apfs_list_snapshots(TSK_FS_INFO* fs_info,\n                                apfs_snapshot_list**
      list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1638,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1639,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1640,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1649,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1653,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1654,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1655,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - list
    argTypes:
    - apfs_snapshot_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1636
    functionDepth: 3
    functionLinenumber: 1636
    functionLinenumberEnd: 1657
    functionName: tsk_apfs_free_snapshot_list
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_apfs_free_snapshot_list(apfs_snapshot_list* list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1661,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1662,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1663,1
    - Dst: to_fs
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1667,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1671,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1672,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1673,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - fs_info
    - snap_xid
    argTypes:
    - TSK_FS_INFO*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1675
    functionName: tsk_apfs_set_snapshot
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - to_fs
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_apfs_set_snapshot(TSK_FS_INFO* fs_info, uint64_t snap_xid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1677,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1680,1
    - Dst: static_cast<std::unordered_map<uint64_t, uint64_t>*>
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1688
    functionName: APFSFSCompat::date_added_cache::populate(uint64_t pid) noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - clear
    - tsk_fs_dir_walk
    - static_cast<std::unordered_map<uint64_t, uint64_t>*>
    linkageType: ''
    returnType: void
    signature: void APFSFSCompat::date_added_cache::populate(uint64_t pid) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: populate
      Src: /src/sleuthkit/tsk/fs/apfs_compat.cpp:1697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - parent_id
    - inode_num
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1706
    functionName: "APFSFSCompat::date_added_cache::lookup(uint64_t parent_id,\n                                                uint64_t
      inode_num) noexcept"
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    functionUses: 0
    functionsReached:
    - populate
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t APFSFSCompat::date_added_cache::lookup(uint64_t parent_id,\n
      \                                               uint64_t inode_num) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_vol_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_open.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_part_info
    - a_ftype
    argTypes:
    - TSK_VS_PART_INFO*
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: tsk_fs_open_vol
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 0
    functionsReached:
    - tsk_fs_open_vol_decrypt
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\ntsk_fs_open_vol(const TSK_VS_PART_INFO * a_part_info,\n
      \   TSK_FS_TYPE_ENUM a_ftype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:75,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:76,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:77,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:82,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:83,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:84,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_open.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a_part_info
    - a_ftype
    - a_pass
    argTypes:
    - TSK_VS_PART_INFO*
    - TSK_FS_TYPE_ENUM
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 93
    functionName: tsk_fs_open_vol_decrypt
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_open_img_decrypt
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\ntsk_fs_open_vol_decrypt(const TSK_VS_PART_INFO * a_part_info,\n
      \   TSK_FS_TYPE_ENUM a_ftype, const char * a_pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_open.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_img_info
    - a_offset
    - a_ftype
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: tsk_fs_open_img
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\ntsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T
      a_offset,\n    TSK_FS_TYPE_ENUM a_ftype)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:152,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:153,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:154,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:164,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:165,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:166,1
    - Dst: logicalfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:170,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_open.c:182,1
    - Dst: open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:191,1
    - Dst: TSK_FS_INFO*::close
      Src: /src/sleuthkit/tsk/fs/fs_open.c:202,1
    - Dst: TSK_FS_INFO*::close
      Src: /src/sleuthkit/tsk/fs/fs_open.c:203,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:204,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:205,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:206,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:218,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:220,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:221,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_open.c:222,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:222,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:225,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:231,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:232,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:233,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:238,1
    - Dst: detectUnsupportedImageType
      Src: /src/sleuthkit/tsk/fs/fs_open.c:244,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:247,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:248,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:249,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_open.c:250,1
    - Dst: detectVolumeEncryption
      Src: /src/sleuthkit/tsk/fs/fs_open.c:256,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:259,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:260,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:263,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:264,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:267,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_open.c:269,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:273,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/fs_open.c:279,1
    - Dst: ntfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:280,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fs_open.c:282,1
    - Dst: fatfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:283,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/fs_open.c:285,1
    - Dst: ffs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:286,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/fs_open.c:288,1
    - Dst: ext2fs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:289,1
    - Dst: TSK_FS_TYPE_ISHFS
      Src: /src/sleuthkit/tsk/fs/fs_open.c:291,1
    - Dst: hfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:292,1
    - Dst: TSK_FS_TYPE_ISISO9660
      Src: /src/sleuthkit/tsk/fs/fs_open.c:294,1
    - Dst: iso9660_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:295,1
    - Dst: TSK_FS_TYPE_ISRAW
      Src: /src/sleuthkit/tsk/fs/fs_open.c:297,1
    - Dst: rawfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:298,1
    - Dst: TSK_FS_TYPE_ISSWAP
      Src: /src/sleuthkit/tsk/fs/fs_open.c:300,1
    - Dst: swapfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:301,1
    - Dst: TSK_FS_TYPE_ISYAFFS2
      Src: /src/sleuthkit/tsk/fs/fs_open.c:303,1
    - Dst: yaffs2_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:304,1
    - Dst: TSK_FS_TYPE_ISAPFS
      Src: /src/sleuthkit/tsk/fs/fs_open.c:306,1
    - Dst: apfs_open
      Src: /src/sleuthkit/tsk/fs/fs_open.c:307,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_open.c:309,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_open.c:310,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_open.c:311,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 114
    argCount: 4
    argNames:
    - a_img_info
    - a_offset
    - a_ftype
    - a_pass
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 313
    functionName: tsk_fs_open_img_decrypt
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 5
    functionsReached:
    - memset
    - tsk_fprintf
    - TSK_FS_TYPE_ISRAW
    - swapfs_open
    - TSK_FS_TYPE_ISFAT
    - tsk_error_set_errno
    - logicalfs_open
    - tsk_error_get_errno
    - ntfs_open
    - ffs_open
    - fatfs_open
    - hfs_open
    - apfs_open
    - TSK_FS_TYPE_ISFFS
    - TSK_FS_TYPE_ISNTFS
    - yaffs2_open
    - TSK_FS_TYPE_ISAPFS
    - tsk_error_reset
    - detectVolumeEncryption
    - TSK_FS_INFO*::close
    - TSK_FS_TYPE_ISSWAP
    - detectUnsupportedImageType
    - rawfs_open
    - ext2fs_open
    - tsk_error_set_errstr
    - open
    - TSK_FS_TYPE_ISEXT
    - TSK_FS_TYPE_ISISO9660
    - TSK_FS_TYPE_ISYAFFS2
    - TSK_FS_TYPE_ISHFS
    - tsk_error_get_errstr
    - strncpy
    - free
    - iso9660_open
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\ntsk_fs_open_img_decrypt(TSK_IMG_INFO * a_img_info,
      TSK_OFF_T a_offset,\n    TSK_FS_TYPE_ENUM a_ftype, const char * a_pass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_INFO*::close
      Src: /src/sleuthkit/tsk/fs/fs_open.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: tsk_fs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 4
    functionsReached:
    - TSK_FS_INFO*::close
    linkageType: ''
    returnType: void
    signature: void tsk_fs_close(TSK_FS_INFO * a_fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_open.c:338,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/fs_open.c:340,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/fs_open.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: tsk_fs_malloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 3
    functionsReached:
    - tsk_malloc
    - tsk_init_lock
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      tsk_fs_malloc(size_t a_len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_open.c:355,1
    - Dst: freeEncryptionData
      Src: /src/sleuthkit/tsk/fs/fs_open.c:360,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_open.c:367,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/fs_open.c:372,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/fs_open.c:373,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_open.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: tsk_fs_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_open.c
    functionUses: 6
    functionsReached:
    - tsk_deinit_lock
    - tsk_list_free
    - freeEncryptionData
    - free
    - tsk_fs_dir_close
    linkageType: ''
    returnType: void
    signature: void tsk_fs_free(TSK_FS_INFO * a_fs_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_load.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: tsk_fs_load_file_action
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_load.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_load_file_action(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off,\n    TSK_DADDR_T addr, char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags,\n    void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a_addr
    - a_seq
    - a_hash
    argTypes:
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: NTFS_META_ADDR::NTFS_META_ADDR
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NTFS_META_ADDR(uint64_t a_addr, uint32_t a_seq, uint32_t a_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: NTFS_META_ADDR::getAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getAddr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: NTFS_META_ADDR::getSeq
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getSeq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: NTFS_META_ADDR::getHash
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getHash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parSeq
    - inum
    - seq
    - hash
    argTypes:
    - uint32_t
    - TSK_INUM_T
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: NTFS_PAR_MAP::add
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add (uint32_t parSeq, TSK_INUM_T inum, uint32_t seq, uint32_t
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seq
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: NTFS_PAR_MAP::exists
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool exists (uint32_t seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: '&get (uint32_t seq)'
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector <NTFS_META_ADDR>
    signature: std::vector <NTFS_META_ADDR> &get (uint32_t seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map<TSK_INUM_T, NTFS_PAR_MAP>::map<TSK_INUM_T, NTFS_PAR_MAP>
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: getParentMap
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - std::map<TSK_INUM_T, NTFS_PAR_MAP>::map<TSK_INUM_T, NTFS_PAR_MAP>
    linkageType: ''
    returnType: std::map<TSK_INUM_T, NTFS_PAR_MAP>
    signature: std::map<TSK_INUM_T, NTFS_PAR_MAP> * getParentMap(NTFS_INFO *ntfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:137,1
    - Dst: NTFS_PAR_MAP::add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:139,1
    - Dst: tsk_fs_dir_hash
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ntfs
    - name_list
    - child_meta
    argTypes:
    - NTFS_INFO*
    - TSK_FS_META_NAME_LIST*
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: ntfs_parent_map_add
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - getParentMap
    - NTFS_PAR_MAP::add
    - tsk_fs_dir_hash
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_parent_map_add(NTFS_INFO * ntfs, TSK_FS_META_NAME_LIST
      *name_list, TSK_FS_META *child_meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:156,1
    - Dst: std::map*::count
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:157,1
    - Dst: NTFS_PAR_MAP::exists
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ntfs
    - par
    - seq
    argTypes:
    - NTFS_INFO*
    - TSK_INUM_T
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: ntfs_parent_map_exists
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - NTFS_PAR_MAP::exists
    - getParentMap
    - std::map*::count
    linkageType: ''
    returnType: bool
    signature: bool ntfs_parent_map_exists(NTFS_INFO *ntfs, TSK_INUM_T par, uint32_t
      seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:179,1
    - Dst: NTFS_PAR_MAP::get
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ntfs
    - par
    - seq
    argTypes:
    - NTFS_INFO*
    - TSK_INUM_T
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: ntfs_parent_map_get
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - getParentMap
    - NTFS_PAR_MAP::get
    linkageType: ''
    returnType: std::vector <NTFS_META_ADDR>
    signature: 'std::vector <NTFS_META_ADDR> &

      ntfs_parent_map_get(NTFS_INFO * ntfs, TSK_INUM_T par, uint32_t seq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:197,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:200,1
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:203,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a_ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: ntfs_orphan_map_free
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - getParentMap
    - tsk_release_lock
    linkageType: ''
    returnType: void
    signature: void ntfs_orphan_map_free(NTFS_INFO * a_ntfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntfs_parent_map_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 234
    functionName: ntfs_parent_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - ntfs_parent_map_add
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM ntfs_parent_act(TSK_FS_FILE * fs_file, void * /*ptr*/)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:253,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:255,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:256,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:264,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:278,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - ntfs
    - idxe
    - endaddr
    - fs_name
    argTypes:
    - NTFS_INFO*
    - ntfs_idxentry*
    - uintptr_t
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 297
    functionName: ntfs_dent_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_fs_name_reset
    - tsk_UTF16toUTF8
    - tsk_getu16
    - tsk_getu48
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_dent_copy(NTFS_INFO * ntfs, ntfs_idxentry * idxe, uintptr_t
      endaddr,\n    TSK_FS_NAME * fs_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:318,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ntfs
    - idxe
    - endaddr
    - fs_name
    argTypes:
    - NTFS_INFO*
    - ntfs_idxentry*
    - uintptr_t
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 343
    functionName: ntfs_dent_copy_short_only
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_UTF16toUTF8
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_dent_copy_short_only(NTFS_INFO * ntfs, ntfs_idxentry
      * idxe,\n    uintptr_t endaddr, TSK_FS_NAME * fs_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: is_time
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t is_time(uint64_t t)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:397,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:402,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:409,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:410,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:411,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:430,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:436,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:437,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:438,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:443,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:444,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:445,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:446,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:448,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:449,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:462,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:465,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:472,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:475,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:483,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:484,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:494,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:499,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:500,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:506,1
    - Dst: is_time
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:511,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:511,1
    - Dst: is_time
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:512,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:512,1
    - Dst: is_time
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:513,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:513,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:517,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:546,1
    - Dst: ntfs_dent_copy_short_only
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:547,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:549,1
    - Dst: tsk_fs_name_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:552,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:557,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:558,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:568,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:569,1
    - Dst: ntfs_dent_copy
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:576,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:578,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:591,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:592,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:601,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:604,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:607,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:613,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:614,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:636,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:645,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:652,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:653,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:659,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 117
    argCount: 6
    argNames:
    - a_ntfs
    - a_fs_dir
    - a_is_del
    - a_idxe
    - a_idxe_len
    - a_used_len
    argTypes:
    - NTFS_INFO*
    - TSK_FS_DIR*
    - uint8_t
    - ntfs_idxentry*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 661
    functionName: ntfs_proc_idxentry
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - ntfs_dent_copy
    - tsk_fs_name_reset
    - tsk_error_set_errstr
    - tsk_error_reset
    - ntfs_dent_copy_short_only
    - tsk_getu16
    - tsk_fs_name_free
    - tsk_error_set_errno
    - tsk_getu48
    - is_time
    - tsk_fs_name_alloc
    - tsk_fs_dir_add
    - tsk_getu64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_proc_idxentry(NTFS_INFO * a_ntfs, TSK_FS_DIR
      * a_fs_dir,\n    uint8_t a_is_del, ntfs_idxentry * a_idxe, uint32_t a_idxe_len,\n
      \   uint32_t a_used_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:681,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:686,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:688,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:689,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:690,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:695,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:697,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:698,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:699,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:706,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:710,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:713,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:721,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:726,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:728,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:729,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:730,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:743,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:745,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ntfs
    - idxrec
    - len
    argTypes:
    - NTFS_INFO*
    - ntfs_idxrec*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 753
    functionName: ntfs_fix_idxrec
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu16
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_fix_idxrec(NTFS_INFO * ntfs, ntfs_idxrec * idxrec, uint32_t
      len)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:798,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:799,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:800,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:805,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:806,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:807,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:813,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:819,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:824,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:830,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:831,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:836,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:837,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:842,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:843,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:844,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:858,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:861,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:866,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:867,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:868,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:875,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:876,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:877,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:878,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:882,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:883,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:884,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:885,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:887,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:905,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:908,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:916,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:930,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:931,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:939,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:949,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:950,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:955,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:962,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:970,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:971,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:972,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:973,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:974,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:978,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:979,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:980,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:988,1
    - Dst: ntfs_proc_idxentry
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:990,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:993,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:994,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:995,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:996,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1011,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1019,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1021,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1022,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1023,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1032,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1033,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1034,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1041,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1042,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1043,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1054,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1063,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1066,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1069,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1070,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1076,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1078,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1079,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1080,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1107,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1108,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1109,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1111,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1118,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1120,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1124,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1145,1
    - Dst: ntfs_fix_idxrec
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1150,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1151,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1158,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1170,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1172,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1173,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1174,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1177,1
    - Dst: ntfs_proc_idxentry
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1183,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1186,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1187,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1191,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1214,1
    - Dst: ntfs_fix_idxrec
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1219,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1220,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1225,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1226,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1227,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1228,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1231,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1236,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1246,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1248,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1249,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1250,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1253,1
    - Dst: ntfs_proc_idxentry
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1258,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1261,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1262,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1266,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1274,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1280,1
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1285,1
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1287,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1289,1
    - Dst: ntfs_parent_map_exists
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1311,1
    - Dst: ntfs_parent_map_get
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1314,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1316,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1317,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1325,1
    - Dst: tsk_fs_dir_contains
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1334,1
    - Dst: getAddr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1334,1
    - Dst: getHash
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1334,1
    - Dst: getAddr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1340,1
    - Dst: getSeq
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1341,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1345,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1367,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1368,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1374,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1377,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1379,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1385,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1388,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1389,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1393,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1394,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1397,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 302
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 1402
    functionName: ntfs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - getParentMap
    - tsk_fs_dir_alloc
    - tsk_fprintf
    - tsk_fs_dir_contains
    - strcpy
    - tsk_error_set_errno
    - ntfs_parent_map_exists
    - tsk_take_lock
    - tsk_fs_dir_find_orphans
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_release_lock
    - tsk_fs_dir_add
    - getAddr
    - TSK_FS_INFO*::inode_walk
    - getHash
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_getu32
    - tsk_fs_name_free
    - tsk_malloc
    - ntfs_fix_idxrec
    - std::vector::size
    - tsk_fs_attr_walk
    - tsk_fs_name_alloc
    - ntfs_proc_idxentry
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - getSeq
    - TSK_FS_ORPHANDIR_INUM
    - ntfs_parent_map_get
    - tsk_fs_dir_make_orphan_dir_name
    - tsk_fs_file_close
    - strncpy
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1451,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1452,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1453,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1458,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1460,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1470,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1474,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1492,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1497,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1505,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1537,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1539,1
    - Dst: ntfs_find_file_rec
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1546,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1548,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1558,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 6
    argNames:
    - fs
    - dinfo
    - fs_file
    - fs_name_list
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - NTFS_DINFO*
    - TSK_FS_FILE*
    - TSK_FS_META_NAME_LIST*
    - TSK_FS_DIR_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1437
    functionDepth: 3
    functionLinenumber: 1437
    functionLinenumberEnd: 1561
    functionName: ntfs_find_file_rec
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 1
    functionsReached:
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_errstr2_concat
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - ntfs_find_file_rec
    - TSK_FS_IS_DIR_META
    - strlen
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_find_file_rec(TSK_FS_INFO * fs, NTFS_DINFO * dinfo,\n
      \   TSK_FS_FILE * fs_file, TSK_FS_META_NAME_LIST * fs_name_list,\n    TSK_FS_DIR_WALK_CB
      action, void *ptr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1598,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1599,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1600,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1604,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1607,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1609,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1613,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1615,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1616,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1617,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1624,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1625,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1630,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1631,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1638,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1639,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1645,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1649,1
    - Dst: tsk_fs_attrlist_get_id
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1670,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1673,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1676,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1677,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1678,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1681,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1682,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1698,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1702,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1709,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1711,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1712,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1716,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1717,1
    - Dst: ntfs_find_file_rec
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1723,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1725,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1726,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1732,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1733,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 88
    argCount: 9
    argNames:
    - fs
    - inode_toid
    - type_toid
    - type_used
    - id_toid
    - id_used
    - dir_walk_flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - uint32_t
    - uint8_t
    - uint16_t
    - uint8_t
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_FS_DIR_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1582
    functionDepth: 4
    functionLinenumber: 1582
    functionLinenumberEnd: 1735
    functionName: ntfs_find_file
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 1
    functionsReached:
    - memset
    - tsk_fs_attrlist_get
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_attrlist_get_id
    - tsk_fs_name_alloc
    - tsk_error_errstr2_concat
    - ntfs_dinode_lookup
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_getu16
    - tsk_fs_file_close
    - strncpy
    - ntfs_find_file_rec
    - free
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_find_file(TSK_FS_INFO * fs, TSK_INUM_T inode_toid, uint32_t
      type_toid,\n    uint8_t type_used, uint16_t id_toid, uint8_t id_used,\n    TSK_FS_DIR_WALK_FLAG_ENUM
      dir_walk_flags, TSK_FS_DIR_WALK_CB action,\n    void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/ntfs_dent.cpp:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1742
    functionName: ntfs_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int ntfs_name_cmp(TSK_FS_INFO * /*a_fs_info*/, const char *s1, const
      char *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:45,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:46,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:48,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: debug_print_buf
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t debug_print_buf(unsigned char *buf, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: test_root
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t test_root(uint32_t a, uint32_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_root
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:104,1
    - Dst: test_root
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:105,1
    - Dst: test_root
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - feature_ro_compat
    - group_block
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: ext2fs_is_super_bg
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - test_root
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ext2fs_is_super_bg(uint32_t feature_ro_compat, uint32_t group_block)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:130,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:136,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:137,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:138,1
    - Dst: EXT2FS_HAS_INCOMPAT_FEATURE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:149,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:151,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:159,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:164,1
    - Dst: debug_print_buf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:167,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:171,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:172,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:174,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:180,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:183,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:186,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:189,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:190,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:191,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:204,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:209,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:213,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:214,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:216,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:222,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:224,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:226,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:228,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:229,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:230,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:238,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:240,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:242,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - ext2fs
    - grp_num
    argTypes:
    - EXT2FS_INFO*
    - EXT2_GRPNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 248
    functionName: ext2fs_group_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - debug_print_buf
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - ext4_getu64
    - tsk_fs_read
    - tsk_error_set_errstr2
    - EXT2FS_HAS_INCOMPAT_FEATURE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_group_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cm_ini
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:270,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:273,1
    - Dst: crc16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:274,1
    - Dst: crc16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:275,1
    - Dst: crc16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:276,1
    - Dst: crc16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:282,1
    - Dst: cm_crc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ext4_sb
    - block_group
    - gdp
    argTypes:
    - ext2fs_sb*
    - uint32_t
    - struct ext4fs_gd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: ext4_group_desc_csum
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - cm_ini
    - cm_crc
    - tsk_getu32
    - crc16
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t ext4_group_desc_csum(ext2fs_sb * ext4_sb, uint32_t block_group,\n
      \   struct ext4fs_gd *gdp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:301,1
    - Dst: putc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:302,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:302,1
    - Dst: putc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - map
    - len
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: ext2fs_print_map
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - putc
    - isset
    linkageType: ''
    returnType: void
    signature: void ext2fs_print_map(uint8_t * map, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext2fs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: INODE_TABLE_SIZE
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INODE_TABLE_SIZE(ext2fs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ext2fs_group_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:327,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:333,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:342,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:347,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:351,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:352,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:353,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:358,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:363,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:364,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:366,1
    - Dst: ext2fs_print_map
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:373,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - ext2fs
    - grp_num
    argTypes:
    - EXT2FS_INFO*
    - EXT2_GRPNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 376
    functionName: ext2fs_bmap_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - ext2fs_group_load
    - ext4_getu64
    - tsk_fs_read
    - tsk_error_set_errstr2
    - ext2fs_print_map
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_bmap_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ext2fs_group_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:395,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:402,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:414,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:419,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:423,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:424,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:425,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:431,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:433,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:438,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:439,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:441,1
    - Dst: ext2fs_print_map
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:448,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:449,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - ext2fs
    - grp_num
    argTypes:
    - EXT2FS_INFO*
    - EXT2_GRPNUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 452
    functionName: ext2fs_imap_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - ext2fs_group_load
    - ext4_getu64
    - tsk_fs_read
    - tsk_error_set_errstr2
    - ext2fs_print_map
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_imap_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:478,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:479,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:480,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:486,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:487,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:488,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:496,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:499,1
    - Dst: ext2fs_group_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:501,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:502,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:510,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:514,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:515,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:518,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:520,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:522,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:523,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:524,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:530,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:538,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:542,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:544,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:548,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:549,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:551,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:569,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:572,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:573,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:574,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:575,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:577,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:578,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:579,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:580,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:581,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:582,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:583,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:584,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:585,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - ext2fs
    - dino_inum
    - dino_buf
    - ea_buf
    - ea_buf_len
    argTypes:
    - EXT2FS_INFO*
    - TSK_INUM_T
    - ext2fs_inode*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 590
    functionName: ext2fs_dinode_load
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - printf
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - ext2fs_group_load
    - tsk_release_lock
    - ext4_getu64
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_dinode_load(EXT2FS_INFO * ext2fs, TSK_INUM_T dino_inum,\n
      \   ext2fs_inode * dino_buf, uint8_t ** ea_buf, size_t * ea_buf_len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:620,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:633,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:634,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:638,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:639,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:657,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:672,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:676,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:680,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:686,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:690,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:693,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:695,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:700,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:704,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:709,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 3
    argNames:
    - fs_file
    - ea_buf
    - ea_buf_len
    argTypes:
    - TSK_FS_FILE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 712
    functionName: ext4_load_attrs_inline
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - memset
    - tsk_getu32
    - memcpy
    - tsk_getu16
    - tsk_malloc
    - tsk_fs_attrlist_alloc
    - tsk_fs_attr_set_str
    - free
    - strlen
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext4_load_attrs_inline(TSK_FS_FILE *fs_file, const uint8_t
      * ea_buf, size_t ea_buf_len)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:730,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:731,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:732,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:738,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:742,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:771,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:773,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:775,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:778,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:780,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:782,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:785,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:787,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:789,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:792,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:794,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:796,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:799,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:801,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:813,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:816,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:821,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:821,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:824,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:824,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:826,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:827,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:828,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:829,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:832,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:834,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:836,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:837,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:839,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:849,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:855,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:861,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:867,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:870,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:875,1
    - Dst: ext4_load_attrs_inline
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:879,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:885,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:896,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:914,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:925,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:935,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:940,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:941,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:943,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:946,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:955,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:962,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:968,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:977,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:980,1
    - Dst: ext2fs_imap_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:982,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:983,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:988,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:996,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:997,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:998,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:999,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1008,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1011,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 173
    argCount: 6
    argNames:
    - ext2fs
    - fs_file
    - inum
    - dino_buf
    - ea_buf
    - ea_buf_len
    argTypes:
    - EXT2FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    - ext2fs_inode*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 718
    functionDepth: 6
    functionLinenumber: 718
    functionLinenumberEnd: 1021
    functionName: ext2fs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - memset
    - isset
    - free
    - tsk_error_set_errno
    - ext2fs_imap_load
    - tsk_fs_attrlist_markunused
    - tsk_take_lock
    - memcpy
    - tsk_release_lock
    - tsk_fs_read_block
    - tsk_error_reset
    - tsk_fs_meta_realloc
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - tsk_gets32
    - ext4_load_attrs_inline
    - TSK_IS_CNTRL
    - tsk_error_set_errstr
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_dinode_copy(EXT2FS_INFO * ext2fs, TSK_FS_FILE * fs_file,\n
      \   TSK_INUM_T inum, const ext2fs_inode * dino_buf, const uint8_t * ea_buf,
      size_t ea_buf_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1042,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1043,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1049,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1053,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1057,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1058,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1067,1
    - Dst: ext2fs_dinode_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1071,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1072,1
    - Dst: ext2fs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1076,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1077,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1081,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1031
    functionDepth: 7
    functionLinenumber: 1031
    functionLinenumberEnd: 1083
    functionName: ext2fs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_reset
    - tsk_fs_meta_alloc
    - tsk_malloc
    - tsk_error_set_errno
    - ext2fs_dinode_load
    - tsk_fs_dir_make_orphan_dir_meta
    - ext2fs_dinode_copy
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T inum)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1113,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1119,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1120,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1121,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1128,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1129,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1130,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1164,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1165,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1172,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1176,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1178,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1184,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1196,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1198,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1199,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1212,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1216,1
    - Dst: ext2fs_imap_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1218,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1219,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1220,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1221,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1225,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1232,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1233,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1234,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1236,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1237,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1238,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1246,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1249,1
    - Dst: ext2fs_dinode_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1254,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1255,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1256,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1265,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1276,1
    - Dst: ext2fs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1285,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1286,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1287,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1292,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1294,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1295,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1300,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1301,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1308,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1313,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1314,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1315,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1320,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1322,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1323,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1324,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1329,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1330,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1339,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1340,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 124
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1095
    functionDepth: 7
    functionLinenumber: 1095
    functionLinenumberEnd: 1343
    functionName: ext2fs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - isset
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - ext2fs_imap_load
    - tsk_take_lock
    - tsk_fs_dir_load_inum_named
    - tsk_error_errstr2_concat
    - tsk_release_lock
    - ext2fs_dinode_copy
    - tsk_error_reset
    - tsk_getu32
    - a_action
    - tsk_malloc
    - ext2fs_dinode_load
    - tsk_fs_dir_find_inum_named
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_alloc
    - tsk_fs_file_close
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,\n
      \   TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM flags,\n    TSK_FS_META_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ext2_dtog_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1363,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1366,1
    - Dst: ext2fs_bmap_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1369,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1370,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1382,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1383,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1405,1
    - Dst: INODE_TABLE_SIZE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1406,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1409,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1412,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1415,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1418,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1429,1
    - Dst: INODE_TABLE_SIZE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1430,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1433,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1435,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1437,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1439,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1447,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1347
    functionDepth: 6
    functionLinenumber: 1347
    functionLinenumberEnd: 1449
    functionName: ext2fs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - isset
    - tsk_getu32
    - ext2_dtog_lcl
    - tsk_release_lock
    - ext4_getu64
    - ext2_cgbase_lcl
    - INODE_TABLE_SIZE
    - ext2fs_bmap_load
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM ext2fs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1470,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1476,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1477,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1478,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1484,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1485,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1486,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1505,1
    - Dst: ext2fs_block_getflags
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1518,1
    - Dst: tsk_fs_block_get_flag
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1537,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1538,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1540,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1544,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1549,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1557,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 51
    argCount: 6
    argNames:
    - a_fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1460
    functionDepth: 7
    functionLinenumber: 1460
    functionLinenumberEnd: 1559
    functionName: ext2fs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_error_set_errstr
    - tsk_error_reset
    - a_action
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_error_set_errstr2
    - ext2fs_block_getflags
    - tsk_fs_block_get_flag
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_block_walk(TSK_FS_INFO * a_fs, TSK_DADDR_T a_start_blk,\n
      \   TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n    TSK_FS_BLOCK_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1564,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1565,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1561
    functionDepth: 3
    functionLinenumber: 1561
    functionLinenumberEnd: 1568
    functionName: ext2fs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1579,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1584,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1587,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1590,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1591,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1593,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1597,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1603,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - fs_info
    - fs_attr
    - extent
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - ext2fs_extent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1609
    functionName: ext2fs_make_data_run_extent
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attr_run_free
    - tsk_getu32
    - tsk_getu16
    - tsk_fs_attr_add_run
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_OFF_T
    signature: "TSK_OFF_T ext2fs_make_data_run_extent(TSK_FS_INFO * fs_info, TSK_FS_ATTR
      * fs_attr,\n    ext2fs_extent * extent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1630,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1635,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1638,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1639,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1641,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1643,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1649,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1650,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1651,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1653,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1657,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1659,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1667,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1668,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1669,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1674,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1675,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1680,1
    - Dst: ext2fs_make_data_run_extent
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1686,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1687,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1694,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1699,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1706,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1707,1
    - Dst: ext2fs_make_data_run_extent_index
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1709,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1711,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1717,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 5
    argNames:
    - fs_info
    - fs_attr
    - fs_attr_extent
    - idx_block
    - idx_offset
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - TSK_FS_ATTR*
    - TSK_DADDR_T
    - TSK_DADDR_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1617
    functionDepth: 3
    functionLinenumber: 1617
    functionLinenumberEnd: 1719
    functionName: ext2fs_make_data_run_extent_index
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 1
    functionsReached:
    - tsk_fs_read_block
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - ext2fs_make_data_run_extent_index
    - free
    - ext2fs_make_data_run_extent
    - tsk_fs_attr_add_run
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_OFF_T
    signature: "TSK_OFF_T ext2fs_make_data_run_extent_index(TSK_FS_INFO * fs_info,\n
      \   TSK_FS_ATTR * fs_attr, TSK_FS_ATTR * fs_attr_extent,\n    TSK_DADDR_T idx_block,
      TSK_DADDR_T * idx_offset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1739,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1740,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1744,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1745,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1746,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1751,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1755,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1761,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1764,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1765,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1768,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1773,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1774,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1776,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1778,1
    - Dst: ext2fs_extent_tree_index_count
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1783,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1785,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1792,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - fs_info
    - fs_meta
    - header
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_META*
    - ext2fs_extent_header*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1727
    functionDepth: 3
    functionLinenumber: 1727
    functionLinenumberEnd: 1794
    functionName: ext2fs_extent_tree_index_count
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 1
    functionsReached:
    - tsk_fs_read_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - ext2fs_extent_tree_index_count
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ext2fs_extent_tree_index_count(TSK_FS_INFO * fs_info,\n    TSK_FS_META
      * fs_meta, ext2fs_extent_header * header, int recursion_depth)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1811,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1823,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - fs_info
    - fs_attr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1839
    functionName: ext2fs_handle_implicit_sparse_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attr_run_alloc
    - tsk_fs_attr_add_run
    - roundup
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_handle_implicit_sparse_data_run(TSK_FS_INFO * fs_info,
      TSK_FS_ATTR * fs_attr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1859,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1860,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1862,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1863,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1864,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1878,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1881,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1884,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1885,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1886,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1892,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1895,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1900,1
    - Dst: ext2fs_handle_implicit_sparse_data_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1914,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1926,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1927,1
    - Dst: ext2fs_make_data_run_extent
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1935,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1948,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1949,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1955,1
    - Dst: ext2fs_extent_tree_index_count
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1961,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1966,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1979,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1981,1
    - Dst: ext2fs_make_data_run_extent_index
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1983,1
    - Dst: ext2fs_handle_implicit_sparse_data_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:1991,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1847
    functionDepth: 4
    functionLinenumber: 1847
    functionLinenumberEnd: 1998
    functionName: ext4_load_attrs_extents
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_fs_attr_set_run
    - tsk_getu32
    - ext2fs_make_data_run_extent
    - TSK_FS_TYPE_ISEXT
    - tsk_getu16
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - ext2fs_handle_implicit_sparse_data_run
    - ext2fs_extent_tree_index_count
    - ext2fs_make_data_run_extent_index
    - tsk_fs_attrlist_markunused
    - tsk_fs_attrlist_getnew
    - roundup
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext4_load_attrs_extents(TSK_FS_FILE *fs_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ext4_load_attrs_extents
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2012,1
    - Dst: tsk_fs_unix_make_data_run
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2006
    functionDepth: 5
    functionLinenumber: 2006
    functionLinenumberEnd: 2021
    functionName: ext2fs_load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_unix_make_data_run
    - ext4_load_attrs_extents
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_load_attrs(TSK_FS_FILE * fs_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2042,1
    - Dst: EXT2FS_HAS_INCOMPAT_FEATURE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2043,1
    - Dst: EXT2FS_HAS_INCOMPAT_FEATURE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2045,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2050,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2063,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2071,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2081,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2083,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2088,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2089,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2090,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2092,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2096,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2097,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2098,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2100,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2104,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2105,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2106,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2108,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2114,1
    - Dst: ext2fs_is_super_bg
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2116,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2116,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2120,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2127,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2131,1
    - Dst: ext2fs_is_super_bg
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2133,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2133,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2135,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - fs
    - hFile
    - i
    - cg_base
    - gd_size
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    - unsigned int
    - TSK_DADDR_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2024
    functionDepth: 4
    functionLinenumber: 2024
    functionLinenumberEnd: 2145
    functionName: ext4_fsstat_datablock_helper
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - ext2fs_is_super_bg
    - printf
    - tsk_getu32
    - tsk_getu16
    - ext4_getu64
    - EXT2FS_HAS_INCOMPAT_FEATURE
    linkageType: ''
    returnType: void
    signature: "void ext4_fsstat_datablock_helper(TSK_FS_INFO * fs, FILE * hFile,\n
      \   unsigned int i, TSK_DADDR_T cg_base, int gd_size)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2171,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2173,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2174,1
    - Dst: EXT2FS_HAS_INCOMPAT_FEATURE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2183,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2193,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2194,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2195,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2196,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2196,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2200,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2201,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2202,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2203,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2204,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2206,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2207,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2208,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2211,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2212,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2214,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2217,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2219,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2220,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2222,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2225,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2228,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2231,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2234,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2237,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2237,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2242,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2245,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2249,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2250,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2252,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2254,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2255,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2257,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2258,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2260,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2261,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2263,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2266,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2267,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2269,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2271,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2274,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2275,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2277,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2279,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2280,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2282,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2283,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2285,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2286,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2288,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2289,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2291,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2292,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2294,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2295,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2297,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2298,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2300,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2301,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2303,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2304,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2306,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2307,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2309,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2311,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2314,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2315,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2317,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2319,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2320,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2322,1
    - Dst: EXT2FS_HAS_RO_COMPAT_FEATURE
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2325,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2326,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2328,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2329,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2331,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2333,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2337,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2340,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2341,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2342,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2344,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2345,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2346,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2348,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2349,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2355,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2356,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2358,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2360,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2362,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2363,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2368,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2369,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2370,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2374,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2376,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2377,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2385,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2387,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2389,1
    - Dst: ext2fs_inode_lookup
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2394,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2396,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2401,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2403,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2406,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2407,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2410,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2415,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2419,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2423,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2425,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2426,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2428,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2430,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2431,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2433,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2434,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2436,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2439,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2440,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2441,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2442,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2447,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2456,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2457,1
    - Dst: debug_print_buf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2458,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2459,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2459,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2468,1
    - Dst: ext2fs_group_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2470,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2471,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2474,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2476,1
    - Dst: EXT4BG_HAS_FLAG
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2477,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2479,1
    - Dst: EXT4BG_HAS_FLAG
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2480,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2482,1
    - Dst: EXT4BG_HAS_FLAG
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2483,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2485,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2486,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2489,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2491,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2493,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2495,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2496,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2498,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2500,1
    - Dst: ext4_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2503,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2505,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2506,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2507,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2508,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2509,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2510,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2511,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2512,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2516,1
    - Dst: ext4_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2518,1
    - Dst: ext4_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2520,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2524,1
    - Dst: debug_print_buf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2526,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2527,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2528,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2529,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2530,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2531,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2532,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2534,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2535,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2539,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2541,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2543,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2549,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2555,1
    - Dst: ext2fs_is_super_bg
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2556,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2556,1
    - Dst: ext2fs_is_super_bg
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2567,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2567,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2572,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2579,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2582,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2588,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2593,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2599,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2602,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2611,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2613,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2616,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2622,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2624,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2627,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2632,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2634,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2637,1
    - Dst: ext4_fsstat_datablock_helper
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2642,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2646,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2648,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2649,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2653,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2655,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2656,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2659,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2661,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2662,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2665,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2670,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2672,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2681,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2682,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2684,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2688,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2689,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2691,1
    - Dst: ext2_cgbase_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2692,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2704,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2707,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2710,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2713,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2718,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2721,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2724,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2728,1
    - Dst: tsk_gets32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2736,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2740,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2744,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2747,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2750,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2755,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2758,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2762,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2765,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2768,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2775,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2776,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2778,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2779,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2782,1
    - Dst: ext4_group_desc_csum
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2783,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2787,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2788,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2791,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 272
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2155
    functionDepth: 8
    functionLinenumber: 2155
    functionLinenumberEnd: 2795
    functionName: ext2fs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - EXT2FS_HAS_RO_COMPAT_FEATURE
    - tsk_fprintf
    - ext2fs_is_super_bg
    - tsk_fs_file_alloc
    - ext4_getu64
    - EXT2FS_HAS_INCOMPAT_FEATURE
    - tsk_getu64
    - tsk_take_lock
    - ext2fs_inode_lookup
    - ext4_fsstat_datablock_helper
    - printf
    - tsk_fs_time_to_str
    - ext4_cgbase_lcl
    - tsk_release_lock
    - ext2_cgbase_lcl
    - ext4_group_desc_csum
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - strcmp
    - ext2fs_group_load
    - tsk_gets32
    - debug_print_buf
    - roundup
    - tsk_fs_file_close
    - EXT4BG_HAS_FLAG
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2806,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2811,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2814,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2819,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - str
    - len
    - perm
    argTypes:
    - char*
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2825
    functionName: ext2fs_make_acl_str
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ext2fs_make_acl_str(char *str, int len, uint16_t perm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2849,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2851,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2835
    functionDepth: 4
    functionLinenumber: 2835
    functionLinenumberEnd: 2861
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *a_ptr)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2893,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2904,1
    - Dst: ext2fs_dinode_load
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2908,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2909,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2913,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2914,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2919,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2920,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2923,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2926,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2927,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2930,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2932,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2935,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2936,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2941,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2946,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2947,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2948,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2949,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2951,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2952,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2954,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2955,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2957,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2958,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2960,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2961,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2963,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2964,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2966,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2967,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2969,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2970,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2972,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2973,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2975,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2976,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2978,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2979,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2981,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2982,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2984,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2985,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2987,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2988,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2990,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2992,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2994,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2995,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2997,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:2998,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3001,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3003,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3004,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3006,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3007,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3009,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3010,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3012,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3013,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3015,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3016,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3018,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3019,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3021,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3022,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3024,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3025,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3027,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3028,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3031,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3034,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3035,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3042,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3048,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3049,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3050,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3054,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3056,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3059,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3060,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3065,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3066,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3072,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3073,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3075,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3076,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3077,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3078,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3079,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3086,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3087,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3089,1
    - Dst: EXT2_EA_LEN
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3100,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3106,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3111,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3119,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3121,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3122,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3129,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3139,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3140,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3141,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3143,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3146,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3147,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3151,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3153,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3155,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3171,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3177,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3179,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3180,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3182,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3195,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3196,1
    - Dst: ext2fs_make_acl_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3203,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3204,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3206,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3208,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3214,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3219,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3229,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3230,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3235,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3236,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3242,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3253,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3260,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3274,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3275,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3277,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3278,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3280,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3281,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3285,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3286,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3287,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3288,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3289,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3290,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3295,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3296,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3303,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3304,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3315,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3318,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3322,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3323,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3325,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3326,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3328,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3329,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3333,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3334,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3335,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3336,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3337,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3338,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3344,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3345,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3349,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3356,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3360,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3363,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3364,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3365,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3366,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3374,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3376,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3377,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3378,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3381,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3387,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3390,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3393,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3394,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3395,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3396,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3402,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3405,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3407,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3408,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3411,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3417,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3420,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3422,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3427,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3430,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3432,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3433,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3436,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3443,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3444,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 314
    argCount: 6
    argNames:
    - fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 2875
    functionDepth: 6
    functionLinenumber: 2875
    functionLinenumberEnd: 3446
    functionName: ext2fs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - tsk_fs_time_to_str_subsecs
    - free
    - tsk_error_set_errno
    - tsk_fs_file_walk
    - tsk_fs_file_attr_get_type
    - ext2fs_make_acl_str
    - tsk_fs_attr_print
    - tsk_fs_time_to_str
    - EXT2_EA_LEN
    - tsk_fs_file_open_meta
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - ext2fs_dinode_load
    - tsk_fs_attr_walk
    - tsk_fs_meta_make_ls
    - tsk_fs_file_close
    - strncpy
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_istat(TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3457,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3458,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3459,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3460,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3461,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3463,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3466
      start: 3451
    functionDepth: 2
    functionLinenumber: 3451
    functionLinenumberEnd: 3466
    functionName: ext2fs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    - free
    - tsk_deinit_lock
    linkageType: ''
    returnType: void
    signature: void ext2fs_close(TSK_FS_INFO * fs)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3489,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3491,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3492,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3493,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3494,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3499,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3500,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3501,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3505,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3520,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3522,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3526,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3529,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3530,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3532,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3534,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3535,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3542,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3544,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3545,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3546,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3547,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3548,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3550,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3555,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3557,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3559,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3560,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3565,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3570,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3580,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3590,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3597,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3598,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3599,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3600,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3601,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3603,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3610,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3613,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3621,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3626,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3631,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3636,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3638,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3639,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3641,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3642,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3643,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3644,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3645,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3648,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3653,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3654,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3655,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3656,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3657,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3658,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3660,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3666,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3672,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3673,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3674,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3675,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3676,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3678,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3692,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3695,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3697,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3698,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3699,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3700,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3701,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3703,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3706,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3708,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3709,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3710,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3711,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3712,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3714,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3718,1
    - Dst: ext4_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3722,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3725,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3727,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3731,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3733,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3735,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3763,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3786,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3788,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3790,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3791,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/ext2fs.c:3794,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 190
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3479
    functionDepth: 4
    functionLinenumber: 3479
    functionLinenumberEnd: 3797
    functionName: ext2fs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_init_lock
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_getu32
    - tsk_fs_guessu16
    - TSK_FS_TYPE_ISEXT
    - tsk_fs_free
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_getu16
    - ext4_getu64
    - tsk_fs_malloc
    - tsk_fs_read
    - tsk_error_set_errstr2
    - roundup
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\next2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,\n
      \   TSK_FS_TYPE_ENUM ftype, const char* a_pass, uint8_t test)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_block.c:28,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_block.c:32,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_block.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: tsk_fs_block_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 5
    functionsReached:
    - free
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_BLOCK
    signature: 'TSK_FS_BLOCK *

      tsk_fs_block_alloc(TSK_FS_INFO * a_fs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_block.c:53,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_block.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a_fs_block
    argTypes:
    - TSK_FS_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: tsk_fs_block_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 6
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_block_free(TSK_FS_BLOCK * a_fs_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_get_flag
      Src: /src/sleuthkit/tsk/fs/fs_block.c:64,1
    - Dst: TSK_FS_INFO*::block_getflags
      Src: /src/sleuthkit/tsk/fs/fs_block.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_fs
    - a_fs_block
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLOCK*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: tsk_fs_block_get
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 2
    functionsReached:
    - TSK_FS_INFO*::block_getflags
    - tsk_fs_block_get_flag
    linkageType: ''
    returnType: TSK_FS_BLOCK
    signature: "TSK_FS_BLOCK *\ntsk_fs_block_get(TSK_FS_INFO * a_fs, TSK_FS_BLOCK
      * a_fs_block,\n    TSK_DADDR_T a_addr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:89,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:90,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:91,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/fs_block.c:95,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:99,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:100,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:101,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:108,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:109,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:115,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/fs_block.c:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - a_fs
    - a_fs_block
    - a_addr
    - a_flags
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLOCK*
    - TSK_DADDR_T
    - TSK_FS_BLOCK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 137
    functionName: tsk_fs_block_get_flag
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 3
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_img_read
    linkageType: ''
    returnType: TSK_FS_BLOCK
    signature: "TSK_FS_BLOCK *\ntsk_fs_block_get_flag(TSK_FS_INFO * a_fs, TSK_FS_BLOCK
      * a_fs_block,\n    TSK_DADDR_T a_addr, TSK_FS_BLOCK_FLAG_ENUM a_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:158,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:159,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:160,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:164,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:165,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:166,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_block.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - a_fs
    - a_fs_block
    - a_addr
    - a_flags
    - a_buf
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLOCK*
    - TSK_DADDR_T
    - TSK_FS_BLOCK_FLAG_ENUM
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 175
    functionName: tsk_fs_block_set
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 2
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int tsk_fs_block_set(TSK_FS_INFO * a_fs, TSK_FS_BLOCK * a_fs_block,\n
      \   TSK_DADDR_T a_addr, TSK_FS_BLOCK_FLAG_ENUM a_flags, char *a_buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_block.c:199,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_block.c:200,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_block.c:201,1
    - Dst: TSK_FS_INFO*::block_walk
      Src: /src/sleuthkit/tsk/fs/fs_block.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - a_fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: tsk_fs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_block.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_FS_INFO*::block_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_block_walk(TSK_FS_INFO * a_fs,\n    TSK_DADDR_T a_start_blk,
      TSK_DADDR_T a_end_blk,\n    TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags, TSK_FS_BLOCK_WALK_CB
      a_action,\n    void *a_ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:35,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:37,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:41,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:43,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:45,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:48,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:50,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - fs_block
    - ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 61
    functionName: blkstat_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dstat_lib.c
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISEXT
    - TSK_FS_TYPE_ISFFS
    - tsk_printf
    - TSK_FS_TYPE_ISFAT
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM blkstat_act(const TSK_FS_BLOCK * fs_block, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/dstat_lib.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fs
    - addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: tsk_fs_blkstat
    functionSourceFile: /src/sleuthkit/tsk/fs/dstat_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_walk
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_blkstat(TSK_FS_INFO * fs, TSK_DADDR_T addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:65,1
    - Dst: printf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - fs_block
    - ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: count_dd_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dcalc_lib.c
    functionUses: 0
    functionsReached:
    - printf
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM count_dd_act(const TSK_FS_BLOCK * fs_block, void
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fs_block
    - ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: count_blkls_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dcalc_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM count_blkls_act(const TSK_FS_BLOCK * fs_block, void
      *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:104,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: count_slack_file_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dcalc_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM count_slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off,\n    TSK_DADDR_T addr, char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags,\n    void *ptr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:131,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:136,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:138,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:143,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:145,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:153,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:156,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:162,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:167,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 176
    functionName: count_slack_inode_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dcalc_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_fprintf
    - tsk_error_reset
    - tsk_fs_file_walk_type
    - tsk_fs_file_walk
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_attr_getsize
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM count_slack_inode_act(TSK_FS_FILE * fs_file, void
      *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:193,1
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:201,1
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:210,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dcalc_lib.c:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fs
    - a_lclflags
    - a_cnt
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLKCALC_FLAG_ENUM
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 222
    functionName: tsk_fs_blkcalc
    functionSourceFile: /src/sleuthkit/tsk/fs/dcalc_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    - TSK_FS_INFO*::inode_walk
    - tsk_fs_block_walk
    linkageType: ''
    returnType: int8_t
    signature: "int8_t tsk_fs_blkcalc(TSK_FS_INFO * fs, TSK_FS_BLKCALC_FLAG_ENUM a_lclflags,\n
      \   TSK_DADDR_T a_cnt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:74,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:76,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:96,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:98,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:102,1
    - Dst: inflate
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:114,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:118,1
    - Dst: inflateEnd
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:121,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:129,1
    - Dst: inflateEnd
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:131,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:136,1
    - Dst: inflateEnd
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 6
    argNames:
    - source
    - sourceLen
    - dest
    - destLen
    - uncompressedLength
    - bytesConsumed
    argTypes:
    - char*
    - uint64_t
    - char*
    - uint64_t
    - uint64_t*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 153
    functionName: zlib_inflate
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 2
    functionsReached:
    - memset
    - inflate
    - inflateInit
    - memcpy
    - error_detected
    - inflateEnd
    linkageType: ''
    returnType: int
    signature: int zlib_inflate(char *source, uint64_t sourceLen, char *dest, uint64_t
      destLen, uint64_t * uncompressedLength, unsigned long *bytesConsumed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:199,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:202,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:208,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:217,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:220,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:225,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:228,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:230,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:236,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:239,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:244,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:247,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:256,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:258,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:261,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:269,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 4
    argNames:
    - rAttr
    - offsetTableOut
    - tableSizeOut
    - tableOffsetOut
    argTypes:
    - TSK_FS_ATTR*
    - CMP_OFFSET_ENTRY**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 272
    functionName: decmpfs_read_zlib_block_table
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - error_returned
    - tsk_getu32
    - tsk_malloc
    - free
    - tsk_fs_attr_read
    linkageType: ''
    returnType: int
    signature: int decmpfs_read_zlib_block_table(const TSK_FS_ATTR *rAttr, CMP_OFFSET_ENTRY**
      offsetTableOut, uint32_t* tableSizeOut, uint32_t* tableOffsetOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:296,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:299,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:305,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:307,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:309,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:318,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:321,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:326,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:329,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:341,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:347,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:355,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - rAttr
    - offsetTableOut
    - tableSizeOut
    - tableOffsetOut
    argTypes:
    - TSK_FS_ATTR*
    - CMP_OFFSET_ENTRY**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 358
    functionName: decmpfs_read_lzvn_block_table
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - error_returned
    - tsk_getu32
    - tsk_malloc
    - free
    - tsk_fs_attr_read
    linkageType: ''
    returnType: int
    signature: int decmpfs_read_lzvn_block_table(const TSK_FS_ATTR *rAttr, CMP_OFFSET_ENTRY**
      offsetTableOut, uint32_t* tableSizeOut, uint32_t* tableOffsetOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:373,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:377,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: decmpfs_decompress_noncompressed_block
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - error_detected
    - tsk_fprintf
    - memcpy
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_noncompressed_block(char* rawBuf, uint32_t len,
      char* uncBuf, uint64_t* uncLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:406,1
    - Dst: zlib_inflate
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:410,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:414,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:421,1
    - Dst: decmpfs_decompress_noncompressed_block
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 433
    functionName: decmpfs_decompress_zlib_block
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - error_returned
    - decmpfs_decompress_noncompressed_block
    - error_detected
    - zlib_inflate
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_zlib_block(char* rawBuf, uint32_t len, char*
      uncBuf, uint64_t* uncLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzvn_decode_buffer
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:450,1
    - Dst: decmpfs_decompress_noncompressed_block
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - rawBuf
    - len
    - uncBuf
    - uncLen
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 457
    functionName: decmpfs_decompress_lzvn_block
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - lzvn_decode_buffer
    - decmpfs_decompress_noncompressed_block
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_lzvn_block(char* rawBuf, uint32_t len, char*
      uncBuf, uint64_t* uncLen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:494,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:508,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:514,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:522,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:525,1
    - Dst: decompress_block
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - rAttr
    - rawBuf
    - uncBuf
    - offsetTable
    - offsetTableSize
    - offsetTableOffset
    - indx
    argTypes:
    - TSK_FS_ATTR*
    - char*
    - char*
    - CMP_OFFSET_ENTRY*
    - uint32_t
    - uint32_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 551
    functionName: read_and_decompress_block
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 2
    functionsReached:
    - tsk_fprintf
    - decompress_block
    - error_returned
    - error_detected
    - tsk_fs_attr_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read_and_decompress_block(\n  const TSK_FS_ATTR* rAttr,\n
      \ char* rawBuf,\n  char* uncBuf,\n  const CMP_OFFSET_ENTRY* offsetTable,\n  uint32_t
      offsetTableSize,\n  uint32_t offsetTableOffset,\n  size_t indx,\n  int (*decompress_block)(char*
      rawBuf,\n                          uint32_t len,\n                          char*
      uncBuf,\n                          uint64_t* uncLen)\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:589,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:593,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:597,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:598,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:606,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:615,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:628,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:631,1
    - Dst: read_block_table
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:637,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:645,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:647,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:652,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:654,1
    - Dst: read_and_decompress_block
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:667,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:692,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:697,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:702,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:707,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:723,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:724,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:725,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:729,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:730,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:731,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 733
    functionName: decmpfs_attr_walk_compressed_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - read_and_decompress_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - error_returned
    - a_action
    - tsk_malloc
    - tsk_error_set_errno
    - error_detected
    - tsk_fs_file_attr_get_type
    - free
    - read_block_table
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t decmpfs_attr_walk_compressed_rsrc(const TSK_FS_ATTR * fs_attr,\n
      \   int flags, TSK_FS_FILE_WALK_CB a_action, void *ptr,\n    int (*read_block_table)(const
      TSK_FS_ATTR *rAttr,\n                            CMP_OFFSET_ENTRY** offsetTableOut,\n
      \                           uint32_t* tableSizeOut,\n                            uint32_t*
      tableOffsetOut),\n    int (*decompress_block)(char* rawBuf,\n                            uint32_t
      len,\n                            char* uncBuf,\n                            uint64_t*
      uncLen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_attr_walk_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 5
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: decmpfs_attr_walk_zlib_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - decmpfs_attr_walk_compressed_rsrc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t decmpfs_attr_walk_zlib_rsrc(const TSK_FS_ATTR * fs_attr,\n
      \   int flags, TSK_FS_FILE_WALK_CB a_action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_attr_walk_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 5
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: decmpfs_attr_walk_lzvn_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - decmpfs_attr_walk_compressed_rsrc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t decmpfs_attr_walk_lzvn_rsrc(const TSK_FS_ATTR * fs_attr,\n
      \   int flags, TSK_FS_FILE_WALK_CB a_action, void *ptr)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:819,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:827,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:834,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:843,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:850,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:860,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:873,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:876,1
    - Dst: read_block_table
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:882,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:892,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:902,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:911,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:913,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:918,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:920,1
    - Dst: read_and_decompress_block
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:931,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:959,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:973,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:976,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:977,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:978,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:983,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:984,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:985,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 987
    functionName: decmpfs_file_read_compressed_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    - read_and_decompress_block
    - error_returned
    - memcpy
    - tsk_malloc
    - error_detected
    - tsk_fs_file_attr_get_type
    - free
    - read_block_table
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decmpfs_file_read_compressed_rsrc(const TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_OFF_T a_offset, char *a_buf, size_t a_len,\n    int (*read_block_table)(const
      TSK_FS_ATTR *rAttr,\n                            CMP_OFFSET_ENTRY** offsetTableOut,\n
      \                           uint32_t* tableSizeOut,\n                            uint32_t*
      tableOffsetOut),\n    int (*decompress_block)(char* rawBuf,\n                            uint32_t
      len,\n                            char* uncBuf,\n                            uint64_t*
      uncLen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_file_read_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1001
    functionDepth: 5
    functionLinenumber: 1001
    functionLinenumberEnd: 1010
    functionName: decmpfs_file_read_zlib_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - decmpfs_file_read_compressed_rsrc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decmpfs_file_read_zlib_rsrc(const TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_OFF_T a_offset, char *a_buf, size_t a_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_file_read_compressed_rsrc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1022
    functionDepth: 5
    functionLinenumber: 1022
    functionLinenumberEnd: 1031
    functionName: decmpfs_file_read_lzvn_rsrc
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - decmpfs_file_read_compressed_rsrc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decmpfs_file_read_lzvn_rsrc(const TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_OFF_T a_offset, char *a_buf, size_t a_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    functionName: decmpfs_decompress_noncompressed_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_noncompressed_attr(char* rawBuf, uint32_t rawSize,
      uint64_t uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_decompress_noncompressed_attr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1076,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1087,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1092,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1094,1
    - Dst: zlib_inflate
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1099,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1103,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1105,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1110,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1071
    functionDepth: 5
    functionLinenumber: 1071
    functionLinenumberEnd: 1140
    functionName: decmpfs_decompress_zlib_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - error_returned
    - tsk_malloc
    - error_detected
    - free
    - decmpfs_decompress_noncompressed_attr
    - zlib_inflate
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_zlib_attr(char* rawBuf, uint32_t rawSize, uint64_t
      uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_decompress_noncompressed_attr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1159,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1163,1
    - Dst: lzvn_decode_buffer
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - rawBuf
    - rawSize
    - uncSize
    - dstBuf
    - dstSize
    - dstBufFree
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - char**
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1154
    functionDepth: 5
    functionLinenumber: 1154
    functionLinenumberEnd: 1169
    functionName: decmpfs_decompress_lzvn_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - lzvn_decode_buffer
    - tsk_malloc
    - decmpfs_decompress_noncompressed_attr
    linkageType: ''
    returnType: int
    signature: int decmpfs_decompress_lzvn_attr(char* rawBuf, uint32_t rawSize, uint64_t
      uncSize, char** dstBuf, uint64_t* dstSize, int* dstBufFree)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1204,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1216,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1219,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1228,1
    - Dst: decompress_attr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1232,1
    - Dst: error_detected
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1238,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1244,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1251,1
    - Dst: error_returned
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1258,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1263,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1269,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - fs_file
    - cmpType
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - uint8_t
    - char*
    - TSK_OFF_T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1183
    functionDepth: 4
    functionLinenumber: 1183
    functionLinenumberEnd: 1272
    functionName: decmpfs_file_read_compressed_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - error_returned
    - decompress_attr
    - error_detected
    - tsk_fs_attr_set_str
    - free
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: int
    signature: "int decmpfs_file_read_compressed_attr(TSK_FS_FILE* fs_file,\n                              uint8_t
      cmpType,\n                              char* buffer,\n                              TSK_OFF_T
      attributeLength,\n                              uint64_t uncSize,\n                              int
      (*decompress_attr)(char* rawBuf,\n                                                     uint32_t
      rawSize,\n                                                     uint64_t uncSize,\n
      \                                                    char** dstBuf,\n                                                     uint64_t*
      dstSize,\n                                                     int* dstBufFree))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_file_read_compressed_attr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_file
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - char*
    - TSK_OFF_T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 5
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: decmpfs_file_read_zlib_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 2
    functionsReached:
    - decmpfs_file_read_compressed_attr
    linkageType: ''
    returnType: int
    signature: "int decmpfs_file_read_zlib_attr(TSK_FS_FILE* fs_file,\n                            char*
      buffer,\n                            TSK_OFF_T attributeLength,\n                            uint64_t
      uncSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decmpfs_file_read_compressed_attr
      Src: /src/sleuthkit/tsk/fs/decmpfs.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fs_file
    - buffer
    - attributeLength
    - uncSize
    argTypes:
    - TSK_FS_FILE*
    - char*
    - TSK_OFF_T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1306
    functionDepth: 5
    functionLinenumber: 1306
    functionLinenumberEnd: 1316
    functionName: decmpfs_file_read_lzvn_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/decmpfs.c
    functionUses: 2
    functionsReached:
    - decmpfs_file_read_compressed_attr
    linkageType: ''
    returnType: int
    signature: "int decmpfs_file_read_lzvn_attr(TSK_FS_FILE* fs_file,\n                            char*
      buffer,\n                            TSK_OFF_T attributeLength,\n                            uint64_t
      uncSize)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:42,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:45,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:46,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:47,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:48,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:50,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:55,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:55,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:57,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:68,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:69,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:70,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - ext2fs
    - ext2_dent
    - fs_name
    argTypes:
    - EXT2FS_INFO*
    - char*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 112
    functionName: ext2fs_dent_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_dent_copy(EXT2FS_INFO * ext2fs,\n    char *ext2_dent,
      TSK_FS_NAME * fs_name)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:133,1
    - Dst: EXT2FS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:139,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:146,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:147,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:148,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:152,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:154,1
    - Dst: EXT2FS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:157,1
    - Dst: ext2fs_dent_copy
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:181,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:182,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:196,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:197,1
    - Dst: EXT2FS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:212,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:219,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 6
    argNames:
    - ext2fs
    - a_fs_dir
    - a_is_del
    - list_seen
    - buf
    - len
    argTypes:
    - EXT2FS_INFO*
    - TSK_FS_DIR*
    - uint8_t
    - TSK_LIST**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 221
    functionName: ext2fs_dent_parse_block
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    - EXT2FS_DIRSIZ_lcl
    - tsk_getu16
    - tsk_fs_name_free
    - ext2fs_dent_copy
    - tsk_fs_name_alloc
    - tsk_fs_dir_add
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ext2fs_dent_parse_block(EXT2FS_INFO * ext2fs, TSK_FS_DIR
      * a_fs_dir,\n    uint8_t a_is_del, TSK_LIST ** list_seen, char *buf, int len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:255,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:256,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:257,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:262,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:263,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:274,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:276,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:277,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:283,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:288,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:294,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:296,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:298,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:302,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:304,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:309,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:310,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:311,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:316,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:328,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:329,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:332,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:338,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:340,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:341,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:342,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:345,1
    - Dst: ext2fs_dent_parse_block
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:350,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:366,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:370,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:374,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:375,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:379,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:380,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ext2fs_dent.c:383,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 239
    functionDepth: 5
    functionLinenumber: 239
    functionLinenumberEnd: 387
    functionName: ext2fs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - tsk_fprintf
    - tsk_fs_file_read
    - tsk_error_set_errno
    - tsk_fs_dir_find_orphans
    - ext2fs_dent_parse_block
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_fs_dir_add
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_fs_name_free
    - tsk_malloc
    - tsk_fs_name_alloc
    - roundup
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_dir_make_orphan_dir_name
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ext2fs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned __int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: lsbset
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    linkageType: ''
    returnType: int
    signature: int lsbset(unsigned __int64 x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: lsbset
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int lsbset(long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: lsbset
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lsbset(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: lsbset
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lsbset(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pos
    - out_len
    argTypes:
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 81
    functionName: wrapped_key_parser::is_eob
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool is_eob(const uint8_t** pos, size_t* out_len) const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wrapped_key_parser::is_eob
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:92,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - t
    argTypes:
    - tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: wrapped_key_parser::get_tag
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - wrapped_key_parser::is_eob
    - static_cast<size_t>
    linkageType: ''
    returnType: view
    signature: view get_tag(tag t) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::logic_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: wrapped_key_parser::get_data
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::logic_error
    linkageType: ''
    returnType: view
    signature: view get_data(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const uint8_t*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:116,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: wrapped_key_parser::wrapped_key_parser
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t*>
    linkageType: ''
    returnType: void
    signature: void wrapped_key_parser(const void* data, size_t size) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrapped_key_parser::get_tag
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:121,1
    - Dst: auto::valid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:123,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:128,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:128,1
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: wrapped_key_parser::get_data
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - auto::valid
    - wrapped_key_parser::get_data
    - auto::count
    - wrapped_key_parser::get_tag
    - auto::data
    linkageType: ''
    returnType: view
    signature: view get_data(tag t, Args... args) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:133,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:136,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:136,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: wrapped_key_parser::get_number
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::count
    - wrapped_key_parser::get_data
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_number(tag t, Args... args) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:148,1
    - Dst: APFSBlock::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:148,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: APFSBlock::APFSBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - APFSBlock::data
    - read
    linkageType: ''
    returnType: void
    signature: void APFSBlock::APFSBlock(const APFSPool& pool, const apfs_block_num
      block_num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:159,1
    - Dst: aes_xts_decryptor::decrypt_buffer
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:166,1
    - Dst: APFSBlock::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:166,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - key2
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: APFSBlock::decrypt
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - size
    - APFSBlock::data
    - hardware_crypto
    - aes_xts_decryptor::decrypt_buffer
    linkageType: ''
    returnType: void
    signature: void APFSBlock::decrypt(const uint8_t* key, const uint8_t* key2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: APFSBlock::dump
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - putchar
    linkageType: ''
    returnType: void
    signature: void APFSBlock::dump() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:180,1
    - Dst: std::numeric_limits<uint64_t>::max
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:180,1
    - Dst: reinterpret_cast<const uint32_t*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:187,1
    - Dst: data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:187,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:188,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:190,1
    - Dst: APFSObject::obj
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: APFSObject::validate_checksum
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - std::numeric_limits<uint64_t>::max
    - size
    - APFSObject::obj
    - std::numeric_limits<uint32_t>::max
    - data
    - reinterpret_cast<const uint32_t*>
    linkageType: ''
    returnType: bool
    signature: bool APFSObject::validate_checksum() const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:213,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:214,1
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:217,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:218,1
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:221,1
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:221,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:222,1
    - Dst: bit_is_set
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:226,1
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:226,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:228,1
    - Dst: APFSSuperblock::block_size
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:233,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 237
    functionName: APFSSuperblock::APFSSuperblock
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - bit_is_set
    - APFSSuperblock::sb
    - APFSSuperblock::block_size
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void APFSSuperblock::APFSSuperblock(const APFSPool& pool,\n                               const
      apfs_block_num block_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::omap
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:242,1
    - Dst: auto::entries
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:244,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: APFSSuperblock::volume_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSSuperblock::omap
    - auto::entries
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<apfs_block_num>
    signature: std::vector<apfs_block_num> APFSSuperblock::volume_blocks() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spaceman
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:252,1
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:255,1
    - Dst: auto::size
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:255,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: APFSSuperblock::sm_bitmap_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - spaceman
    - std::vector::reserve
    - auto::size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<apfs_block_num>
    signature: std::vector<apfs_block_num> APFSSuperblock::sm_bitmap_blocks() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:269,1
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:270,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 280
    functionName: APFSSuperblock::volume_oids
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - APFSSuperblock::sb
    linkageType: ''
    returnType: std::vector<uint64_t>
    signature: std::vector<uint64_t> APFSSuperblock::volume_oids() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:283,1
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:284,1
    - Dst: APFSObject
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:285,1
    - Dst: auto::validate_checksum
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:287,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:289,1
    - Dst: auto::xid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:297,1
    - Dst: xid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:297,1
    - Dst: auto::obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 305
    functionName: APFSSuperblock::checkpoint_desc_block
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - auto::validate_checksum
    - APFSObject
    - APFSSuperblock::sb
    - auto::xid
    - auto::obj_type
    - xid
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num APFSSuperblock::checkpoint_desc_block() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkpoint_desc_block
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:324,1
    - Dst: std::make_unique<APFSSpaceman>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:326,1
    - Dst: APFSCheckpointMap::get_object_block
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:327,1
    - Dst: sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 330
    functionName: '& APFSSuperblock::spaceman() const'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - checkpoint_desc_block
    - APFSCheckpointMap::get_object_block
    - sb
    - std::make_unique<APFSSpaceman>
    linkageType: ''
    returnType: APFSSpaceman
    signature: APFSSpaceman & APFSSuperblock::spaceman() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSSuperblock::sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:333,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: APFSSuperblock::keybag
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - APFSSuperblock::sb
    linkageType: ''
    returnType: APFSSuperblock::Keybag
    signature: APFSSuperblock::Keybag APFSSuperblock::keybag() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:342,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: APFSOmap::APFSOmap
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: void APFSOmap::APFSOmap(const APFSPool& pool, const apfs_block_num
      block_num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:350,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:351,1
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:354,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:355,1
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:358,1
    - Dst: hardware_crypto
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:358,1
    - Dst: APFSFileSystem::init_crypto_info
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 361
    functionName: APFSFileSystem::APFSFileSystem
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::fs
    - obj_type
    - APFSFileSystem::init_crypto_info
    - std::runtime_error
    - hardware_crypto
    - APFSFileSystem::encrypted
    linkageType: ''
    returnType: void
    signature: "void APFSFileSystem::APFSFileSystem(const APFSPool& pool,\n                               const
      apfs_block_num block_num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<TSKGuid>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:365,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:367,1
    - Dst: wrapped_key_parser::get_number
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:370,1
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:373,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:374,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:375,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:377,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:377,1
    - Dst: wrapped_key_parser::get_number
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:380,1
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:383,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:384,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:385,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:387,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' id'
    - ' kp'
    argTypes:
    - TSKGuid
    - APFS_sized_key_data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 388
    functionName: "APFSFileSystem::wrapped_kek::wrapped_kek(TSKGuid&& id,\n                                         const
      APFS_sized_key_data& kp)"
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - wrapped_key_parser::get_number
    - wrapped_key_parser::get_data
    - std::memcpy
    - std::forward<TSKGuid>
    - auto::count
    - get
    - std::runtime_error
    - auto::data
    linkageType: ''
    returnType: void
    signature: "void APFSFileSystem::wrapped_kek::wrapped_kek(TSKGuid&& id,\n                                         const
      APFS_sized_key_data& kp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::encrypted
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:394,1
    - Dst: APFSFileSystem::unlock
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' pool'
    - block_num
    - ' password'
    argTypes:
    - APFSPool
    - apfs_block_num
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: APFSFileSystem::APFSFileSystem
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::unlock
    - APFSFileSystem::encrypted
    linkageType: ''
    returnType: void
    signature: "void APFSFileSystem::APFSFileSystem(const APFSPool& pool,\n                               const
      apfs_block_num block_num,\n                               const std::string&
      password)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nx
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:413,1
    - Dst: auto::get_key
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:415,1
    - Dst: APFSFileSystem::uuid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:415,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:417,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:421,1
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:424,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:425,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:426,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:428,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:428,1
    - Dst: wrapped_key_parser::get_number
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:432,1
    - Dst: wrapped_key_parser::get_data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:435,1
    - Dst: auto::count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:436,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:437,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:439,1
    - Dst: auto::data
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:439,1
    - Dst: auto::get_key
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:441,1
    - Dst: APFSFileSystem::uuid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:441,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:443,1
    - Dst: reinterpret_cast<const apfs_volrec_keybag_value*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:448,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:448,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:451,1
    - Dst: Keybag::get_key
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:459,1
    - Dst: APFSFileSystem::uuid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:459,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:462,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:462,1
    - Dst: Keybag::get_keys
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:466,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:467,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:468,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:476,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:476,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:477,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:478,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:481,1
    - Dst: uuid::str
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:482,1
    - Dst: wrapped_keks::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:487,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:487,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:492,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:492,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 495
    functionName: APFSFileSystem::init_crypto_info
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - tsk_fprintf
    - APFSFileSystem::uuid
    - begin
    - auto::count
    - std::string
    - std::runtime_error
    - auto::data
    - wrapped_key_parser::get_number
    - wrapped_keks::emplace_back
    - auto::get_key
    - Keybag::get_keys
    - reinterpret_cast<const apfs_volrec_keybag_value*>
    - what
    - end
    - std::move
    - Keybag::get_key
    - wrapped_key_parser::get_data
    - std::memcpy
    - nx
    - auto::empty
    - find
    - uuid::str
    linkageType: ''
    returnType: void
    signature: void APFSFileSystem::init_crypto_info()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::unk16
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:506,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:508,1
    - Dst: APFSFileSystem::cs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:517,1
    - Dst: APFSFileSystem::hw_crypt
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:521,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:523,1
    - Dst: pbkdf2_hmac_sha256
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:530,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:534,1
    - Dst: rfc3394_key_unwrap
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:540,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:540,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:543,1
    - Dst: uuid::str
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:545,1
    - Dst: APFSFileSystem::cs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:552,1
    - Dst: rfc3394_key_unwrap
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:556,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:556,1
    - Dst: std::min
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:556,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:560,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:566,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:566,1
    - Dst: APFSFileSystem::cs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:568,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:571,1
    - Dst: hash_buffer_sha256
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:574,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:576,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:576,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:587,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - ' password'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 591
    functionName: APFSFileSystem::unlock
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - APFSFileSystem::hw_crypt
    - auto::get
    - tsk_fprintf
    - std::min
    - rfc3394_key_unwrap
    - APFSFileSystem::cs
    - std::memcpy
    - hash_buffer_sha256
    - APFSFileSystem::unk16
    - pbkdf2_hmac_sha256
    - uuid::str
    linkageType: ''
    returnType: bool
    signature: bool APFSFileSystem::unlock(const std::string& password) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 609
    functionName: APFSFileSystem::unmount_log
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - APFSFileSystem::fs
    linkageType: ''
    returnType: std::vector<APFSFileSystem::unmount_log_t>
    signature: "std::vector<APFSFileSystem::unmount_log_t> APFSFileSystem::unmount_log()\n
      \   const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:615,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:621,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:625,1
    - Dst: std::for_each
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:631,1
    - Dst: APFSSnapshotMetaBtreeNode::begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:631,1
    - Dst: APFSSnapshotMetaBtreeNode::end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:631,1
    - Dst: key::template as<key_type>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:632,1
    - Dst: value::template as<value_type>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:633,1
    - Dst: auto::type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:635,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:639,1
    - Dst: auto::snap_xid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 648
    functionName: APFSFileSystem::snapshots
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - auto::snap_xid
    - value::template as<value_type>
    - APFSFileSystem::fs
    - APFSSnapshotMetaBtreeNode::begin
    - bitfield_value
    - auto::type
    - std::for_each
    - key::template as<key_type>
    - std::vector::emplace_back
    - APFSSnapshotMetaBtreeNode::end
    linkageType: ''
    returnType: std::vector<APFSFileSystem::snapshot_t>
    signature: "std::vector<APFSFileSystem::snapshot_t> APFSFileSystem::snapshots()\n
      \   const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: snap_xid
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t snap_xid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: type
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 65
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::omap_root
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:651,1
    - Dst: APFSFileSystem::rdo
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:651,1
    - Dst: crypto_info
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: APFSFileSystem::root_jobj_tree
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSFileSystem::rdo
    - crypto_info
    - APFSFileSystem::omap_root
    linkageType: ''
    returnType: APFSJObjTree
    signature: APFSJObjTree APFSFileSystem::root_jobj_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSFileSystem::fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:655,1
    - Dst: root_block
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 656
    functionName: APFSFileSystem::omap_root
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - root_block
    - APFSFileSystem::fs
    linkageType: ''
    returnType: apfs_block_num
    signature: apfs_block_num APFSFileSystem::omap_root() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSObjectBtreeNode*::pool
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:662,1
    - Dst: APFSObjectBtreeNode*::pool
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:664,1
    - Dst: subtype
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:666,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - obj_root
    - block_num
    - key
    argTypes:
    - APFSObjectBtreeNode*
    - apfs_block_num
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: APFSJObjBtreeNode::APFSJObjBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - subtype
    - APFSObjectBtreeNode*::pool
    linkageType: ''
    returnType: void
    signature: "void APFSJObjBtreeNode::APFSJObjBtreeNode(const APFSObjectBtreeNode*
      obj_root,\n                                     apfs_block_num block_num,\n
      \                                    const uint8_t* key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::find
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - oid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 682
    functionName: APFSObjectBtreeNode::find
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::find
    linkageType: ''
    returnType: APFSObjectBtreeNode::iterator
    signature: APFSObjectBtreeNode::iterator APFSObjectBtreeNode::find(uint64_t oid)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xid
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:686,1
    - Dst: subtype
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:687,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: APFSObjectBtreeNode::APFSObjectBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - subtype
    - xid
    linkageType: ''
    returnType: void
    signature: "void APFSObjectBtreeNode::APFSObjectBtreeNode(const APFSPool& pool,\n
      \                                        apfs_block_num block_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subtype
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:696,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ' pool'
    - block_num
    - snap_xid
    argTypes:
    - APFSPool
    - apfs_block_num
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: APFSObjectBtreeNode::APFSObjectBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - subtype
    linkageType: ''
    returnType: void
    signature: "void APFSObjectBtreeNode::APFSObjectBtreeNode(const APFSPool& pool,\n
      \                                        apfs_block_num block_num,\n                                         uint64_t
      snap_xid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subtype
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:704,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: APFSSnapshotMetaBtreeNode::APFSSnapshotMetaBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - subtype
    linkageType: ''
    returnType: void
    signature: "void APFSSnapshotMetaBtreeNode::APFSSnapshotMetaBtreeNode(const APFSPool&
      pool,\n                                                     apfs_block_num block_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subtype
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:712,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: APFSExtentRefBtreeNode::APFSExtentRefBtreeNode
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - subtype
    linkageType: ''
    returnType: void
    signature: "void APFSExtentRefBtreeNode::APFSExtentRefBtreeNode(const APFSPool&
      pool,\n                                               apfs_block_num block_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:720,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 723
    functionName: APFSCheckpointMap::APFSCheckpointMap
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void APFSCheckpointMap::APFSCheckpointMap(const APFSPool& pool,\n
      \                                    const apfs_block_num block_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APFSCheckpointMap::map
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:727,1
    - Dst: APFSCheckpointMap::map
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:729,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - type
    argTypes:
    - uint64_t
    - APFS_OBJ_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 740
    functionName: APFSCheckpointMap::get_object_block
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - std::runtime_error
    - APFSCheckpointMap::map
    linkageType: ''
    returnType: apfs_block_num
    signature: "apfs_block_num APFSCheckpointMap::get_object_block(\n    uint64_t
      oid, APFS_OBJ_TYPE_ENUM type) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:744,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: APFSSpaceman::APFSSpaceman
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: void APFSSpaceman::APFSSpaceman(const APFSPool& pool, const apfs_block_num
      block_num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:750,1
    - Dst: empty
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:761,1
    - Dst: decltype(_bm_entries)::reserve
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:775,1
    - Dst: sm
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:775,1
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:779,1
    - Dst: sm
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:779,1
    - Dst: '& APFSSpaceman::entries'
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:781,1
    - Dst: sm
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:784,1
    - Dst: sm
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:786,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:787,1
    - Dst: sm
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:794,1
    - Dst: APFSSpacemanCAB::cib_blocks
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:796,1
    - Dst: std::copy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:799,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:799,1
    - Dst: auto::end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:799,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:799,1
    - Dst: APFSSpacemanCIB::bm_entries
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:808,1
    - Dst: std::copy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:811,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:811,1
    - Dst: auto::end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:811,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:811,1
    - Dst: std::sort
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:815,1
    - Dst: decltype(_bm_entries)::begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:815,1
    - Dst: decltype(_bm_entries)::end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:815,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 825
    functionName: '& APFSSpaceman::bm_entries() const'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - empty
    - std::move
    - std::copy
    - auto::end
    - decltype(_bm_entries)::begin
    - auto::begin
    - std::vector::reserve
    - sm
    - APFSSpacemanCAB::cib_blocks
    - std::back_inserter
    - APFSSpacemanCIB::bm_entries
    - '& APFSSpaceman::entries'
    - decltype(_bm_entries)::reserve
    - std::vector::emplace_back
    - decltype(_bm_entries)::end
    linkageType: ''
    returnType: std::vector<APFSSpacemanCIB::bm_entry>
    signature: std::vector<APFSSpacemanCIB::bm_entry> & APFSSpaceman::bm_entries()
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bm_entries
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:831,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:839,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:840,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:840,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:843,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:846,1
    - Dst: APFSSpaceman::unallocated_ranges
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:852,1
    - Dst: std::copy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:857,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:857,1
    - Dst: auto::end
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:857,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 861
    functionName: APFSSpaceman::unallocated_ranges
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - std::copy
    - auto::end
    - auto::begin
    - APFSSpaceman::unallocated_ranges
    - std::vector::back
    - std::vector::empty
    - std::back_inserter
    - std::vector::emplace_back
    - bm_entries
    linkageType: ''
    returnType: std::vector<APFSSpaceman::range>
    signature: "std::vector<APFSSpaceman::range> APFSSpaceman::unallocated_ranges()\n
      \   const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:866,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 869
    functionName: APFSSpacemanCIB::APFSSpacemanCIB
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void APFSSpacemanCIB::APFSSpacemanCIB(const APFSPool& pool,\n                                 const
      apfs_block_num block_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:874,1
    - Dst: APFSSpacemanCIB::cib
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:874,1
    - Dst: APFSSpacemanCIB::cib
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:876,1
    - Dst: APFSSpacemanCIB::cib
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:877,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 884
    functionName: APFSSpacemanCIB::bm_entries
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - std::vector::emplace_back
    - APFSSpacemanCIB::cib
    linkageType: ''
    returnType: std::vector<APFSSpacemanCIB::bm_entry>
    signature: "std::vector<APFSSpacemanCIB::bm_entry> APFSSpacemanCIB::bm_entries()\n
      \   const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:889,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' pool'
    - block_num
    argTypes:
    - APFSPool
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 892
    functionName: APFSSpacemanCAB::APFSSpacemanCAB
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void APFSSpacemanCAB::APFSSpacemanCAB(const APFSPool& pool,\n                                 const
      apfs_block_num block_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:896,1
    - Dst: APFSSpacemanCAB::cib_count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:896,1
    - Dst: APFSSpacemanCAB::cab
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:898,1
    - Dst: APFSSpacemanCAB::cib_count
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:900,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 905
    functionName: APFSSpacemanCAB::cib_blocks
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 1
    functionsReached:
    - APFSSpacemanCAB::cab
    - APFSSpacemanCAB::cib_count
    - std::vector::reserve
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<apfs_block_num>
    signature: std::vector<apfs_block_num> APFSSpacemanCAB::cib_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pool'
    - ' entry'
    argTypes:
    - APFSPool
    - APFSSpacemanCIB::bm_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 909
    functionName: APFSBitmapBlock::APFSBitmapBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void APFSBitmapBlock::APFSBitmapBlock(const APFSPool& pool,\n                                 const
      APFSSpacemanCIB::bm_entry& entry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: APFSBitmapBlock::done
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:912,1
    - Dst: APFSBitmapBlock::cache_next
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:919,1
    - Dst: lsbset
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:930,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 955
    functionName: APFSBitmapBlock::next
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSBitmapBlock::done
    - APFSBitmapBlock::cache_next
    - lsbset
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t APFSBitmapBlock::next() noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: APFSBitmapBlock::reset
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:968,1
    - Dst: APFSBitmapBlock::done
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:973,1
    - Dst: APFSBitmapBlock::next
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:975,1
    - Dst: APFSBitmapBlock::toggle_mode
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:983,1
    - Dst: APFSBitmapBlock::next
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:986,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:995,1
    - Dst: APFSBitmapBlock::toggle_mode
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 1002
    functionName: APFSBitmapBlock::unallocated_ranges
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSBitmapBlock::reset
    - APFSBitmapBlock::toggle_mode
    - APFSBitmapBlock::done
    - APFSBitmapBlock::next
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<APFSSpaceman::range>
    signature: std::vector<APFSSpaceman::range> APFSBitmapBlock::unallocated_ranges()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1007,1
    - Dst: validate_checksum
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1009,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1010,1
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1013,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' pool'
    - block_num
    - key
    - key2
    argTypes:
    - APFSPool
    - apfs_block_num
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1016
    functionName: APFSKeybag::APFSKeybag
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    - validate_checksum
    - APFSKeybag::kb
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: "void APFSKeybag::APFSKeybag(const APFSPool& pool, const apfs_block_num
      block_num,\n                       const uint8_t* key, const uint8_t* key2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1020,1
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1025,1
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1027,1
    - Dst: std::memcmp
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1029,1
    - Dst: bytes
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1029,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1031,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1034,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1035,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1035,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1037,1
    - Dst: reinterpret_cast<const apfs_keybag_key*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' uuid'
    - type
    argTypes:
    - TSKGuid
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1050
    functionName: APFSKeybag::get_key
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSKeybag::kb
    - auto::get
    - reinterpret_cast<const uint8_t*>
    - std::memcpy
    - bytes
    - std::move
    - reinterpret_cast<const apfs_keybag_key*>
    - std::memcmp
    - std::make_unique<uint8_t[]>
    linkageType: ''
    returnType: APFS_sized_key_data
    signature: "APFS_sized_key_data APFSKeybag::get_key(const TSKGuid& uuid,\n                                   uint16_t
      type) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1056,1
    - Dst: APFSKeybag::kb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1058,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1059,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1062,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1063,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1063,1
    - Dst: std::vector::emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1065,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1066,1
    - Dst: reinterpret_cast<const apfs_keybag_key*>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1078
    functionName: APFSKeybag::get_keys
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSKeybag::kb
    - auto::get
    - std::memcpy
    - reinterpret_cast<const uint8_t*>
    - std::move
    - reinterpret_cast<const apfs_keybag_key*>
    - std::make_unique<uint8_t[]>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<APFSKeybag::key>
    signature: std::vector<APFSKeybag::key> APFSKeybag::get_keys() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1081,1
    - Dst: sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1081,1
    - Dst: sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1081,1
    - Dst: sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1082,1
    - Dst: obj_type_and_flags
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1083,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1084,1
    - Dst: sb
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1087,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' sb'
    argTypes:
    - APFSSuperblock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1090
    functionName: APFSSuperblock::Keybag::Keybag(const APFSSuperblock& sb)
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - pool
    - sb
    - obj_type_and_flags
    linkageType: ''
    returnType: void
    signature: void APFSSuperblock::Keybag::Keybag(const APFSSuperblock& sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSBtreeNode::find
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1094,1
    - Dst: template as<APFSPhysicalExtentKey>
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1098
    functionName: APFSExtentRefBtreeNode::find
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - APFSBtreeNode::find
    - template as<APFSPhysicalExtentKey>
    linkageType: ''
    returnType: APFSExtentRefBtreeNode::iterator
    signature: "APFSExtentRefBtreeNode::iterator APFSExtentRefBtreeNode::find(\n    apfs_block_num
      block) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1102,1
    - Dst: fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1102,1
    - Dst: fs
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1102,1
    - Dst: obj_type_and_flags
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1103,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs.cpp:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' vol'
    - block_num
    argTypes:
    - APFSFileSystem
    - apfs_block_num
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1106
    functionName: "APFSFileSystem::Keybag::Keybag(const APFSFileSystem& vol,\n                               apfs_block_num
      block_num)"
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - fs
    - pool
    - obj_type_and_flags
    linkageType: ''
    returnType: void
    signature: "void APFSFileSystem::Keybag::Keybag(const APFSFileSystem& vol,\n                               apfs_block_num
      block_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fatfs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: FATFS_NUM_VIRT_FILES
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_NUM_VIRT_FILES(fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fatfs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: FATFS_CLUST_2_SECT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_CLUST_2_SECT(fatfs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fatfs
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: FATFS_SECT_2_CLUST
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_SECT_2_CLUST(fatfs, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fatfs
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: FATFS_INODE_2_SECT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_INODE_2_SECT(fatfs, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fatfs
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: FATFS_INODE_2_OFF
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_INODE_2_OFF(fatfs, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fatfs
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: FATFS_SECT_2_INODE
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_SECT_2_INODE(fatfs, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: FATFS_ISEOF
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_ISEOF(val, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: FATFS_ISBAD
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_ISBAD(val, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: FATFS_ISTIME
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_ISTIME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: FATFS_ISDATE
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATFS_ISDATE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - offset
    - bufsize
    argTypes:
    - unsigned char*
    - TSK_OFF_T
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: search_record
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T search_record(const unsigned char *buf, TSK_OFF_T offset,
      ssize_t bufsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:49,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - nlen
    - record
    - endian
    argTypes:
    - unsigned char*
    - uint16_t
    - TSK_USN_RECORD_V2*
    - TSK_ENDIAN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 71
    functionName: parse_fname
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - tsk_fprintf
    - tsk_UTF16toUTF8
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t parse_fname(const unsigned char *buf, uint16_t nlen,\n            TSK_USN_RECORD_V2
      *record, TSK_ENDIAN_ENUM endian)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:82,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:83,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - header
    - endian
    argTypes:
    - unsigned char*
    - TSK_USN_RECORD_HEADER*
    - TSK_ENDIAN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: parse_record_header
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    - tsk_getu32
    linkageType: ''
    returnType: void
    signature: "void parse_record_header(const unsigned char *buf, TSK_USN_RECORD_HEADER
      *header,\n                    TSK_ENDIAN_ENUM endian)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:102,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:107,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:108,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:109,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:110,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:111,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:114,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:115,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:116,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:118,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:119,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:120,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:121,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:124,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:125,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:132,1
    - Dst: parse_fname
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - buf
    - header
    - record
    - endian
    argTypes:
    - unsigned char*
    - TSK_USN_RECORD_HEADER*
    - TSK_USN_RECORD_V2*
    - TSK_ENDIAN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 139
    functionName: parse_v2_record
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_getu32
    - parse_fname
    - tsk_getu16
    - nt2unixtime
    - nt2nano
    - tsk_getu48
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t parse_v2_record(const unsigned char *buf, TSK_USN_RECORD_HEADER
      *header,\n                TSK_USN_RECORD_V2 *record, TSK_ENDIAN_ENUM endian)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_v2_record
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:157,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:163,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:169,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - buf
    - header
    - endian
    - action
    - ptr
    argTypes:
    - unsigned char*
    - TSK_USN_RECORD_HEADER*
    - TSK_ENDIAN_ENUM
    - TSK_FS_USNJENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: parse_record
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - free
    - parse_v2_record
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM parse_record(const unsigned char *buf, TSK_USN_RECORD_HEADER
      *header,\n             TSK_ENDIAN_ENUM endian, TSK_FS_USNJENTRY_WALK_CB action,
      void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: search_record
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:207,1
    - Dst: parse_record_header
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:208,1
    - Dst: parse_record
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - bufsize
    - endian
    - action
    - ptr
    argTypes:
    - unsigned char*
    - ssize_t
    - TSK_ENDIAN_ENUM
    - TSK_FS_USNJENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: parse_buffer
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - search_record
    - parse_record_header
    - parse_record
    linkageType: ''
    returnType: int
    signature: "int parse_buffer(const unsigned char *buf, ssize_t bufsize,\n             TSK_ENDIAN_ENUM
      endian, TSK_FS_USNJENTRY_WALK_CB action, void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:239,1
    - Dst: parse_buffer
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ntfs
    - buf
    - action
    - ptr
    argTypes:
    - NTFS_INFO*
    - unsigned char*
    - TSK_FS_USNJENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 232
    functionDepth: 8
    functionLinenumber: 232
    functionLinenumberEnd: 254
    functionName: parse_file
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 0
    functionsReached:
    - parse_buffer
    - tsk_fs_file_read
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t parse_file(NTFS_INFO * ntfs, unsigned char *buf,\n           TSK_FS_USNJENTRY_WALK_CB
      action, void *ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:269,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:272,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:273,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:278,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:285,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:287,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:288,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:289,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: tsk_ntfs_usnjopen
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_ntfs_usnjopen(TSK_FS_INFO *fs, TSK_INUM_T inum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:322,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:325,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:326,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:331,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:332,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:336,1
    - Dst: parse_file
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:340,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:342,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:343,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/usn_journal.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - fs
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_USNJENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 314
    functionDepth: 9
    functionLinenumber: 314
    functionLinenumberEnd: 347
    functionName: tsk_ntfs_usnjentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/usn_journal.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_close
    - parse_file
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_ntfs_usnjentry_walk(TSK_FS_INFO *fs, TSK_FS_USNJENTRY_WALK_CB
      action,\n                        void *ptr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:42,1
    - Dst: tsk_fs_name_realloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:45,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:50,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:86,1
    - Dst: tsk_fs_name_realloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:89,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:94,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:99,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:100,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:101,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 3
    argNames:
    - ffs
    - ffs_dent
    - fs_name
    argTypes:
    - FFS_INFO*
    - char*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 107
    functionName: ffs_dent_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_fs_name_realloc
    - tsk_error_set_errno
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ffs_dent_copy(FFS_INFO * ffs, char *ffs_dent, TSK_FS_NAME *
      fs_name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:125,1
    - Dst: FFS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:131,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:140,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:142,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:147,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:148,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:149,1
    - Dst: FFS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:153,1
    - Dst: ffs_dent_copy
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:181,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:182,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:196,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:197,1
    - Dst: FFS_DIRSIZ_lcl
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:203,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:210,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 5
    argNames:
    - ffs
    - fs_dir
    - a_is_del
    - buf
    - len
    argTypes:
    - FFS_INFO*
    - TSK_FS_DIR*
    - uint8_t
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 212
    functionName: ffs_dent_parse_block
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs_dent.c
    functionUses: 0
    functionsReached:
    - FFS_DIRSIZ_lcl
    - tsk_getu32
    - ffs_dent_copy
    - tsk_getu16
    - tsk_fs_name_free
    - tsk_fs_name_alloc
    - tsk_fs_dir_add
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ffs_dent_parse_block(FFS_INFO * ffs, TSK_FS_DIR *
      fs_dir, uint8_t a_is_del,\n    char *buf, unsigned int len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:246,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:247,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:248,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:253,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:254,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:255,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:261,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:267,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:272,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:278,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:279,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:283,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:284,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:285,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:290,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:291,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:307,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:309,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:310,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:311,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:314,1
    - Dst: ffs_dent_parse_block
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:319,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:334,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:338,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:342,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:343,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:347,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:348,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/ffs_dent.c:351,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 355
    functionName: ffs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/ffs_dent.c
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - tsk_fprintf
    - tsk_fs_file_read
    - tsk_error_set_errno
    - ffs_dent_parse_block
    - tsk_fs_dir_find_orphans
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_fs_dir_add
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_fs_name_free
    - tsk_malloc
    - tsk_fs_name_alloc
    - roundup
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_dir_make_orphan_dir_name
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ffs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR **
      a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:53,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:58,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:59,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:60,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:72,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:75,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:76,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - a_fatfs
    - a_cluster_addr
    argTypes:
    - FATFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 90
    functionName: exfatfs_is_cluster_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - fatfs_ptr_arg_is_null
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: int8_t
    signature: int8_t exfatfs_is_cluster_alloc(FATFS_INFO *a_fatfs, TSK_DADDR_T a_cluster_addr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:110,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:115,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:126,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:130,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:140,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - a_dentry
    - a_cluster_is_alloc
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 157
    functionName: exfatfs_is_vol_label_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exfatfs_get_enum_from_type
    - exfatfs_get_alloc_status_from_type
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_vol_label_dentry(FATFS_DENTRY *a_dentry, FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      a_cluster_is_alloc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:176,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a_dentry
    - a_alloc_status
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: exfatfs_is_vol_guid_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_get_enum_from_type
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_vol_guid_dentry(FATFS_DENTRY *a_dentry, FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      a_alloc_status)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:216,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:221,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:236,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:239,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:246,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:250,1
    - Dst: exfatfs_is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:261,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - a_dentry
    - a_alloc_status
    - a_fatfs
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 271
    functionName: exfatfs_is_alloc_bitmap_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_getu32
    - exfatfs_is_cluster_alloc
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_alloc_bitmap_dentry(FATFS_DENTRY *a_dentry, FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      a_alloc_status, FATFS_INFO *a_fatfs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:295,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:300,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:313,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:316,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:328,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:334,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:338,1
    - Dst: exfatfs_is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:345,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - a_dentry
    - a_alloc_status
    - a_fatfs
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 355
    functionName: exfatfs_is_upcase_table_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_getu32
    - exfatfs_is_cluster_alloc
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_upcase_table_dentry(FATFS_DENTRY *a_dentry, FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      a_alloc_status, FATFS_INFO *a_fatfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:374,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a_dentry
    - a_alloc_status
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 389
    functionName: exfatfs_is_texfat_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_get_enum_from_type
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_texfat_dentry(FATFS_DENTRY *a_dentry, FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      a_alloc_status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:408,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a_dentry
    - a_alloc_status
    argTypes:
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 424
    functionName: exfatfs_is_access_ctrl_table_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_get_enum_from_type
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_access_ctrl_table_dentry(FATFS_DENTRY *a_dentry,
      FATFS_DATA_UNIT_ALLOC_STATUS_ENUM a_alloc_status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exfatfs_is_file_dentry_standalone
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:445,1
    - Dst: exfatfs_is_file_dentry_standalone
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a_dentry
    - a_fatfs
    argTypes:
    - FATFS_DENTRY*
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: exfatfs_is_file_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_is_file_dentry_standalone
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_file_dentry(FATFS_DENTRY *a_dentry, FATFS_INFO *a_fatfs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:471,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:476,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:487,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:496,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:497,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:499,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:500,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:502,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:503,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:505,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 2
    argNames:
    - a_dentry
    - a_endian
    argTypes:
    - FATFS_DENTRY*
    - TSK_ENDIAN_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: exfatfs_is_file_dentry_standalone
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 1
    functionsReached:
    - fprintf
    - exfatfs_get_enum_from_type
    - fatfs_ptr_arg_is_null
    - tsk_getu16
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_file_dentry_standalone(FATFS_DENTRY *a_dentry, TSK_ENDIAN_ENUM
      a_endian)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exfatfs_is_file_stream_dentry_standalone
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:546,1
    - Dst: exfatfs_is_file_stream_dentry_standalone
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a_dentry
    - a_fatfs
    argTypes:
    - FATFS_DENTRY*
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 552
    functionName: exfatfs_is_file_stream_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_is_file_stream_dentry_standalone
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_file_stream_dentry(FATFS_DENTRY *a_dentry, FATFS_INFO
      *a_fatfs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:581,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:586,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:593,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:603,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:610,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:614,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - a_dentry
    - a_endian
    - a_cluster_heap_size
    - a_last_cluster
    argTypes:
    - FATFS_DENTRY*
    - TSK_ENDIAN_ENUM
    - uint64_t
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 623
    functionName: exfatfs_is_file_stream_dentry_standalone
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 1
    functionsReached:
    - fprintf
    - tsk_getu32
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_is_file_stream_dentry_standalone(FATFS_DENTRY *a_dentry,
      TSK_ENDIAN_ENUM a_endian,\n    uint64_t a_cluster_heap_size, TSK_DADDR_T a_last_cluster)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:640,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_dentry
    argTypes:
    - FATFS_DENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 647
    functionName: exfatfs_is_file_name_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_get_enum_from_type
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_file_name_dentry(FATFS_DENTRY *a_dentry)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:667,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:671,1
    - Dst: exfatfs_is_vol_label_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:674,1
    - Dst: exfatfs_is_vol_guid_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:676,1
    - Dst: exfatfs_is_alloc_bitmap_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:678,1
    - Dst: exfatfs_is_upcase_table_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:680,1
    - Dst: exfatfs_is_texfat_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:682,1
    - Dst: exfatfs_is_access_ctrl_table_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:684,1
    - Dst: exfatfs_is_file_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:686,1
    - Dst: exfatfs_is_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:688,1
    - Dst: exfatfs_is_file_name_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - a_fatfs
    - a_dentry
    - a_cluster_is_alloc
    - a_do_basic_tests_only
    argTypes:
    - FATFS_INFO*
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 694
    functionName: exfatfs_is_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_is_file_dentry
    - exfatfs_is_file_stream_dentry
    - exfatfs_is_file_name_dentry
    - exfatfs_is_texfat_dentry
    - exfatfs_is_vol_label_dentry
    - exfatfs_is_upcase_table_dentry
    - exfatfs_is_access_ctrl_table_dentry
    - exfatfs_is_vol_guid_dentry
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - exfatfs_is_alloc_bitmap_dentry
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_is_dentry(FATFS_INFO *a_fatfs, FATFS_DENTRY *a_dentry,
      FATFS_DATA_UNIT_ALLOC_STATUS_ENUM a_cluster_is_alloc, uint8_t a_do_basic_tests_only)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:716,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:717,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:718,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:725,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:736,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:738,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:740,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:743,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:745,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:757,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:761,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:768,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:775,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:776,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->fs_info != NULL)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 795
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 795
    functionName: exfatfs_make_contiguous_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - assert
    - roundup
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_attr_run_alloc
    - tsk_fs_attr_set_run
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - FATFS_CLUST_2_SECT
    - FATFS_ISEOF
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_make_contiguous_data_run(TSK_FS_FILE *a_fs_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:815,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:815,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:816,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:817,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:818,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:821,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:821,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:825,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:826,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_VOLUME_LABEL)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 836
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 836
    functionName: exfatfs_copy_vol_label_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - assert
    - strcpy
    - exfatfs_get_alloc_status_from_type
    - fatfs_utf16_inode_str_2_utf8
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM exfatfs_copy_vol_label_inode(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_inum, FATFS_DENTRY *a_dentry, TSK_FS_FILE *a_fs_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:854,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:855,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:856,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:857,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:860,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:860,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:863,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:867,1
    - Dst: exfatfs_make_contiguous_data_run
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - a_fatfs
    - a_dentry
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - FATFS_DENTRY*
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_ALLOC_BITMAP)
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 877
      start: 849
    functionDepth: 5
    functionLinenumber: 849
    functionLinenumberEnd: 877
    functionName: exfatfs_copy_alloc_bitmap_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_make_contiguous_data_run
    - assert
    - FATFS_SECT_2_CLUST
    - strcpy
    - exfatfs_get_enum_from_type
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM exfatfs_copy_alloc_bitmap_inode(FATFS_INFO *a_fatfs,
      FATFS_DENTRY *a_dentry, TSK_FS_FILE *a_fs_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:894,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:895,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:896,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:897,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:900,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:900,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:902,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:905,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:906,1
    - Dst: exfatfs_make_contiguous_data_run
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - a_fatfs
    - a_dentry
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - FATFS_DENTRY*
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_UPCASE_TABLE)
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 915
      start: 889
    functionDepth: 5
    functionLinenumber: 889
    functionLinenumberEnd: 915
    functionName: exfatfs_copy_upcase_table_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_make_contiguous_data_run
    - assert
    - tsk_getu32
    - strcpy
    - exfatfs_get_enum_from_type
    - tsk_getu64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM exfatfs_copy_upcase_table_inode(FATFS_INFO *a_fatfs,
      FATFS_DENTRY *a_dentry, TSK_FS_FILE *a_fs_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:939,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:940,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:940,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:941,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:943,1
    - Dst: exfatfs_is_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:944,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:947,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:947,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:948,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:949,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - a_fatfs
    - a_stream_entry_inum
    - a_sector_is_alloc
    - a_file_dentry_type
    - a_dentry
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - uint8_t
    - EXFATFS_DIR_ENTRY_TYPE
    - FATFS_DENTRY*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_stream_entry_inum))
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 956
      start: 933
    functionDepth: 6
    functionLinenumber: 933
    functionLinenumberEnd: 956
    functionName: exfatfs_load_file_stream_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - exfatfs_is_dentry
    - exfatfs_get_alloc_status_from_type
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_load_file_stream_dentry(FATFS_INFO *a_fatfs, \n    TSK_INUM_T
      a_stream_entry_inum, uint8_t a_sector_is_alloc, \n    EXFATFS_DIR_ENTRY_TYPE
      a_file_dentry_type,\n    FATFS_DENTRY *a_dentry)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:987,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:988,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:988,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:989,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:997,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:998,1
    - Dst: exfatfs_is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:999,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1018,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1019,1
    - Dst: exfatfs_is_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1021,1
    - Dst: exfatfs_is_file_name_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1026,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1041,1
    - Dst: FATFS_INODE_2_OFF
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1048,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1053,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1057,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1058,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1061,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1062,1
    - Dst: exfatfs_is_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1064,1
    - Dst: exfatfs_is_file_name_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1069,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 5
    argNames:
    - a_fatfs
    - a_current_entry_inum
    - a_file_dentry
    - a_next_dentry_type
    - a_next_inum
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - EXFATFS_FILE_DIR_ENTRY*
    - EXFATFS_DIR_ENTRY_TYPE_ENUM
    - TSK_INUM_T*
    assertStmts:
    - condition: (a_file_dentry != NULL)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_current_entry_inum))
      pos:
        line_end: 987
        line_start: 987
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 972
    functionDepth: 5
    functionLinenumber: 972
    functionLinenumberEnd: 1081
    functionName: exfatfs_next_dentry_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - FATFS_SECT_2_INODE
    - FATFS_INODE_2_OFF
    - assert
    - exfatfs_is_file_stream_dentry
    - FATFS_SECT_2_CLUST
    - exfatfs_is_file_name_dentry
    - exfatfs_is_cluster_alloc
    - fatfs_getFAT
    - FATFS_INODE_2_SECT
    - fatfs_inum_is_in_range
    - FATFS_CLUST_2_SECT
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_next_dentry_inum(FATFS_INFO *a_fatfs, TSK_INUM_T a_current_entry_inum,
      \n    EXFATFS_FILE_DIR_ENTRY *a_file_dentry, EXFATFS_DIR_ENTRY_TYPE_ENUM a_next_dentry_type,\n\tTSK_INUM_T
      * a_next_inum)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1116,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1117,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1118,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1119,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1120,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1120,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1149,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1152,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1152,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1154,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1154,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1155,1
    - Dst: fatfs_dos_2_nanosec
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1157,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1165,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1165,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1167,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1167,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1168,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1180,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1180,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1182,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1182,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1183,1
    - Dst: fatfs_dos_2_nanosec
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1185,1
    - Dst: exfatfs_next_dentry_inum
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1194,1
    - Dst: exfatfs_load_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1198,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1205,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1206,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1212,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1213,1
    - Dst: exfatfs_make_contiguous_data_run
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1221,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1232,1
    - Dst: exfatfs_next_dentry_inum
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1236,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1239,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1246,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1253,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1260,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 86
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_file_dentry
    - a_is_alloc
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - uint8_t
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (exfatfs_get_enum_from_type(file_dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_FILE)
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_file_dentry != NULL)
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1266
      start: 1098
    functionDepth: 7
    functionLinenumber: 1098
    functionLinenumberEnd: 1266
    functionName: exfatfs_copy_file_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - exfatfs_make_contiguous_data_run
    - memset
    - assert
    - fatfs_dos_2_unix_time
    - tsk_getu32
    - memcpy
    - fatfs_dentry_load
    - tsk_getu16
    - exfatfs_next_dentry_inum
    - exfatfs_get_alloc_status_from_type
    - exfatfs_load_file_stream_dentry
    - fatfs_utf16_inode_str_2_utf8
    - fatfs_dos_2_nanosec
    - exfatfs_get_enum_from_type
    - FATFS_ISDATE
    - tsk_getu64
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM exfatfs_copy_file_inode(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_inum, \n    FATFS_DENTRY *a_file_dentry, uint8_t a_is_alloc, TSK_FS_FILE *a_fs_file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1287,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1288,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1288,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1289,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1290,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1291,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1294,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1294,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1300,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_is_alloc
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - uint8_t
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1286
        line_start: 1286
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 1287
        line_start: 1287
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 1288
        line_start: 1288
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_FILE_NAME)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1313
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1313
    functionName: exfatfs_copy_file_name_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - assert
    - exfatfs_get_alloc_status_from_type
    - fatfs_utf16_inode_str_2_utf8
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM exfatfs_copy_file_name_inode(FATFS_INFO *a_fatfs,
      TSK_INUM_T a_inum, \n    FATFS_DENTRY *a_dentry, uint8_t a_is_alloc, TSK_FS_FILE
      *a_fs_file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1334,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1335,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1337,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1381,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1391,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1393,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 4
    argNames:
    - a_fatfs
    - a_inum
    - a_is_alloc
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - uint8_t
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1333
        line_start: 1333
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 1334
        line_start: 1334
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 1335
        line_start: 1335
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1409
      start: 1328
    functionDepth: 3
    functionLinenumber: 1328
    functionLinenumberEnd: 1409
    functionName: exfatfs_inode_copy_init
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_fs_meta_realloc
    - tsk_malloc
    - fatfs_inum_is_in_range
    - tsk_fs_attrlist_markunused
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_inode_copy_init(FATFS_INFO *a_fatfs, TSK_INUM_T a_inum,
      \n    uint8_t a_is_alloc, TSK_FS_FILE *a_fs_file)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1430,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1431,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1431,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1432,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1433,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1434,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1435,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1437,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1438,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1439,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1440,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1441,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1442,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1443,1
    - Dst: exfatfs_inode_copy_init
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1447,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1451,1
    - Dst: exfatfs_copy_vol_label_inode
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1454,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1456,1
    - Dst: exfatfs_copy_alloc_bitmap_inode
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1459,1
    - Dst: exfatfs_copy_upcase_table_inode
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1461,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1463,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1466,1
    - Dst: exfatfs_copy_file_inode
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1469,1
    - Dst: exfatfs_copy_file_name_inode
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_is_alloc
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - uint8_t
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 1430
        line_start: 1430
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->meta != NULL)
      pos:
        line_end: 1433
        line_start: 1433
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fs_file->fs_info != NULL)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1479
      start: 1424
    functionDepth: 8
    functionLinenumber: 1424
    functionLinenumberEnd: 1479
    functionName: exfatfs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - assert
    - exfatfs_copy_file_inode
    - tsk_error_reset
    - exfatfs_inode_copy_init
    - exfatfs_copy_vol_label_inode
    - exfatfs_copy_alloc_bitmap_inode
    - strcpy
    - exfatfs_copy_file_name_inode
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - exfatfs_copy_upcase_table_inode
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM exfatfs_dinode_copy(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_inum, \n    FATFS_DENTRY *a_dentry, uint8_t a_is_alloc, TSK_FS_FILE *a_fs_file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1511,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1512,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1512,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1513,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1515,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1516,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1517,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1518,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1533,1
    - Dst: exfatfs_load_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1534,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1551,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1552,1
    - Dst: FATFS_INODE_2_OFF
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1559,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1564,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1568,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1569,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1572,1
    - Dst: exfatfs_load_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1573,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 6
    argNames:
    - a_fatfs
    - a_file_entry_inum
    - a_sector
    - a_sector_is_alloc
    - a_file_dentry_type
    - a_stream_dentry
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - TSK_DADDR_T
    - uint8_t
    - EXFATFS_DIR_ENTRY_TYPE
    - FATFS_DENTRY*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_stream_dentry != NULL)
      pos:
        line_end: 1512
        line_start: 1512
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_file_entry_inum))
      pos:
        line_end: 1511
        line_start: 1511
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1587
      start: 1497
    functionDepth: 7
    functionLinenumber: 1497
    functionLinenumberEnd: 1587
    functionName: exfatfs_find_file_stream_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - FATFS_SECT_2_INODE
    - fatfs_inum_arg_is_in_range
    - FATFS_INODE_2_OFF
    - assert
    - FATFS_SECT_2_CLUST
    - tsk_error_reset
    - exfatfs_load_file_stream_dentry
    - FATFS_CLUST_2_SECT
    - fatfs_getFAT
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_find_file_stream_dentry(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_file_entry_inum, \n    TSK_DADDR_T a_sector, uint8_t a_sector_is_alloc,  \n
      \   EXFATFS_DIR_ENTRY_TYPE a_file_dentry_type,\n    FATFS_DENTRY *a_stream_dentry)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1613,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1614,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1615,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1616,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1617,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1618,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1623,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1625,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1626,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1627,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1641,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1647,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1648,1
    - Dst: exfatfs_is_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1653,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1663,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1664,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1665,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1666,1
    - Dst: exfatfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1672,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1681,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1683,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - a_fatfs
    - a_fs_file
    - a_inum
    argTypes:
    - FATFS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1600
    functionDepth: 9
    functionLinenumber: 1600
    functionLinenumberEnd: 1689
    functionName: exfatfs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_print
    - fatfs_inum_arg_is_in_range
    - exfatfs_dinode_copy
    - tsk_error_set_errstr
    - tsk_error_reset
    - exfatfs_is_dentry
    - fatfs_is_sectalloc
    - tsk_error_set_errno
    - FATFS_INODE_2_SECT
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_inode_lookup(FATFS_INFO *a_fatfs, TSK_FS_FILE *a_fs_file,
      \n    TSK_INUM_T a_inum)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1709,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1710,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1710,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1711,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1713,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1714,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1715,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1716,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1721,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1726,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1729,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1732,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1735,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1738,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1741,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1744,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1748,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1751,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1754,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1758,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1762,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1766,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1770,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1773,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1777,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1780,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1783,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1784,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - a_fatfs
    - a_inum
    - a_hFile
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FILE*
    assertStmts:
    - condition: (a_hFile != NULL)
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 1709
        line_start: 1709
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1708
        line_start: 1708
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1790
      start: 1701
    functionDepth: 4
    functionLinenumber: 1701
    functionLinenumberEnd: 1790
    functionName: exfatfs_istat_attr_flags
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - tsk_fprintf
    - assert
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu16
    - tsk_error_set_errno
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_istat_attr_flags(FATFS_INFO *a_fatfs, TSK_INUM_T a_inum,  FILE
      *a_hFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1813,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1814,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1814,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1815,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1817,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1818,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1819,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1820,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1827,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1828,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1835,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/exfatfs_meta.c:1853,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_selection_flags
    - a_cluster_is_alloc
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - unsigned int
    - int
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 1814
        line_start: 1814
        source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    constantsTouched: []
    func_position:
      end: 1858
      start: 1805
    functionDepth: 3
    functionLinenumber: 1805
    functionLinenumberEnd: 1858
    functionName: exfatfs_inode_walk_should_skip_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - assert
    - tsk_error_reset
    - exfatfs_get_alloc_status_from_type
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    - tsk_fs_dir_find_inum_named
    - exfatfs_get_enum_from_type
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t exfatfs_inode_walk_should_skip_dentry(FATFS_INFO *a_fatfs,
      TSK_INUM_T a_inum, \n    FATFS_DENTRY *a_dentry, unsigned int a_selection_flags,
      \n    int a_cluster_is_alloc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_dir_entry_type
    argTypes:
    - EXFATFS_DIR_ENTRY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1873
    functionName: exfatfs_get_alloc_status_from_type
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_get_alloc_status_from_type(EXFATFS_DIR_ENTRY_TYPE a_dir_entry_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_dir_entry_type
    argTypes:
    - EXFATFS_DIR_ENTRY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1887
    functionName: exfatfs_get_enum_from_type
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_meta.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: EXFATFS_DIR_ENTRY_TYPE_ENUM
    signature: EXFATFS_DIR_ENTRY_TYPE_ENUM exfatfs_get_enum_from_type(EXFATFS_DIR_ENTRY_TYPE
      a_dir_entry_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: fatfs_find_parent_act
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM fatfs_find_parent_act(TSK_FS_FILE * fs_file, const
      char * /*a_path*/, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map<TSK_INUM_T, TSK_INUM_T>::map<TSK_INUM_T, TSK_INUM_T>
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: getParentMap
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 5
    functionsReached:
    - std::map<TSK_INUM_T, TSK_INUM_T>::map<TSK_INUM_T, TSK_INUM_T>
    linkageType: ''
    returnType: std::map<TSK_INUM_T, TSK_INUM_T>
    signature: std::map<TSK_INUM_T, TSK_INUM_T> * getParentMap(FATFS_INFO *fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:97,1
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:98,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fatfs
    - par_inum
    - dir_inum
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: fatfs_dir_buf_add
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - getParentMap
    - tsk_release_lock
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_dir_buf_add(FATFS_INFO * fatfs, TSK_INUM_T par_inum,\n
      \   TSK_INUM_T dir_inum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:117,1
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:118,1
    - Dst: std::map*::count
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:119,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fatfs
    - dir_inum
    - par_inum
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: fatfs_dir_buf_get
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - getParentMap
    - std::map*::count
    - tsk_release_lock
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_dir_buf_get(FATFS_INFO * fatfs, TSK_INUM_T dir_inum,\n
      \   TSK_INUM_T *par_inum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:132,1
    - Dst: getParentMap
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:134,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: fatfs_dir_buf_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 1
    functionsReached:
    - tsk_take_lock
    - getParentMap
    - tsk_release_lock
    linkageType: ''
    returnType: void
    signature: void fatfs_dir_buf_free(FATFS_INFO *fatfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:185,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:193,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:194,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - addr
    - buf
    - size
    - ptr
    argTypes:
    - TSK_DADDR_T
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 208
    functionName: fatfs_dent_action
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - memcpy
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM fatfs_dent_action(TSK_FS_FILE * /*fs_file*/, TSK_OFF_T
      /*a_off*/,\n    TSK_DADDR_T addr, char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      /*flags*/,\n    void *ptr)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:241,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:242,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:243,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:248,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:249,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:250,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:257,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:262,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:268,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:269,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:272,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:274,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:275,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:276,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:286,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:287,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:288,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:294,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:295,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:296,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:301,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:304,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:311,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:317,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:328,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:330,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:339,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:342,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:343,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:344,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:350,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:351,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:352,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:357,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:358,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:363,1
    - Dst: FATFS_INFO*::dent_parse_buf
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:367,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:369,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:370,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:374,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:379,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:383,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:384,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:389,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:393,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:394,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:400,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:404,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:405,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:411,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:412,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:415,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:416,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:419,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 126
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 423
    functionName: fatfs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - tsk_fprintf
    - fprintf
    - tsk_error_set_errno
    - tsk_fs_file_walk
    - tsk_fs_dir_find_orphans
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_fs_dir_add
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_fs_name_free
    - tsk_malloc
    - tsk_fs_name_alloc
    - roundup
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - FATFS_INFO*::dent_parse_buf
    - tsk_fs_dir_make_orphan_dir_name
    - strncpy
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM fatfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/fatfs_dent.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: fatfs_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int fatfs_name_cmp(TSK_FS_INFO * /*a_fs_info*/, const char *s1, const
      char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:50,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:51,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - a_start_inum
    - a_end_inum
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: logicalfs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_inode_walk(TSK_FS_INFO *a_fs, TSK_INUM_T a_start_inum,\n\tTSK_INUM_T
      a_end_inum, TSK_FS_META_FLAG_ENUM a_flags,\n\tTSK_FS_META_WALK_CB a_action,
      void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:61,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:62,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: logicalfs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_block_walk(TSK_FS_INFO *a_fs, TSK_DADDR_T a_start_blk,\n\tTSK_DADDR_T
      a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n\tTSK_FS_BLOCK_WALK_CB a_action,
      void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: logicalfs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM logicalfs_block_getflags(TSK_FS_INFO *a_fs,
      TSK_DADDR_T a_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: logicalfs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM logicalfs_get_default_attr_type(const TSK_FS_FILE
      * /*a_file*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: contains_folder_separator
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - TSTRCHR
    linkageType: ''
    returnType: bool
    signature: bool contains_folder_separator(const TSK_TCHAR* a_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:115,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:116,1
    - Dst: _wcsnicmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - a_parent_path
    - a_child_path
    argTypes:
    - TSK_TCHAR*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: path_is_subfolder
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - _wcsnicmp
    - TSTRLEN
    linkageType: ''
    returnType: bool
    signature: bool path_is_subfolder(const TSK_TCHAR* a_parent_path, const TSK_TCHAR*
      a_child_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:155,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:155,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a_full_path
    - a_path_start
    argTypes:
    - TSK_TCHAR*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: get_end_of_path
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - TSTRLEN
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR *

      get_end_of_path(const TSK_TCHAR* a_full_path, const TSK_TCHAR* a_path_start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a_target_inum
    argTypes:
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: create_inum_search_helper
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: LOGICALFS_SEARCH_HELPER
    signature: 'LOGICALFS_SEARCH_HELPER *

      create_inum_search_helper(TSK_INUM_T a_target_inum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: create_max_inum_search_helper
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: LOGICALFS_SEARCH_HELPER
    signature: 'LOGICALFS_SEARCH_HELPER *

      create_max_inum_search_helper()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:214,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:221,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:222,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:224,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - a_target_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 231
    functionName: create_path_search_helper
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - free
    - tsk_malloc
    - TSTRNCPY
    - TSTRLEN
    linkageType: ''
    returnType: LOGICALFS_SEARCH_HELPER
    signature: 'LOGICALFS_SEARCH_HELPER *

      create_path_search_helper(const TSK_TCHAR *a_target_path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:241,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:244,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a_helper
    argTypes:
    - LOGICALFS_SEARCH_HELPER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: free_search_helper
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_search_helper(LOGICALFS_SEARCH_HELPER* a_helper)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:262,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:264,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:265,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:267,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:274,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:281,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - a_source
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: convert_wide_string_to_utf8
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_UTF16toUTF8_lclorder
    - wcslen
    - tsk_malloc
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      convert_wide_string_to_utf8(const wchar_t *a_source)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a_attributes
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: should_treat_as_directory
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_treat_as_directory(DWORD a_attributes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:315,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:316,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:317,1
    - Dst: should_treat_as_directory
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - a_fd
    - a_fs_file
    argTypes:
    - WIN32_FIND_DATA*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 344
    functionName: populate_fs_file_from_win_find_data
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - should_treat_as_directory
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM populate_fs_file_from_win_find_data(const WIN32_FIND_DATA*
      a_fd, TSK_FS_FILE * a_fs_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:360,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:361,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:365,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:366,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:369,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:370,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:374,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - a_base_path
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 378
    functionName: create_search_path
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - TSTRNCAT
    - tsk_malloc
    - TSTRNCPY
    - TSTRLEN
    linkageType: ''
    returnType: TSK_TCHAR
    signature: TSK_TCHAR * create_search_path(const TSK_TCHAR *a_base_path)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:418,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:419,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:420,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:421,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:434,1
    - Dst: clear
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:446,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:448,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:455,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:461,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:462,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:463,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:464,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:468,1
    - Dst: create_search_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:477,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:479,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:480,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:481,1
    - Dst: ::FindFirstFileW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:485,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:487,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:488,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:489,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:490,1
    - Dst: should_treat_as_directory
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:499,1
    - Dst: wcsncmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:502,1
    - Dst: wcsncmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:502,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:503,1
    - Dst: wstring
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:503,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:510,1
    - Dst: wstring
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:510,1
    - Dst: ::FindNextFileW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:513,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:515,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:516,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:517,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:518,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:519,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:523,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:524,1
    - Dst: sort
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:528,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:528,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:528,1
    - Dst: sort
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:530,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:530,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:530,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:535,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:541,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:541,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:549,1
    - Dst: length
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:550,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:551,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:557,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:557,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:563,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:565,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:571,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:585,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:586,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:587,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:589,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:599,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:601,1
    - Dst: size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:606,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:611,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 124
    argCount: 6
    argNames:
    - a_logical_img_info
    - a_dir_inum
    - a_base_path
    - ' a_file_names'
    - ' a_dir_names'
    - a_mode
    argTypes:
    - IMG_LOGICAL_INFO*
    - TSK_INUM_T
    - TSK_TCHAR*
    - vector<wstring>
    - vector<wstring>
    - LOGICALFS_DIR_LOADING_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 615
    functionName: load_dir_and_file_lists_win
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - begin
    - tsk_error_set_errno
    - _TSK_T
    - tsk_take_lock
    - clear
    - TSTRNCPY
    - length
    - tsk_release_lock
    - ::FindClose
    - sort
    - tsk_error_reset
    - ::FindFirstFileW
    - tsk_malloc
    - end
    - create_search_path
    - c_str
    - should_treat_as_directory
    - size
    - tsk_error_set_errstr
    - push_back
    - wcsncmp
    - free
    - wstring
    - ::FindNextFileW
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM load_dir_and_file_lists_win(\n\tIMG_LOGICAL_INFO*
      a_logical_img_info,\n\tTSK_INUM_T a_dir_inum,\n\tconst TSK_TCHAR *a_base_path,\n\tvector<wstring>&
      a_file_names,\n\tvector<wstring>& a_dir_names,\n\tLOGICALFS_DIR_LOADING_MODE
      a_mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:638,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:639,1
    - Dst: _wcsnicmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:643,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - a_logical_fs_info
    - a_path
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 652
    functionName: get_path_relative_to_base
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - _wcsnicmp
    - TSTRLEN
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR *

      get_path_relative_to_base(const LOGICALFS_INFO* a_logical_fs_info, const TSK_TCHAR*
      a_path)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:669,1
    - Dst: get_path_relative_to_base
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:678,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:680,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:683,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:684,1
    - Dst: _wcsnicmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:704,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:730,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:732,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:735,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:736,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:739,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - a_logical_fs_info
    - a_target_path
    - a_best_path
    - a_best_inum
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    - TSK_TCHAR**
    - TSK_INUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 742
    functionName: find_closest_path_match_in_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - _wcsnicmp
    - TSTRNCPY
    - TSTRNCAT
    - tsk_malloc
    - tsk_release_lock
    - get_path_relative_to_base
    - TSTRLEN
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM find_closest_path_match_in_cache(LOGICALFS_INFO *a_logical_fs_info,
      const TSK_TCHAR *a_target_path, TSK_TCHAR **a_best_path, TSK_INUM_T *a_best_inum)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:763,1
    - Dst: get_path_relative_to_base
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:773,1
    - Dst: get_path_relative_to_base
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:774,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:776,1
    - Dst: path_is_subfolder
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:792,1
    - Dst: get_end_of_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:796,1
    - Dst: contains_folder_separator
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:797,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:801,1
    - Dst: get_end_of_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:811,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:814,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:817,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:820,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:821,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:823,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:826,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:830,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 6
    argNames:
    - a_logical_fs_info
    - a_target_path
    - a_parent_path
    - a_parent_inum
    - a_best_name
    - a_best_inum
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    - TSK_TCHAR*
    - TSK_INUM_T
    - TSK_TCHAR**
    - TSK_INUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 759
    functionDepth: 4
    functionLinenumber: 759
    functionLinenumberEnd: 833
    functionName: find_closest_sibling_match_in_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - path_is_subfolder
    - contains_folder_separator
    - tsk_fprintf
    - TSTRICMP
    - TSTRNCPY
    - get_end_of_path
    - tsk_malloc
    - tsk_release_lock
    - get_path_relative_to_base
    - TSTRLEN
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM find_closest_sibling_match_in_cache(LOGICALFS_INFO*
      a_logical_fs_info, const TSK_TCHAR* a_target_path, const TSK_TCHAR* a_parent_path,
      TSK_INUM_T a_parent_inum, TSK_TCHAR** a_best_name, TSK_INUM_T* a_best_inum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:848,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:857,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:859,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:861,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:864,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:865,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:870,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - a_logical_fs_info
    - a_target_inum
    argTypes:
    - LOGICALFS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 873
    functionName: find_path_for_inum_in_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - TSTRNCPY
    - TSTRNCAT
    - tsk_malloc
    - tsk_release_lock
    - TSTRLEN
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR *

      find_path_for_inum_in_cache(LOGICALFS_INFO *a_logical_fs_info, TSK_INUM_T a_target_inum)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_path_relative_to_base
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:890,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:893,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:899,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:916,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:927,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:934,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:935,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:937,1
    - Dst: clear_inum_cache_entry
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:941,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:945,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:949,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - a_logical_fs_info
    - a_path
    - a_inum
    - a_always_cache
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    - TSK_INUM_T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 951
    functionName: add_directory_to_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - TSTRNCPY
    - tsk_malloc
    - tsk_release_lock
    - clear_inum_cache_entry
    - get_path_relative_to_base
    - TSTRLEN
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM add_directory_to_cache(LOGICALFS_INFO *a_logical_fs_info,
      const TSK_TCHAR *a_path, TSK_INUM_T a_inum, bool a_always_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:958,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:959,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:959,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:960,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:960,1
    - Dst: std::towlower
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:962,1
    - Dst: std::towlower
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a_a'
    - ' a_b'
    argTypes:
    - std::wstring
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 965
    functionName: case_insensitive_compare
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - std::lexicographical_compare
    - begin
    - std::towlower
    - end
    linkageType: ''
    returnType: bool
    signature: bool case_insensitive_compare(const std::wstring& a_a, const std::wstring&
      a_b)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: load_dir_and_file_lists_win
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1007,1
    - Dst: vector::size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1016,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1017,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1018,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1019,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1024,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1025,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1025,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1026,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1027,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1029,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1031,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1033,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1033,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1033,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1033,1
    - Dst: load_dir_and_file_lists_win
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1041,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1053,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1054,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1057,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1059,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1061,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1063,1
    - Dst: std::lower_bound
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1072,1
    - Dst: vector::begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1072,1
    - Dst: vector::end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1072,1
    - Dst: vector::end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1074,1
    - Dst: case_insensitive_compare
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1074,1
    - Dst: vector::begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1076,1
    - Dst: vector::size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1082,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1085,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1085,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1086,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1087,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1087,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1088,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1091,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1093,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1095,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1100,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1100,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1103,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1104,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1105,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1106,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1119,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1120,1
    - Dst: TSTRNICMP
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1133,1
    - Dst: add_directory_to_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1134,1
    - Dst: add_directory_to_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1138,1
    - Dst: add_directory_to_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1143,1
    - Dst: add_directory_to_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1150,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1155,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1158,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1165,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1166,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1169,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1170,1
    - Dst: search_directory_recursive
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1173,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1175,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1179,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1183,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 6
    argNames:
    - a_logical_fs_info
    - a_parent_path
    - a_last_inum_ptr
    - a_sibling_name
    - a_sibling_inum
    - a_search_helper
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    - TSK_INUM_T*
    - TSK_TCHAR*
    - TSK_INUM_T
    - LOGICALFS_SEARCH_HELPER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 1185
    functionName: search_directory_recursive
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 1
    functionsReached:
    - case_insensitive_compare
    - TSTRICMP
    - add_directory_to_cache
    - tsk_error_set_errno
    - vector::begin
    - TSTRNICMP
    - search_directory_recursive
    - TSTRNCPY
    - tsk_error_reset
    - tsk_malloc
    - vector::end
    - vector::size
    - c_str
    - tsk_error_set_errstr
    - std::lower_bound
    - TSTRNCAT
    - load_dir_and_file_lists_win
    - free
    - TSTRLEN
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM search_directory_recursive(LOGICALFS_INFO *a_logical_fs_info,
      const TSK_TCHAR * a_parent_path, TSK_INUM_T *a_last_inum_ptr,\n\tconst TSK_TCHAR*
      a_sibling_name, TSK_INUM_T a_sibling_inum, LOGICALFS_SEARCH_HELPER* a_search_helper)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1200,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1201,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1204,1
    - Dst: find_path_for_inum_in_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1214,1
    - Dst: create_inum_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1227,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1230,1
    - Dst: search_directory_recursive
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1236,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1239,1
    - Dst: free_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1246,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1247,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1248,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1249,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1254,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1255,1
    - Dst: free_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1257,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1260,1
    - Dst: free_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - a_logical_fs_info
    - a_addr
    argTypes:
    - LOGICALFS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1195
    functionDepth: 5
    functionLinenumber: 1195
    functionLinenumberEnd: 1264
    functionName: load_path_from_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - free_search_helper
    - tsk_error_set_errstr
    - tsk_error_reset
    - search_directory_recursive
    - TSTRNCPY
    - create_inum_search_helper
    - tsk_malloc
    - tsk_error_set_errno
    - find_path_for_inum_in_cache
    - free
    - TSTRLEN
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR *

      load_path_from_inum(LOGICALFS_INFO *a_logical_fs_info, TSK_INUM_T a_addr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1272,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1273,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1274,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1278,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1283,1
    - Dst: load_path_from_inum
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1289,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1291,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1292,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1293,1
    - Dst: ::FindFirstFileW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1301,1
    - Dst: populate_fs_file_from_win_find_data
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1303,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1304,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1305,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1308,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1309,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1310,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1315
    functionName: logicalfs_file_add_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - populate_fs_file_from_win_find_data
    - tsk_fs_meta_reset
    - ::FindFirstFileW
    - load_path_from_inum
    - tsk_fs_meta_alloc
    - tsk_error_set_errno
    - free
    - ::FindClose
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_file_add_meta(TSK_FS_INFO *a_fs, TSK_FS_FILE * a_fs_file,\n\tTSK_INUM_T
      a_inum)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_max_inum_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1328,1
    - Dst: search_directory_recursive
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1335,1
    - Dst: free_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1336,1
    - Dst: load_path_from_inum
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1345,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1347,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1348,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1349,1
    - Dst: load_dir_and_file_lists_win
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1359,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1361,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1368,1
    - Dst: vector::size
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - a_logical_fs_info
    argTypes:
    - LOGICALFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1324
    functionDepth: 6
    functionLinenumber: 1324
    functionLinenumberEnd: 1371
    functionName: find_max_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - free_search_helper
    - tsk_error_set_errstr
    - tsk_error_reset
    - search_directory_recursive
    - vector::size
    - load_path_from_inum
    - tsk_error_set_errno
    - load_dir_and_file_lists_win
    - create_max_inum_search_helper
    - free
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T find_max_inum(LOGICALFS_INFO *a_logical_fs_info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1390,1
    - Dst: length
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1391,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1392,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1396,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1398,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1400,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1402,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1402,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1402,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1402,1
    - Dst: find_closest_path_match_in_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1414,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1416,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1420,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1422,1
    - Dst: get_end_of_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1436,1
    - Dst: contains_folder_separator
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1437,1
    - Dst: find_closest_sibling_match_in_cache
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1439,1
    - Dst: create_path_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1444,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1445,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1447,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1449,1
    - Dst: search_directory_recursive
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1455,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1458,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1460,1
    - Dst: free_search_helper
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - a_logical_fs_info
    - a_base_path
    - ' a_dir_path'
    argTypes:
    - LOGICALFS_INFO*
    - TSK_TCHAR*
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1386
    functionDepth: 5
    functionLinenumber: 1386
    functionLinenumberEnd: 1473
    functionName: get_inum_from_directory_path
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - find_closest_path_match_in_cache
    - contains_folder_separator
    - free_search_helper
    - TSTRICMP
    - search_directory_recursive
    - TSTRNCPY
    - get_end_of_path
    - TSTRNCAT
    - length
    - tsk_malloc
    - find_closest_sibling_match_in_cache
    - create_path_search_helper
    - free
    - TSTRLEN
    - c_str
    linkageType: ''
    returnType: void
    signature: void get_inum_from_directory_path(LOGICALFS_INFO *a_logical_fs_info,
      TSK_TCHAR *a_base_path, string& a_dir_path)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1483,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1484,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1485,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1489,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1490,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1491,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1495,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1496,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1497,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1503,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1506,1
    - Dst: load_path_from_inum
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1512,1
    - Dst: ::FindFirstFileW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1520,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1522,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1523,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1524,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1525,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1529,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1530,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1531,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1535,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1536,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1537,1
    - Dst: populate_fs_file_from_win_find_data
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1541,1
    - Dst: ::FindClose
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1542,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1546,1
    - Dst: load_dir_and_file_lists_win
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1559,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1562,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1574,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1574,1
    - Dst: get_inum_from_directory_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1575,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1577,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1578,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1579,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1580,1
    - Dst: convert_wide_string_to_utf8
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1587,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1587,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1589,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1590,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1591,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1592,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1595,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1597,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1597,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1599,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1601,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1603,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1612,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1613,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1615,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1615,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1617,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1618,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1619,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1622,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1624,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1628,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1628,1
    - Dst: convert_wide_string_to_utf8
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1632,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1632,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1634,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1635,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1636,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1639,1
    - Dst: auto::length
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1641,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1643,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1645,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1655,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1656,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1658,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1658,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1660,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1661,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1664,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 119
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - a_recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1475
    functionDepth: 6
    functionLinenumber: 1475
    functionLinenumberEnd: 1670
    functionName: logicalfs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - begin
    - auto::c_str
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - strlen
    - get_inum_from_directory_path
    - load_path_from_inum
    - convert_wide_string_to_utf8
    - tsk_fs_dir_add
    - ::FindClose
    - populate_fs_file_from_win_find_data
    - tsk_error_reset
    - tsk_fs_dir_reset
    - ::FindFirstFileW
    - tsk_fs_name_free
    - end
    - tsk_fs_name_alloc
    - auto::length
    - tsk_error_set_errstr
    - tsk_fs_meta_alloc
    - load_dir_and_file_lists_win
    - strncpy
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM logicalfs_dir_open_meta(TSK_FS_INFO *a_fs, TSK_FS_DIR
      ** a_fs_dir,\n\tTSK_INUM_T a_addr, int a_recursion_depth)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1677,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1678,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1694,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1697,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1701,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1711,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1724,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1727,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1741,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1672
    functionDepth: 3
    functionLinenumber: 1672
    functionLinenumberEnd: 1747
    functionName: logicalfs_load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - roundup
    - tsk_error_set_errstr
    - tsk_fs_attr_run_alloc
    - tsk_fs_attr_set_run
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - tsk_fs_attr_add_run
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t logicalfs_load_attrs(TSK_FS_FILE *a_file)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1764,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1765,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1766,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1771,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1772,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1773,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1791,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1804,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1832,1
    - Dst: load_path_from_inum
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1847,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1849,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1850,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1851,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1852,1
    - Dst: CreateFileW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1858,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1862,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1863,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1864,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1865,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1867,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1868,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1877,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1885,1
    - Dst: SetFilePointer
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1906,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1910,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1912,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1913,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1914,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1915,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1916,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1934,1
    - Dst: ReadFile
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1939,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1940,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1941,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1942,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1943,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1944,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1957,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1963,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1968,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1969,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1970,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:1971,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 110
    argCount: 4
    argNames:
    - a_fs
    - a_fs_file
    - a_block_num
    - a_buf
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_DADDR_T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1760
    functionDepth: 6
    functionLinenumber: 1760
    functionLinenumberEnd: 1980
    functionName: logicalfs_read_block
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - CreateFileW
    - ReadFile
    - load_path_from_inum
    - memcpy
    - GetLastError
    - tsk_error_set_errno
    - tsk_release_lock
    - SetFilePointer
    - free
    - CloseHandle
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t logicalfs_read_block(TSK_FS_INFO *a_fs, TSK_FS_FILE *a_fs_file,
      TSK_DADDR_T a_block_num, char *a_buf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2005,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2006,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2007,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2012,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2013,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2014,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2026,1
    - Dst: logicalfs_read_block
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2037,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2042,1
    - Dst: logicalfs_read_block
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2055,1
    - Dst: logicalfs_read_block
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2072,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2077,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 5
    argNames:
    - a_fs
    - a_fs_file
    - a_offset
    - a_len
    - a_buf
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_DADDR_T
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 1993
    functionDepth: 7
    functionLinenumber: 1993
    functionLinenumberEnd: 2082
    functionName: logicalfs_read
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - logicalfs_read_block
    - memcpy
    - tsk_error_set_errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t logicalfs_read(TSK_FS_INFO *a_fs, TSK_FS_FILE *a_fs_file, TSK_DADDR_T
      a_offset, size_t a_len, char *a_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2096,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2097,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2099,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2092
    functionDepth: 4
    functionLinenumber: 2092
    functionLinenumberEnd: 2104
    functionName: logicalfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t logicalfs_fsstat(TSK_FS_INFO * a_fs, FILE * a_hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2109,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2110,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2106
    functionDepth: 3
    functionLinenumber: 2106
    functionLinenumberEnd: 2113
    functionName: logicalfs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t logicalfs_fscheck(TSK_FS_INFO * /*a_fs*/, FILE * /*a_hFile*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2130,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2131,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - a_flags
    - a_hFile
    - a_inum
    - a_numblock
    - a_sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2126
    functionDepth: 3
    functionLinenumber: 2126
    functionLinenumberEnd: 2134
    functionName: logicalfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_istat(TSK_FS_INFO *a_fs, TSK_FS_ISTAT_FLAG_ENUM
      a_flags, FILE * a_hFile, TSK_INUM_T a_inum,\n\tTSK_DADDR_T a_numblock, int32_t
      a_sec_skew)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2137
    functionDepth: 2
    functionLinenumber: 2137
    functionLinenumberEnd: 2144
    functionName: logicalfs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    linkageType: ''
    returnType: void
    signature: void logicalfs_close(TSK_FS_INFO *a_fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2150,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2151,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2146
    functionDepth: 3
    functionLinenumber: 2146
    functionLinenumberEnd: 2154
    functionName: logicalfs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_jentry_walk(TSK_FS_INFO * /*a_info*/, int /*a_entry*/,\n\tTSK_FS_JENTRY_WALK_CB
      /*a_cb*/, void * /*a_fn*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2161,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2162,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2156
    functionDepth: 3
    functionLinenumber: 2156
    functionLinenumberEnd: 2165
    functionName: logicalfs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t logicalfs_jblk_walk(TSK_FS_INFO * /*a_info*/, TSK_DADDR_T
      /*a_daddr*/,\n\tTSK_DADDR_T /*a_daddrt*/, int /*a_entry*/, TSK_FS_JBLK_WALK_CB
      /*a_cb*/,\n\tvoid * /*a_fn*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2170,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2171,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2167
    functionDepth: 3
    functionLinenumber: 2167
    functionLinenumberEnd: 2174
    functionName: logicalfs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t logicalfs_jopen(TSK_FS_INFO * /*a_info*/, TSK_INUM_T /*a_inum*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2180,1
    - Dst: tsk_fs_unix_name_cmp
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a_fs_info
    - a_s1
    - a_s2
    argTypes:
    - TSK_FS_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2176
    functionDepth: 1
    functionLinenumber: 2176
    functionLinenumberEnd: 2188
    functionName: logicalfs_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_unix_name_cmp
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int logicalfs_name_cmp(TSK_FS_INFO * a_fs_info, const char *a_s1, const
      char *a_s2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2232,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2232,1
    - Dst: should_treat_as_directory
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - a_fs
    - a_path_wide
    argTypes:
    - TSK_FS_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2244
    functionName: logical_fs_check_path
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - should_treat_as_directory
    - GetFileAttributesW
    - std::wstring::c_str
    linkageType: ''
    returnType: LOGICAL_PATH_TYPE
    signature: LOGICAL_PATH_TYPE logical_fs_check_path(TSK_FS_INFO *a_fs, const TSK_TCHAR
      *a_path_wide)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_wide_string_to_utf8
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2274,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2276,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - a_fs_name
    - a_inum
    - a_leaf_wide
    - a_is_dir
    argTypes:
    - TSK_FS_NAME*
    - TSK_INUM_T
    - wchar_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2264
    functionDepth: 5
    functionLinenumber: 2264
    functionLinenumberEnd: 2291
    functionName: populate_fs_name
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 0
    functionsReached:
    - free
    - snprintf
    - convert_wide_string_to_utf8
    linkageType: ''
    returnType: void
    signature: "void populate_fs_name(TSK_FS_NAME *a_fs_name, TSK_INUM_T a_inum,\n
      \                const wchar_t *a_leaf_wide, bool a_is_dir)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2330,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2331,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2338,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2342,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2343,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2344,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2345,1
    - Dst: logical_fs_check_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2360,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2362,1
    - Dst: populate_fs_name
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2375,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2376,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2383,1
    - Dst: get_inum_from_directory_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2392,1
    - Dst: std::wstring::find_last_of
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2399,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2401,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2402,1
    - Dst: populate_fs_name
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2403,1
    - Dst: std::wstring::find_last_of
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2408,1
    - Dst: std::wstring::clear
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2413,1
    - Dst: std::wstring::substr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2416,1
    - Dst: std::wstring::substr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2417,1
    - Dst: std::wstring::empty
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2423,1
    - Dst: get_inum_from_directory_path
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2426,1
    - Dst: std::wstring::empty
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2434,1
    - Dst: load_dir_and_file_lists_win
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2447,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2448,1
    - Dst: std::lower_bound
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2458,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2458,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2458,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2460,1
    - Dst: case_insensitive_compare
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2460,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2463,1
    - Dst: populate_fs_name
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2467,1
    - Dst: auto::c_str
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2467,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 4
    argNames:
    - a_fs
    - a_path
    - a_result
    - a_fs_name
    argTypes:
    - TSK_FS_INFO*
    - char*
    - TSK_INUM_T*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2313
    functionDepth: 6
    functionLinenumber: 2313
    functionLinenumberEnd: 2481
    functionName: tsk_logical_fs_path2inum
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 1
    functionsReached:
    - std::wstring::substr
    - case_insensitive_compare
    - std::wstring::c_str
    - auto::c_str
    - tsk_error_set_errno
    - logical_fs_check_path
    - tsk_UTF8toUTF16
    - strlen
    - std::vector::begin
    - get_inum_from_directory_path
    - std::wstring::empty
    - populate_fs_name
    - std::wstring::find_last_of
    - tsk_error_reset
    - tsk_malloc
    - std::wstring::clear
    - std::vector::end
    - tsk_error_set_errstr
    - std::lower_bound
    - load_dir_and_file_lists_win
    - free
    linkageType: ''
    returnType: int8_t
    signature: "int8_t tsk_logical_fs_path2inum(TSK_FS_INFO *a_fs, const char *a_path,\n
      \   TSK_INUM_T *a_result, TSK_FS_NAME *a_fs_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2491,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2492,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2493,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2498,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2499,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2500,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2505,1
    - Dst: find_max_inum
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2558,1
    - Dst: logicalfs_close
      Src: /src/sleuthkit/tsk/fs/logical_fs.cpp:2564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 1
    argNames:
    - a_img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2483
    functionDepth: 7
    functionLinenumber: 2483
    functionLinenumberEnd: 2569
    functionName: logicalfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/logical_fs.cpp
    functionUses: 1
    functionsReached:
    - logicalfs_close
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_malloc
    - find_max_inum
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      logicalfs_open(TSK_IMG_INFO * a_img_info)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_io.c:64,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/fs_io.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - a_fs
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 79
    functionName: fs_prepost_read
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_io.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fs_prepost_read(TSK_FS_INFO * a_fs, TSK_OFF_T a_off, char
      *a_buf,\n    size_t a_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_io.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: tsk_fs_read
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_io.c
    functionUses: 12
    functionsReached:
    - tsk_fs_read_decrypt
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tsk_fs_read(TSK_FS_INFO * a_fs, TSK_OFF_T a_off, char *a_buf,
      size_t a_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_io.c:115,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_io.c:116,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_io.c:119,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_io.c:123,1
    - Dst: tsk_fs_read_block_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_io.c:134,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_io.c:150,1
    - Dst: tsk_fs_read_block_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_io.c:155,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_io.c:157,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_io.c:162,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_io.c:164,1
    - Dst: fs_prepost_read
      Src: /src/sleuthkit/tsk/fs/fs_io.c:171,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/fs_io.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - a_fs
    - a_off
    - a_buf
    - a_len
    - crypto_id
    argTypes:
    - TSK_FS_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 177
    functionName: tsk_fs_read_decrypt
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_io.c
    functionUses: 1
    functionsReached:
    - tsk_fs_read_block_decrypt
    - tsk_error_set_errstr
    - tsk_error_reset
    - memcpy
    - tsk_malloc
    - tsk_error_set_errno
    - fs_prepost_read
    - free
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_read_decrypt(TSK_FS_INFO * a_fs, TSK_OFF_T a_off, char
      *a_buf, size_t a_len, \n    TSK_DADDR_T crypto_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read_block_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_io.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_fs
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: tsk_fs_read_block
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_io.c
    functionUses: 11
    functionsReached:
    - tsk_fs_read_block_decrypt
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_read_block(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr,
      char *a_buf,\n    size_t a_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_io.c:216,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_io.c:217,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_io.c:218,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_io.c:224,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_io.c:225,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_io.c:227,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_io.c:231,1
    - Dst: read_and_decrypt_bitlocker_blocks
      Src: /src/sleuthkit/tsk/fs/fs_io.c:244,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/fs_io.c:253,1
    - Dst: fs_prepost_read
      Src: /src/sleuthkit/tsk/fs/fs_io.c:257,1
    - Dst: TSK_FS_INFO*::decrypt_block
      Src: /src/sleuthkit/tsk/fs/fs_io.c:265,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - a_fs
    - a_addr
    - a_buf
    - a_len
    - crypto_id
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 271
    functionName: tsk_fs_read_block_decrypt
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_io.c
    functionUses: 2
    functionsReached:
    - TSK_FS_INFO*::decrypt_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - read_and_decrypt_bitlocker_blocks
    - fs_prepost_read
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_read_block_decrypt(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr, char *a_buf,\n    size_t a_len, TSK_DADDR_T crypto_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/swapfs.c:41,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/swapfs.c:44,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/swapfs.c:45,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/swapfs.c:46,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/swapfs.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 101
    functionName: swapfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/swapfs.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_malloc
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      swapfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: APFSFSCompat::date_added_cache::date_added_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void date_added_cache(TSK_FS_INFO* fs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& fs_info() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: TSK_FS_INFO & fs_info() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& fs_info() noexcept'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: TSK_FS_INFO & fs_info() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/sleuthkit/tsk/fs/apfs_compat.hpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent_id
    - private_id
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: APFSFSCompat::date_added
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_compat.hpp
    functionUses: 1
    functionsReached:
    - lookup
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t date_added(uint64_t parent_id, uint64_t private_id) const\n
      \     noexcept"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:77,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:78,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:79,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:80,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:81,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:85,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:87,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:88,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:89,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:95,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:99,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:106,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:108,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:109,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:110,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:112,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:117,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:122,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:124,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:127,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:129,1
    - Dst: fatxxfs_is_dentry
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:141,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:145,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:230,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:252,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:260,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:261,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:262,1
    - Dst: fatfs_cleanup_ascii
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:322,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:341,1
    - Dst: fatfs_dir_buf_get
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:355,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:368,1
    - Dst: tsk_fs_dir_walk_internal
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:374,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:384,1
    - Dst: fatfs_dir_buf_get
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:387,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:394,1
    - Dst: fatfs_dir_buf_add
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:403,1
    - Dst: FATXXFS_IS_DELETED
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:415,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:426,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs_dent.c:429,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 187
    argCount: 6
    argNames:
    - fatfs
    - a_fs_dir
    - buf
    - len
    - addrs
    - recursion_depth
    argTypes:
    - FATFS_INFO*
    - TSK_FS_DIR*
    - char*
    - TSK_OFF_T
    - TSK_DADDR_T*
    - int
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/sleuthkit/tsk/fs/fatxxfs_dent.c
    constantsTouched: []
    func_position:
      end: 432
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 432
    functionName: fatxxfs_dent_parse_buf
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_dent.c
    functionUses: 0
    functionsReached:
    - memset
    - FATFS_SECT_2_INODE
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - fatfs_is_sectalloc
    - tsk_error_set_errno
    - fatfs_dir_buf_get
    - FATXXFS_IS_DELETED
    - fatxxfs_is_dentry
    - tsk_fs_dir_add
    - assert
    - tsk_error_reset
    - tsk_fs_name_free
    - fatfs_ptr_arg_is_null
    - fatfs_cleanup_ascii
    - tsk_fs_name_alloc
    - fatfs_dir_buf_add
    - strncat
    - tsk_error_set_errstr
    - tsk_UTF16toUTF8
    - TSK_FS_ORPHANDIR_INUM
    - TSK_FS_ISDOT
    - tsk_fs_dir_walk_internal
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM fatxxfs_dent_parse_buf(FATFS_INFO *fatfs, TSK_FS_DIR
      *a_fs_dir, char *buf,\n    TSK_OFF_T len, TSK_DADDR_T *addrs, int recursion_depth)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:107,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:115,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:119,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:123,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:131,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:132,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:136,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:141,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:172,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:180,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:203,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 6
    argNames:
    - a_fs
    - a_fs_dir
    - buf
    - a_length
    - a_addr
    - a_dir_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR*
    - char*
    - size_t
    - TSK_INUM_T
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 206
    functionName: iso9660_proc_dir
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660_dent.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    - strcpy
    - tsk_fs_name_free
    - tsk_fs_name_alloc
    - snprintf
    - tsk_fs_dir_add
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_proc_dir(TSK_FS_INFO * a_fs, TSK_FS_DIR * a_fs_dir,
      const char *buf,\n    size_t a_length, TSK_INUM_T a_addr, TSK_OFF_T a_dir_addr)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:235,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:236,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:237,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:243,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:244,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:245,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:251,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:257,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:262,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:268,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:269,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:272,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:274,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:275,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:276,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:283,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:286,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:289,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:290,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:292,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:293,1
    - Dst: iso9660_proc_dir
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:298,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:303,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:305,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:309,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:310,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:311,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:315,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:316,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:317,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:320,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:323,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 325
    functionName: iso9660_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660_dent.c
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - tsk_fs_dir_find_orphans
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_dir_reset
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_name_alloc
    - tsk_fs_file_read
    - tsk_fs_name_free
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - free
    - tsk_fs_dir_make_orphan_dir_name
    - iso9660_proc_dir
    - tsk_error_set_errstr2
    - tsk_fs_dir_add
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM iso9660_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/iso9660_dent.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_fs_info
    - s1
    - s2
    argTypes:
    - TSK_FS_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: iso9660_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660_dent.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int iso9660_name_cmp(TSK_FS_INFO * a_fs_info, const char *s1, const
      char *s2)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:58,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:60,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:64,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:66,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:66,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:71,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:73,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:82,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:87,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:89,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:103,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:105,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_parse.c:116,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 6
    argNames:
    - str
    - inum
    - type
    - type_used
    - id
    - id_used
    argTypes:
    - TSK_TCHAR*
    - TSK_INUM_T*
    - TSK_FS_ATTR_TYPE_ENUM*
    - uint8_t*
    - uint16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 118
    functionName: tsk_fs_parse_inum
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_parse.c
    functionUses: 0
    functionsReached:
    - TSTRNCPY
    - TSTRTOUL
    - TSTRCHR
    - tsk_malloc
    - _TSK_T
    - free
    - TSTRTOULL
    - TSTRLEN
    linkageType: ''
    returnType: int
    signature: "int tsk_fs_parse_inum(const TSK_TCHAR * str, TSK_INUM_T * inum,\n
      \   TSK_FS_ATTR_TYPE_ENUM * type, uint8_t * type_used, uint16_t * id,\n    uint8_t
      * id_used)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:50,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:60,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:61,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:62,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:75,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:76,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:77,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:79,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:87,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:89,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:90,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:91,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 99
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 99
    functionName: exfatfs_get_fs_size_params
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_getu32
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_get_fs_size_params(FATFS_INFO *a_fatfs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:118,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:122,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:124,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:125,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:126,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:128,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:137,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:138,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:139,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:141,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:151,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:153,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:154,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:155,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:157,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:164,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:167,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:168,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:169,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:171,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:184,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:188,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:189,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:190,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:192,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:206,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:206,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:209,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:210,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:211,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:213,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 223
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 223
    functionName: exfatfs_get_fs_layout
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_getu32
    - tsk_error_set_errno
    - FATFS_CLUST_2_SECT
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_get_fs_layout(FATFS_INFO *a_fatfs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:248,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:250,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:261,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:264,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:265,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:267,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:268,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:280,1
    - Dst: exfatfs_is_alloc_bitmap_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:282,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:294,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:294,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:295,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:296,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:306,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:313,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 316
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 316
    functionName: exfatfs_get_alloc_bitmap
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - assert
    - roundup
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - FATFS_CLUST_2_SECT
    - exfatfs_get_enum_from_type
    - tsk_error_set_errstr2
    - exfatfs_is_alloc_bitmap_dentry
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_get_alloc_bitmap(FATFS_INFO *a_fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 337
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 337
    functionName: exfatfs_get_volume_id
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void exfatfs_get_volume_id(FATFS_INFO *a_fatfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:358,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:365,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:391,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:391,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 403
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 403
    functionName: exfatfs_setup_fs_layout_model
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - FATFS_NUM_VIRT_FILES
    - FATFS_SECT_2_INODE
    - assert
    - tsk_getu64
    linkageType: ''
    returnType: void
    signature: void exfatfs_setup_fs_layout_model(FATFS_INFO *a_fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:418,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:425,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: exfatfs_init_fat_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_init_lock
    linkageType: ''
    returnType: void
    signature: void exfatfs_init_fat_cache(FATFS_INFO *a_fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:441,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: exfatfs_init_inums_map
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_init_lock
    linkageType: ''
    returnType: void
    signature: void exfatfs_init_inums_map(FATFS_INFO *a_fatfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 497
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 497
    functionName: exfatfs_set_func_ptrs
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void exfatfs_set_func_ptrs(FATFS_INFO *a_fatfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:511,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:513,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:514,1
    - Dst: exfatfs_get_fs_size_params
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:518,1
    - Dst: exfatfs_get_fs_layout
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:519,1
    - Dst: exfatfs_get_fs_layout
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:523,1
    - Dst: exfatfs_setup_fs_layout_model
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:524,1
    - Dst: exfatfs_get_alloc_bitmap
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:530,1
    - Dst: exfatfs_get_volume_id
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:534,1
    - Dst: exfatfs_init_inums_map
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:535,1
    - Dst: exfatfs_init_fat_cache
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:536,1
    - Dst: exfatfs_set_func_ptrs
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - a_fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 542
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 542
    functionName: exfatfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 1
    functionsReached:
    - exfatfs_init_inums_map
    - assert
    - tsk_error_reset
    - exfatfs_setup_fs_layout_model
    - exfatfs_init_fat_cache
    - exfatfs_get_fs_layout
    - exfatfs_get_alloc_bitmap
    - exfatfs_get_volume_id
    - fatfs_ptr_arg_is_null
    - exfatfs_set_func_ptrs
    - exfatfs_get_fs_size_params
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_open(FATFS_INFO *a_fatfs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:567,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:568,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:570,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:571,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:572,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:579,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:584,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:588,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:600,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:603,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:604,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:606,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:607,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:612,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:618,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:627,1
    - Dst: exfatfs_is_vol_label_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:628,1
    - Dst: exfatfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:634,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - a_fatfs
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_FS_FILE*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_fs_file != NULL)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 647
      start: 554
    functionDepth: 9
    functionLinenumber: 554
    functionLinenumberEnd: 647
    functionName: exfatfs_find_volume_label_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - FATFS_SECT_2_INODE
    - assert
    - exfatfs_dinode_copy
    - tsk_error_reset
    - tsk_fs_meta_reset
    - exfatfs_is_vol_label_dentry
    - fatfs_is_sectalloc
    - tsk_fs_meta_alloc
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - fatfs_ptr_arg_is_null
    - exfatfs_get_enum_from_type
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_find_volume_label_dentry(FATFS_INFO *a_fatfs, TSK_FS_FILE
      *a_fs_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:665,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:666,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:671,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:675,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:679,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:680,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:682,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:684,1
    - Dst: exfatfs_find_volume_label_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:688,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:689,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:692,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:695,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:697,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:700,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:701,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:703,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 708
      start: 658
    functionDepth: 10
    functionLinenumber: 658
    functionLinenumberEnd: 708
    functionName: exfatfs_fsstat_fs_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - assert
    - tsk_fs_meta_alloc
    - tsk_fs_file_alloc
    - tsk_fs_file_close
    - exfatfs_find_volume_label_dentry
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_fsstat_fs_info(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:731,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:732,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:736,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:738,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:742,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:746,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:749,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:751,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:753,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:755,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:757,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:762,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:767,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:771,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:775,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:781,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:782,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:787,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:789,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:796,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:797,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:802,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:808,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:811,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:813,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:816,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 822
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 822
    functionName: exfatfs_fsstat_fs_layout_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - assert
    - FATFS_SECT_2_CLUST
    - tsk_list_find
    - fatfs_getFAT
    - tsk_list_free
    - FATFS_CLUST_2_SECT
    - tsk_list_add
    - FATFS_ISEOF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_fsstat_fs_layout_info(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:835,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:836,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:838,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:839,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:841,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:843,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 835
        line_start: 835
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 847
      start: 832
    functionDepth: 4
    functionLinenumber: 832
    functionLinenumberEnd: 847
    functionName: exfatfs_fsstat_fs_metadata_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: void exfatfs_fsstat_fs_metadata_info(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:864,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:865,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:869,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:870,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:871,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:872,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:875,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:886,1
    - Dst: FATFS_ISBAD
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:890,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:895,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:898,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:900,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:902,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:907,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 909
      start: 857
    functionDepth: 5
    functionLinenumber: 857
    functionLinenumberEnd: 909
    functionName: exfatfs_fsstat_fs_content_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - FATFS_ISBAD
    - tsk_fprintf
    - assert
    - fatfs_getFAT
    - FATFS_CLUST_2_SECT
    linkageType: ''
    returnType: void
    signature: void exfatfs_fsstat_fs_content_info(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:930,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:931,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:935,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:936,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:945,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:947,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:951,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:957,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:958,1
    - Dst: FATFS_ISBAD
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:962,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:963,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:968,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 929
        line_start: 929
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 977
      start: 920
    functionDepth: 5
    functionLinenumber: 920
    functionLinenumberEnd: 977
    functionName: exfatfs_fsstat_fs_fat_chains_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - FATFS_ISBAD
    - tsk_fprintf
    - assert
    - fatfs_getFAT
    - FATFS_CLUST_2_SECT
    - FATFS_ISEOF
    linkageType: ''
    returnType: void
    signature: void exfatfs_fsstat_fs_fat_chains_info(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:993,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:994,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:996,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:997,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:998,1
    - Dst: exfatfs_fsstat_fs_info
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:1002,1
    - Dst: exfatfs_fsstat_fs_layout_info
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:1006,1
    - Dst: exfatfs_fsstat_fs_metadata_info
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:1010,1
    - Dst: exfatfs_fsstat_fs_content_info
      Src: /src/sleuthkit/tsk/fs/exfatfs.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a_fs
    - a_hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts:
    - condition: (a_fs != NULL)
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    - condition: (a_hFile != NULL)
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/sleuthkit/tsk/fs/exfatfs.c
    constantsTouched: []
    func_position:
      end: 1021
      start: 988
    functionDepth: 11
    functionLinenumber: 988
    functionLinenumberEnd: 1021
    functionName: exfatfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs.c
    functionUses: 0
    functionsReached:
    - assert
    - exfatfs_fsstat_fs_content_info
    - tsk_error_reset
    - exfatfs_fsstat_fs_metadata_info
    - exfatfs_fsstat_fs_info
    - exfatfs_fsstat_fs_layout_info
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t exfatfs_fsstat(TSK_FS_INFO *a_fs, FILE *a_hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/rawfs.c:42,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/rawfs.c:45,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/rawfs.c:46,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/rawfs.c:47,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/rawfs.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 103
    functionName: rawfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/rawfs.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_malloc
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      rawfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: big_tsk_getu32
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_journal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: big_tsk_getu32(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:48,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:49,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:50,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:57,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:58,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:59,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:60,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:62,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:66,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:67,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:68,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:69,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: load_sb_action
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_journal.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - big_tsk_getu32
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM load_sb_action(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:86,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:89,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:90,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:91,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:96,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:102,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:104,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:109,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:110,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:112,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:113,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:114,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 125
    functionName: ext2fs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_journal.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_walk
    - tsk_fs_file_close
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ext2fs_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:146,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:151,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:152,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:153,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:159,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:160,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:161,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:168,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:173,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:175,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:180,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:181,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:182,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:184,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:192,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:207,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:209,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:229,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:231,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:237,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:244,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:245,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:247,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:259,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:283,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:290,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:291,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:300,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:304,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:320,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:326,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:327,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:328,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:329,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:331,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:332,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:333,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:334,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:335,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:336,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:337,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:339,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:340,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:341,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:342,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:344,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:345,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:347,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:348,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:350,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:351,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:352,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:356,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:357,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:359,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:361,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:365,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:366,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:368,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:370,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:373,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:377,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:381,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:384,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:387,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:390,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:393,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:395,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:396,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:399,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:399,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:401,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:403,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:407,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:416,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:419,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:421,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:441,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:442,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:443,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:450,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:452,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:455,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:459,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 147
    argCount: 4
    argNames:
    - fs
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 471
    functionName: ext2fs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_journal.c
    functionUses: 0
    functionsReached:
    - big_tsk_getu32
    - tsk_printf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_walk
    - free
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,\n    TSK_FS_JENTRY_WALK_CB
      action, void *ptr)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:497,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:501,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:502,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:503,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:508,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:509,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:510,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:515,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:516,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:517,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:524,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:525,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:526,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:536,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:542,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:544,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:549,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:550,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:551,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:552,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:565,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:575,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:580,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:584,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:604,1
    - Dst: big_tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:614,1
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:628,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:629,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:630,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:631,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:633,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ext2fs_journal.c:637,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 639
    functionName: ext2fs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ext2fs_journal.c
    functionUses: 0
    functionsReached:
    - fwrite
    - big_tsk_getu32
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_walk
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ext2fs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      end,\n    int flags, TSK_FS_JBLK_WALK_CB action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: iso9660_inode_list_free
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void iso9660_inode_list_free(TSK_FS_INFO * fs)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:105,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:133,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:138,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:139,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:140,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:141,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:142,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:143,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:144,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:148,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:149,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:154,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:155,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:158,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:158,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:163,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:164,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:166,1
    - Dst: parse_susp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:167,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:171,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:172,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:175,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:178,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/iso9660.c:180,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:181,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:183,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:187,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:189,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:194,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:203,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:211,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:212,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:219,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:228,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:231,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:233,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:237,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:239,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:243,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:246,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:254,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:269,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:274,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:275,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:276,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:277,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:279,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:280,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:281,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:282,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:283,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:292,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:293,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:294,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:295,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:296,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:305,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:316,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:324,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:334,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:337,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:338,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:345,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:352,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:359,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:366,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:373,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:382,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 201
    argCount: 5
    argNames:
    - fs
    - buf
    - count
    - hFile
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - char*
    - int
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 395
    functionName: parse_susp
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - tsk_error_reset
    - tsk_getu32
    - memcpy
    - tsk_getu16
    - tsk_malloc
    - strncpy
    - parse_susp
    - tsk_fs_read
    - free
    linkageType: ''
    returnType: rockridge_ext
    signature: 'rockridge_ext *

      parse_susp(TSK_FS_INFO * fs, char *buf, int count, FILE * hFile, int recursion_depth)'
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:442,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:452,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:455,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:456,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:458,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:476,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:482,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:498,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:508,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:510,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:518,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:521,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/iso9660.c:526,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:527,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:528,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:529,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:531,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:534,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:540,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:559,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:561,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:567,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:569,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:590,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:592,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/iso9660.c:597,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:603,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:620,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:622,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:628,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:633,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:634,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:635,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:637,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:643,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/iso9660.c:645,1
    - Dst: strnlen
      Src: /src/sleuthkit/tsk/fs/iso9660.c:650,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:658,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:660,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:670,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:675,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:677,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:679,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:680,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:685,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:687,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:689,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:691,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:692,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:698,1
    - Dst: parse_susp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:719,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:724,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/iso9660.c:725,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:726,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:765,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:771,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:774,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 226
    argCount: 6
    argNames:
    - fs
    - a_offs
    - count
    - ctype
    - a_fn
    - is_first
    argTypes:
    - TSK_FS_INFO*
    - TSK_OFF_T
    - int
    - int
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 810
    functionName: iso9660_load_inodes_dir
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - strchr
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_UTF16toUTF8
    - atoi
    - tsk_getu32
    - memcpy
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - strncpy
    - parse_susp
    - tsk_fs_read
    - tsk_error_set_errstr2
    - tsk_error_get
    - strlen
    - strnlen
    linkageType: ''
    returnType: int
    signature: "int iso9660_load_inodes_dir(TSK_FS_INFO * fs, TSK_OFF_T a_offs, int
      count,\n    int ctype, const char *a_fn, uint8_t is_first)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:833,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:835,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:852,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:855,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:856,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:858,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:868,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:870,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:873,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:874,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:876,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/iso9660.c:895,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:901,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:915,1
    - Dst: iso9660_load_inodes_dir
      Src: /src/sleuthkit/tsk/fs/iso9660.c:920,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - fs
    - svd
    - count
    - is_first
    argTypes:
    - TSK_FS_INFO*
    - iso9660_svd*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 824
    functionDepth: 6
    functionLinenumber: 824
    functionLinenumberEnd: 928
    functionName: iso9660_load_inodes_pt_joliet
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    - tsk_error_reset
    - tsk_UTF16toUTF8
    - tsk_getu32
    - tsk_error_set_errno
    - tsk_fs_read
    - tsk_error_set_errstr2
    - iso9660_load_inodes_dir
    linkageType: ''
    returnType: int
    signature: "int iso9660_load_inodes_pt_joliet(TSK_FS_INFO * fs, iso9660_svd *
      svd,\n    int count, uint8_t is_first)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:952,1
    - Dst: iso9660_inode_list_free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:955,1
    - Dst: iso9660_load_inodes_pt_joliet
      Src: /src/sleuthkit/tsk/fs/iso9660.c:968,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:983,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:985,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:991,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:994,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:995,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:997,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1008,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1011,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1012,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1014,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1029,1
    - Dst: iso9660_load_inodes_dir
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1034,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - iso
    argTypes:
    - ISO_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 937
    functionDepth: 7
    functionLinenumber: 937
    functionLinenumberEnd: 1043
    functionName: iso9660_load_inodes_pt
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_load_inodes_pt_joliet
    - tsk_fprintf
    - tsk_error_reset
    - tsk_getu32
    - iso9660_inode_list_free
    - tsk_error_set_errno
    - tsk_fs_read
    - tsk_error_set_errstr2
    - iso9660_load_inodes_dir
    linkageType: ''
    returnType: int
    signature: int iso9660_load_inodes_pt(ISO_INFO * iso)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - iso
    - inum
    - dinode
    argTypes:
    - ISO_INFO*
    - TSK_INUM_T
    - iso9660_inode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1071
    functionName: iso9660_dinode_load
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_dinode_load(ISO_INFO * iso, TSK_INUM_T inum,\n    iso9660_inode
      * dinode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - a_mode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1101
    functionName: isomode2tskmode
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t isomode2tskmode(uint16_t a_mode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1116,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1117,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1124,1
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1129,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1136,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1138,1
    - Dst: mktime
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1147,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1158,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1159,1
    - Dst: isomode2tskmode
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1161,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1161,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 4
    argNames:
    - iso
    - fs_meta
    - inum
    - dinode
    argTypes:
    - ISO_INFO*
    - TSK_FS_META*
    - TSK_INUM_T
    - iso9660_inode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1181
    functionName: iso9660_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_fs_meta_realloc
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - isomode2tskmode
    - tsk_fs_attrlist_markunused
    - mktime
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_dinode_copy(ISO_INFO * iso, TSK_FS_META * fs_meta,
      TSK_INUM_T inum,\n    iso9660_inode * dinode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1193,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1199,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1206,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1208,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1212
    functionName: iso9660_close
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    - free
    linkageType: ''
    returnType: void
    signature: void iso9660_close(TSK_FS_INFO * fs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1223,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1227,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1228,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1234,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1238,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1242,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1243,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1253,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1256,1
    - Dst: iso9660_dinode_load
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1261,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1262,1
    - Dst: iso9660_dinode_copy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1267,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1268,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1215
    functionDepth: 4
    functionLinenumber: 1215
    functionLinenumberEnd: 1275
    functionName: iso9660_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_close
    - tsk_fprintf
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_reset
    - tsk_fs_meta_alloc
    - tsk_malloc
    - tsk_error_set_errno
    - iso9660_dinode_load
    - iso9660_dinode_copy
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T inum)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1289,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1292,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1303,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1304,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1305,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1310,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1311,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1312,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1341,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1342,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1349,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1353,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1358,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1365,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1368,1
    - Dst: iso9660_dinode_load
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1376,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1377,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1378,1
    - Dst: iso9660_dinode_copy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1382,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1383,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1384,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1397,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1401,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1403,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1404,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1413,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1418,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1419,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1420,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1424,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1426,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1427,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1431,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1432,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1441,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1442,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 6
    argNames:
    - fs
    - start
    - last
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1444
    functionName: iso9660_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_close
    - tsk_fprintf
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_dir_load_inum_named
    - TSK_FS_ORPHANDIR_INUM
    - tsk_error_errstr2_concat
    - tsk_fs_meta_alloc
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - iso9660_dinode_load
    - tsk_fs_file_close
    - iso9660_dinode_copy
    - tsk_fs_dir_find_inum_named
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start, TSK_INUM_T
      last,\n    TSK_FS_META_FLAG_ENUM flags, TSK_FS_META_WALK_CB action, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1455,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - fs
    - blk_num
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1448
    functionDepth: 4
    functionLinenumber: 1448
    functionLinenumberEnd: 1472
    functionName: iso9660_is_block_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_getu32
    - tsk_fprintf
    linkageType: ''
    returnType: int
    signature: int iso9660_is_block_alloc(TSK_FS_INFO * fs, TSK_DADDR_T blk_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iso9660_is_block_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1475
    functionDepth: 5
    functionLinenumber: 1475
    functionLinenumberEnd: 1480
    functionName: iso9660_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_is_block_alloc
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM iso9660_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1497,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1500,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1509,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1510,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1511,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1516,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1517,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1518,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1536,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1541,1
    - Dst: iso9660_block_getflags
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1548,1
    - Dst: tsk_fs_block_get_flag
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1561,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1562,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1563,1
    - Dst: action
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1567,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1569,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1577,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 6
    argNames:
    - fs
    - start
    - last
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1487
    functionDepth: 6
    functionLinenumber: 1487
    functionLinenumberEnd: 1579
    functionName: iso9660_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_fprintf
    - iso9660_block_getflags
    - action
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_error_set_errstr2
    - tsk_fs_block_get_flag
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      last,\n    TSK_FS_BLOCK_WALK_FLAG_ENUM flags, TSK_FS_BLOCK_WALK_CB action,\n
      \   void *ptr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1594,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1598,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1599,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1617,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1620,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1626,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1628,1
    - Dst: iso9660_dinode_load
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1633,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1634,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1636,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1639,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1640,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1645,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1646,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1653,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1659,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1669,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1672,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1583
    functionDepth: 3
    functionLinenumber: 1583
    functionLinenumberEnd: 1683
    functionName: iso9660_make_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_close
    - roundup
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_attr_run_alloc
    - tsk_fs_attr_set_run
    - memcpy
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - tsk_malloc
    - iso9660_dinode_load
    - free
    - tsk_fs_attrlist_markunused
    - tsk_error_set_errstr2
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t iso9660_make_data_run(TSK_FS_FILE * a_fs_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1690,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1691,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1687
    functionDepth: 3
    functionLinenumber: 1687
    functionLinenumberEnd: 1694
    functionName: iso9660_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t iso9660_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1716,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1719,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1725,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1726,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1727,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1729,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1730,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1731,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1732,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1733,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1734,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1739,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1741,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1745,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1745,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1748,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1749,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1755,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1757,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1760,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1760,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1763,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1764,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1770,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1772,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1774,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1774,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1777,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1778,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1784,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1786,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1788,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1788,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1791,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1792,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1794,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1795,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1797,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1799,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1799,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1800,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1803,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1805,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1806,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1808,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1809,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1811,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1812,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1812,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1815,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1817,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1821,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1825,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1833,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1835,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1836,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1838,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1839,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1840,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1841,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1842,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1843,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1850,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1852,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1856,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1856,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1859,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1860,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1866,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1868,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1871,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1871,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1874,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1875,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1881,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1883,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1885,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1885,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1888,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1889,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1895,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1897,1
    - Dst: isprint
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1899,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1899,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1902,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1903,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1905,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1906,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1908,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1910,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1910,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1911,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1914,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1915,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1918,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1919,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1920,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1921,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1922,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1923,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1925,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1928,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1929,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1931,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1932,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1934,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1938,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 132
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1704
    functionDepth: 4
    functionLinenumber: 1704
    functionLinenumberEnd: 1943
    functionName: iso9660_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - isspace
    - memset
    - strncmp
    - tsk_fprintf
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - snprintf
    - isprint
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t iso9660_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1956,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1959,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1966,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1969,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1972,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1975,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1978,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1981,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1985,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - fs
    - dd
    - dinode
    - perm
    argTypes:
    - TSK_FS_INFO*
    - iso9660_dentry*
    - iso9660_inode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1951
    functionDepth: 4
    functionLinenumber: 1951
    functionLinenumberEnd: 1989
    functionName: make_unix_perm
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - strcpy
    - tsk_getu16
    - memset
    - tsk_fprintf
    linkageType: ''
    returnType: char
    signature: "char *\nmake_unix_perm(TSK_FS_INFO * fs, iso9660_dentry * dd,\n    iso9660_inode
      * dinode, char *perm)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1997,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:1999,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2002,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2003,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2005,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2006,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2066,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2067,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2069,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2070,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - hFile
    - rr
    argTypes:
    - FILE*
    - rockridge_ext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 1992
    functionDepth: 4
    functionLinenumber: 1992
    functionLinenumberEnd: 2071
    functionName: iso9660_print_rockridge
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void iso9660_print_rockridge(FILE * hFile, rockridge_ext * rr)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2096,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2098,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2101,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2105,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2108,1
    - Dst: iso9660_dinode_load
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2112,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2113,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2114,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2115,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2120,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2122,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2124,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2126,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2129,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2130,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2133,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2136,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2139,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2142,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2145,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2149,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2152,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2155,1
    - Dst: putchar
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2156,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2158,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2159,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2159,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2164,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2165,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2166,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2167,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2169,1
    - Dst: make_unix_perm
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2169,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2173,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2176,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2178,1
    - Dst: parse_susp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2183,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2186,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2188,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2190,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2192,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2194,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2198,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2200,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2208,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2209,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2210,1
    - Dst: make_unix_perm
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2210,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2215,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2223,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2224,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2225,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2226,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2227,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2228,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2238,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2241,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2244,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2245,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2246,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2247,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2248,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2249,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2251,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2254,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2257,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2258,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2259,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2260,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2267,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2272,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2277,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2280,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2283,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2284,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 125
    argCount: 6
    argNames:
    - fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2085
    functionDepth: 5
    functionLinenumber: 2085
    functionLinenumberEnd: 2286
    functionName: iso9660_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr2
    - iso9660_close
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - make_unix_perm
    - tsk_fs_file_attr_get_type
    - parse_susp
    - tsk_fs_attr_print
    - memcpy
    - tsk_fs_time_to_str
    - tsk_fs_file_open_meta
    - tsk_error_reset
    - tsk_getu32
    - putchar
    - tsk_malloc
    - iso9660_dinode_load
    - tsk_fs_file_close
    - tsk_fs_read
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_istat(TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2294,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2295,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2291
    functionDepth: 3
    functionLinenumber: 2291
    functionLinenumberEnd: 2298
    functionName: iso9660_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t iso9660_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2304,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2305,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fs
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2300
    functionDepth: 3
    functionLinenumber: 2300
    functionLinenumberEnd: 2308
    functionName: iso9660_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_jentry_walk(TSK_FS_INFO * fs, int flags,\n    TSK_FS_JENTRY_WALK_CB
      action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2314,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2315,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - flags
    - action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2310
    functionDepth: 3
    functionLinenumber: 2310
    functionLinenumberEnd: 2318
    functionName: iso9660_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t iso9660_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T
      end,\n    int flags, TSK_FS_JBLK_WALK_CB action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2321
    functionDepth: 0
    functionLinenumber: 2321
    functionLinenumberEnd: 2325
    functionName: iso9660_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM iso9660_get_default_attr_type(const TSK_FS_FILE
      * a_file)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2356,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2369,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2377,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2380,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2381,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2383,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2384,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2389,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2391,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2399,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2407,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2418,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2425,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2444,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2475,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2495,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2497,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2500,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2501,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2503,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2511,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2523,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2524,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2537,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2545,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2546,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2547,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 135
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2339
    functionDepth: 4
    functionLinenumber: 2339
    functionLinenumberEnd: 2554
    functionName: load_vol_desc
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 0
    functionsReached:
    - strncmp
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: int
    signature: int load_vol_desc(TSK_FS_INFO * fs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISISO9660
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2570,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2571,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2572,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2573,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2578,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2579,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2580,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2585,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2590,1
    - Dst: tsk_fs_guessu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2616,1
    - Dst: load_vol_desc
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2622,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2624,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2626,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2631,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2632,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2633,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2639,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2640,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2650,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2651,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2666,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2668,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2672,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2673,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2674,1
    - Dst: iso9660_load_inodes_pt
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2688,1
    - Dst: iso9660_close
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2691,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/iso9660.c:2693,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 105
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2562
    functionDepth: 8
    functionLinenumber: 2562
    functionLinenumberEnd: 2723
    functionName: iso9660_open
    functionSourceFile: /src/sleuthkit/tsk/fs/iso9660.c
    functionUses: 1
    functionsReached:
    - iso9660_close
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - tsk_getu32
    - tsk_fs_guessu32
    - TSK_FS_TYPE_ISISO9660
    - tsk_error_set_errno
    - tsk_getu16
    - tsk_fs_malloc
    - load_vol_desc
    - iso9660_load_inodes_pt
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\niso9660_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,\n
      \   TSK_FS_TYPE_ENUM ftype, const char* a_pass, uint8_t test)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: TSK_FS_IS_DIR_META
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_IS_DIR_META(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fs_info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 531
    functionName: TSK_FS_ORPHANDIR_INUM
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_ORPHANDIR_INUM(fs_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: TSK_FS_IS_DIR_NAME
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_IS_DIR_NAME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 837
    functionName: TSK_FS_TYPE_ISNTFS
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISNTFS(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    functionName: TSK_FS_TYPE_ISFAT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISFAT(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    functionName: TSK_FS_TYPE_ISFFS
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISFFS(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: TSK_FS_TYPE_ISEXT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISEXT(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 865
    functionName: TSK_FS_TYPE_ISISO9660
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISISO9660(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: TSK_FS_TYPE_ISHFS
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISHFS(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 879
    functionName: TSK_FS_TYPE_ISSWAP
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISSWAP(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: TSK_FS_TYPE_ISYAFFS2
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISYAFFS2(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: TSK_FS_TYPE_ISAPFS
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISAPFS(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 900
    functionName: TSK_FS_TYPE_ISRAW
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISRAW(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: TSK_FS_TYPE_ISAPFS
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISAPFS(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 914
    functionName: TSK_FS_TYPE_ISDIR
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_TYPE_ISDIR(ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1193
    functionName: TSK_FS_ISDOT
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_FS_ISDOT(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_jEntry
    argTypes:
    - TSK_FS_JENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1213
    functionName: TskFsJEntry::TskFsJEntry
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsJEntry(TSK_FS_JENTRY * a_jEntry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1216
    functionName: ~TskFsJEntry()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskFsJEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fsAttrRun
    argTypes:
    - TSK_FS_ATTR_RUN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1241
    functionName: TskFsAttrRun::TskFsAttrRun
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsAttrRun(TSK_FS_ATTR_RUN * a_fsAttrRun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1244
    functionName: ~TskFsAttrRun()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskFsAttrRun()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1255
    functionName: TskFsAttrRun::getOffset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getOffset() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1266
    functionName: TskFsAttrRun::getAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1277
    functionName: TskFsAttrRun::length
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1288
    functionName: TskFsAttrRun::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_RUN_FLAG_ENUM
    signature: TSK_FS_ATTR_RUN_FLAG_ENUM getFlags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fsName
    argTypes:
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1313
    functionName: TskFsName::TskFsName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsName(TSK_FS_NAME * a_fsName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1316
    functionName: ~TskFsName()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskFsName()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1327
    functionName: TskFsName::getName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1337
    functionName: TskFsName::getShortName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getShortName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1348
    functionName: TskFsName::getMetaAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getMetaAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1359
    functionName: TskFsName::getMetaSeq
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getMetaSeq() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1370
    functionName: TskFsName::getParentAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getParentAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1381
    functionName: TskFsName::getType
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_TYPE_ENUM
    signature: TSK_FS_NAME_TYPE_ENUM getType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1392
    functionName: TskFsName::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_FLAG_ENUM
    signature: TSK_FS_NAME_FLAG_ENUM getFlags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fsAttr
    argTypes:
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1446
    functionName: TskFsAttribute::TskFsAttribute
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsAttribute(const TSK_FS_ATTR * a_fsAttr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1449
    functionName: ~TskFsAttribute()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskFsAttribute()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1473
    functionName: TskFsAttribute::walk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_attr_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t walk(TSK_FS_FILE_WALK_FLAG_ENUM a_flags,\n        TSK_FS_FILE_WALK_CPP_CB
      a_action, void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1493
    functionName: TskFsAttribute::read
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_attr_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read(TSK_OFF_T a_offset, char *a_buf, size_t a_len,\n        TSK_FS_FILE_READ_FLAG_ENUM
      a_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1504
    functionName: TskFsAttribute::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_FLAG_ENUM
    signature: TSK_FS_ATTR_FLAG_ENUM getFlags() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1514
    functionName: TskFsAttribute::getName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1525
    functionName: TskFsAttribute::getType
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM getType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1536
    functionName: TskFsAttribute::getId
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getId() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1547
    functionName: TskFsAttribute::getSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getSize() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskFsAttrRun::TskFsAttrRun
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - a_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1565
    functionName: TskFsAttribute::getRun
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsAttrRun::TskFsAttrRun
    linkageType: ''
    returnType: TskFsAttrRun
    signature: TskFsAttrRun *getRun(int a_idx) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1579
    functionName: TskFsAttribute::getRunCount
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getRunCount() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1591
    functionName: TskFsAttribute::getSkipLen
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getSkipLen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1604
    functionName: TskFsAttribute::getAllocSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getAllocSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1617
    functionName: TskFsAttribute::getInitSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getInitSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1627
    functionName: TskFsAttribute::getCompSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getCompSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1638
    functionName: TskFsAttribute::getBuf
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *getBuf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fsInfo
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1786
    functionName: TskFsInfo::TskFsInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsInfo(TSK_FS_INFO * a_fsInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1790
    functionName: TskFsInfo::TskFsInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1794
    functionName: ~TskFsInfo()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~TskFsInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: TskFsInfo::read
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(TSK_OFF_T a_off, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_addr
    - a_buf
    - a_len
    argTypes:
    - TSK_DADDR_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1819
    functionDepth: 2
    functionLinenumber: 1819
    functionLinenumberEnd: 1824
    functionName: TskFsInfo::readBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t readBlock(TSK_DADDR_T a_addr, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_meta_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - a_start
    - a_end
    - a_flags
    - a_cb
    - a_ptr
    argTypes:
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1849
    functionName: TskFsInfo::metaWalk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_meta_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t metaWalk(TSK_INUM_T a_start,\n        TSK_INUM_T a_end, TSK_FS_META_FLAG_ENUM
      a_flags,\n        TSK_FS_META_WALK_CPP_CB a_cb, void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - a_addr
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_INUM_T
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_FS_DIR_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1870
    functionName: TskFsInfo::dirWalk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t dirWalk(TSK_INUM_T a_addr,\n        TSK_FS_DIR_WALK_FLAG_ENUM
      a_flags, TSK_FS_DIR_WALK_CPP_CB a_action,\n        void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1884
    functionDepth: 4
    functionLinenumber: 1884
    functionLinenumberEnd: 1894
    functionName: TskFsInfo::blockWalk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_block_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t blockWalk(TSK_DADDR_T a_start_blk,\n        TSK_DADDR_T a_end_blk,
      TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n        TSK_FS_BLOCK_WALK_CPP_CB a_action,
      void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_vol
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_part_info
    - a_ftype
    argTypes:
    - TskVsPartInfo*
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1912
    functionName: TskFsInfo::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_open_vol
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(const TskVsPartInfo * a_part_info,\n        TSK_FS_TYPE_ENUM
      a_ftype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_img_info
    - a_offset
    - a_ftype
    argTypes:
    - TskImgInfo*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1924
    functionDepth: 2
    functionLinenumber: 1924
    functionLinenumberEnd: 1931
    functionName: TskFsInfo::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(TskImgInfo * a_img_info, TSK_OFF_T a_offset,\n        TSK_FS_TYPE_ENUM
      a_ftype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskFsInfo::jopen
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a_inum
    argTypes:
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1943
    functionName: TskFsInfo::jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 1
    functionsReached:
    - TskFsInfo::jopen
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t jopen(TSK_INUM_T a_inum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jblk_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - a_addr1
    - a_addr2
    - a_num
    - a_action
    - a_ptr
    argTypes:
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1957
    functionName: TskFsInfo::jblkWalk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - jblk_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t jblkWalk(TSK_DADDR_T a_addr1, TSK_DADDR_T a_addr2, int a_num,\n
      \       TSK_FS_JBLK_WALK_CPP_CB a_action, void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jentry_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a_num
    - a_action
    - a_ptr
    argTypes:
    - int
    - TSK_FS_JENTRY_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1972
    functionName: TskFsInfo::jentryWalk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - jentry_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t jentryWalk(int a_num, TSK_FS_JENTRY_WALK_CPP_CB a_action,\n
      \       void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 1982
    functionName: TskFsInfo::typeToId
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_type_toid
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM typeToId(const TSK_TCHAR * a_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_ftype
    argTypes:
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 1992
    functionName: TskFsInfo::typeToName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_type_toname
    linkageType: ''
    returnType: char
    signature: char *typeToName(TSK_FS_TYPE_ENUM a_ftype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_type_supported
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2001
    functionName: TskFsInfo::typeSupported
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_type_supported
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM typeSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2008
    functionDepth: 5
    functionLinenumber: 2008
    functionLinenumberEnd: 2010
    functionName: TskFsInfo::typePrint
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_type_print
    linkageType: ''
    returnType: void
    signature: void typePrint(FILE * a_hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a_path
    - a_result
    - a_fs_name
    argTypes:
    - char*
    - TSK_INUM_T*
    - TskFsName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2022
    functionDepth: 5
    functionLinenumber: 2022
    functionLinenumberEnd: 2029
    functionName: TskFsInfo::path2INum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_path2inum
    linkageType: ''
    returnType: int8_t
    signature: "int8_t path2INum(const char *a_path,\n        TSK_INUM_T * a_result,
      TskFsName * a_fs_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a_str
    - a_inum
    - a_type
    - a_type_used
    - a_id
    - a_id_used
    argTypes:
    - TSK_TCHAR*
    - TSK_INUM_T*
    - TSK_FS_ATTR_TYPE_ENUM*
    - uint8_t*
    - uint16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2047
    functionDepth: 3
    functionLinenumber: 2047
    functionLinenumberEnd: 2052
    functionName: TskFsInfo::parseINum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_parse_inum
    linkageType: ''
    returnType: int
    signature: "int parseINum(const TSK_TCHAR * a_str, TSK_INUM_T * a_inum,\n        TSK_FS_ATTR_TYPE_ENUM
      * a_type, uint8_t * a_type_used,\n        uint16_t * a_id, uint8_t * a_id_used)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2058
    functionDepth: 0
    functionLinenumber: 2058
    functionLinenumberEnd: 2063
    functionName: TskFsInfo::getOffset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getOffset() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2074
    functionName: TskFsInfo::getINumCount
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getINumCount() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2085
    functionName: TskFsInfo::getRootINum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getRootINum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2095
    functionName: TskFsInfo::getFirstINum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getFirstINum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2105
    functionName: TskFsInfo::getLastINum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getLastINum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2115
    functionName: TskFsInfo::getJournalINum
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getJournalINum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2126
    functionName: TskFsInfo::getBlockCount
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getBlockCount() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2131
    functionDepth: 0
    functionLinenumber: 2131
    functionLinenumberEnd: 2136
    functionName: TskFsInfo::getFirstBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getFirstBlock() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2142
    functionDepth: 0
    functionLinenumber: 2142
    functionLinenumberEnd: 2147
    functionName: TskFsInfo::getLastBlockAct
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getLastBlockAct() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2153
    functionDepth: 0
    functionLinenumber: 2153
    functionLinenumberEnd: 2158
    functionName: TskFsInfo::getLastBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getLastBlock() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2168
    functionName: TskFsInfo::getBlockSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int getBlockSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2178
    functionName: TskFsInfo::getDeviceSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int getDeviceSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2189
    functionName: TskFsInfo::getFsType
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_TYPE_ENUM
    signature: TSK_FS_TYPE_ENUM getFsType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2199
    functionName: TskFsInfo::getDataUnitName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getDataUnitName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2210
    functionName: TskFsInfo::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_INFO_FLAG_ENUM
    signature: TSK_FS_INFO_FLAG_ENUM getFlags() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2215
    functionDepth: 0
    functionLinenumber: 2215
    functionLinenumberEnd: 2220
    functionName: TskFsInfo::getFsId
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *getFsId() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2226
    functionDepth: 0
    functionLinenumber: 2226
    functionLinenumberEnd: 2231
    functionName: TskFsInfo::getFsIdLen
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getFsIdLen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2238
    functionName: TskFsInfo::close
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2242
    functionDepth: 0
    functionLinenumber: 2242
    functionLinenumberEnd: 2247
    functionName: TskFsInfo::getTskImgInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: TSK_IMG_INFO *getTskImgInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast < TSK_FS_BLOCK * >
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_fsBlock
    argTypes:
    - TSK_FS_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2274
    functionName: TskFsBlock::TskFsBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - const_cast < TSK_FS_BLOCK * >
    linkageType: ''
    returnType: void
    signature: void TskFsBlock(const TSK_FS_BLOCK * a_fsBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2281
    functionName: TskFsBlock::TskFsBlock
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsBlock()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2291
    functionName: ~TskFsBlock()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_block_free
    linkageType: ''
    returnType: void
    signature: void ~TskFsBlock()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_block_get
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TskFsInfo*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2300
    functionDepth: 2
    functionLinenumber: 2300
    functionLinenumberEnd: 2313
    functionName: TskFsBlock::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_block_get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t open(TskFsInfo * a_fs, TSK_DADDR_T a_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2325
    functionName: TskFsBlock::getBuf
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getBuf() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2336
    functionName: TskFsBlock::getAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T getAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2347
    functionName: TskFsBlock::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM getFlags() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2354
    functionDepth: 0
    functionLinenumber: 2354
    functionLinenumberEnd: 2359
    functionName: TskFsBlock::getFsInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: TSK_FS_INFO *getFsInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fsMetaNameList
    argTypes:
    - TSK_FS_META_NAME_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2380
    functionDepth: 0
    functionLinenumber: 2380
    functionLinenumberEnd: 2382
    functionName: TskFsMetaName::TskFsMetaName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsMetaName(TSK_FS_META_NAME_LIST * a_fsMetaNameList)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2388
    functionDepth: 0
    functionLinenumber: 2388
    functionLinenumberEnd: 2393
    functionName: TskFsMetaName::getName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2399
    functionDepth: 0
    functionLinenumber: 2399
    functionLinenumberEnd: 2404
    functionName: TskFsMetaName::getParInode
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getParInode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2412
    functionName: TskFsMetaName::getParSeq
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getParSeq() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - a_fsMeta
    argTypes:
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2431
    functionDepth: 0
    functionLinenumber: 2431
    functionLinenumberEnd: 2448
    functionName: TskFsMeta::TskFsMeta
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsMeta(TSK_FS_META * a_fsMeta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2451
    functionName: ~TskFsMeta()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TskFsMeta()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_buf
    - a_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2464
    functionName: TskFsMeta::getLs
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_meta_make_ls
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getLs(char *a_buf, size_t a_len) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2474
    functionName: TskFsMeta::getFlags
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_FLAG_ENUM
    signature: TSK_FS_META_FLAG_ENUM getFlags() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2483
    functionName: TskFsMeta::getAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2488
    functionDepth: 0
    functionLinenumber: 2488
    functionLinenumberEnd: 2493
    functionName: TskFsMeta::getType
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_TYPE_ENUM
    signature: TSK_FS_META_TYPE_ENUM getType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2503
    functionName: TskFsMeta::getMode
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_MODE_ENUM
    signature: TSK_FS_META_MODE_ENUM getMode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2513
    functionName: TskFsMeta::getNLink
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getNLink() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2523
    functionName: TskFsMeta::getSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2533
    functionName: TskFsMeta::getUid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_UID_T
    signature: TSK_UID_T getUid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2539
    functionDepth: 0
    functionLinenumber: 2539
    functionLinenumberEnd: 2544
    functionName: TskFsMeta::getGid
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_GID_T
    signature: TSK_GID_T getGid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2555
    functionName: TskFsMeta::getMTime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getMTime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2561
    functionDepth: 0
    functionLinenumber: 2561
    functionLinenumberEnd: 2566
    functionName: TskFsMeta::getMTimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getMTimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2577
    functionName: TskFsMeta::getATime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getATime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2583
    functionDepth: 0
    functionLinenumber: 2583
    functionLinenumberEnd: 2588
    functionName: TskFsMeta::getATimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getATimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2599
    functionName: TskFsMeta::getCTime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getCTime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2605
    functionDepth: 0
    functionLinenumber: 2605
    functionLinenumberEnd: 2610
    functionName: TskFsMeta::getCTimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getCTimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2616
    functionDepth: 0
    functionLinenumber: 2616
    functionLinenumberEnd: 2621
    functionName: TskFsMeta::getCrTime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getCrTime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2627
    functionDepth: 0
    functionLinenumber: 2627
    functionLinenumberEnd: 2632
    functionName: TskFsMeta::getCrTimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getCrTimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2638
    functionDepth: 0
    functionLinenumber: 2638
    functionLinenumberEnd: 2643
    functionName: TskFsMeta::getDTime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getDTime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2649
    functionDepth: 0
    functionLinenumber: 2649
    functionLinenumberEnd: 2654
    functionName: TskFsMeta::getDTimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getDTimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2660
    functionDepth: 0
    functionLinenumber: 2660
    functionLinenumberEnd: 2665
    functionName: TskFsMeta::getBackUpTime
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t getBackUpTime() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2671
    functionDepth: 0
    functionLinenumber: 2671
    functionLinenumberEnd: 2676
    functionName: TskFsMeta::getBackUpTimeNano
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBackUpTimeNano() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2686
    functionName: TskFsMeta::getSeq
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getSeq() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2697
    functionName: TskFsMeta::getLink
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getLink() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2711
    functionName: TskFsMeta::getName2Count
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getName2Count() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskFsMetaName::TskFsMetaName
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - a_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2728
    functionName: TskFsMeta::getName2
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsMetaName::TskFsMetaName
    linkageType: ''
    returnType: TskFsMetaName
    signature: TskFsMetaName *getName2(int a_idx) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2740
    functionName: TskFsMeta::getAttr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTRLIST
    signature: TSK_FS_ATTRLIST *getAttr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_fsFile
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2763
    functionDepth: 0
    functionLinenumber: 2763
    functionLinenumberEnd: 2766
    functionName: TskFsFile::TskFsFile
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsFile(TSK_FS_FILE * a_fsFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2771
    functionDepth: 0
    functionLinenumber: 2771
    functionLinenumberEnd: 2774
    functionName: TskFsFile::TskFsFile
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2781
    functionName: ~TskFsFile()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~TskFsFile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2791
    functionName: TskFsFile::close
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_addr
    argTypes:
    - TskFsInfo*
    - TskFsFile*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2809
    functionDepth: 1
    functionLinenumber: 2809
    functionLinenumberEnd: 2820
    functionName: TskFsFile::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_open_meta
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(TskFsInfo * a_fs, TskFsFile * a_fs_file,\n        TSK_INUM_T
      a_addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_path
    argTypes:
    - TskFsInfo*
    - TskFsFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2844
    functionName: TskFsFile::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_open
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(TskFsInfo * a_fs, TskFsFile * a_fs_file,\n        const
      char *a_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2852
    functionName: TskFsFile::getAttrSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_getsize
    linkageType: ''
    returnType: int
    signature: int getAttrSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2861,1
    - Dst: TskFsAttribute::TskFsAttribute
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2860
    functionDepth: 1
    functionLinenumber: 2860
    functionLinenumberEnd: 2863
    functionName: TskFsFile::getAttr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - TskFsAttribute::TskFsAttribute
    linkageType: ''
    returnType: TskFsAttribute
    signature: TskFsAttribute *getAttr(int a_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_get
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2871,1
    - Dst: TskFsAttribute::TskFsAttribute
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2870
    functionDepth: 1
    functionLinenumber: 2870
    functionLinenumberEnd: 2873
    functionName: TskFsFile::getAttrDefault
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsAttribute::TskFsAttribute
    - tsk_fs_file_attr_get
    linkageType: ''
    returnType: TskFsAttribute
    signature: TskFsAttribute *getAttrDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2885,1
    - Dst: TskFsAttribute::TskFsAttribute
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_type
    - a_id
    - a_id_used
    argTypes:
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2883
    functionDepth: 1
    functionLinenumber: 2883
    functionLinenumberEnd: 2888
    functionName: TskFsFile::getAttr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsAttribute::TskFsAttribute
    - tsk_fs_file_attr_get_type
    linkageType: ''
    returnType: TskFsAttribute
    signature: "TskFsAttribute *getAttr(TSK_FS_ATTR_TYPE_ENUM a_type,\n        uint16_t
      a_id, uint8_t a_id_used)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - a_type
    - a_id
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2907
    functionName: TskFsFile::walk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_walk_type
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t walk(TSK_FS_ATTR_TYPE_ENUM a_type, uint16_t a_id,\n        TSK_FS_FILE_WALK_FLAG_ENUM
      a_flags,\n        TSK_FS_FILE_WALK_CPP_CB a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CPP_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2923
    functionName: TskFsFile::walk
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t walk(TSK_FS_FILE_WALK_FLAG_ENUM a_flags,\n        TSK_FS_FILE_WALK_CPP_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_read_type
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a_type
    - a_id
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2937
    functionDepth: 1
    functionLinenumber: 2937
    functionLinenumberEnd: 2941
    functionName: TskFsFile::read
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_read_type
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read(TSK_FS_ATTR_TYPE_ENUM a_type, uint16_t a_id,\n        TSK_OFF_T
      a_offset, char *a_buf, size_t a_len,\n        TSK_FS_FILE_READ_FLAG_ENUM a_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2952
    functionDepth: 1
    functionLinenumber: 2952
    functionLinenumberEnd: 2955
    functionName: TskFsFile::read
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_file_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read(TSK_OFF_T a_offset, char *a_buf, size_t a_len,\n        TSK_FS_FILE_READ_FLAG_ENUM
      a_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskFsName::TskFsName
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2961
    functionDepth: 1
    functionLinenumber: 2961
    functionLinenumberEnd: 2966
    functionName: TskFsFile::getName
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsName::TskFsName
    linkageType: ''
    returnType: TskFsName
    signature: TskFsName *getName()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskFsMeta::TskFsMeta
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 2977
    functionName: TskFsFile::getMeta
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsMeta::TskFsMeta
    linkageType: ''
    returnType: TskFsMeta
    signature: TskFsMeta *getMeta()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskFsInfo::TskFsInfo
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:2985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2983
    functionDepth: 1
    functionLinenumber: 2983
    functionLinenumberEnd: 2988
    functionName: TskFsFile::getFsInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsInfo::TskFsInfo
    linkageType: ''
    returnType: TskFsInfo
    signature: TskFsInfo *getFsInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3004
    functionDepth: 0
    functionLinenumber: 3004
    functionLinenumberEnd: 3006
    functionName: TskFsDir::TskFsDir
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFsDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3012
    functionName: ~TskFsDir()
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~TskFsDir()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TskFsInfo*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3021
    functionDepth: 1
    functionLinenumber: 3021
    functionLinenumberEnd: 3027
    functionName: TskFsDir::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_open_meta
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t open(TskFsInfo * a_fs, TSK_INUM_T a_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_fs
    - a_dir
    argTypes:
    - TskFsInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3041
    functionName: TskFsDir::open
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t open(TskFsInfo * a_fs, const char *a_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3047
    functionDepth: 1
    functionLinenumber: 3047
    functionLinenumberEnd: 3049
    functionName: TskFsDir::close
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3058
    functionName: TskFsDir::getSize
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_getsize
    linkageType: ''
    returnType: size_t
    signature: size_t getSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3068,1
    - Dst: TskFsFile::TskFsFile
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3075
    functionName: TskFsDir::getFile
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_get
    - TskFsFile::TskFsFile
    linkageType: ''
    returnType: TskFsFile
    signature: TskFsFile *getFile(size_t a_idx) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3086
    functionName: TskFsDir::getMetaAddr
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getMetaAddr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskFsFile::TskFsFile
      Src: /src/sleuthkit/tsk/fs/tsk_fs.h:3094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3092
    functionDepth: 1
    functionLinenumber: 3092
    functionLinenumberEnd: 3097
    functionName: TskFsDir::getFsFile
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached:
    - TskFsFile::TskFsFile
    linkageType: ''
    returnType: TskFsFile
    signature: TskFsFile *getFsFile() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3110
    functionName: TskFsDir::getFsInfo
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: TSK_FS_INFO *getFsInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: fatfs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM fatfs_get_default_attr_type(const TSK_FS_FILE
      * a_file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:52,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:53,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:54,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:72,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:84,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:98,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:103,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:107,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:109,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:114,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:115,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:121,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 2
    argNames:
    - a_fatfs
    - a_fs_meta
    argTypes:
    - FATFS_INFO*
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 146
    functionName: fatfs_make_root
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - FATFS_SECT_2_CLUST
    - tsk_error_reset
    - tsk_list_find
    - tsk_malloc
    - fatfs_getFAT
    - tsk_list_free
    - fatfs_ptr_arg_is_null
    - tsk_fs_attrlist_markunused
    - tsk_list_add
    - FATFS_ISEOF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_make_root(FATFS_INFO *a_fatfs, TSK_FS_META *a_fs_meta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:174,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:179,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - fatfs
    - fs_meta
    argTypes:
    - FATFS_INFO*
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 192
    functionName: fatfs_make_mbr
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - tsk_fs_attrlist_markunused
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_make_mbr(FATFS_INFO *fatfs, TSK_FS_META *fs_meta)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:230,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:237,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:243,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - fatfs
    - a_which
    - fs_meta
    argTypes:
    - FATFS_INFO*
    - uint8_t
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 256
    functionName: fatfs_make_fat
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - tsk_fs_attrlist_markunused
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_make_fat(FATFS_INFO *fatfs, uint8_t a_which, TSK_FS_META
      *fs_meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:276,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:277,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:278,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:279,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:284,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:286,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:287,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:288,1
    - Dst: FATFS_INODE_2_OFF
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:294,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:297,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:300,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:301,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - a_fatfs
    - a_dentry
    - a_inum
    argTypes:
    - FATFS_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 309
    functionName: fatfs_dentry_load
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 5
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - FATFS_INODE_2_OFF
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - FATFS_INODE_2_SECT
    - fatfs_ptr_arg_is_null
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_dentry_load(FATFS_INFO *a_fatfs, FATFS_DENTRY *a_dentry,
      TSK_INUM_T a_inum)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:329,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:330,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:331,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:332,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:339,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:344,1
    - Dst: fatfs_make_root
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:350,1
    - Dst: fatfs_make_mbr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:356,1
    - Dst: fatfs_make_fat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:362,1
    - Dst: fatfs_make_fat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:368,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:373,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:374,1
    - Dst: FATFS_INFO*::inode_lookup
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:380,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 322
    functionDepth: 6
    functionLinenumber: 322
    functionLinenumberEnd: 382
    functionName: fatfs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - fatfs_make_mbr
    - tsk_error_reset
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_reset
    - tsk_fs_meta_alloc
    - fatfs_make_root
    - FATFS_INFO*::inode_lookup
    - fatfs_ptr_arg_is_null
    - tsk_fs_dir_make_orphan_dir_meta
    - fatfs_make_fat
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_inode_lookup(TSK_FS_INFO *a_fs, TSK_FS_FILE *a_fs_file,\n
      \   TSK_INUM_T a_inum)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:404,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:405,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:406,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:426,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:429,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:435,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:437,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:439,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:442,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:444,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:453,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:465,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:470,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:483,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:489,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:507,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:513,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:525,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:531,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:557,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:575,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:582,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:594,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:597,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:598,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:599,1
    - Dst: FATFS_INFO*::is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:610,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:625,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:634,1
    - Dst: FATFS_INFO*::is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:640,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:655,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:658,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:683,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:686,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:694,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:696,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:706,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:708,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:717,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:719,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:739,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:746,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:749,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:753,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:755,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:756,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:759,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:761,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:771,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:773,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:776,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:801,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:802,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:805,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:807,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:815,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:817,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:820,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:825,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:831,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:833,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:835,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:845,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:849,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:856,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:858,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:861,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:863,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:869,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 266
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 393
    functionDepth: 5
    functionLinenumber: 393
    functionLinenumberEnd: 876
    functionName: fatfs_make_data_runs
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - FATFS_ISEOF
    - tsk_fs_attr_run_alloc
    - tsk_fs_attrlist_getnew
    - tsk_fs_attr_set_run
    - FATFS_INFO*::is_cluster_alloc
    - tsk_error_reset
    - fatfs_ptr_arg_is_null
    - FATFS_CLUST_2_SECT
    - roundup
    - tsk_error_set_errstr
    - tsk_list_find
    - tsk_fs_attrlist_alloc
    - fatfs_getFAT
    - tsk_list_free
    - tsk_list_add
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_make_data_runs(TSK_FS_FILE * a_fs_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:894,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - a_flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 903
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      a_flags, void *a_ptr)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:928,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:929,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:930,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:931,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:936,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:942,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:945,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:949,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:952,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:955,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:957,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:958,1
    - Dst: FATFS_INFO*::istat_attr_flags
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:961,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:967,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:972,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:977,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:986,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:987,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:988,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:989,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:990,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:991,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1003,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1006,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1006,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1008,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1009,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1010,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1011,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1014,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1017,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1020,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1021,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1022,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1023,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1036,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1039,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1040,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1041,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1044,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1048,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 6
    argNames:
    - a_fs
    - istat_flags
    - a_hFile
    - a_inum
    - a_numblock
    - a_sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 1050
    functionName: fatfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - fatfs_inum_arg_is_in_range
    - tsk_fprintf
    - tsk_error_reset
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_attr_print
    - FATFS_INFO*::istat_attr_flags
    - tsk_fs_time_to_str
    - tsk_fs_file_walk
    - tsk_fs_file_open_meta
    - fatfs_ptr_arg_is_null
    - tsk_fs_file_attr_get_type
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_istat(TSK_FS_INFO *a_fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE *a_hFile, TSK_INUM_T a_inum,\n    TSK_DADDR_T a_numblock, int32_t a_sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setbit
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - a_flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1060
    functionName: inode_walk_file_act
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - setbit
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM inode_walk_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off,\n    TSK_DADDR_T addr, char *buf, size_t size,\n    TSK_FS_BLOCK_FLAG_ENUM
      a_flags, void *a_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1069,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1073,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1063
    functionDepth: 3
    functionLinenumber: 1063
    functionLinenumberEnd: 1080
    functionName: inode_walk_dent_act
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_walk
    - tsk_error_reset
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM inode_walk_dent_act(TSK_FS_FILE * fs_file, const
      char *a_path, void *a_ptr)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1118,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1119,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1120,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1125,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1126,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1133,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1134,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1163,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1172,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1173,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1182,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1187,1
    - Dst: fatfs_make_root
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1197,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1198,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1202,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1204,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1208,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1215,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1223,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1229,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1230,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1240,1
    - Dst: fatfs_make_root
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1245,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1246,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1247,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1254,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1257,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1258,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1265,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1269,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1271,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1272,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1280,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1281,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1289,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1291,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1292,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1293,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1296,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1297,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1301,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1303,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1304,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1305,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1308,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1309,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1314,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1316,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1317,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1347,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1350,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1351,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1353,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1356,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1357,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1358,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1370,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1370,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1376,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1383,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1384,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1385,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1393,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1407,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1411,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1412,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1414,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1416,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1417,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1418,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1428,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1438,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1449,1
    - Dst: FATFS_INFO*::is_dentry
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1450,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1456,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1458,1
    - Dst: FATFS_INFO*::is_dentry
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1485,1
    - Dst: FATFS_INFO*::inode_walk_should_skip_dentry
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1486,1
    - Dst: FATFS_INFO*::dinode_copy
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1490,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1496,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1498,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1502,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1503,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1504,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1510,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1517,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1519,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1520,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1521,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1525,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1526,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1527,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1541,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1542,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1545,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1551,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1555,1
    - Dst: fatfs_make_mbr
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1558,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1559,1
    - Dst: fatfs_make_fat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1564,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1565,1
    - Dst: fatfs_make_fat
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1570,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1571,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1575,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1576,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1577,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1582,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1584,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1588,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fatfs_meta.c:1594,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 290
    argCount: 6
    argNames:
    - a_fs
    - a_start_inum
    - a_end_inum
    - a_selection_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1098
    functionDepth: 6
    functionLinenumber: 1098
    functionLinenumberEnd: 1596
    functionName: fatfs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr2
    - FATFS_SECT_2_INODE
    - tsk_error_print
    - tsk_fprintf
    - isset
    - FATFS_SECT_2_CLUST
    - fatfs_is_sectalloc
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_file_walk
    - fatfs_make_fat
    - fatfs_make_mbr
    - tsk_fs_dir_load_inum_named
    - tsk_error_errstr2_concat
    - FATFS_NUM_VIRT_FILES
    - FATFS_INFO*::inode_walk_should_skip_dentry
    - FATFS_INFO*::dinode_copy
    - tsk_fs_read_block
    - tsk_error_reset
    - tsk_fs_dir_walk
    - tsk_fs_meta_reset
    - a_action
    - tsk_malloc
    - FATFS_INFO*::is_dentry
    - FATFS_INODE_2_SECT
    - fatfs_ptr_arg_is_null
    - FATFS_CLUST_2_SECT
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_alloc
    - fatfs_make_root
    - tsk_fs_file_close
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatfs_inode_walk(TSK_FS_INFO *a_fs, TSK_INUM_T a_start_inum,\n
      \   TSK_INUM_T a_end_inum, TSK_FS_META_FLAG_ENUM a_selection_flags,\n    TSK_FS_META_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:35,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a_fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: tsk_fs_nofs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_fs_type_toname
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_nofs_fsstat(TSK_FS_INFO * a_fs, FILE * hFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: tsk_fs_nofs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM tsk_fs_nofs_get_default_attr_type(const TSK_FS_FILE
      * a_fs_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:57,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:58,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:59,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: tsk_fs_nofs_make_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_nofs_make_data_run(TSK_FS_FILE * a_fs_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: tsk_fs_nofs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_fs_free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_nofs_close(TSK_FS_INFO * a_fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: tsk_fs_nofs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM tsk_fs_nofs_block_getflags(TSK_FS_INFO * a_fs,
      TSK_DADDR_T a_addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:100,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:106,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:107,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:108,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:115,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:116,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:117,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:135,1
    - Dst: tsk_fs_block_get
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:142,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:143,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:145,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:149,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:154,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 164
    functionName: tsk_fs_nofs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_fs_block_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - a_action
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T a_start_blk,\n
      \   TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n    TSK_FS_BLOCK_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:177,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:178,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:179,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - a_start_inum
    - a_end_inum
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: tsk_fs_nofs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_inode_walk(TSK_FS_INFO * a_fs, TSK_INUM_T a_start_inum,\n
      \   TSK_INUM_T a_end_inum, TSK_FS_META_FLAG_ENUM a_flags,\n    TSK_FS_META_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:190,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:191,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:192,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: tsk_fs_nofs_file_add_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_file_add_meta(TSK_FS_INFO * a_fs, TSK_FS_FILE
      * a_fs_file,\n    TSK_INUM_T inum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:203,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:204,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:205,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: tsk_fs_nofs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_istat(TSK_FS_INFO * a_fs, TSK_FS_ISTAT_FLAG_ENUM
      istat_flags, FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t
      sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:220,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:221,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:222,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: tsk_fs_nofs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM tsk_fs_nofs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:234,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:235,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:236,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a_fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: tsk_fs_nofs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_nofs_jopen(TSK_FS_INFO * a_fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:247,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:248,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:249,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - a_fs
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: tsk_fs_nofs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_jentry_walk(TSK_FS_INFO * a_fs, int a_flags,\n
      \   TSK_FS_JENTRY_WALK_CB a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:261,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:262,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:263,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - a_fs
    - start
    - end
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: tsk_fs_nofs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_type_toname
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_nofs_jblk_walk(TSK_FS_INFO * a_fs, TSK_INUM_T start,
      TSK_INUM_T end,\n    int a_flags, TSK_FS_JBLK_WALK_CB a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/nofs_misc.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_fs_info
    - s1
    - s2
    argTypes:
    - TSK_FS_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: tsk_fs_nofs_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/nofs_misc.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int tsk_fs_nofs_name_cmp(TSK_FS_INFO * a_fs_info, const char *s1,\n
      \   const char *s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: WITHNANO
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHNANO(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ntdate
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: nt2unixtime
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t nt2unixtime(uint64_t ntdate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ntdate
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: nt2nano
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t nt2nano(uint64_t ntdate)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:158,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:159,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:160,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:165,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:166,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:167,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:176,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:177,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:178,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:185,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:201,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:202,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:203,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:235,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:236,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:237,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:249,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:262,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:266,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:267,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:268,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:282,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:294,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:295,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:296,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:307,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:310,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:311,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:313,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:320,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:326,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:327,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:329,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:339,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:343,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:344,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:346,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:361,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:362,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:363,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:364,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:365,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:366,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:380,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:381,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:384,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:385,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:386,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:390,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:391,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:398,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:399,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:400,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:407,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:408,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:409,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:418,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:420,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:427,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:428,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:429,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:436,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:440,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:441,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:442,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:444,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 144
    argCount: 3
    argNames:
    - a_ntfs
    - a_buf
    - a_mftnum
    argTypes:
    - NTFS_INFO*
    - char*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 468
    functionName: ntfs_dinode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_error_set_errno
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM ntfs_dinode_lookup(NTFS_INFO * a_ntfs, char *a_buf,
      TSK_INUM_T a_mftnum)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:492,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:493,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:495,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:502,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:503,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:504,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:512,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:533,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:534,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:535,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:536,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:542,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:543,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:544,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:545,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ntfs.c:551,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:555,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:557,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:558,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:560,1
    - Dst: isset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:568,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:570,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 2
    argNames:
    - ntfs
    - addr
    argTypes:
    - NTFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 572
    functionName: is_clustalloc
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_fs_read_block
    - isset
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_release_lock
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: int
    signature: int is_clustalloc(NTFS_INFO * ntfs, TSK_DADDR_T addr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:624,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:628,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:630,1
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:651,1
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:651,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:652,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:653,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:654,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:656,1
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:660,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:663,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:673,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:674,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:675,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:677,1
    - Dst: NTFS_RUNL_OFFSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:693,1
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:693,1
    - Dst: NTFS_RUNL_OFFSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:693,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:694,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:695,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:696,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:698,1
    - Dst: NTFS_RUNL_OFFSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:702,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:706,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:721,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:741,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:762,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:763,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:764,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:766,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:775,1
    - Dst: NTFS_RUNL_LENSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:779,1
    - Dst: NTFS_RUNL_OFFSZ
      Src: /src/sleuthkit/tsk/fs/ntfs.c:779,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:799,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 97
    argCount: 7
    argNames:
    - ntfs
    - start_vcn
    - runlist_head
    - runlist_size
    - a_data_run_head
    - totlen
    - mnum
    argTypes:
    - NTFS_INFO*
    - TSK_OFF_T
    - ntfs_runlist*
    - uint32_t
    - TSK_FS_ATTR_RUN**
    - TSK_OFF_T*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 804
    functionName: ntfs_make_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - NTFS_RUNL_LENSZ
    - tsk_fprintf
    - NTFS_RUNL_OFFSZ
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_make_data_run(NTFS_INFO * ntfs, TSK_OFF_T start_vcn,\n
      \   ntfs_runlist * runlist_head, uint32_t runlist_size, TSK_FS_ATTR_RUN ** a_data_run_head,\n
      \   TSK_OFF_T * totlen, TSK_INUM_T mnum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:861,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - comp
    argTypes:
    - NTFS_COMP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: ntfs_uncompress_reset
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ntfs_uncompress_reset(NTFS_COMP_INFO * comp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:891,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:895,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:896,1
    - Dst: ntfs_uncompress_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - fs
    - comp
    - compunit_size_c
    argTypes:
    - TSK_FS_INFO*
    - NTFS_COMP_INFO*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 905
    functionName: ntfs_uncompress_setup
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_malloc
    - ntfs_uncompress_reset
    linkageType: ''
    returnType: int
    signature: "int ntfs_uncompress_setup(TSK_FS_INFO * fs, NTFS_COMP_INFO * comp,\n
      \   uint32_t compunit_size_c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:910,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - comp
    argTypes:
    - NTFS_COMP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 915
    functionName: ntfs_uncompress_done
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ntfs_uncompress_done(NTFS_COMP_INFO * comp)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:932,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:947,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:952,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:960,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:973,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:990,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1001,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1012,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1017,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1018,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1042,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1043,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1067,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1068,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1069,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1083,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1090,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1091,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1092,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1099,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1100,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1101,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1110,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1112,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1139,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1145,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1146,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1147,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 1
    argNames:
    - comp
    argTypes:
    - NTFS_COMP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 1163
    functionName: ntfs_uncompress_compunit
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu16
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_uncompress_compunit(NTFS_COMP_INFO * comp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1202,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1205,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1214,1
    - Dst: ntfs_uncompress_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1218,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1228,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1232,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1233,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1235,1
    - Dst: ntfs_uncompress_compunit
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1251,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1260,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1261,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1262,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1267,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1271,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1272,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1274,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - ntfs
    - comp
    - comp_unit
    - comp_unit_size
    argTypes:
    - NTFS_INFO*
    - NTFS_COMP_INFO*
    - TSK_DADDR_T*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1283
    functionName: ntfs_proc_compunit
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_fs_read_block
    - ntfs_uncompress_reset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - ntfs_uncompress_compunit
    - tsk_error_set_errno
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_proc_compunit(NTFS_INFO * ntfs, NTFS_COMP_INFO * comp,\n
      \   TSK_DADDR_T * comp_unit, uint32_t comp_unit_size)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1298,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1302,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1303,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1335,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1336,1
    - Dst: ntfs_uncompress_setup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1343,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1348,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1351,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1370,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1374,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1376,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1377,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1386,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1387,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1395,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1397,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1398,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1407,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1408,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1421,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1425,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1427,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1428,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1436,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1437,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1452,1
    - Dst: ntfs_proc_compunit
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1457,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1459,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1466,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1467,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1476,1
    - Dst: ntfs_uncompress_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1483,1
    - Dst: is_clustalloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1495,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1499,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1500,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1501,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1522,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1523,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1533,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1534,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1540,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1574,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1575,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1583,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1584,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 143
    argCount: 4
    argNames:
    - fs_attr
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_ATTR*
    - int
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1290
    functionDepth: 6
    functionLinenumber: 1290
    functionLinenumberEnd: 1589
    functionName: ntfs_attr_walk_special
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - ntfs_uncompress_setup
    - tsk_error_set_errstr2
    - memset
    - tsk_fprintf
    - ntfs_uncompress_reset
    - tsk_error_set_errstr
    - tsk_error_reset
    - is_clustalloc
    - a_action
    - ntfs_uncompress_done
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - ntfs_proc_compunit
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_attr_walk_special(const TSK_FS_ATTR * fs_attr,\n    int
      flags, TSK_FS_FILE_WALK_CB a_action, void *ptr)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1606,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1607,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1627,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1628,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1634,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1635,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1636,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1647,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1655,1
    - Dst: ntfs_uncompress_setup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1663,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1668,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1671,1
    - Dst: ntfs_proc_compunit
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1723,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1725,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1732,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1733,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1743,1
    - Dst: ntfs_uncompress_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1749,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1757,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1758,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1774,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1793,1
    - Dst: ntfs_uncompress_done
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1794,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1798,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1799,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 103
    argCount: 4
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1596
    functionDepth: 6
    functionLinenumber: 1596
    functionLinenumberEnd: 1804
    functionName: ntfs_file_read_special
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - ntfs_uncompress_setup
    - memset
    - ntfs_uncompress_reset
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - memcpy
    - ntfs_uncompress_done
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_error_set_errstr2
    - ntfs_proc_compunit
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t ntfs_file_read_special(const TSK_FS_ATTR * a_fs_attr,\n    TSK_OFF_T
      a_offset, char *a_buf, size_t a_len)"
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1857,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1862,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1863,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1864,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1869,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1870,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1871,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1881,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1882,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1885,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1894,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1901,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1902,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1909,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1910,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1922,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1941,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1950,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1965,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1982,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1990,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1991,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:1992,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2000,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2003,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2004,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2007,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2008,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2009,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2018,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2020,1
    - Dst: tsk_fs_attr_set_str
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2025,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2027,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2028,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2030,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2035,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2038,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2043,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2059,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2063,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2069,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2070,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2071,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2078,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2079,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2080,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2085,1
    - Dst: ntfs_make_data_run
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2090,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2097,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2103,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2108,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2111,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2135,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2139,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2147,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2150,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2162,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2164,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2165,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2166,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2167,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2169,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2175,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2177,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2188,1
    - Dst: tsk_fs_attrlist_get_id
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2200,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2207,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2209,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2212,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2218,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2239,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2246,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2249,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2251,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2255,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2271,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2272,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2274,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2289,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2290,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2293,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2294,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2295,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2300,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2301,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2302,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2308,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2309,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2310,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2317,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2317,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2319,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2319,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2322,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2322,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2324,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2324,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2327,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2327,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2329,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2329,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2332,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2332,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2334,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2334,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2339,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2344,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2348,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2356,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2357,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2360,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2361,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2362,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2367,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2368,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2369,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2375,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2376,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2377,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2387,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2387,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2389,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2389,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2392,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2392,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2394,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2394,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2397,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2397,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2399,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2399,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2402,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2402,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2404,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2404,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2419,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2429,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2436,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2437,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2438,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2446,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2454,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2466,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2467,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2479,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2480,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2481,1
    - Dst: tsk_fs_attrlist_get_id
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2486,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2489,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2508,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2511,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2525,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2526,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2527,1
    - Dst: tsk_stack_push
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2550,1
    - Dst: ntfs_proc_attrlist
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2552,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 345
    argCount: 7
    argNames:
    - ntfs
    - fs_file
    - a_attrseq
    - len
    - a_attrinum
    - a_attr_map
    - a_seen_inum_list
    argTypes:
    - NTFS_INFO*
    - TSK_FS_FILE*
    - ntfs_attr*
    - size_t
    - TSK_INUM_T
    - NTFS_ATTRLIST_MAP*
    - TSK_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 1846
    functionDepth: 5
    functionLinenumber: 1846
    functionLinenumberEnd: 2559
    functionName: ntfs_proc_attrseq
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - memcmp
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - fprintf
    - ntfs_proc_attrlist
    - nt2unixtime
    - nt2nano
    - tsk_error_set_errno
    - tsk_getu64
    - tsk_fs_attrlist_getnew
    - tsk_fs_file_attr_get_idx
    - tsk_fs_attr_set_run
    - tsk_error_errstr2_concat
    - tsk_getu48
    - TSK_FS_IS_DIR_META
    - tsk_error_reset
    - tsk_fs_attrlist_get_id
    - tsk_getu32
    - ntfs_make_data_run
    - tsk_getu16
    - strcmp
    - tsk_malloc
    - tsk_stack_push
    - TSK_IS_CNTRL
    - tsk_error_set_errstr
    - tsk_UTF16toUTF8
    - tsk_fs_file_attr_getsize
    - tsk_fs_attr_set_str
    - tsk_fs_attr_add_run
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_proc_attrseq(NTFS_INFO * ntfs,\n    TSK_FS_FILE
      * fs_file, const ntfs_attr * a_attrseq, size_t len,\n    TSK_INUM_T a_attrinum,
      const NTFS_ATTRLIST_MAP * a_attr_map, TSK_STACK * a_seen_inum_list)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2600,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2604,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2609,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2611,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2616,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2621,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2623,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2624,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2628,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2630,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2631,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2632,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2633,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2641,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2642,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2643,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2645,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2646,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2647,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2661,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2662,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2665,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2670,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2671,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2672,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2675,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2679,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2691,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2703,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2748,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2758,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2763,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2764,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2768,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2769,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2770,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2772,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2773,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2778,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2784,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2790,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2791,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2792,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2798,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2799,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2800,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2801,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2803,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2809,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2811,1
    - Dst: tsk_stack_find
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2818,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2819,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2820,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2821,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2827,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2828,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2829,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2830,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2832,1
    - Dst: tsk_stack_create
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2843,1
    - Dst: ntfs_proc_attrseq
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2847,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2848,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2849,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2854,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2855,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2858,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2859,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2860,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2861,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2863,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2868,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2869,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2870,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2872,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 152
    argCount: 4
    argNames:
    - ntfs
    - fs_file
    - fs_attr_attrlist
    - processed_inum_list
    argTypes:
    - NTFS_INFO*
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - TSK_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2582
    functionDepth: 6
    functionLinenumber: 2582
    functionLinenumberEnd: 2874
    functionName: ntfs_proc_attrlist
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 1
    functionsReached:
    - memcmp
    - memset
    - tsk_error_print
    - tsk_fprintf
    - free
    - tsk_error_set_errno
    - tsk_stack_free
    - tsk_getu64
    - tsk_error_errstr2_concat
    - memcpy
    - tsk_getu48
    - ntfs_proc_attrseq
    - tsk_error_reset
    - tsk_getu32
    - tsk_getu16
    - tsk_malloc
    - ntfs_dinode_lookup
    - tsk_fs_attr_walk
    - tsk_stack_find
    - tsk_error_set_errstr
    - tsk_stack_create
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_proc_attrlist(NTFS_INFO * ntfs,\n    TSK_FS_FILE
      * fs_file, const TSK_FS_ATTR * fs_attr_attrlist, TSK_STACK * processed_inum_list)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2898,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2899,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2900,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2908,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2911,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2924,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2931,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2932,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2936,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2968,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2976,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2977,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2978,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2979,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2984,1
    - Dst: ntfs_proc_attrseq
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2986,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:2987,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 4
    argNames:
    - ntfs
    - a_fs_file
    - a_buf
    - a_mnum
    argTypes:
    - NTFS_INFO*
    - TSK_FS_FILE*
    - char*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2888
    functionDepth: 6
    functionLinenumber: 2888
    functionLinenumberEnd: 3003
    functionName: ntfs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - ntfs_proc_attrseq
    - tsk_getu16
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM ntfs_dinode_copy(NTFS_INFO * ntfs, TSK_FS_FILE * a_fs_file,
      char *a_buf,\n    TSK_INUM_T a_mnum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3017,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3018,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3025,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3027,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3013
    functionDepth: 3
    functionLinenumber: 3013
    functionLinenumberEnd: 3032
    functionName: ntfs_load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_load_attrs(TSK_FS_FILE * a_fs_file)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3050,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3053,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3054,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3059,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3065,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3069,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3070,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3076,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3081,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3082,1
    - Dst: ntfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3087,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3088,1
    - Dst: tsk_fs_meta_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3111,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3115,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - fs
    - a_fs_file
    - mftnum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3041
    functionDepth: 7
    functionLinenumber: 3041
    functionLinenumberEnd: 3122
    functionName: ntfs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_reset
    - tsk_fs_meta_close
    - tsk_fs_meta_alloc
    - ntfs_dinode_lookup
    - tsk_malloc
    - tsk_error_set_errno
    - ntfs_dinode_copy
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T mftnum)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3153,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3156,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3159,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3167,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3169,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3174,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3176,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3177,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3178,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3183,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3184,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3185,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3187,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3188,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3141
    functionDepth: 3
    functionLinenumber: 3141
    functionLinenumberEnd: 3196
    functionName: ntfs_load_attrdef
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_errstr2_concat
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - tsk_fs_attr_walk
    - free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_load_attrdef(NTFS_INFO * ntfs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ntfs_load_attrdef
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3211,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3219,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3220,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3226,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3233,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - fs
    - type
    - name
    - len
    argTypes:
    - TSK_FS_INFO*
    - uint16_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3205
    functionDepth: 4
    functionLinenumber: 3205
    functionLinenumberEnd: 3251
    functionName: ntfs_attrname_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_UTF16toUTF8
    - ntfs_load_attrdef
    - tsk_getu32
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_attrname_lookup(TSK_FS_INFO * fs, uint16_t type, char
      *name, int len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3272,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3277,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3282,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3292,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3293,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3309,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3310,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3311,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3314,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3316,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3317,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3318,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3322,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3323,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3328,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3329,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3330,1
    - Dst: ntfs_make_data_run
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3334,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3341,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3354,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3355,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3356,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3362,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3366,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3367,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3369,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3374,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3379,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 1
    argNames:
    - ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3258
    functionDepth: 5
    functionLinenumber: 3258
    functionLinenumberEnd: 3382
    functionName: ntfs_load_bmap
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - ntfs_make_data_run
    - tsk_getu16
    - ntfs_dinode_lookup
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_error_set_errstr2
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_load_bmap(NTFS_INFO * ntfs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3398,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3403,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3405,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3406,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3407,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3408,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3429,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3430,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3431,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3433,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3438,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3439,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3440,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3447
      start: 3391
    functionDepth: 3
    functionLinenumber: 3391
    functionLinenumberEnd: 3447
    functionName: ntfs_load_ver
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_load_ver(NTFS_INFO * ntfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3471,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3472,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3473,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3478,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3481,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3482,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3483,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3484,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3515,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3519,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3524,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3531,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3532,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - a_fs
    - a_sds
    - a_sidstr
    argTypes:
    - TSK_FS_INFO*
    - ntfs_attr_sds*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3461
    functionDepth: 3
    functionLinenumber: 3461
    functionLinenumberEnd: 3539
    functionName: ntfs_sds_to_str
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_malloc
    - tsk_error_set_errno
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_sds_to_str(TSK_FS_INFO * a_fs, const ntfs_attr_sds *
      a_sds,\n    char **a_sidstr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3570,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3571,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3572,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3588,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3595,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3596,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3597,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3598,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3602,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3603,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3604,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3609,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3610,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3611,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3619,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3620,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3621,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3630,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3633,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3634,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3635,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3641,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3642,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3643,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - fs
    - secid
    argTypes:
    - TSK_FS_INFO*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3553
    functionDepth: 3
    functionLinenumber: 3553
    functionLinenumberEnd: 3646
    functionName: ntfs_get_sds
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_error_set_errno
    - tsk_getu64
    linkageType: ''
    returnType: ntfs_attr_sds
    signature: 'ntfs_attr_sds *

      ntfs_get_sds(TSK_FS_INFO * fs, uint32_t secid)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3675,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3676,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3677,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3683,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3686,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3692,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3693,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3694,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3698,1
    - Dst: ntfs_get_sds
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3701,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3702,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3704,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3705,1
    - Dst: ntfs_sds_to_str
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3708,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3709,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3710,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3713,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3717,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3718,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - a_fs_file
    - sid_str
    argTypes:
    - TSK_FS_FILE*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3663
    functionDepth: 4
    functionLinenumber: 3663
    functionLinenumberEnd: 3722
    functionName: ntfs_file_get_sidstr
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - ntfs_get_sds
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_getu32
    - tsk_error_set_errno
    - tsk_release_lock
    - tsk_error_set_errstr2
    - ntfs_sds_to_str
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_file_get_sidstr(TSK_FS_FILE * a_fs_file, char **sid_str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3753,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3755,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3758,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3760,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3763,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3763,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3765,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3771,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3775,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3783,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3803,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3804,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3805,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3809,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 2
    argNames:
    - fs
    - sii_buffer
    argTypes:
    - TSK_FS_INFO*
    - NTFS_SXX_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3732
    functionDepth: 4
    functionLinenumber: 3732
    functionLinenumberEnd: 3839
    functionName: ntfs_proc_sii
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - memcpy
    - tsk_getu16
    - tsk_getu32
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void ntfs_proc_sii(TSK_FS_INFO * fs, NTFS_SXX_BUFFER * sii_buffer)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3871,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3874,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3876,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3877,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3886,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3888,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3889,1
    - Dst: tsk_fs_attrlist_get_name_type
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3895,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3899,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3901,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3902,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3908,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3911,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3913,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3914,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3921,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3927,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3932,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3938,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3942,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3944,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3945,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3947,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3948,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3955,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3956,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3957,1
    - Dst: ntfs_proc_sii
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3963,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3964,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3976,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3979,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3983,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3989,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3990,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:3994,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4005,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4007,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4008,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4010,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4014,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4018,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4022,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 104
    argCount: 1
    argNames:
    - ntfs
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4024
      start: 3850
    functionDepth: 5
    functionLinenumber: 3850
    functionLinenumberEnd: 4024
    functionName: ntfs_load_secure
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_fprintf
    - roundup
    - tsk_error_reset
    - ntfs_proc_sii
    - tsk_malloc
    - tsk_fs_file_open_meta
    - tsk_error_get_errstr
    - tsk_fs_file_close
    - free
    - tsk_fs_attr_read
    - tsk_fs_attrlist_get_name_type
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_load_secure(NTFS_INFO * ntfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_clustalloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4035
    functionDepth: 4
    functionLinenumber: 4035
    functionLinenumberEnd: 4050
    functionName: ntfs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - is_clustalloc
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM ntfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T
      a_addr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4072,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4078,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4079,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4080,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4085,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4086,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4087,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4106,1
    - Dst: is_clustalloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4116,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4118,1
    - Dst: tsk_fs_block_get_flag
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4140,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4142,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4145,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4149,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4154,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4159,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 6
    argNames:
    - fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4060
    functionDepth: 4
    functionLinenumber: 4060
    functionLinenumberEnd: 4161
    functionName: ntfs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_block_alloc
    - tsk_error_set_errstr
    - tsk_error_reset
    - is_clustalloc
    - a_action
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_error_set_errstr2
    - tsk_fs_block_get_flag
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_block_walk(TSK_FS_INFO * fs,\n    TSK_DADDR_T a_start_blk,
      TSK_DADDR_T a_end_blk,\n    TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags, TSK_FS_BLOCK_WALK_CB
      a_action,\n    void *a_ptr)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4190,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4191,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4192,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4198,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4199,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4200,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4206,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4207,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4208,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4214,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4215,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4216,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4251,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4252,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4258,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4261,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4264,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4268,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4269,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4274,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4286,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4291,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4292,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4295,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4296,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4303,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4311,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4320,1
    - Dst: ntfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4326,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4331,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4332,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4335,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4336,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4347,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4349,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4350,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4354,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4355,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4361,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4366,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4367,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4368,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4372,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4374,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4375,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4379,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4380,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4385,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4386,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 123
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4388
      start: 4175
    functionDepth: 7
    functionLinenumber: 4175
    functionLinenumberEnd: 4388
    functionName: ntfs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_dir_load_inum_named
    - tsk_error_errstr2_concat
    - ntfs_dinode_copy
    - tsk_getu48
    - tsk_error_reset
    - a_action
    - ntfs_dinode_lookup
    - tsk_malloc
    - tsk_getu16
    - tsk_fs_dir_find_inum_named
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - tsk_fs_meta_alloc
    - tsk_fs_file_close
    - tsk_fs_dir_make_orphan_dir_meta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,\n
      \   TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM flags,\n    TSK_FS_META_WALK_CB
      a_action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4395,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4396,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4392
    functionDepth: 3
    functionLinenumber: 4392
    functionLinenumberEnd: 4399
    functionName: ntfs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4419,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4420,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4421,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4422,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4424,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4425,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4435,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4436,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4437,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4438,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4443,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4445,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4446,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4447,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4458,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4465,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4476,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4479,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4483,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4485,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4487,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4488,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4489,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4490,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4492,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4493,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4495,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4496,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4498,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4500,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4503,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4504,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4505,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4506,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4507,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4508,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4513,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4517,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4519,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4523,1
    - Dst: ntfs_load_attrdef
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4525,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4526,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4534,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4539,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4547,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4558,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4559,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4560,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4561,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4564,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4567,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4568,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4569,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4572,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4573,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4575,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4579,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 87
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4587
      start: 4410
    functionDepth: 4
    functionLinenumber: 4410
    functionLinenumberEnd: 4587
    functionName: ntfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_UTF16toUTF8
    - ntfs_load_attrdef
    - tsk_getu32
    - tsk_error_errstr2_concat
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - tsk_getu64
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4602,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4609
      start: 4597
    functionDepth: 4
    functionLinenumber: 4597
    functionLinenumberEnd: 4609
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *ptr)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4634,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4636,1
    - Dst: ntfs_dinode_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4640,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4641,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4645,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4646,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4647,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4651,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4652,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4655,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4656,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4658,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4661,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4663,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4664,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4667,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4668,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4671,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4677,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4678,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4679,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4680,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4681,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4682,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4683,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4684,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4685,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4686,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4687,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4688,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4689,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4690,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4691,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4692,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4693,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4694,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4695,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4696,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4697,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4698,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4699,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4700,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4701,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4702,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4704,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4705,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4706,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4707,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4708,1
    - Dst: ntfs_file_get_sidstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4711,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4713,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4714,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4715,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4720,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4721,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4723,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4724,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4727,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4728,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4729,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4732,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4733,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4735,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4742,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4752,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4753,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4753,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4754,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4755,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4755,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4756,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4757,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4757,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4758,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4759,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4759,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4770,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4773,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4774,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4774,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4775,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4776,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4776,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4777,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4778,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4778,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4779,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4780,1
    - Dst: WITHNANO
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4780,1
    - Dst: tsk_fs_attrlist_get_len
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4784,1
    - Dst: tsk_fs_attrlist_get_idx
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4793,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4799,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4800,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4801,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4803,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4805,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4807,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4809,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4811,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4813,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4815,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4817,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4819,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4821,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4823,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4825,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4827,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4829,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4832,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4833,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4842,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4848,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4856,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4869,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4871,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4874,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4875,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4876,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4879,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4880,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4888,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4890,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4891,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4891,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4891,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4891,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4891,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4892,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4893,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4893,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4893,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4893,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4893,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4894,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4895,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4895,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4895,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4895,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4895,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4896,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4897,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4897,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4897,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4897,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4897,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4899,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4902,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4903,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4903,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4903,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4903,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4903,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4904,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4905,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4905,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4905,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4905,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4905,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4906,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4907,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4907,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4907,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4907,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4907,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4908,1
    - Dst: tsk_fs_time_to_str_subsecs
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4909,1
    - Dst: nt2unixtime
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4909,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4909,1
    - Dst: nt2nano
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4909,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4909,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4914,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4918,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4919,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4920,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4921,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4925,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4926,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4927,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4928,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4929,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4930,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4934,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4935,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4936,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4949,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4950,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4951,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4964,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4965,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4966,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4981,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4988,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4993,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:4995,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5000,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5002,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5003,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5011,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5018,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5020,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5022,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5024,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5025,1
    - Dst: tsk_getu48
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5026,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5027,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5030,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5034,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5039,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5044,1
    - Dst: ntfs_attrname_lookup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5048,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5049,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5057,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5070,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5071,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5072,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5073,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5079,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5084,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5085,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5086,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5089,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5094,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5111,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5112,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 255
    argCount: 6
    argNames:
    - fs
    - istat_flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5114
      start: 4622
    functionDepth: 5
    functionLinenumber: 4622
    functionLinenumberEnd: 5114
    functionName: ntfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - tsk_fs_time_to_str_subsecs
    - tsk_fs_file_walk_type
    - nt2unixtime
    - nt2nano
    - tsk_getu64
    - tsk_fs_file_attr_get_idx
    - tsk_fs_attr_print
    - tsk_fs_attrlist_get_len
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_fs_attrlist_get_idx
    - tsk_getu48
    - TSK_FS_IS_DIR_META
    - tsk_error_reset
    - ntfs_file_get_sidstr
    - tsk_getu32
    - ntfs_dinode_lookup
    - tsk_malloc
    - tsk_getu16
    - tsk_fs_attr_walk
    - tsk_fs_attrlist_get
    - ntfs_attrname_lookup
    - tsk_UTF16toUTF8
    - tsk_fs_file_attr_getsize
    - WITHNANO
    - tsk_fs_file_close
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_istat(TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM istat_flags,
      FILE * hFile,\n    TSK_INUM_T inum, TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5123,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5124,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fs
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5127
      start: 5120
    functionDepth: 3
    functionLinenumber: 5120
    functionLinenumberEnd: 5127
    functionName: ntfs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ntfs_jopen(TSK_FS_INFO * fs, TSK_INUM_T inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5133,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5134,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fs
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - int
    - TSK_FS_JENTRY_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5129
    functionDepth: 3
    functionLinenumber: 5129
    functionLinenumberEnd: 5137
    functionName: ntfs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_jentry_walk(TSK_FS_INFO * fs, int flags,\n    TSK_FS_JENTRY_WALK_CB
      a_action, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5144,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5145,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - fs
    - start
    - end
    - flags
    - a_action
    - ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - int
    - TSK_FS_JBLK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5140
    functionDepth: 3
    functionLinenumber: 5140
    functionLinenumberEnd: 5148
    functionName: ntfs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t ntfs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start,\n    TSK_DADDR_T
      end, int flags, TSK_FS_JBLK_WALK_CB a_action, void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5151
    functionDepth: 1
    functionLinenumber: 5151
    functionLinenumberEnd: 5163
    functionName: ntfs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM ntfs_get_default_attr_type(const TSK_FS_FILE
      * a_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5175,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5178,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5184,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5185,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5186,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5187,1
    - Dst: ntfs_orphan_map_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5190,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5192,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5193,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5195,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5199
      start: 5166
    functionDepth: 2
    functionLinenumber: 5166
    functionLinenumberEnd: 5199
    functionName: ntfs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_attr_run_free
    - tsk_deinit_lock
    - tsk_fs_free
    - tsk_fs_file_close
    - free
    - ntfs_orphan_map_free
    linkageType: ''
    returnType: void
    signature: void ntfs_close(TSK_FS_INFO * fs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5218,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5223,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ntfs_info
    argTypes:
    - NTFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5235
      start: 5209
    functionDepth: 1
    functionLinenumber: 5209
    functionLinenumberEnd: 5235
    functionName: process_kape_boot_format
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 0
    functionsReached:
    - tsk_getu16
    - strncmp
    linkageType: ''
    returnType: int
    signature: int process_kape_boot_format(NTFS_INFO* ntfs_info)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5258,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5260,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5261,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5262,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5263,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5268,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5269,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5270,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5274,1
    - Dst: handleVolumeEncryption
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5295,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5300,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5301,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5306,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5309,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5310,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5312,1
    - Dst: tsk_fs_guessu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5317,1
    - Dst: process_kape_boot_format
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5318,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5319,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5320,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5321,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5323,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5334,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5336,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5337,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5338,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5342,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5354,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5355,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5356,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5360,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5371,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5374,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5375,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5376,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5378,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5402,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5403,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5404,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5407,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5421,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5422,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5423,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5427,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5433,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5434,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5435,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5436,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5437,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5440,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5471,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5472,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5474,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5489,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5491,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5492,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5502,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5504,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5506,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5508,1
    - Dst: ntfs_load_ver
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5525,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5527,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5529,1
    - Dst: ntfs_load_bmap
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5534,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5536,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5537,1
    - Dst: ntfs_load_secure
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5545,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5547,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5548,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5561,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5564,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5565,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5566,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5570,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5571,1
    - Dst: ntfs_close
      Src: /src/sleuthkit/tsk/fs/ntfs.c:5577,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 212
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5247
    functionDepth: 6
    functionLinenumber: 5247
    functionLinenumberEnd: 5579
    functionName: ntfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/ntfs.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_init_lock
    - fprintf
    - tsk_error_set_errno
    - ntfs_load_bmap
    - tsk_error_get
    - tsk_getu64
    - ntfs_load_secure
    - tsk_error_errstr2_concat
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_open_meta
    - tsk_error_reset
    - ntfs_close
    - tsk_fs_guessu16
    - tsk_getu16
    - tsk_malloc
    - ntfs_load_ver
    - tsk_fs_malloc
    - roundup
    - handleVolumeEncryption
    - tsk_fs_attrlist_get
    - tsk_error_set_errstr
    - process_kape_boot_format
    - tsk_fs_read
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\nntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,\n
      \   TSK_FS_TYPE_ENUM ftype, const char* a_pass, uint8_t test)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:65,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:66,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:67,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - a_name_info
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    assertStmts:
    - condition: (a_name_info != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: exfatfs_reset_name_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void exfatfs_reset_name_info(EXFATFS_FS_NAME_INFO *a_name_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:96,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:97,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:98,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:99,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:100,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:103,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:107,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:119,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:120,1
    - Dst: exfatfs_reset_name_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - a_name_info
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    assertStmts:
    - condition: (a_name_info != NULL)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 124
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 124
    functionName: exfatfs_add_name_to_dir_and_reset_info
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - exfatfs_reset_name_info
    - fatfs_utf16_inode_str_2_utf8
    - tsk_fs_dir_add
    - strlen
    linkageType: ''
    returnType: void
    signature: void exfatfs_add_name_to_dir_and_reset_info(EXFATFS_FS_NAME_INFO *a_name_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:141,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:142,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:143,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:144,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:145,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:146,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:147,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:148,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:148,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:149,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:149,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:152,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:163,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - a_name_info
    - a_dentry
    - a_inum
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_name_info != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fatfs != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (dentry != NULL)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_FILE)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (fatfs_inum_is_in_range(a_name_info->fatfs, a_inum))
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: exfats_parse_file_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - tsk_getu16
    - exfatfs_get_alloc_status_from_type
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - exfatfs_add_name_to_dir_and_reset_info
    linkageType: ''
    returnType: void
    signature: void exfats_parse_file_dentry(EXFATFS_FS_NAME_INFO *a_name_info, FATFS_DENTRY
      *a_dentry, TSK_INUM_T a_inum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:201,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:202,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:203,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:204,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:205,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:206,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:207,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:208,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:208,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:209,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:209,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:211,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:215,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:219,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:220,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:224,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - a_name_info
    - a_dentry
    - a_inum
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_name_info != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fatfs != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (dentry != NULL)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_FILE_STREAM)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (fatfs_inum_is_in_range(a_name_info->fatfs, a_inum))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 245
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 245
    functionName: exfats_parse_file_stream_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - exfatfs_get_alloc_status_from_type
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - exfatfs_add_name_to_dir_and_reset_info
    linkageType: ''
    returnType: void
    signature: void exfats_parse_file_stream_dentry(EXFATFS_FS_NAME_INFO *a_name_info,
      FATFS_DENTRY *a_dentry, TSK_INUM_T a_inum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:262,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:263,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:264,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:265,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:266,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:267,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:268,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:269,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:270,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:270,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:272,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:273,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:277,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:281,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:282,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:286,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:305,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - a_name_info
    - a_dentry
    - a_inum
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (fatfs_inum_is_in_range(a_name_info->fatfs, a_inum))
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fatfs != NULL)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_FILE_NAME)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info != NULL)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (dentry != NULL)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 316
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 316
    functionName: exfats_parse_file_name_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - exfatfs_get_alloc_status_from_type
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - exfatfs_add_name_to_dir_and_reset_info
    linkageType: ''
    returnType: void
    signature: void exfats_parse_file_name_dentry(EXFATFS_FS_NAME_INFO *a_name_info,
      FATFS_DENTRY *a_dentry, TSK_INUM_T a_inum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:334,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:335,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:336,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:337,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:338,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:339,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:340,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:341,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:341,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:342,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:342,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:345,1
    - Dst: exfatfs_get_alloc_status_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:359,1
    - Dst: fatfs_utf16_inode_str_2_utf8
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:360,1
    - Dst: exfatfs_reset_name_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:365,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:370,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:373,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:375,1
    - Dst: strcat
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:378,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - a_name_info
    - a_dentry
    - a_inum
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (exfatfs_get_enum_from_type(dentry->entry_type) == EXFATFS_DIR_ENTRY_TYPE_VOLUME_LABEL)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info != NULL)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (dentry != NULL)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fatfs != NULL)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (fatfs_inum_is_in_range(a_name_info->fatfs, a_inum))
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 393
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 393
    functionName: exfats_parse_vol_label_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - strcpy
    - strcat
    - exfatfs_get_alloc_status_from_type
    - exfatfs_reset_name_info
    - fatfs_inum_is_in_range
    - fatfs_utf16_inode_str_2_utf8
    - exfatfs_get_enum_from_type
    - exfatfs_add_name_to_dir_and_reset_info
    - strlen
    linkageType: ''
    returnType: void
    signature: void exfats_parse_vol_label_dentry(EXFATFS_FS_NAME_INFO *a_name_info,
      FATFS_DENTRY *a_dentry, TSK_INUM_T a_inum)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:407,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:408,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:409,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:410,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:411,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:412,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:413,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:414,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:414,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:417,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:427,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:429,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:432,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:435,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:438,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:441,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - a_name_info
    - a_dentry
    - a_inum
    argTypes:
    - EXFATFS_FS_NAME_INFO*
    - FATFS_DENTRY*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_name_info != NULL)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fatfs != NULL)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name != NULL)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name != NULL)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_name->name_size == FATFS_MAXNAMLEN_UTF8)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_name_info->fs_dir != NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    - condition: (fatfs_inum_is_in_range(a_name_info->fatfs, a_inum))
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 464
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 464
    functionName: exfats_parse_special_file_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - assert
    - strcpy
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - exfatfs_add_name_to_dir_and_reset_info
    linkageType: ''
    returnType: void
    signature: void exfats_parse_special_file_dentry(EXFATFS_FS_NAME_INFO *a_name_info,
      FATFS_DENTRY *a_dentry, TSK_INUM_T a_inum)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:501,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:502,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:503,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:504,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:505,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:509,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:511,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:512,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:513,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:519,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:521,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:533,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:535,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:536,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:537,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:540,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:545,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:551,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:553,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:556,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:558,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:570,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:571,1
    - Dst: exfatfs_is_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:575,1
    - Dst: exfatfs_get_enum_from_type
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:584,1
    - Dst: exfats_parse_file_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:586,1
    - Dst: exfats_parse_file_stream_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:589,1
    - Dst: exfats_parse_file_name_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:592,1
    - Dst: exfats_parse_vol_label_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:595,1
    - Dst: exfats_parse_special_file_dentry
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:602,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:616,1
    - Dst: exfatfs_add_name_to_dir_and_reset_info
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:624,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/exfatfs_dent.c:625,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 6
    argNames:
    - a_fatfs
    - a_fs_dir
    - a_buf
    - a_buf_len
    - a_sector_addrs
    - recursion_depth
    argTypes:
    - FATFS_INFO*
    - TSK_FS_DIR*
    - char*
    - TSK_OFF_T
    - TSK_DADDR_T*
    - int
    assertStmts:
    - condition: (a_buf_len > 0)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    constantsTouched: []
    func_position:
      end: 628
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 628
    functionName: exfatfs_dent_parse_buf
    functionSourceFile: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    functionUses: 0
    functionsReached:
    - memset
    - FATFS_SECT_2_INODE
    - tsk_error_print
    - tsk_fprintf
    - exfats_parse_special_file_dentry
    - fatfs_is_sectalloc
    - exfats_parse_file_stream_dentry
    - tsk_error_set_errno
    - exfats_parse_file_dentry
    - exfats_parse_file_name_dentry
    - assert
    - tsk_error_reset
    - tsk_fs_name_free
    - fatfs_ptr_arg_is_null
    - tsk_fs_name_alloc
    - exfatfs_add_name_to_dir_and_reset_info
    - tsk_error_set_errstr
    - exfatfs_is_dentry
    - fatfs_inum_is_in_range
    - exfatfs_get_enum_from_type
    - exfats_parse_vol_label_dentry
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM exfatfs_dent_parse_buf(FATFS_INFO *a_fatfs, TSK_FS_DIR
      *a_fs_dir, char *a_buf,\n    TSK_OFF_T a_buf_len, TSK_DADDR_T *a_sector_addrs,
      int recursion_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_file.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: tsk_fs_file_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 10
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_FILE
    signature: 'TSK_FS_FILE *

      tsk_fs_file_alloc(TSK_FS_INFO * a_fs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:48,1
    - Dst: tsk_fs_name_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: tsk_fs_file_reset
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - tsk_fs_meta_reset
    - tsk_fs_name_reset
    linkageType: ''
    returnType: void
    signature: void tsk_fs_file_reset(TSK_FS_FILE * a_fs_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_meta_close
      Src: /src/sleuthkit/tsk/fs/fs_file.c:68,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:72,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: tsk_fs_file_close
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 34
    functionsReached:
    - tsk_fs_name_free
    - tsk_fs_meta_close
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_file_close(TSK_FS_FILE * a_fs_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:105,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:106,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/fs_file.c:113,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:120,1
    - Dst: tsk_fs_file_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:125,1
    - Dst: TSK_FS_INFO*::file_add_meta
      Src: /src/sleuthkit/tsk/fs/fs_file.c:128,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_file.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tsk_fs_file_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 29
    functionsReached:
    - tsk_error_set_errstr
    - TSK_FS_INFO*::file_add_meta
    - tsk_fs_file_reset
    - tsk_fs_name_free
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_file_close
    linkageType: ''
    returnType: TSK_FS_FILE
    signature: "TSK_FS_FILE *\ntsk_fs_file_open_meta(TSK_FS_INFO * a_fs,\n    TSK_FS_FILE
      * a_fs_file, TSK_INUM_T a_addr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:159,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:160,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fs_file.c:166,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/fs_file.c:170,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:172,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:176,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:177,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:178,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/fs_file.c:184,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_file.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - a_path
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: tsk_fs_file_open
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 2
    functionsReached:
    - tsk_fs_path2inum
    - tsk_error_set_errstr
    - tsk_fs_name_free
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_name_alloc
    linkageType: ''
    returnType: TSK_FS_FILE
    signature: "TSK_FS_FILE *\ntsk_fs_file_open(TSK_FS_INFO * a_fs,\n    TSK_FS_FILE
      * a_fs_file, const char *a_path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:214,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:215,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:219,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:220,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:228,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:229,1
    - Dst: TSK_FS_INFO*::load_attrs
      Src: /src/sleuthkit/tsk/fs/fs_file.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - a_fs_file
    - a_func
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 240
    functionName: tsk_fs_file_attr_check
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - TSK_FS_INFO*::load_attrs
    linkageType: ''
    returnType: int
    signature: int tsk_fs_file_attr_check(TSK_FS_FILE * a_fs_file, char *a_func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_check
      Src: /src/sleuthkit/tsk/fs/fs_file.c:251,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:254,1
    - Dst: tsk_fs_attrlist_get_len
      Src: /src/sleuthkit/tsk/fs/fs_file.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: tsk_fs_file_attr_getsize
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 12
    functionsReached:
    - tsk_error_reset
    - tsk_fs_attrlist_get_len
    - tsk_fs_file_attr_check
    linkageType: ''
    returnType: int
    signature: int tsk_fs_file_attr_getsize(TSK_FS_FILE * a_fs_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_check
      Src: /src/sleuthkit/tsk/fs/fs_file.c:270,1
    - Dst: tsk_fs_attrlist_get_idx
      Src: /src/sleuthkit/tsk/fs/fs_file.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a_fs_file
    - a_idx
    argTypes:
    - TSK_FS_FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: tsk_fs_file_attr_get_idx
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 11
    functionsReached:
    - tsk_fs_attrlist_get_idx
    - tsk_fs_file_attr_check
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: 'TSK_FS_ATTR *

      tsk_fs_file_attr_get_idx(TSK_FS_FILE * a_fs_file, int a_idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_check
      Src: /src/sleuthkit/tsk/fs/fs_file.c:287,1
    - Dst: TSK_FS_INFO*::get_default_attr_type
      Src: /src/sleuthkit/tsk/fs/fs_file.c:292,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/fs_file.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: tsk_fs_file_attr_get
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 3
    functionsReached:
    - tsk_fs_attrlist_get
    - TSK_FS_INFO*::get_default_attr_type
    - tsk_fs_file_attr_check
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: 'TSK_FS_ATTR *

      tsk_fs_file_attr_get(TSK_FS_FILE * a_fs_file)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_check
      Src: /src/sleuthkit/tsk/fs/fs_file.c:309,1
    - Dst: tsk_fs_attrlist_get_id
      Src: /src/sleuthkit/tsk/fs/fs_file.c:313,1
    - Dst: tsk_fs_attrlist_get
      Src: /src/sleuthkit/tsk/fs/fs_file.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a_fs_file
    - a_type
    - a_id
    - a_id_used
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: tsk_fs_file_attr_get_type
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 10
    functionsReached:
    - tsk_fs_attrlist_get
    - tsk_fs_attrlist_get_id
    - tsk_fs_file_attr_check
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: "TSK_FS_ATTR *\ntsk_fs_file_attr_get_type(TSK_FS_FILE * a_fs_file,\n
      \   TSK_FS_ATTR_TYPE_ENUM a_type, uint16_t a_id, uint8_t a_id_used)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_attr_check
      Src: /src/sleuthkit/tsk/fs/fs_file.c:328,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/fs_file.c:331,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/fs_file.c:334,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:341,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a_fs_file
    - a_id
    argTypes:
    - TSK_FS_FILE*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 345
    functionName: tsk_fs_file_attr_get_id
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_error_set_errstr
    - tsk_fs_file_attr_check
    - tsk_error_set_errno
    - tsk_fs_file_attr_getsize
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: 'TSK_FS_ATTR *

      tsk_fs_file_attr_get_id(TSK_FS_FILE * a_fs_file, uint16_t a_id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:374,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:379,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:380,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:386,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:387,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_file.c:393,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/fs_file.c:398,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/fs_file.c:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - a_fs_file
    - a_type
    - a_id
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 403
    functionName: tsk_fs_file_walk_type
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 5
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_file_attr_get_type
    - tsk_fs_attr_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_file_walk_type(TSK_FS_FILE * a_fs_file,\n    TSK_FS_ATTR_TYPE_ENUM
      a_type, uint16_t a_id,\n    TSK_FS_FILE_WALK_FLAG_ENUM a_flags, TSK_FS_FILE_WALK_CB
      a_action,\n    void *a_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:428,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:433,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:434,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:440,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:441,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_file.c:447,1
    - Dst: tsk_fs_file_attr_get
      Src: /src/sleuthkit/tsk/fs/fs_file.c:451,1
    - Dst: tsk_fs_attr_walk
      Src: /src/sleuthkit/tsk/fs/fs_file.c:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - a_fs_file
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 455
    functionName: tsk_fs_file_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 11
    functionsReached:
    - tsk_fs_file_attr_get
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_attr_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_file_walk(TSK_FS_FILE * a_fs_file,\n    TSK_FS_FILE_WALK_FLAG_ENUM
      a_flags,\n    TSK_FS_FILE_WALK_CB a_action, void *a_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:481,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:486,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:487,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:493,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:494,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/fs_file.c:500,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/fs_file.c:505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - a_fs_file
    - a_type
    - a_id
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 473
    functionDepth: 5
    functionLinenumber: 473
    functionLinenumberEnd: 506
    functionName: tsk_fs_file_read_type
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_fs_file_attr_get_type
    - tsk_fs_attr_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_file_read_type(TSK_FS_FILE * a_fs_file,\n    TSK_FS_ATTR_TYPE_ENUM
      a_type, uint16_t a_id, TSK_OFF_T a_offset,\n    char *a_buf, size_t a_len, TSK_FS_FILE_READ_FLAG_ENUM
      a_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:529,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:530,1
    - Dst: tsk_fs_file_attr_get
      Src: /src/sleuthkit/tsk/fs/fs_file.c:534,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/tsk/fs/fs_file.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - a_fs_file
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 521
    functionDepth: 5
    functionLinenumber: 521
    functionLinenumberEnd: 539
    functionName: tsk_fs_file_read
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 8
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - tsk_fs_file_attr_get
    - tsk_fs_attr_read
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_file_read(TSK_FS_FILE * a_fs_file,\n    TSK_OFF_T a_offset,
      char *a_buf, size_t a_len,\n    TSK_FS_FILE_READ_FLAG_ENUM a_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:553,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:554,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_file.c:561,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:562,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:563,1
    - Dst: TSK_FS_FILE*::fs_info::fread_owner_sid
      Src: /src/sleuthkit/tsk/fs/fs_file.c:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a_fs_file
    - sid_str
    argTypes:
    - TSK_FS_FILE*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: tsk_fs_file_get_owner_sid
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - TSK_FS_FILE*::fs_info::fread_owner_sid
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_file_get_owner_sid(TSK_FS_FILE * a_fs_file, char **sid_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/tsk/fs/fs_file.c:593,1
    - Dst: TSK_SHA_Update
      Src: /src/sleuthkit/tsk/fs/fs_file.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - file
    - offset
    - addr
    - buf
    - size
    - a_flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 604
    functionName: tsk_fs_file_hash_calc_callback
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - TSK_MD5_Update
    - TSK_SHA_Update
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_file_hash_calc_callback(TSK_FS_FILE * file,
      TSK_OFF_T offset,\n    TSK_DADDR_T addr, char *buf, size_t size,\n    TSK_FS_BLOCK_FLAG_ENUM
      a_flags, void *ptr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:622,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:623,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:628,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:629,1
    - Dst: TSK_MD5_Init
      Src: /src/sleuthkit/tsk/fs/fs_file.c:635,1
    - Dst: TSK_SHA_Init
      Src: /src/sleuthkit/tsk/fs/fs_file.c:638,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/fs_file.c:642,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_file.c:644,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_file.c:645,1
    - Dst: TSK_MD5_Final
      Src: /src/sleuthkit/tsk/fs/fs_file.c:651,1
    - Dst: TSK_SHA_Final
      Src: /src/sleuthkit/tsk/fs/fs_file.c:655,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - a_fs_file
    - a_hash_results
    - a_flags
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_HASH_RESULTS*
    - TSK_BASE_HASH_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 614
    functionDepth: 6
    functionLinenumber: 614
    functionLinenumberEnd: 660
    functionName: tsk_fs_file_hash_calc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_file.c
    functionUses: 0
    functionsReached:
    - TSK_SHA_Final
    - TSK_MD5_Final
    - TSK_SHA_Init
    - tsk_error_set_errstr
    - TSK_MD5_Init
    - tsk_error_set_errno
    - tsk_fs_file_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_file_hash_calc(TSK_FS_FILE * a_fs_file,\n    TSK_FS_HASH_RESULTS
      * a_hash_results, TSK_BASE_HASH_ENUM a_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:20,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:21,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' obj_root'
    - oid
    argTypes:
    - APFSObjectBtreeNode
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: checked_find_paddr
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - find
    - end
    linkageType: ''
    returnType: apfs_block_num
    signature: "apfs_block_num checked_find_paddr(APFSObjectBtreeNode& obj_root,\n
      \                                        uint64_t oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_find_paddr
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:33,1
    - Dst: key::get
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' pool'
    - obj_omap
    - root_tree_oid
    - ' crypto'
    argTypes:
    - APFSPool
    - apfs_block_num
    - uint64_t
    - APFSFileSystem::crypto_info_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: APFSJObjTree::APFSJObjTree
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - key::get
    - checked_find_paddr
    linkageType: ''
    returnType: void
    signature: "void APFSJObjTree::APFSJObjTree(const APFSPool& pool, apfs_block_num
      obj_omap,\n                           uint64_t root_tree_oid,\n                           const
      APFSFileSystem::crypto_info_t& crypto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:38,1
    - Dst: pool
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:39,1
    - Dst: fs
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:39,1
    - Dst: root_block
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:39,1
    - Dst: rdo
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:40,1
    - Dst: crypto_info
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vol'
    argTypes:
    - APFSFileSystem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: APFSJObjTree::APFSJObjTree
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - fs
    - rdo
    - root_block
    - pool
    - crypto_info
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree::APFSJObjTree(const APFSFileSystem& vol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snapshot
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:43,1
    - Dst: checked_find_paddr
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:48,1
    - Dst: ~APFSJObjBtreeNode
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:49,1
    - Dst: key::get
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:51,1
    - Dst: APFSJObjBtreeNode::APFSJObjBtreeNode
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:51,1
    - Dst: APFSJObjBtreeNode::APFSJObjBtreeNode
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - snap_xid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: APFSJObjTree::set_snapshot
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - APFSJObjBtreeNode::APFSJObjBtreeNode
    - key::get
    - ~APFSJObjBtreeNode
    - snapshot
    - checked_find_paddr
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree::set_snapshot(uint64_t snap_xid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:59,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:60,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:60,1
    - Dst: std::make_unique<aes_xts_decryptor>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:64,1
    - Dst: get
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' crypto'
    argTypes:
    - APFSFileSystem::crypto_info_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: APFSJObjTree::crypto::crypto(const APFSFileSystem::crypto_info_t&
      crypto)
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - get
    - std::make_unique<uint8_t[]>
    - std::make_unique<aes_xts_decryptor>
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree::crypto::crypto(const APFSFileSystem::crypto_info_t&
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' jobjs'
    argTypes:
    - std::pair<jit, jit>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: APFSJObject::APFSJObject
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObject::APFSJObject(const std::pair<jit, jit>& jobjs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:74,1
    - Dst: APFSJObject::add_entry
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - jit
    - jit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: APFSJObject::APFSJObject
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 1
    functionsReached:
    - std::for_each
    - APFSJObject::add_entry
    linkageType: ''
    returnType: void
    signature: void APFSJObject::APFSJObject(const jit& start, const jit& end)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: key::template as<key_type>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:78,1
    - Dst: auto::type
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:80,1
    - Dst: value::template as<apfs_inode>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:83,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:87,1
    - Dst: value::count
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:91,1
    - Dst: reinterpret_cast<const apfs_xfield*>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:95,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:106,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:116,1
    - Dst: reinterpret_cast<const apfs_dstream*>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:121,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:146,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:150,1
    - Dst: key::template as<dir_record_key>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:156,1
    - Dst: value::template as<apfs_dir_record>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:157,1
    - Dst: emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:159,1
    - Dst: std::string
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:160,1
    - Dst: auto::name_len
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:160,1
    - Dst: key::template as<file_extent_key>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:170,1
    - Dst: value::template as<apfs_file_extent>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:171,1
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:173,1
    - Dst: emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:176,1
    - Dst: key::template as<xattr_key>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:188,1
    - Dst: value::template as<apfs_xattr>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:189,1
    - Dst: value::template as<ixattr>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:198,1
    - Dst: emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:199,1
    - Dst: value::template as<nrattr>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:213,1
    - Dst: emplace_back
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:215,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - jit::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 224
    functionName: APFSJObject::add_entry
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const char*>
    - bitfield_value
    - auto::type
    - std::string
    - value::count
    - key::template as<xattr_key>
    - value::template as<apfs_file_extent>
    - key::template as<file_extent_key>
    - auto::name_len
    - value::template as<nrattr>
    - reinterpret_cast<const apfs_dstream*>
    - reinterpret_cast<const apfs_xfield*>
    - value::template as<apfs_dir_record>
    - key::template as<dir_record_key>
    - value::template as<ixattr>
    - emplace_back
    - value::template as<apfs_inode>
    - key::template as<key_type>
    - value::template as<apfs_xattr>
    - auto::oid
    linkageType: ''
    returnType: void
    signature: void APFSJObject::add_entry(const jit::value_type& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: name_len
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 1
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t name_len() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_value
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: hash
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 16
    functionsReached:
    - bitfield_value
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: APFSJObjTree::begin
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSJObjTree::iterator
    signature: APFSJObjTree::iterator APFSJObjTree::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: APFSJObjTree::end
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: APFSJObjTree::iterator
    signature: APFSJObjTree::iterator APFSJObjTree::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APFSJObjTree*::jobjs
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:234,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tree
    - oid
    argTypes:
    - APFSJObjTree*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: APFSJObjTree::iterator::iterator(const APFSJObjTree* tree, uint64_t
      oid)
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - APFSJObjTree*::jobjs
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree::iterator::iterator(const APFSJObjTree* tree, uint64_t
      oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tree
    argTypes:
    - APFSJObjTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: APFSJObjTree::iterator::iterator(const APFSJObjTree* tree) noexcept
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void APFSJObjTree::iterator::iterator(const APFSJObjTree* tree) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _jobj_root::end
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:243,1
    - Dst: key::template as<APFSJObject::key_type>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:249,1
    - Dst: std::find_if
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:251,1
    - Dst: _jobj_root::end
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:253,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:253,1
    - Dst: key::template as<APFSJObject::key_type>
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:254,1
    - Dst: auto::oid
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:255,1
    - Dst: std::move
      Src: /src/sleuthkit/tsk/fs/apfs_fs.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: '& APFSJObjTree::iterator::operator++()'
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    functionUses: 0
    functionsReached:
    - key::template as<APFSJObject::key_type>
    - _jobj_root::end
    - std::find_if
    - std::move
    - auto::oid
    linkageType: ''
    returnType: APFSJObjTree::iterator
    signature: APFSJObjTree::iterator & APFSJObjTree::iterator::operator++()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:43,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:44,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:45,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:46,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: icat_action
    functionSourceFile: /src/sleuthkit/tsk/fs/icat_lib.c
    functionUses: 0
    functionsReached:
    - fwrite
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - strerror
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM icat_action(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
      TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM flags,
      void *ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:63,1
    - Dst: _fileno
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:63,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:64,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:65,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:66,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:68,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:72,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:81,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:83,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:88,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:89,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/icat_lib.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - fs
    - inum
    - type
    - type_used
    - id
    - id_used
    - flags
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_FS_ATTR_TYPE_ENUM
    - uint8_t
    - uint16_t
    - uint8_t
    - TSK_FS_FILE_WALK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 98
    functionName: tsk_fs_icat
    functionSourceFile: /src/sleuthkit/tsk/fs/icat_lib.c
    functionUses: 0
    functionsReached:
    - _setmode
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_file_walk_type
    - _fileno
    - tsk_error_set_errno
    - tsk_fs_file_open_meta
    - tsk_fs_file_walk
    - tsk_fs_file_close
    - strerror
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_icat(TSK_FS_INFO * fs, TSK_INUM_T inum,\n    TSK_FS_ATTR_TYPE_ENUM
      type, uint8_t type_used,\n    uint16_t id, uint8_t id_used, TSK_FS_FILE_WALK_FLAG_ENUM
      flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:140,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:141,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:159,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:160,1
    - Dst: hfs_unicode_compare_int
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - hfs
    - uni1
    - uni1_len
    - uni2
    argTypes:
    - HFS_INFO*
    - hfs_uni_str*
    - int
    - hfs_uni_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 174
    functionName: hfs_unicode_compare
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_unicompare.c
    functionUses: 1
    functionsReached:
    - hfs_unicode_compare_int
    - tsk_getu16
    linkageType: ''
    returnType: int
    signature: "int hfs_unicode_compare(HFS_INFO * hfs, const hfs_uni_str * uni1,\n
      \   int uni1_len, const hfs_uni_str * uni2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:203,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:204,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:221,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/hfs_unicompare.c:230,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - endian
    - uni1
    - uni1_len
    - uni2
    argTypes:
    - uint16_t
    - hfs_uni_str*
    - int
    - hfs_uni_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 246
    functionName: hfs_unicode_compare_int
    functionSourceFile: /src/sleuthkit/tsk/fs/hfs_unicompare.c
    functionUses: 1
    functionsReached:
    - tsk_getu16
    linkageType: ''
    returnType: int
    signature: "int hfs_unicode_compare_int(uint16_t endian, const hfs_uni_str * uni1,\n
      \   int uni1_len, const hfs_uni_str * uni2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:51,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:52,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:53,1
    - Dst: strcpy
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:57,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:63,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:64,1
    - Dst: time
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:65,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: print_list_head
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    - tsk_fprintf
    - time
    - strcpy
    - gethostname
    - strerror
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t print_list_head(TSK_FS_INFO * fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fs_block
    - ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: print_list
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_list(const TSK_FS_BLOCK * fs_block, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:86,1
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:89,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:91,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:92,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:93,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fs_block
    - ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: print_block
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - fwrite
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - strerror
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_block(const TSK_FS_BLOCK * fs_block, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:119,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:133,1
    - Dst: fwrite
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:136,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:137,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:138,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:139,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: slack_file_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - fwrite
    - memset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - strerror
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags, void *ptr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:155,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:161,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:163,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:166,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:169,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:177,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:180,1
    - Dst: tsk_fs_file_walk_type
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:186,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:190,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - fs_file
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 200
    functionName: slack_inode_act
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_fprintf
    - tsk_error_reset
    - tsk_fs_file_walk_type
    - tsk_fs_file_walk
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_attr_getsize
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM slack_inode_act(TSK_FS_FILE * fs_file, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_INFO*::inode_walk
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:214,1
    - Dst: print_list_head
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:219,1
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:223,1
    - Dst: _setmode
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:229,1
    - Dst: _fileno
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:229,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:230,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:231,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:232,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:234,1
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/tsk/fs/dls_lib.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - fs
    - a_blklsflags
    - bstart
    - blast
    - a_block_flags
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_BLKLS_FLAG_ENUM
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 244
    functionName: tsk_fs_blkls
    functionSourceFile: /src/sleuthkit/tsk/fs/dls_lib.c
    functionUses: 0
    functionsReached:
    - _setmode
    - TSK_FS_INFO*::inode_walk
    - tsk_error_set_errstr
    - tsk_error_reset
    - print_list_head
    - _fileno
    - tsk_error_set_errno
    - strerror
    - tsk_fs_block_walk
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_blkls(TSK_FS_INFO * fs, TSK_FS_BLKLS_FLAG_ENUM a_blklsflags,\n
      \   TSK_DADDR_T bstart, TSK_DADDR_T blast,\n    TSK_FS_BLOCK_WALK_FLAG_ENUM
      a_block_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: tsk_fs_attrlist_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 10
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_ATTRLIST
    signature: 'TSK_FS_ATTRLIST *

      tsk_fs_attrlist_alloc()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_free
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:49,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a_fs_attrlist
    argTypes:
    - TSK_FS_ATTRLIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: tsk_fs_attrlist_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 1
    functionsReached:
    - tsk_fs_attr_free
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_attrlist_free(TSK_FS_ATTRLIST * a_fs_attrlist)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:67,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:68,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:69,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:86,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:87,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - a_fs_attrlist
    - a_fs_attr
    argTypes:
    - TSK_FS_ATTRLIST*
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 101
    functionName: tsk_fs_attrlist_add
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attrlist_add(TSK_FS_ATTRLIST * a_fs_attrlist,\n    TSK_FS_ATTR
      * a_fs_attr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:125,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:126,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:127,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:132,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:133,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:134,1
    - Dst: tsk_fs_attr_alloc
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:163,1
    - Dst: tsk_fs_attrlist_add
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:167,1
    - Dst: tsk_fs_attr_free
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - a_fs_attrlist
    - a_atype
    argTypes:
    - TSK_FS_ATTRLIST*
    - TSK_FS_ATTR_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 176
    functionName: tsk_fs_attrlist_getnew
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 18
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_attr_free
    - tsk_error_set_errno
    - tsk_fs_attrlist_add
    - tsk_fs_attr_alloc
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: "TSK_FS_ATTR *\ntsk_fs_attrlist_getnew(TSK_FS_ATTRLIST * a_fs_attrlist,\n
      \   TSK_FS_ATTR_FLAG_ENUM a_atype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_clear
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a_fs_attrlist
    argTypes:
    - TSK_FS_ATTRLIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: tsk_fs_attrlist_markunused
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 16
    functionsReached:
    - tsk_fs_attr_clear
    linkageType: ''
    returnType: void
    signature: void tsk_fs_attrlist_markunused(TSK_FS_ATTRLIST * a_fs_attrlist)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:217,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:218,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:219,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:242,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - a_fs_attrlist
    - a_type
    argTypes:
    - TSK_FS_ATTRLIST*
    - TSK_FS_ATTR_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: tsk_fs_attrlist_get
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 14
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: "TSK_FS_ATTR *\ntsk_fs_attrlist_get(const TSK_FS_ATTRLIST * a_fs_attrlist,\n
      \   TSK_FS_ATTR_TYPE_ENUM a_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:271,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:272,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:273,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:284,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - a_fs_attrlist
    - a_type
    - a_id
    argTypes:
    - TSK_FS_ATTRLIST*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: tsk_fs_attrlist_get_id
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 3
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: "TSK_FS_ATTR *\ntsk_fs_attrlist_get_id(const TSK_FS_ATTRLIST * a_fs_attrlist,\n
      \   TSK_FS_ATTR_TYPE_ENUM a_type, uint16_t a_id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:316,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:317,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:318,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:330,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:345,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:355,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:356,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 3
    argNames:
    - a_fs_attrlist
    - a_type
    - name
    argTypes:
    - TSK_FS_ATTRLIST*
    - TSK_FS_ATTR_TYPE_ENUM
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 363
    functionName: tsk_fs_attrlist_get_name_type
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - strcmp
    - tsk_error_set_errno
    - strcasecmp
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: "TSK_FS_ATTR *\ntsk_fs_attrlist_get_name_type(const TSK_FS_ATTRLIST
      * a_fs_attrlist,\n    TSK_FS_ATTR_TYPE_ENUM a_type, const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:383,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:384,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:385,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:399,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a_fs_attrlist
    - a_idx
    argTypes:
    - TSK_FS_ATTRLIST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 403
    functionName: tsk_fs_attrlist_get_idx
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 2
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: 'TSK_FS_ATTR *

      tsk_fs_attrlist_get_idx(const TSK_FS_ATTRLIST * a_fs_attrlist, int a_idx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:421,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:422,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attrlist.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - a_fs_attrlist
    argTypes:
    - TSK_FS_ATTRLIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: tsk_fs_attrlist_get_len
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attrlist.c
    functionUses: 2
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: int
    signature: int tsk_fs_attrlist_get_len(const TSK_FS_ATTRLIST * a_fs_attrlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: isset
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isset(a,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: setbit
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setbit(a,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - x
    - ','
    - mag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: tsk_fs_guessu16
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_fs_guessu16(fs, x, mag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - x
    - ','
    - mag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: tsk_fs_guessu32
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tsk_fs_guessu32(fs, x, mag)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:69,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:71,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:78,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:81,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:82,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:84,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:86,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:107,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:108,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:112,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:114,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:116,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:120,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:126,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:127,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:129,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:139,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:146,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:149,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:160,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:161,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:165,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:166,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:178,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:185,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:188,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:196,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:199,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:200,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:205,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:206,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:208,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:210,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:212,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:213,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:219,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:221,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:221,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:224,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:226,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:229,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:233,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:235,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:236,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:238,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:240,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:244,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:248,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:251,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:254,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:255,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:257,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:258,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:264,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:268,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:274,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:278,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:283,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:293,1
    - Dst: FATFS_SECT_2_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:299,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:300,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:305,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:307,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:311,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:312,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:317,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:321,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:324,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:326,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:329,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:336,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:337,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:339,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:341,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:344,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:345,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:346,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:347,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:350,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:363,1
    - Dst: FATFS_ISBAD
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:366,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:371,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:373,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:375,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:377,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:381,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:384,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:385,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:396,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:399,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:402,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:413,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:414,1
    - Dst: FATFS_ISBAD
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:417,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:418,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:422,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 173
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 433
    functionName: fatxxfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs.c
    functionUses: 0
    functionsReached:
    - tsk_fs_read_block
    - FATFS_ISBAD
    - tsk_fprintf
    - FATFS_SECT_2_CLUST
    - tsk_error_reset
    - tsk_list_add
    - tsk_getu32
    - tsk_list_find
    - tsk_getu16
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_list_free
    - fatfs_getFAT
    - FATFS_CLUST_2_SECT
    - tsk_fs_read
    - tsk_error_set_errstr2
    - FATFS_ISEOF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatxxfs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:446,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:450,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:464,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:465,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:466,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:470,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:485,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:487,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:488,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:489,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:497,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:499,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:500,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:501,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:507,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:510,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:511,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:515,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:517,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:521,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:524,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:525,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:526,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:531,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:533,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:534,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:535,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:539,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:599,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:600,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:601,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:604,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:611,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:612,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:613,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:616,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:621,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:622,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:623,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:626,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:637,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:638,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:639,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:642,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:654,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:658,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:659,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:661,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:667,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:672,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:673,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:675,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:687,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:688,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:689,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:693,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:712,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:713,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:714,1
    - Dst: FATFS_CLUST_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:724,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:725,1
    - Dst: FATFS_SECT_2_INODE
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:762,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:762,1
    - Dst: FATFS_NUM_VIRT_FILES
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:763,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:820,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:821,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:830,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:836,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:844,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:846,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 233
    argCount: 1
    argNames:
    - fatfs
    argTypes:
    - FATFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 849
    functionName: fatxxfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs.c
    functionUses: 1
    functionsReached:
    - FATFS_SECT_2_INODE
    - tsk_init_lock
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - tsk_fs_dir_open_meta
    - tsk_getu32
    - tsk_getu16
    - FATFS_NUM_VIRT_FILES
    - tsk_error_set_errno
    - FATFS_CLUST_2_SECT
    - tsk_fs_read
    - tsk_error_set_errstr2
    - tsk_fs_dir_close
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatxxfs_open(FATFS_INFO *fatfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatxxfs.c:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fatfs
    - clust
    argTypes:
    - FATFS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 852
    functionDepth: 5
    functionLinenumber: 852
    functionLinenumberEnd: 863
    functionName: fatxxfs_is_cluster_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs.c
    functionUses: 0
    functionsReached:
    - fatfs_getFAT
    linkageType: ''
    returnType: int8_t
    signature: int8_t fatxxfs_is_cluster_alloc(FATFS_INFO *fatfs, TSK_DADDR_T clust)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:38,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:39,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:42,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:43,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:45,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - a_ptr
    - a_param_name
    - a_func_name
    argTypes:
    - void*
    - char*
    - char*
    assertStmts:
    - condition: (a_param_name != NULL)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_func_name != NULL)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    constantsTouched: []
    func_position:
      end: 55
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: fatfs_ptr_arg_is_null
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 27
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_ptr_arg_is_null(void *a_ptr, const char *a_param_name,
      const char *a_func_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:72,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a_fatfs
    - a_inum
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: fatfs_inum_is_in_range
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 15
    functionsReached:
    - fatfs_ptr_arg_is_null
    - assert
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_inum_is_in_range(FATFS_INFO *a_fatfs, TSK_INUM_T a_inum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:103,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:104,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:106,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:110,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:111,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:112,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:114,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - a_fatfs
    - a_inum
    - a_func_name
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - char*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_func_name != NULL)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: fatfs_inum_arg_is_in_range
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 8
    functionsReached:
    - assert
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatfs_inum_arg_is_in_range(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_inum, const char *a_func_name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:145,1
    - Dst: mktime
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:182,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - date
    - time
    - timetens
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 198
    functionName: fatfs_dos_2_unix_time
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 1
    functionsReached:
    - memset
    - mktime
    - tsk_fprintf
    linkageType: ''
    returnType: time_t
    signature: time_t fatfs_dos_2_unix_time(uint16_t date, uint16_t time, uint8_t
      timetens)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timetens
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: fatfs_dos_2_nanosec
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fatfs_dos_2_nanosec(uint8_t timetens)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:227,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    constantsTouched: []
    func_position:
      end: 237
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 237
    functionName: fatfs_cleanup_ascii
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 1
    functionsReached:
    - fatfs_ptr_arg_is_null
    - assert
    linkageType: ''
    returnType: void
    signature: void fatfs_cleanup_ascii(char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:269,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:270,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:271,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:272,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:273,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:274,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:276,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:280,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:288,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:296,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:304,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:307,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:308,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatfs_utils.c:309,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 7
    argNames:
    - a_fatfs
    - a_src
    - a_src_len
    - a_dest
    - a_dest_len
    - a_inum
    - a_desc
    argTypes:
    - FATFS_INFO*
    - UTF16*
    - size_t
    - UTF8*
    - size_t
    - TSK_INUM_T
    - char*
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_src_len > 0)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_dest != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_src != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_dest_len > 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    - condition: (a_desc != NULL)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
    constantsTouched: []
    func_position:
      end: 321
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 321
    functionName: fatfs_utf16_inode_str_2_utf8
    functionSourceFile: /src/sleuthkit/tsk/fs/fatfs_utils.c
    functionUses: 5
    functionsReached:
    - assert
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_UTF16toUTF8
    - tsk_error_set_errno
    - fatfs_ptr_arg_is_null
    linkageType: ''
    returnType: TSKConversionResult
    signature: TSKConversionResult fatfs_utf16_inode_str_2_utf8(FATFS_INFO *a_fatfs,
      UTF16 *a_src, size_t a_src_len, UTF8 *a_dest, size_t a_dest_len, TSK_INUM_T
      a_inum, const char *a_desc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:62,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:67,1
    - Dst: tsk_fs_file_hash_calc
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:73,1
    - Dst: tsk_fs_name_print_mac_md5
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:75,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:78,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:83,1
    - Dst: tsk_fs_name_print_mac_md5
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:84,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:87,1
    - Dst: tsk_fs_name_print_mac
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:91,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:93,1
    - Dst: tsk_fs_name_print_long
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:97,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:100,1
    - Dst: tsk_fs_name_print
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:103,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - fs_file
    - a_path
    - fs_attr
    - fls_data
    argTypes:
    - TSK_FS_FILE*
    - char*
    - TSK_FS_ATTR*
    - FLS_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 107
    functionName: printit
    functionSourceFile: /src/sleuthkit/tsk/fs/fls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_hash_calc
    - tsk_fs_name_print_mac_md5
    - memset
    - tsk_fs_name_print_long
    - tsk_printf
    - tsk_fprintf
    - tsk_fs_name_print_mac
    - tsk_fs_name_print
    linkageType: ''
    returnType: void
    signature: "void printit(TSK_FS_FILE * fs_file, const char *a_path,\n    const
      TSK_FS_ATTR * fs_attr, const FLS_DATA * fls_data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:123,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:125,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:132,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:138,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:141,1
    - Dst: printit
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:161,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:170,1
    - Dst: printit
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:172,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:183,1
    - Dst: printit
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:185,1
    - Dst: printit
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:192,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:198,1
    - Dst: printit
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:200,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 35
    argCount: 3
    argNames:
    - fs_file
    - a_path
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 204
    functionName: print_dent_act
    functionSourceFile: /src/sleuthkit/tsk/fs/fls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - TSK_FS_ISDOT
    - printit
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_attr_getsize
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM print_dent_act(TSK_FS_FILE * fs_file, const char
      *a_path, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:224,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:225,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:226,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:234,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:235,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:238,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:239,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:240,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:247,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:254,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:256,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tsk/fs/fls_lib.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 6
    argNames:
    - fs
    - lclflags
    - inode
    - flags
    - tpre
    - skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FLS_FLAG_ENUM
    - TSK_INUM_T
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_TCHAR*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 264
    functionName: tsk_fs_fls
    functionSourceFile: /src/sleuthkit/tsk/fs/fls_lib.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_dir_walk
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_UTF16toUTF8_lclorder
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_fls(TSK_FS_INFO * fs, TSK_FS_FLS_FLAG_ENUM lclflags,\n
      \   TSK_INUM_T inode, TSK_FS_DIR_WALK_FLAG_ENUM flags, TSK_TCHAR * tpre,\n    int32_t
      skew)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:49,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:77,1
    - Dst: tsk_fs_attr_append_run
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:88,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - fs
    - fs_attr
    - addrs
    - addr_len
    - length
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - TSK_DADDR_T*
    - size_t
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 104
    functionName: unix_make_data_run_direct
    functionSourceFile: /src/sleuthkit/tsk/fs/unix_misc.c
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISFFS
    - tsk_fs_attr_append_run
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_OFF_T
    signature: "TSK_OFF_T unix_make_data_run_direct(TSK_FS_INFO * fs, TSK_FS_ATTR
      * fs_attr,\n    TSK_DADDR_T * addrs, size_t addr_len, TSK_OFF_T length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:134,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:138,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:149,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:150,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:151,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:157,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:169,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:175,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:178,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:179,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:181,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:183,1
    - Dst: tsk_fs_attr_append_run
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:189,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:196,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:201,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:209,1
    - Dst: unix_make_data_run_direct
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:216,1
    - Dst: unix_make_data_run_indirect
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:227,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 7
    argNames:
    - fs
    - fs_attr
    - fs_attr_indir
    - buf
    - level
    - addr
    - length
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - TSK_FS_ATTR*
    - char*[]
    - int
    - TSK_DADDR_T
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 242
    functionName: unix_make_data_run_indirect
    functionSourceFile: /src/sleuthkit/tsk/fs/unix_misc.c
    functionUses: 1
    functionsReached:
    - memset
    - tsk_fs_read_block
    - tsk_fprintf
    - tsk_fs_attr_append_run
    - tsk_error_set_errstr
    - tsk_error_reset
    - unix_make_data_run_indirect
    - tsk_getu32
    - TSK_FS_TYPE_ISEXT
    - TSK_FS_TYPE_ISFFS
    - free
    - tsk_error_set_errno
    - tsk_getu64
    - tsk_error_set_errstr2
    - unix_make_data_run_direct
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: TSK_OFF_T
    signature: "TSK_OFF_T unix_make_data_run_indirect(TSK_FS_INFO * fs, TSK_FS_ATTR
      * fs_attr,\n    TSK_FS_ATTR * fs_attr_indir, char *buf[], int level, TSK_DADDR_T
      addr,\n    TSK_OFF_T length)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:259,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:262,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:277,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:280,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:283,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:284,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:285,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:286,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:292,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:295,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:301,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:303,1
    - Dst: unix_make_data_run_direct
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:309,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:314,1
    - Dst: TSK_FS_TYPE_ISFFS
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:336,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:363,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:388,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:399,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:406,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:409,1
    - Dst: unix_make_data_run_indirect
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:417,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:428,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:435,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 442
    functionName: tsk_fs_unix_make_data_run
    functionSourceFile: /src/sleuthkit/tsk/fs/unix_misc.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - unix_make_data_run_indirect
    - tsk_fs_attr_set_run
    - TSK_FS_TYPE_ISEXT
    - TSK_FS_TYPE_ISFFS
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - tsk_malloc
    - tsk_fs_attrlist_markunused
    - free
    - tsk_fs_attrlist_getnew
    - unix_make_data_run_direct
    - roundup
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_unix_make_data_run(TSK_FS_FILE * fs_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: tsk_fs_unix_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/unix_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM tsk_fs_unix_get_default_attr_type(const TSK_FS_FILE
      * a_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/unix_misc.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_fs_info
    - s1
    - s2
    argTypes:
    - TSK_FS_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 456
    functionName: tsk_fs_unix_name_cmp
    functionSourceFile: /src/sleuthkit/tsk/fs/unix_misc.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int tsk_fs_unix_name_cmp(TSK_FS_INFO * a_fs_info, const char *s1,\n
      \   const char *s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apfs_open
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - img_info
    - offset
    - fstype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: apfs_open_auto_detect
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_open.cpp
    functionUses: 0
    functionsReached:
    - apfs_open
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO * apfs_open_auto_detect(TSK_IMG_INFO * img_info, TSK_OFF_T
      offset,\n    TSK_FS_TYPE_ENUM fstype, const char* a_pass, uint8_t test)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:24,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:27,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:28,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:29,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:35,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:36,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:37,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:42,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:43,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:44,1
    - Dst: APFSFSCompat::APFSFSCompat
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:49,1
    - Dst: auto::fs_info
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:50,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:52,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:53,1
    - Dst: what
      Src: /src/sleuthkit/tsk/fs/apfs_open.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - img_info
    - offset
    - fstype
    - pass
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 56
    functionName: apfs_open
    functionSourceFile: /src/sleuthkit/tsk/fs/apfs_open.cpp
    functionUses: 3
    functionsReached:
    - what
    - tsk_error_set_errstr
    - tsk_error_reset
    - APFSFSCompat::APFSFSCompat
    - auto::fs_info
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO * apfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,\n
      \                      TSK_FS_TYPE_ENUM fstype, const char* pass)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:86,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:87,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:88,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:94,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:95,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - obj_id
    - version_num
    - inode
    argTypes:
    - uint32_t
    - uint32_t
    - TSK_INUM_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: yaffscache_obj_id_and_version_to_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_obj_id_and_version_to_inode(uint32_t obj_id,
      uint32_t version_num, TSK_INUM_T *inode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inode
    - obj_id
    - version_num
    argTypes:
    - TSK_INUM_T
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: yaffscache_inode_to_obj_id_and_version
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_inode_to_obj_id_and_version(TSK_INUM_T inode,
      uint32_t *obj_id, uint32_t *version_num)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - curr
    - addee_obj_id
    - addee_offset
    - addee_seq_number
    argTypes:
    - YaffsCacheChunk*
    - uint32_t
    - TSK_OFF_T
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 147
    functionName: yaffscache_chunk_compare
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yaffscache_chunk_compare(YaffsCacheChunk *curr, uint32_t addee_obj_id,
      TSK_OFF_T addee_offset, uint32_t addee_seq_number)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: YAFFSFS_INFO*::chunkMap::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:155,1
    - Dst: YAFFSFS_INFO*::chunkMap::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:155,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:156,1
    - Dst: YAFFSFS_INFO*::chunkMap::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:160,1
    - Dst: std::make_pair
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:160,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:163,1
    - Dst: yaffscache_chunk_compare
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - yfs
    - obj_id
    - offset
    - seq_number
    - chunk
    argTypes:
    - YAFFSFS_INFO*
    - uint32_t
    - TSK_OFF_T
    - uint32_t
    - YaffsCacheChunk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 189
    functionName: yaffscache_chunk_find_insertion_point
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - YAFFSFS_INFO*::chunkMap::insert
    - fflush
    - YAFFSFS_INFO*::chunkMap::end
    - YAFFSFS_INFO*::chunkMap::find
    - yaffscache_chunk_compare
    - YAFFSFS_INFO*::chunkMap
    - std::make_pair
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_chunk_find_insertion_point(YAFFSFS_INFO
      *yfs, uint32_t obj_id, TSK_OFF_T offset, uint32_t seq_number, YaffsCacheChunk
      **chunk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:206,1
    - Dst: yaffscache_chunk_find_insertion_point
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:224,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:233,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:245,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 6
    argNames:
    - yfs
    - offset
    - seq_number
    - obj_id
    - chunk_id
    - parent_id
    argTypes:
    - YAFFSFS_INFO*
    - TSK_OFF_T
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 257
    functionName: yaffscache_chunk_add
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - yaffscache_chunk_find_insertion_point
    - YAFFSFS_INFO*::chunkMap
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM yaffscache_chunk_add(YAFFSFS_INFO *yfs, TSK_OFF_T
      offset, uint32_t seq_number,\n    uint32_t obj_id, uint32_t chunk_id, uint32_t
      parent_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - yfs
    - obj_id
    - obj
    argTypes:
    - YAFFSFS_INFO*
    - uint32_t
    - YaffsCacheObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 291
    functionName: yaffscache_object_find
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_object_find(YAFFSFS_INFO *yfs, uint32_t
      obj_id, YaffsCacheObject **obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_object_find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:311,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - yfs
    - obj_id
    - obj
    argTypes:
    - YAFFSFS_INFO*
    - uint32_t
    - YaffsCacheObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 333
    functionName: yaffscache_object_find_or_add
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - yaffscache_object_find
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_object_find_or_add(YAFFSFS_INFO *yfs, uint32_t
      obj_id, YaffsCacheObject **obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:366,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:370,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:391,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - obj
    - chunk
    argTypes:
    - YaffsCacheObject*
    - YaffsCacheChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 405
    functionName: yaffscache_object_add_version
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - free
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_object_add_version(YaffsCacheObject *obj,
      YaffsCacheChunk *chunk)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_object_find_or_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:418,1
    - Dst: yaffscache_object_add_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:426,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:458,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:462,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:464,1
    - Dst: yaffscache_object_add_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:472,1
    - Dst: yaffscache_object_add_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:477,1
    - Dst: yaffscache_object_add_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:482,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - yfs
    - chunk
    argTypes:
    - YAFFSFS_INFO*
    - YaffsCacheChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 487
    functionName: yaffscache_versions_insert_chunk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_object_find_or_add
    - yaffscache_object_add_version
    - yaffsfs_read_header
    - strncmp
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_versions_insert_chunk(YAFFSFS_INFO *yfs,
      YaffsCacheChunk *chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YAFFSFS_INFO*::chunkMap::begin
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:493,1
    - Dst: YAFFSFS_INFO*::chunkMap::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:493,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:494,1
    - Dst: yaffscache_versions_insert_chunk
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - yfs
    argTypes:
    - YAFFSFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: yaffscache_versions_compute
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_versions_insert_chunk
    - YAFFSFS_INFO*::chunkMap::begin
    - YAFFSFS_INFO*::chunkMap
    - YAFFSFS_INFO*::chunkMap::end
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_versions_compute(YAFFSFS_INFO *yfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_inode_to_obj_id_and_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:530,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - yfs
    - parent_inode
    - cb
    - args
    argTypes:
    - YAFFSFS_INFO*
    - TSK_INUM_T
    - yc_find_children_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 553
    functionName: yaffscache_find_children
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_inode_to_obj_id_and_version
    - cb
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_find_children(YAFFSFS_INFO *yfs, TSK_INUM_T
      parent_inode, yc_find_children_cb cb, void *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_inode_to_obj_id_and_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:574,1
    - Dst: yaffscache_object_find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - yfs
    - inode
    - version
    - obj_ret
    argTypes:
    - YAFFSFS_INFO*
    - TSK_INUM_T
    - YaffsCacheVersion**
    - YaffsCacheObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 608
    functionName: yaffscache_version_find_by_inode
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_inode_to_obj_id_and_version
    - yaffscache_object_find
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffscache_version_find_by_inode(YAFFSFS_INFO *yfs,
      TSK_INUM_T inode, YaffsCacheVersion **version, YaffsCacheObject **obj_ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:616,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:620,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - fp
    - obj
    argTypes:
    - FILE*
    - YaffsCacheObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 636
    functionName: yaffscache_object_dump
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void yaffscache_object_dump(FILE *fp, YaffsCacheObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - yfs
    - obj_count
    - obj_first
    - obj_last
    - version_count
    - version_first
    - version_last
    argTypes:
    - YAFFSFS_INFO*
    - unsigned int*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 683
    functionName: yaffscache_objects_stats
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void yaffscache_objects_stats(YAFFSFS_INFO *yfs, \n    unsigned int
      *obj_count,\n    uint32_t *obj_first, uint32_t *obj_last,\n    uint32_t *version_count,\n
      \   uint32_t *version_first, uint32_t *version_last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:697,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - yfs
    argTypes:
    - YAFFSFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 704
    functionName: yaffscache_objects_free
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void yaffscache_objects_free(YAFFSFS_INFO *yfs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YAFFSFS_INFO*::chunkMap::begin
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:712,1
    - Dst: YAFFSFS_INFO*::chunkMap::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:712,1
    - Dst: YAFFSFS_INFO*::chunkMap
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:713,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:717,1
    - Dst: YAFFSFS_INFO*::chunkMap::clear
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - yfs
    argTypes:
    - YAFFSFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 726
    functionName: yaffscache_chunks_free
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - YAFFSFS_INFO*::chunkMap::begin
    - YAFFSFS_INFO*::chunkMap::end
    - free
    - YAFFSFS_INFO*::chunkMap::clear
    - YAFFSFS_INFO*::chunkMap
    linkageType: ''
    returnType: void
    signature: void yaffscache_chunks_free(YAFFSFS_INFO *yfs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:755,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:756,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:757,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:759,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:760,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:760,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:765,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:770,1
    - Dst: _fdopen
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:773,1
    - Dst: _open_osfhandle
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:773,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:775,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:776,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:777,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:779,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:780,1
    - Dst: fopen
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:784,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:785,1
    - Dst: fgets
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:790,1
    - Dst: strchr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:798,1
    - Dst: strtok
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:806,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:808,1
    - Dst: tolower
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:809,1
    - Dst: strtok
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:814,1
    - Dst: isspace
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:816,1
    - Dst: tolower
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:817,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:823,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:823,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:825,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:826,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:827,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:828,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:829,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:830,1
    - Dst: fclose
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:838,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:839,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - a_img_info
    - ' results'
    argTypes:
    - TSK_IMG_INFO*
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 841
    functionName: yaffs_load_config_file
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - fgets
    - free
    - tsk_error_set_errno
    - CloseHandle
    - TSTRNCPY
    - _open_osfhandle
    - strtok
    - strchr
    - isspace
    - CreateFile
    - tsk_error_reset
    - std::string::c_str
    - tsk_malloc
    - end
    - fopen
    - tsk_error_set_errstr
    - fclose
    - find
    - TSTRNCAT
    - _fdopen
    - tolower
    - TSTRLEN
    linkageType: ''
    returnType: YAFFS_CONFIG_STATUS
    signature: YAFFS_CONFIG_STATUS yaffs_load_config_file(TSK_IMG_INFO * a_img_info,
      std::map<std::string, std::string> & results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:856,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:861,1
    - Dst: isdigit
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - numStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 868
    functionName: yaffs_validate_integer_field
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - isdigit
    linkageType: ''
    returnType: int
    signature: int yaffs_validate_integer_field(std::string numStr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:886,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:887,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:888,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:889,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:890,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:891,1
    - Dst: std::set::begin
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:894,1
    - Dst: std::set::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:894,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:895,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:895,1
    - Dst: yaffs_validate_integer_field
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:896,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:897,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:898,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:899,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:900,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:907,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:907,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:910,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:910,1
    - Dst: find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:913,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:913,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:918,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:919,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:920,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:926,1
    - Dst: end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:926,1
    - Dst: std::set::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:927,1
    - Dst: std::set::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:927,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:928,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:929,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:930,1
    - Dst: std::map<std::string, std::string>::iterator::first::c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:931,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - ' paramMap'
    argTypes:
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 937
    functionName: yaffs_validate_config_file
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - std::set::end
    - std::set::find
    - std::map<std::string, std::string>::iterator::first::c_str
    - tsk_error_set_errstr
    - tsk_error_reset
    - find
    - std::set::insert
    - begin
    - yaffs_validate_integer_field
    - tsk_error_set_errno
    - end
    - std::set::begin
    - c_str
    linkageType: ''
    returnType: int
    signature: int yaffs_validate_config_file(std::map<std::string, std::string> &
      paramMap)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:991,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:997,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1002,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1003,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1037,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1071,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1097,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1101,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1102,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1107,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1116,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1138,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1152,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1166,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1180,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1222,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1243,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1259,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1267,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1275,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1276,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1286,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1289,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 184
    argCount: 2
    argNames:
    - yfs
    - maxBlocksToTest
    argTypes:
    - YAFFSFS_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 948
    functionDepth: 4
    functionLinenumber: 948
    functionLinenumberEnd: 1297
    functionName: yaffs_initialize_spare_format
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - fprintf
    - tsk_malloc
    - free
    - tsk_img_read
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffs_initialize_spare_format(YAFFSFS_INFO * yfs, TSK_OFF_T
      maxBlocksToTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1311,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1315,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1318,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1322,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1323,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1327,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1328,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1329,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1330,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1331,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1332,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1333,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1334,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1335,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1336,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1337,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1338,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - yfs
    - header
    - offset
    argTypes:
    - YAFFSFS_INFO*
    - YaffsHeader**
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1354
    functionName: yaffsfs_read_header
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 1
    functionsReached:
    - free
    - tsk_malloc
    - tsk_img_read
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_read_header(YAFFSFS_INFO *yfs, YaffsHeader ** header,
      TSK_OFF_T offset)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1384,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1389,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1390,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1391,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1392,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1396,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1400,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1406,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1410,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1418,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1419,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1420,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1442,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - yfs
    - spare
    - offset
    argTypes:
    - YAFFSFS_INFO*
    - YaffsSpare**
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1446
    functionName: yaffsfs_read_spare
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - memcpy
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_img_read
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_read_spare(YAFFSFS_INFO *yfs, YaffsSpare ** spare,
      TSK_OFF_T offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - spare
    argTypes:
    - YaffsSpare*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1462
    functionName: yaffsfs_is_spare_valid
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_is_spare_valid(YAFFSFS_INFO * /*yfs*/, YaffsSpare *spare)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1475,1
    - Dst: yaffsfs_read_spare
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1479,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - yfs
    - header
    - spare
    - offset
    argTypes:
    - YAFFSFS_INFO*
    - YaffsHeader**
    - YaffsSpare**
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1464
    functionDepth: 4
    functionLinenumber: 1464
    functionLinenumberEnd: 1486
    functionName: yaffsfs_read_chunk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffsfs_read_spare
    - yaffsfs_read_header
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_read_chunk(YAFFSFS_INFO *yfs,\n    YaffsHeader **header,
      YaffsSpare **spare, TSK_OFF_T offset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: yaffsfs_read_spare
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1505,1
    - Dst: yaffsfs_is_spare_valid
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1510,1
    - Dst: yaffscache_chunk_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1514,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1524,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1525,1
    - Dst: yaffscache_chunk_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1527,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1536,1
    - Dst: yaffscache_chunk_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1537,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1547,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1554,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1557,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1558,1
    - Dst: yaffscache_versions_compute
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1562,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1565,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1566,1
    - Dst: yaffscache_obj_id_and_version_to_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1590,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1597,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1598,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1599,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - yfs
    argTypes:
    - YAFFSFS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1491
    functionDepth: 7
    functionLinenumber: 1491
    functionLinenumberEnd: 1605
    functionName: yaffsfs_parse_image_load_cache
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffsfs_read_spare
    - yaffscache_obj_id_and_version_to_inode
    - fflush
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - yaffscache_versions_compute
    - memcpy
    - yaffscache_chunk_add
    - yaffsfs_is_spare_valid
    - tsk_error_set_errno
    - free
    - tsk_img_read
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_parse_image_load_cache(YAFFSFS_INFO * yfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1615,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - yfs
    - inode
    argTypes:
    - YAFFSFS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1610
    functionDepth: 4
    functionLinenumber: 1610
    functionLinenumberEnd: 1637
    functionName: yaffs_is_version_allocated
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_version_find_by_inode
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffs_is_version_allocated(YAFFSFS_INFO * yfs, TSK_INUM_T inode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1662,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1679,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1686,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1689,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - yaffsfs
    - a_fs_file
    - inode
    - name
    argTypes:
    - YAFFSFS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1645
    functionDepth: 5
    functionLinenumber: 1645
    functionLinenumberEnd: 1698
    functionName: yaffs_make_directory
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - tsk_malloc
    - tsk_fs_attrlist_alloc
    - tsk_fs_attrlist_markunused
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffs_make_directory(YAFFSFS_INFO *yaffsfs, TSK_FS_FILE *a_fs_file,
      \n    TSK_INUM_T inode, const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1710,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1727,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1733,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1736,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - yaffsfs
    - a_fs_file
    - inode
    - name
    argTypes:
    - YAFFSFS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1700
    functionDepth: 5
    functionLinenumber: 1700
    functionLinenumberEnd: 1746
    functionName: yaffs_make_regularfile
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - tsk_malloc
    - tsk_fs_attrlist_alloc
    - tsk_fs_attrlist_markunused
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffs_make_regularfile( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE
      * a_fs_file, \n    TSK_INUM_T inode, const char * name )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1762,1
    - Dst: yaffs_make_directory
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - yaffsfs
    - a_fs_file
    argTypes:
    - YAFFSFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1756
    functionDepth: 6
    functionLinenumber: 1756
    functionLinenumberEnd: 1767
    functionName: yaffs_make_deleted
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_make_directory
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffs_make_deleted( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE * a_fs_file
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1783,1
    - Dst: yaffs_make_directory
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - yaffsfs
    - a_fs_file
    argTypes:
    - YAFFSFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1777
    functionDepth: 6
    functionLinenumber: 1777
    functionLinenumberEnd: 1789
    functionName: yaffs_make_unlinked
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_make_directory
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffs_make_unlinked( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE *
      a_fs_file )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1803,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1808,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1810,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1811,1
    - Dst: yaffs_make_directory
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1815,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1816,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - yaffsfs
    - a_fs_file
    argTypes:
    - YAFFSFS_INFO*
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1799
    functionDepth: 6
    functionLinenumber: 1799
    functionLinenumberEnd: 1821
    functionName: yaffs_make_orphan_dir
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_fs_name_free
    - yaffs_make_directory
    - tsk_fs_dir_make_orphan_dir_name
    - tsk_fs_name_alloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffs_make_orphan_dir( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE
      * a_fs_file )
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1843,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1844,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1850,1
    - Dst: tsk_fs_meta_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1854,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1858,1
    - Dst: yaffs_make_unlinked
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1862,1
    - Dst: yaffs_make_deleted
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1866,1
    - Dst: yaffs_make_orphan_dir
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1871,1
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1875,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1878,1
    - Dst: yaffsfs_read_chunk
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1886,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1888,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1912,1
    - Dst: yaffs_make_regularfile
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1913,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1918,1
    - Dst: yaffs_make_directory
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1919,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1924,1
    - Dst: yaffs_make_regularfile
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1925,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1932,1
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1936,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1946,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1951,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1956,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1963,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1986,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1988,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1989,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1993,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1996,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:1997,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 123
    argCount: 3
    argNames:
    - a_fs
    - a_fs_file
    - inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1829
    functionDepth: 7
    functionLinenumber: 1829
    functionLinenumberEnd: 1999
    functionName: yaffs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - yaffs_make_deleted
    - tsk_fprintf
    - yaffs_make_regularfile
    - tsk_error_set_errstr
    - yaffscache_version_find_by_inode
    - tsk_fs_meta_reset
    - yaffs_make_orphan_dir
    - memcpy
    - tsk_fs_meta_alloc
    - yaffs_make_unlinked
    - yaffsfs_read_chunk
    - tsk_error_set_errno
    - yaffs_make_directory
    - tsk_malloc
    - strncpy
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffs_inode_lookup(TSK_FS_INFO *a_fs, TSK_FS_FILE * a_fs_file,\n
      \   TSK_INUM_T inum)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_inode_to_obj_id_and_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2030,1
    - Dst: yaffscache_inode_to_obj_id_and_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2032,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2035,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2036,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2037,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2046,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2063,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2066,1
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2073,1
    - Dst: yaffscache_obj_id_and_version_to_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2082,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2083,1
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2088,1
    - Dst: yaffs_inode_lookup
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2089,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2090,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2094,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2096,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2100,1
    - Dst: yaffscache_obj_id_and_version_to_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2107,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2108,1
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2112,1
    - Dst: yaffs_inode_lookup
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2113,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2114,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2118,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2120,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2124,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2138,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 6
    argNames:
    - fs
    - start_inum
    - end_inum
    - flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_INUM_T
    - TSK_FS_META_FLAG_ENUM
    - TSK_FS_META_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2011
    functionDepth: 8
    functionLinenumber: 2011
    functionLinenumberEnd: 2140
    functionName: yaffsfs_inode_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - tsk_fprintf
    - yaffscache_obj_id_and_version_to_inode
    - tsk_error_set_errstr
    - tsk_error_reset
    - yaffscache_version_find_by_inode
    - tsk_fs_meta_alloc
    - a_action
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_file_close
    - yaffscache_inode_to_obj_id_and_version
    - yaffs_inode_lookup
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_inode_walk(TSK_FS_INFO *fs, TSK_INUM_T start_inum,\n
      \   TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM flags,\n    TSK_FS_META_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: yaffsfs_read_spare
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2151,1
    - Dst: yaffsfs_is_spare_valid
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2156,1
    - Dst: yaffscache_object_find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2178,1
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2182,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2201,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2235,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2236,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2142
    functionDepth: 5
    functionLinenumber: 2142
    functionLinenumberEnd: 2238
    functionName: yaffsfs_block_getflags
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - yaffsfs_read_spare
    - yaffsfs_read_header
    - yaffscache_object_find
    - yaffsfs_is_spare_valid
    - free
    linkageType: ''
    returnType: TSK_FS_BLOCK_FLAG_ENUM
    signature: TSK_FS_BLOCK_FLAG_ENUM yaffsfs_block_getflags(TSK_FS_INFO *fs, TSK_DADDR_T
      a_addr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2257,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2263,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2264,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2265,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2271,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2272,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2273,1
    - Dst: tsk_fs_block_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2292,1
    - Dst: yaffsfs_block_getflags
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2300,1
    - Dst: tsk_fs_block_get
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2316,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2317,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2319,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2323,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2328,1
    - Dst: tsk_fs_block_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2336,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 6
    argNames:
    - a_fs
    - a_start_blk
    - a_end_blk
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_DADDR_T
    - TSK_DADDR_T
    - TSK_FS_BLOCK_WALK_FLAG_ENUM
    - TSK_FS_BLOCK_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2248
    functionDepth: 6
    functionLinenumber: 2248
    functionLinenumberEnd: 2338
    functionName: yaffsfs_block_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffsfs_block_getflags
    - tsk_fs_block_alloc
    - tsk_fs_block_get
    - tsk_error_set_errstr
    - tsk_error_reset
    - a_action
    - tsk_error_set_errno
    - tsk_fs_block_free
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_block_walk(TSK_FS_INFO *a_fs, TSK_DADDR_T a_start_blk,\n
      \   TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,\n    TSK_FS_BLOCK_WALK_CB
      a_action, void *a_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2343,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2344,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2340
    functionDepth: 3
    functionLinenumber: 2340
    functionLinenumberEnd: 2347
    functionName: yaffsfs_fscheck
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_fscheck(TSK_FS_INFO * /*fs*/, FILE * /*hFile*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2366,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2368,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2369,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2371,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2372,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2373,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2374,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2377,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2378,1
    - Dst: yaffscache_objects_stats
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2381,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2385,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2386,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2388,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - fs
    - hFile
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2358
    functionDepth: 4
    functionLinenumber: 2358
    functionLinenumberEnd: 2393
    functionName: yaffsfs_fsstat
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_objects_stats
    - tsk_error_reset
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2411,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - flags
    - a_ptr
    argTypes:
    - TSK_DADDR_T
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2403
    functionDepth: 4
    functionLinenumber: 2403
    functionLinenumberEnd: 2420
    functionName: print_addr_act
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM print_addr_act(YAFFSFS_INFO * /*fs_file*/, TSK_OFF_T
      /*a_off*/,\n    TSK_DADDR_T addr, char * /*buf*/, size_t /*size*/,\n    TSK_FS_BLOCK_FLAG_ENUM
      flags, void *a_ptr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2447,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2449,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2454,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2455,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2459,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2461,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2464,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2465,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2467,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2468,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2471,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2473,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2478,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2483,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2484,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2485,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2486,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2487,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2488,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2494,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2497,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2500,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2501,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2502,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2503,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2504,1
    - Dst: tsk_fs_time_to_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2505,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2508,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2509,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2516,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2521,1
    - Dst: tsk_fs_attr_print
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2524,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2525,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2526,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2527,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2535,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2537,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2538,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2539,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2542,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2546,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 6
    argNames:
    - fs
    - flags
    - hFile
    - inum
    - numblock
    - sec_skew
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ISTAT_FLAG_ENUM
    - FILE*
    - TSK_INUM_T
    - TSK_DADDR_T
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2433
    functionDepth: 6
    functionLinenumber: 2433
    functionLinenumberEnd: 2549
    functionName: yaffsfs_istat
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffsfs_read_header
    - tsk_error_print
    - tsk_fprintf
    - tsk_fs_attr_print
    - yaffscache_version_find_by_inode
    - tsk_error_reset
    - tsk_fs_time_to_str
    - tsk_fs_file_walk
    - tsk_fs_file_open_meta
    - tsk_fs_meta_make_ls
    - tsk_fs_file_attr_get_type
    - tsk_fs_file_close
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_istat(TSK_FS_INFO *fs, TSK_FS_ISTAT_FLAG_ENUM flags,
      FILE * hFile, TSK_INUM_T inum,\n    TSK_DADDR_T numblock, int32_t sec_skew)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_objects_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2561,1
    - Dst: yaffscache_chunks_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2562,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2552
    functionDepth: 2
    functionLinenumber: 2552
    functionLinenumberEnd: 2567
    functionName: yaffsfs_close
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffscache_chunks_free
    - yaffscache_objects_free
    - tsk_fs_free
    linkageType: ''
    returnType: void
    signature: void yaffsfs_close(TSK_FS_INFO *fs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: yaffscache_obj_id_and_version_to_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2588,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2595,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2598,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2602,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2603,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2609,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2613,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2617,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2621,1
    - Dst: yaffs_is_version_allocated
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2627,1
    - Dst: strrchr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2631,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2632,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2633,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2636,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2638,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2667,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2672,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2674,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2675,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2680,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 2
    argNames:
    - version
    - args
    argTypes:
    - YaffsCacheVersion*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2575
    functionDepth: 5
    functionLinenumber: 2575
    functionLinenumberEnd: 2683
    functionName: yaffs_dir_open_meta_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - yaffs_is_version_allocated
    - strncat
    - yaffsfs_read_header
    - yaffscache_obj_id_and_version_to_inode
    - fprintf
    - strrchr
    - tsk_fs_name_free
    - free
    - strncpy
    - tsk_fs_name_alloc
    - snprintf
    - tsk_fs_dir_add
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM yaffs_dir_open_meta_cb(YaffsCacheObject * /*obj*/,
      YaffsCacheVersion *version, void *args)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2697,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2698,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2699,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2704,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2705,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2706,1
    - Dst: tsk_fs_dir_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2713,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2716,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2721,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2724,1
    - Dst: tsk_fs_dir_find_orphans
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2725,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2728,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2734,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2735,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2736,1
    - Dst: yaffscache_inode_to_obj_id_and_version
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2741,1
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2751,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2754,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2755,1
    - Dst: yaffscache_find_children
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2769,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2774,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2778,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2779,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2783,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2787,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2788,1
    - Dst: tsk_fs_dir_make_orphan_dir_name
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2793,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2794,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2800,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2801,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2806,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 4
    argNames:
    - a_fs
    - a_fs_dir
    - a_addr
    - recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR**
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2685
    functionDepth: 4
    functionLinenumber: 2685
    functionLinenumberEnd: 2808
    functionName: yaffsfs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_alloc
    - tsk_fprintf
    - fprintf
    - tsk_error_set_errno
    - tsk_fs_dir_find_orphans
    - yaffscache_find_children
    - tsk_error_errstr2_concat
    - tsk_fs_file_open_meta
    - tsk_fs_dir_add
    - tsk_error_reset
    - tsk_fs_dir_reset
    - tsk_fs_name_free
    - yaffscache_inode_to_obj_id_and_version
    - tsk_fs_name_alloc
    - tsk_error_set_errstr
    - TSK_FS_ORPHANDIR_INUM
    - yaffscache_version_find_by_inode
    - tsk_fs_dir_make_orphan_dir_name
    - strncpy
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM yaffsfs_dir_open_meta(TSK_FS_INFO *a_fs, TSK_FS_DIR
      ** a_fs_dir,\n    TSK_INUM_T a_addr, int recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2810
    functionDepth: 0
    functionLinenumber: 2810
    functionLinenumberEnd: 2814
    functionName: yaffsfs_get_default_attr_type
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_ATTR_TYPE_ENUM
    signature: TSK_FS_ATTR_TYPE_ENUM yaffsfs_get_default_attr_type(const TSK_FS_FILE
      * /*a_file*/)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2835,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2836,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2855,1
    - Dst: tsk_fs_attrlist_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2858,1
    - Dst: tsk_fs_attrlist_getnew
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2861,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2875,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2877,1
    - Dst: tsk_fs_attr_set_run
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2890,1
    - Dst: roundup
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2892,1
    - Dst: yaffscache_version_find_by_inode
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2905,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2908,1
    - Dst: yaffscache_object_dump
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2914,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2923,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2925,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2927,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2931,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2936,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2938,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2943,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2945,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2956,1
    - Dst: tsk_fs_attr_add_run
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2959,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2965,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 1
    argNames:
    - file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2816
    functionDepth: 5
    functionLinenumber: 2816
    functionLinenumberEnd: 2968
    functionName: yaffsfs_load_attrs
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - roundup
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_fs_attr_run_alloc
    - yaffscache_version_find_by_inode
    - tsk_fs_attr_set_run
    - tsk_list_find
    - tsk_fs_attrlist_alloc
    - tsk_error_set_errno
    - tsk_list_free
    - yaffscache_object_dump
    - tsk_fs_attrlist_markunused
    - tsk_list_add
    - tsk_fs_attr_add_run
    - tsk_fs_attrlist_getnew
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_load_attrs(TSK_FS_FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2974,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2975,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2970
    functionDepth: 3
    functionLinenumber: 2970
    functionLinenumberEnd: 2978
    functionName: yaffsfs_jentry_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_jentry_walk(TSK_FS_INFO * /*info*/, int /*entry*/,\n
      \   TSK_FS_JENTRY_WALK_CB /*cb*/, void * /*fn*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2985,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2986,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2980
    functionDepth: 3
    functionLinenumber: 2980
    functionLinenumberEnd: 2989
    functionName: yaffsfs_jblk_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t yaffsfs_jblk_walk(TSK_FS_INFO * /*info*/, TSK_DADDR_T /*daddr*/,\n
      \   TSK_DADDR_T /*daddrt*/, int /*entry*/, TSK_FS_JBLK_WALK_CB /*cb*/,\n    void
      * /*fn*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2994,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2995,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:2996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2991
    functionDepth: 3
    functionLinenumber: 2991
    functionLinenumberEnd: 2998
    functionName: yaffsfs_jopen
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t yaffsfs_jopen(TSK_FS_INFO * /*info*/, TSK_INUM_T /*inum*/)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3025,1
    - Dst: TSK_FS_TYPE_ISYAFFS2
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3027,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3028,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3029,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3030,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3035,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3036,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3037,1
    - Dst: tsk_fs_malloc
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3043,1
    - Dst: yaffs_load_config_file
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3058,1
    - Dst: yaffs_validate_config_file
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3068,1
    - Dst: std::map::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3074,1
    - Dst: std::map::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3074,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3075,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3075,1
    - Dst: std::map::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3081,1
    - Dst: std::map::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3081,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3082,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3082,1
    - Dst: std::map::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3088,1
    - Dst: std::map::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3088,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3089,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3089,1
    - Dst: std::map::find
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3110,1
    - Dst: std::map::end
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3110,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3112,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3112,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3113,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3113,1
    - Dst: atoi
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3114,1
    - Dst: c_str
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3114,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3120,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3121,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3122,1
    - Dst: yaffs_initialize_spare_format
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3140,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3141,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3142,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3143,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3145,1
    - Dst: yaffsfs_read_header
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3156,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3157,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3158,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3159,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3161,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3164,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3213,1
    - Dst: std::map<uint32_t, YaffsCacheChunkGroup>::map<uint32_t, YaffsCacheChunkGroup>
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3221,1
    - Dst: yaffsfs_parse_image_load_cache
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3222,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3227,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3234,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3236,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3237,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3238,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3240,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3243,1
    - Dst: yaffsfs_close
      Src: /src/sleuthkit/tsk/fs/yaffs.cpp:3249,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 146
    argCount: 5
    argNames:
    - img_info
    - offset
    - ftype
    - a_pass
    - test
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3011
    functionDepth: 8
    functionLinenumber: 3011
    functionLinenumberEnd: 3252
    functionName: yaffs2_open
    functionSourceFile: /src/sleuthkit/tsk/fs/yaffs.cpp
    functionUses: 1
    functionsReached:
    - yaffsfs_read_header
    - yaffs_initialize_spare_format
    - fprintf
    - tsk_fs_dir_open_meta
    - yaffsfs_close
    - tsk_error_set_errno
    - std::map<uint32_t, YaffsCacheChunkGroup>::map<uint32_t, YaffsCacheChunkGroup>
    - yaffsfs_parse_image_load_cache
    - yaffs_load_config_file
    - tsk_error_reset
    - tsk_fs_malloc
    - tsk_fs_dir_close
    - std::map::end
    - c_str
    - yaffs_validate_config_file
    - std::map::find
    - tsk_error_set_errstr
    - atoi
    - TSK_FS_TYPE_ISYAFFS2
    - free
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: "TSK_FS_INFO *\n    yaffs2_open(TSK_IMG_INFO * img_info, TSK_OFF_T
      offset,\n    TSK_FS_TYPE_ENUM ftype, const char* a_pass, uint8_t test)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - endian
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: ext4_getu48
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ext4_getu48(endian, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - endian
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: ext4_getu64
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ext4_getu64(endian, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - sb
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: EXT2FS_HAS_COMPAT_FEATURE
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2FS_HAS_COMPAT_FEATURE(fs,sb,mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - sb
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: EXT2FS_HAS_INCOMPAT_FEATURE
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2FS_HAS_INCOMPAT_FEATURE(fs,sb,mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - sb
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: EXT2FS_HAS_RO_COMPAT_FEATURE
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2FS_HAS_RO_COMPAT_FEATURE(fs,sb,mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fs
    - ','
    - gd
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: EXT4BG_HAS_FLAG
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT4BG_HAS_FLAG(fs,gd,flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: ext2_dtog_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ext2_dtog_lcl(fsi, fs, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: ext2_cgbase_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ext2_cgbase_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fsi
    - ','
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: ext4_cgbase_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ext4_cgbase_lcl(fsi, fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: EXT2FS_DIRSIZ_lcl
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2FS_DIRSIZ_lcl(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: EXT2_EA_LEN
    functionSourceFile: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_EA_LEN(nlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:34,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:41,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - a_fs
    - a_addr
    - a_cnt
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: tsk_fs_dir_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 9
    functionsReached:
    - free
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_DIR
    signature: 'TSK_FS_DIR *

      tsk_fs_dir_alloc(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr, size_t a_cnt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:77,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - a_fs_dir
    - a_cnt
    argTypes:
    - TSK_FS_DIR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 91
    functionName: tsk_fs_dir_realloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_realloc
    - memset
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_realloc(TSK_FS_DIR * a_fs_dir, size_t a_cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - a_fs_dir
    argTypes:
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: tsk_fs_dir_reset
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 9
    functionsReached:
    - tsk_fs_file_close
    linkageType: ''
    returnType: void
    signature: void tsk_fs_dir_reset(TSK_FS_DIR * a_fs_dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_realloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:130,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a_src_dir
    - a_dst_dir
    argTypes:
    - TSK_FS_DIR*
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 143
    functionName: tsk_fs_dir_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_fs_dir_realloc
    - tsk_fs_name_copy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_copy(const TSK_FS_DIR * a_src_dir, TSK_FS_DIR *
      a_dst_dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_hash
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - a_fs_dir
    - meta_addr
    - hash
    argTypes:
    - TSK_FS_DIR*
    - TSK_INUM_T
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 173
    functionName: tsk_fs_dir_contains
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 1
    functionsReached:
    - tsk_fs_dir_hash
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_contains(TSK_FS_DIR * a_fs_dir, TSK_INUM_T meta_addr,
      uint32_t hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:188,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fs_name
    argTypes:
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: tsk_fs_dir_free_name_internal
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_dir_free_name_internal(TSK_FS_NAME *fs_name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:220,1
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:226,1
    - Dst: tsk_fs_dir_free_name_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:242,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:258,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:259,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:260,1
    - Dst: tsk_fs_dir_realloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:264,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:271,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - a_fs_dir
    - a_fs_name
    argTypes:
    - TSK_FS_DIR*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 281
    functionName: tsk_fs_dir_add
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 17
    functionsReached:
    - tsk_fs_dir_realloc
    - tsk_fprintf
    - tsk_fs_dir_free_name_internal
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSK_FS_TYPE_ISFAT
    - strcmp
    - tsk_error_set_errno
    - tsk_fs_name_copy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_add(TSK_FS_DIR * a_fs_dir, const TSK_FS_NAME * a_fs_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:302,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:303,1
    - Dst: TSK_FS_INFO*::dir_open_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:308,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - a_fs
    - a_addr
    - macro_recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: tsk_fs_dir_open_meta_internal
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_fs_dir_close
    - tsk_error_set_errno
    - TSK_FS_INFO*::dir_open_meta
    linkageType: ''
    returnType: TSK_FS_DIR
    signature: 'TSK_FS_DIR *

      tsk_fs_dir_open_meta_internal(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr, int macro_recursion_depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: tsk_fs_dir_open_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 4
    functionsReached:
    - tsk_fs_dir_open_meta_internal
    linkageType: ''
    returnType: TSK_FS_DIR
    signature: 'TSK_FS_DIR *

      tsk_fs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:348,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:349,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:355,1
    - Dst: tsk_fs_path2inum
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:359,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:361,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:365,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:366,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:367,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a_fs
    - a_dir
    argTypes:
    - TSK_FS_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 378
    functionName: tsk_fs_dir_open
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 1
    functionsReached:
    - tsk_fs_path2inum
    - tsk_error_set_errstr
    - tsk_fs_dir_open_meta
    - tsk_fs_name_free
    - tsk_error_set_errno
    - tsk_fs_name_alloc
    linkageType: ''
    returnType: TSK_FS_DIR
    signature: 'TSK_FS_DIR *

      tsk_fs_dir_open(TSK_FS_INFO * a_fs, const char *a_dir)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_free_name_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:395,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:397,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:401,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - a_fs_dir
    argTypes:
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 407
    functionName: tsk_fs_dir_close
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 7
    functionsReached:
    - tsk_fs_file_close
    - free
    - tsk_fs_dir_free_name_internal
    linkageType: ''
    returnType: void
    signature: void tsk_fs_dir_close(TSK_FS_DIR * a_fs_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:418,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - a_fs_dir
    argTypes:
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 424
    functionName: tsk_fs_dir_getsize
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 2
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    linkageType: ''
    returnType: size_t
    signature: size_t tsk_fs_dir_getsize(const TSK_FS_DIR * a_fs_dir)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:440,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:441,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:446,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:447,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:453,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:460,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:460,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:462,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:466,1
    - Dst: TSK_FS_DIR*::fs_info::file_add_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:473,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:476,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:477,1
    - Dst: tsk_fs_meta_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:484,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - a_fs_dir
    - a_idx
    argTypes:
    - TSK_FS_DIR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 489
    functionName: tsk_fs_dir_get
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 2
    functionsReached:
    - tsk_error_print
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_meta_close
    - TSK_FS_DIR*::fs_info::file_add_meta
    - tsk_error_set_errno
    - tsk_fs_file_alloc
    - tsk_fs_name_alloc
    - strlen
    - tsk_fs_name_copy
    linkageType: ''
    returnType: TSK_FS_FILE
    signature: 'TSK_FS_FILE *

      tsk_fs_dir_get(const TSK_FS_DIR * a_fs_dir, size_t a_idx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:505,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:506,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:511,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a_fs_dir
    - a_idx
    argTypes:
    - TSK_FS_DIR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 518
    functionName: tsk_fs_dir_get_name
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_FS_NAME
    signature: 'TSK_FS_NAME *

      tsk_fs_dir_get_name(const TSK_FS_DIR * a_fs_dir, size_t a_idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:568,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:573,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a_fs
    - dinfo
    argTypes:
    - TSK_FS_INFO*
    - DENT_DINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 577
    functionName: save_inum_named
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_list_free
    - tsk_release_lock
    linkageType: ''
    returnType: void
    signature: void save_inum_named(TSK_FS_INFO *a_fs, DENT_DINFO *dinfo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:592,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:607,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:607,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:610,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:610,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:613,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:613,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:616,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:616,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:619,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:619,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:622,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:622,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:625,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:625,1
    - Dst: strncasecmp
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:628,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:628,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:644,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - names
    - count
    - indexToOrderedIndex
    argTypes:
    - TSK_FS_NAME*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 646
    functionName: prioritizeDirNames
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - tsk_malloc
    - strlen
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM prioritizeDirNames(TSK_FS_NAME * names, size_t count,
      int * indexToOrderedIndex)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:661,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:667,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:669,1
    - Dst: prioritizeDirNames
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:672,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:673,1
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:681,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:682,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:684,1
    - Dst: TSK_FS_INFO*::file_add_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:709,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:712,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:713,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:720,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:722,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:724,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:727,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:734,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:741,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:743,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:745,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:755,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:759,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:772,1
    - Dst: save_inum_named
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:775,1
    - Dst: TSK_FS_IS_DIR_NAME
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:786,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:789,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:795,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:796,1
    - Dst: tsk_stack_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:801,1
    - Dst: tsk_stack_push
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:806,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:808,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:810,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:812,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:828,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:829,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:831,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:836,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:838,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:840,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:846,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:847,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:849,1
    - Dst: strncat
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:850,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:850,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:859,1
    - Dst: tsk_fs_dir_walk_recursive
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:863,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:870,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:871,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:873,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:876,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:882,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:885,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:888,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:891,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:893,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:896,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:903,1
    - Dst: tsk_stack_pop
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:907,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:914,1
    - Dst: tsk_fs_meta_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:925,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:930,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:932,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:935,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 155
    argCount: 7
    argNames:
    - a_fs
    - a_dinfo
    - a_addr
    - a_flags
    - a_action
    - a_ptr
    - macro_recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - DENT_DINFO*
    - TSK_INUM_T
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_FS_DIR_WALK_CB
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 938
    functionName: tsk_fs_dir_walk_recursive
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - tsk_fs_dir_open_meta_internal
    - fprintf
    - tsk_fs_file_alloc
    - tsk_error_get_errno
    - strlen
    - tsk_fs_meta_close
    - TSK_FS_IS_DIR_META
    - tsk_stack_pop
    - tsk_error_reset
    - a_action
    - tsk_malloc
    - prioritizeDirNames
    - tsk_stack_push
    - tsk_fs_dir_close
    - save_inum_named
    - strncat
    - tsk_stack_find
    - TSK_FS_INFO*::file_add_meta
    - TSK_FS_ORPHANDIR_INUM
    - TSK_FS_ISDOT
    - TSK_FS_IS_DIR_NAME
    - tsk_list_free
    - tsk_fs_file_close
    - strncpy
    - tsk_list_add
    - free
    - tsk_fs_dir_walk_recursive
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM tsk_fs_dir_walk_recursive(TSK_FS_INFO * a_fs, DENT_DINFO
      * a_dinfo,\n    TSK_INUM_T a_addr, TSK_FS_DIR_WALK_FLAG_ENUM a_flags,\n    TSK_FS_DIR_WALK_CB
      a_action, void *a_ptr, int macro_recursion_depth)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:963,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:964,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:973,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:974,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:979,1
    - Dst: tsk_stack_create
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:980,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:994,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:999,1
    - Dst: tsk_fs_dir_walk_recursive
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1001,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1011,1
    - Dst: save_inum_named
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1015,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1019,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - a_fs
    - a_addr
    - a_flags
    - a_action
    - a_ptr
    - macro_recursion_depth
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_FS_DIR_WALK_CB
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 954
    functionDepth: 5
    functionLinenumber: 954
    functionLinenumberEnd: 1025
    functionName: tsk_fs_dir_walk_internal
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 1
    functionsReached:
    - tsk_take_lock
    - save_inum_named
    - memset
    - tsk_error_set_errstr
    - tsk_stack_create
    - tsk_error_set_errno
    - tsk_list_free
    - tsk_release_lock
    - tsk_stack_free
    - tsk_fs_dir_walk_recursive
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_dir_walk_internal(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr,\n
      \   TSK_FS_DIR_WALK_FLAG_ENUM a_flags, TSK_FS_DIR_WALK_CB a_action,\n    void
      *a_ptr, int macro_recursion_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_walk_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a_fs
    - a_addr
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_FS_DIR_WALK_FLAG_ENUM
    - TSK_FS_DIR_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1038
    functionDepth: 6
    functionLinenumber: 1038
    functionLinenumberEnd: 1044
    functionName: tsk_fs_dir_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 6
    functionsReached:
    - tsk_fs_dir_walk_internal
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_dir_walk(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr,\n    TSK_FS_DIR_WALK_FLAG_ENUM
      a_flags, TSK_FS_DIR_WALK_CB a_action,\n    void *a_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1056,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a_fs
    - a_fs_name
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1063
    functionName: tsk_fs_dir_make_orphan_dir_name
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 7
    functionsReached:
    - TSK_FS_ORPHANDIR_INUM
    - snprintf
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_dir_make_orphan_dir_name(TSK_FS_INFO * a_fs,\n    TSK_FS_NAME
      * a_fs_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1088,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1095,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1098,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - a_fs
    - a_fs_meta
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1107
    functionName: tsk_fs_dir_make_orphan_dir_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 10
    functionsReached:
    - TSK_FS_ORPHANDIR_INUM
    - tsk_malloc
    - strncpy
    - tsk_fs_attrlist_markunused
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_dir_make_orphan_dir_meta(TSK_FS_INFO * a_fs,\n    TSK_FS_META
      * a_fs_meta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1121,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1124,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a_fs
    - a_inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1127
    functionName: tsk_fs_dir_find_inum_named
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 5
    functionsReached:
    - tsk_take_lock
    - tsk_release_lock
    - tsk_list_find
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_find_inum_named(TSK_FS_INFO * a_fs, TSK_INUM_T a_inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1137
    functionName: load_named_dir_walk_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM load_named_dir_walk_cb(TSK_FS_FILE * a_fs_file,
      const char *a_path,\n    void *a_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1148,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1150,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1152,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1156,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1159,1
    - Dst: tsk_fs_dir_walk_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1168,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - a_fs
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1145
    functionDepth: 6
    functionLinenumber: 1145
    functionLinenumberEnd: 1177
    functionName: tsk_fs_dir_load_inum_named
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 5
    functionsReached:
    - tsk_take_lock
    - fprintf
    - tsk_error_errstr2_concat
    - tsk_release_lock
    - tsk_fs_dir_walk_internal
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_fs_dir_load_inum_named(TSK_FS_INFO * a_fs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1201,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1211,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1221,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1223,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1229,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1234,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1235,1
    - Dst: fatfs_dir_buf_add
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - a_fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1246
    functionName: load_orphan_dir_walk_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - fprintf
    - TSK_FS_TYPE_ISFAT
    - TSK_FS_ISDOT
    - tsk_list_find
    - tsk_list_add
    - fatfs_dir_buf_add
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM load_orphan_dir_walk_cb(TSK_FS_FILE * a_fs_file,
      const char *a_path,\n    void *a_ptr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1258,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1260,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1261,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1264,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1267,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1273,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1274,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1278,1
    - Dst: tsk_fs_dir_add
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1290,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1296,1
    - Dst: fatfs_dir_buf_add
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1297,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1298,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1306,1
    - Dst: tsk_fs_dir_walk_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1310,1
    - Dst: tsk_error_errstr2_concat
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - a_fs_file
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1249
    functionDepth: 6
    functionLinenumber: 1249
    functionLinenumberEnd: 1321
    functionName: find_orphan_meta_walk_cb
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_fs_dir_walk_internal
    - fprintf
    - TSK_FS_ORPHANDIR_INUM
    - TSK_FS_TYPE_ISFAT
    - tsk_list_find
    - tsk_error_errstr2_concat
    - tsk_release_lock
    - strncpy
    - fatfs_dir_buf_add
    - snprintf
    - tsk_fs_dir_add
    - strlen
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM find_orphan_meta_walk_cb(TSK_FS_FILE * a_fs_file,
      void *a_ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1334,1
    - Dst: tsk_fs_meta_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1339,1
    - Dst: tsk_fs_dir_make_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a_fs
    - a_fs_dir
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1330
    functionDepth: 3
    functionLinenumber: 1330
    functionLinenumberEnd: 1347
    functionName: tsk_fs_dir_add_orphan_dir_meta
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 0
    functionsReached:
    - tsk_fs_meta_alloc
    - tsk_fs_file_alloc
    - tsk_fs_dir_make_orphan_dir_meta
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_dir_add_orphan_dir_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR
      * a_fs_dir)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1360,1
    - Dst: tsk_fs_dir_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1363,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1364,1
    - Dst: tsk_fs_dir_add_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1368,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1369,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1373,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1378,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1381,1
    - Dst: tsk_fs_dir_load_inum_named
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1386,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1387,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1398,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1399,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1404,1
    - Dst: tsk_fs_meta_walk
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1407,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1410,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1412,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1415,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1419,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1424,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1432,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1441,1
    - Dst: tsk_fs_dir_free_name_internal
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1444,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1450,1
    - Dst: tsk_fs_dir_alloc
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1457,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1459,1
    - Dst: tsk_fs_dir_copy
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1463,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1464,1
    - Dst: tsk_fs_dir_add_orphan_dir_meta
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1469,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1470,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/fs/fs_dir.c:1474,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - a_fs
    - a_fs_dir
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1354
    functionDepth: 7
    functionLinenumber: 1354
    functionLinenumberEnd: 1476
    functionName: tsk_fs_dir_find_orphans
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 6
    functionsReached:
    - tsk_take_lock
    - memset
    - tsk_fs_dir_alloc
    - tsk_fs_dir_add_orphan_dir_meta
    - tsk_fs_dir_free_name_internal
    - fprintf
    - tsk_fs_dir_load_inum_named
    - tsk_list_find
    - tsk_fs_name_free
    - tsk_fs_meta_walk
    - tsk_list_free
    - tsk_release_lock
    - tsk_fs_dir_copy
    - tsk_fs_name_alloc
    - tsk_fs_name_copy
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_fs_dir_find_orphans(TSK_FS_INFO * a_fs, TSK_FS_DIR
      * a_fs_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1496
    functionName: tsk_fs_dir_hash
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_dir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tsk_fs_dir_hash(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: tsk_fs_attr_run_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 14
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: TSK_FS_ATTR_RUN
    signature: 'TSK_FS_ATTR_RUN *

      tsk_fs_attr_run_alloc()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fs_attr_run
    argTypes:
    - TSK_FS_ATTR_RUN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: tsk_fs_attr_run_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 16
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_attr_run_free(TSK_FS_ATTR_RUN * fs_attr_run)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:86,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:92,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:93,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:102,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:104,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:110,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_FS_ATTR_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: tsk_fs_attr_alloc
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_malloc
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: TSK_FS_ATTR
    signature: 'TSK_FS_ATTR *

      tsk_fs_attr_alloc(TSK_FS_ATTR_FLAG_ENUM type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:134,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:137,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:140,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a_fs_attr
    argTypes:
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: tsk_fs_attr_free
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 2
    functionsReached:
    - free
    - tsk_fs_attr_run_free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_attr_free(TSK_FS_ATTR * a_fs_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a_fs_attr
    argTypes:
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: tsk_fs_attr_clear
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 1
    functionsReached:
    - tsk_fs_attr_run_free
    linkageType: ''
    returnType: void
    signature: void tsk_fs_attr_clear(TSK_FS_ATTR * a_fs_attr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:182,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:184,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:191,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:192,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:192,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:196,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - fs_attr
    - name
    argTypes:
    - TSK_FS_ATTR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: fs_attr_put_name
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_realloc
    - strlen
    - strncpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fs_attr_put_name(TSK_FS_ATTR * fs_attr, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:221,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:222,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:223,1
    - Dst: fs_attr_put_name
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:233,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:238,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:245,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 7
    argNames:
    - a_fs_file
    - a_fs_attr
    - name
    - type
    - id
    - res_data
    - len
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: tsk_fs_attr_set_str
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 6
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_realloc
    - memcpy
    - fs_attr_put_name
    - tsk_error_set_errno
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_set_str(TSK_FS_FILE * a_fs_file, TSK_FS_ATTR *
      a_fs_attr,\n    const char *name, TSK_FS_ATTR_TYPE_ENUM type, uint16_t id,\n
      \   void *res_data, size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:282,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:283,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:284,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:288,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:289,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:290,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:295,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:296,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:297,1
    - Dst: fs_attr_put_name
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:311,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 11
    argNames:
    - a_fs_file
    - a_fs_attr
    - a_data_run_new
    - name
    - type
    - id
    - size
    - init_size
    - alloc_size
    - flags
    - compsize
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - TSK_FS_ATTR_RUN*
    - char*
    - TSK_FS_ATTR_TYPE_ENUM
    - uint16_t
    - TSK_OFF_T
    - TSK_OFF_T
    - TSK_OFF_T
    - TSK_FS_ATTR_FLAG_ENUM
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 355
    functionName: tsk_fs_attr_set_run
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 16
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - fs_attr_put_name
    - tsk_error_set_errno
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_set_run(TSK_FS_FILE * a_fs_file, TSK_FS_ATTR *
      a_fs_attr,\n    TSK_FS_ATTR_RUN * a_data_run_new, const char *name,\n    TSK_FS_ATTR_TYPE_ENUM
      type, uint16_t id, TSK_OFF_T size,\n    TSK_OFF_T init_size, TSK_OFF_T alloc_size,\n
      \   TSK_FS_ATTR_FLAG_ENUM flags, uint32_t compsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:363,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_fs_attr
    argTypes:
    - TSK_FS_ATTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: dump_attr
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_attr(TSK_FS_ATTR * a_fs_attr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:384,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:407,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:409,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:410,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:449,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:452,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:455,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:458,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - a_fs_attr
    - hFile
    argTypes:
    - TSK_FS_ATTR*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 464
    functionName: tsk_fs_attr_print
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 8
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_set_errno
    - tsk_fprintf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tsk_fs_attr_print(const TSK_FS_ATTR * a_fs_attr, FILE* hFile)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:484,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:487,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:488,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:489,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:496,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:497,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:498,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:531,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:543,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:544,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:545,1
    - Dst: dump_attr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:551,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:573,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:606,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:648,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:652,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:653,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:654,1
    - Dst: dump_attr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:660,1
    - Dst: tsk_fs_attr_run_alloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:676,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 109
    argCount: 3
    argNames:
    - a_fs
    - a_fs_attr
    - a_data_run_new
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - TSK_FS_ATTR_RUN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 699
    functionName: tsk_fs_attr_add_run
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 7
    functionsReached:
    - tsk_fprintf
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - dump_attr
    - free
    - tsk_fs_attr_run_alloc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_add_run(TSK_FS_INFO * a_fs, TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_FS_ATTR_RUN * a_data_run_new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - a_fs
    - a_fs_attr
    - a_data_run
    argTypes:
    - TSK_FS_INFO*
    - TSK_FS_ATTR*
    - TSK_FS_ATTR_RUN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 747
    functionName: tsk_fs_attr_append_run
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tsk_fs_attr_append_run(TSK_FS_INFO * a_fs, TSK_FS_ATTR * a_fs_attr,\n
      \   TSK_FS_ATTR_RUN * a_data_run)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:776,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:777,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:788,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:809,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:811,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:814,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:821,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - fs_attr
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_ATTR*
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 827
    functionName: tsk_fs_attr_walk_res
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - memcpy
    - a_action
    - tsk_malloc
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_walk_res(const TSK_FS_ATTR * fs_attr,\n    TSK_FS_FILE_WALK_FLAG_ENUM
      a_flags, TSK_FS_FILE_WALK_CB a_action,\n    void *a_ptr)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:855,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:856,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:870,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:892,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:894,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:895,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:898,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:907,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:913,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:915,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:924,1
    - Dst: logicalfs_read_block
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:930,1
    - Dst: tsk_fs_read_block_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:933,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:938,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:939,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:941,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:944,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:949,1
    - Dst: TSK_FS_INFO*::block_getflags
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:978,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:982,1
    - Dst: TSK_FS_INFO*::block_getflags
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:987,1
    - Dst: a_action
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:991,1
    - Dst: free
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1012,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 4
    argNames:
    - fs_attr
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_ATTR*
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 840
    functionDepth: 7
    functionLinenumber: 840
    functionLinenumberEnd: 1018
    functionName: tsk_fs_attr_walk_nonres
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 0
    functionsReached:
    - memset
    - tsk_error_set_errstr2
    - tsk_fs_read_block_decrypt
    - tsk_error_set_errstr
    - fprintf
    - tsk_error_reset
    - logicalfs_read_block
    - a_action
    - tsk_malloc
    - tsk_error_set_errno
    - TSK_FS_INFO*::block_getflags
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_walk_nonres(const TSK_FS_ATTR * fs_attr,\n    TSK_FS_FILE_WALK_FLAG_ENUM
      a_flags, TSK_FS_FILE_WALK_CB a_action,\n    void *a_ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1042,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1048,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1049,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1057,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1058,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1064,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1065,1
    - Dst: TSK_FS_ATTR*::w
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1069,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1073,1
    - Dst: tsk_fs_attr_walk_res
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1074,1
    - Dst: tsk_fs_attr_walk_nonres
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1078,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1082,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1083,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - a_fs_attr
    - a_flags
    - a_action
    - a_ptr
    argTypes:
    - TSK_FS_ATTR*
    - TSK_FS_FILE_WALK_FLAG_ENUM
    - TSK_FS_FILE_WALK_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1034
    functionDepth: 8
    functionLinenumber: 1034
    functionLinenumberEnd: 1087
    functionName: tsk_fs_attr_walk
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 11
    functionsReached:
    - fflush
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_fs_attr_walk_nonres
    - tsk_fs_attr_walk_res
    - tsk_error_set_errno
    - TSK_FS_ATTR*::w
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t tsk_fs_attr_walk(const TSK_FS_ATTR * a_fs_attr,\n    TSK_FS_FILE_WALK_FLAG_ENUM
      a_flags, TSK_FS_FILE_WALK_CB a_action,\n    void *a_ptr)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1112,1
    - Dst: logicalfs_read
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1120,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1126,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1127,1
    - Dst: TSK_FS_ATTR*::r
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1131,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1139,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1140,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1141,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1148,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1151,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1168,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1169,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1170,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1192,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1227,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1235,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1236,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1237,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1240,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1242,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1254,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1256,1
    - Dst: tsk_fs_read_decrypt
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1277,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1283,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1284,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1286,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1304,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1318,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fs_attr.c:1319,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 105
    argCount: 5
    argNames:
    - a_fs_attr
    - a_offset
    - a_buf
    - a_len
    - a_flags
    argTypes:
    - TSK_FS_ATTR*
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_FS_FILE_READ_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1103
    functionDepth: 8
    functionLinenumber: 1103
    functionLinenumberEnd: 1322
    functionName: tsk_fs_attr_read
    functionSourceFile: /src/sleuthkit/tsk/fs/fs_attr.c
    functionUses: 20
    functionsReached:
    - memset
    - tsk_error_set_errstr
    - tsk_error_reset
    - fprintf
    - logicalfs_read
    - TSK_FS_ATTR*::r
    - memcpy
    - tsk_error_set_errno
    - tsk_fs_read_decrypt
    - tsk_error_set_errstr2
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T
      a_offset,\n    char *a_buf, size_t a_len, TSK_FS_FILE_READ_FLAG_ENUM a_flags)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:58,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:60,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:67,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:75,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:79,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:81,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:85,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:87,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:90,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:92,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:95,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:97,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:100,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:102,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:105,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:107,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:110,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:112,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:115,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:117,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:120,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:122,1
    - Dst: IS_OK
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:125,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:127,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:145,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 78
    argCount: 2
    argNames:
    - de
    - strict
    argTypes:
    - FATXXFS_DENTRY*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 154
    functionName: is_83_name
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached:
    - fprintf
    - IS_OK
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t is_83_name(FATXXFS_DENTRY * de, uint8_t strict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: IS_OK
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_OK(c)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:189,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:200,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:205,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:215,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:227,1
    - Dst: FATFS_ISTIME
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:228,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:228,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:230,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:233,1
    - Dst: FATFS_ISTIME
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:234,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:234,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:236,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:239,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:240,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:240,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:241,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:241,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:242,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:245,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:250,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:253,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:254,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:254,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:255,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:255,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:258,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:261,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:262,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:262,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:263,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:263,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:264,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:266,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:272,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:273,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:273,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:275,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:280,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:283,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:287,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:288,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:290,1
    - Dst: is_83_name
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:296,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:298,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:306,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:307,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:308,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:309,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:310,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:311,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:312,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:314,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 88
    argCount: 4
    argNames:
    - a_fatfs
    - a_dentry
    - a_cluster_is_alloc
    - a_do_basic_tests_only
    argTypes:
    - FATFS_INFO*
    - FATFS_DENTRY*
    - FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 321
    functionName: fatxxfs_is_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 1
    functionsReached:
    - tsk_fprintf
    - fprintf
    - FATFS_ISTIME
    - fatfs_dos_2_unix_time
    - tsk_getu32
    - tsk_getu16
    - is_83_name
    - FATXXFS_DENTRY_CLUST
    - FATFS_ISDATE
    - FATFS_ISEOF
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatxxfs_is_dentry(FATFS_INFO *a_fatfs, FATFS_DENTRY *a_dentry,
      FATFS_DATA_UNIT_ALLOC_STATUS_ENUM a_cluster_is_alloc, uint8_t a_do_basic_tests_only)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: attr2type
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_META_TYPE_ENUM
    signature: TSK_FS_META_TYPE_ENUM attr2type(uint16_t attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: attr2mode
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attr2mode(uint16_t attr)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_meta_realloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:372,1
    - Dst: tsk_fs_attrlist_markunused
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:380,1
    - Dst: attr2mode
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:383,1
    - Dst: attr2type
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:384,1
    - Dst: FATXXFS_IS_DELETED
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:389,1
    - Dst: FATXXFS_IS_DELETED
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:418,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:424,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:427,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:427,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:429,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:429,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:430,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:435,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:435,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:437,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:437,1
    - Dst: FATFS_ISDATE
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:447,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:447,1
    - Dst: fatfs_dos_2_unix_time
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:449,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:449,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:450,1
    - Dst: fatfs_dos_2_nanosec
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:451,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:472,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:487,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:495,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:496,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:497,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:507,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:514,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:515,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:516,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:526,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:533,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:534,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:535,1
    - Dst: fatfs_cleanup_ascii
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:571,1
    - Dst: fatfs_cleanup_ascii
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:607,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:613,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:624,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:636,1
    - Dst: FATFS_ISEOF
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:639,1
    - Dst: tsk_list_find
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:643,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:645,1
    - Dst: tsk_list_add
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:649,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:650,1
    - Dst: fatfs_getFAT
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:657,1
    - Dst: tsk_list_free
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:663,1
    - Dst: fatxxfs_is_cluster_alloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:677,1
    - Dst: FATXXFS_DENTRY_CLUST
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:677,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 166
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_cluster_is_alloc
    - a_fs_file
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - uint8_t
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 686
    functionName: fatxxfs_dinode_copy
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - fatfs_dos_2_unix_time
    - tsk_error_set_errno
    - tsk_fs_attrlist_markunused
    - FATFS_ISEOF
    - FATXXFS_IS_DELETED
    - FATXXFS_DENTRY_CLUST
    - tsk_fs_meta_realloc
    - tsk_error_reset
    - fatxxfs_is_cluster_alloc
    - tsk_getu32
    - attr2type
    - tsk_getu16
    - tsk_malloc
    - fatfs_cleanup_ascii
    - TSK_IS_CNTRL
    - tsk_error_set_errstr
    - tsk_UTF16toUTF8
    - attr2mode
    - tsk_list_find
    - fatfs_getFAT
    - tsk_list_free
    - fatfs_dos_2_nanosec
    - tsk_list_add
    - FATFS_ISDATE
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM fatxxfs_dinode_copy(FATFS_INFO *a_fatfs, TSK_INUM_T
      a_inum, \n    FATFS_DENTRY *a_dentry, uint8_t a_cluster_is_alloc, TSK_FS_FILE
      *a_fs_file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:710,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:711,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:712,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:713,1
    - Dst: FATFS_INODE_2_SECT
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:717,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:719,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:720,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:721,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:726,1
    - Dst: fatfs_is_sectalloc
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:730,1
    - Dst: fatxxfs_is_dentry
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:745,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:746,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:747,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:748,1
    - Dst: fatxxfs_dinode_copy
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:753,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:761,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:763,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - a_fatfs
    - a_fs_file
    - a_inum
    argTypes:
    - FATFS_INFO*
    - TSK_FS_FILE*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 699
    functionDepth: 7
    functionLinenumber: 699
    functionLinenumberEnd: 769
    functionName: fatxxfs_inode_lookup
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - fatfs_inum_arg_is_in_range
    - tsk_error_set_errstr
    - tsk_error_reset
    - fatfs_is_sectalloc
    - fatxxfs_is_dentry
    - tsk_error_set_errno
    - FATFS_INODE_2_SECT
    - fatfs_ptr_arg_is_null
    - fatxxfs_dinode_copy
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatxxfs_inode_lookup(FATFS_INFO *a_fatfs, TSK_FS_FILE *a_fs_file,\n
      \   TSK_INUM_T a_inum)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:786,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:787,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:788,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:789,1
    - Dst: fatfs_dentry_load
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:793,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:798,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:802,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:804,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:806,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:809,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:811,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:813,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:815,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:817,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - a_fatfs
    - a_inum
    - a_hFile
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 780
    functionDepth: 6
    functionLinenumber: 780
    functionLinenumberEnd: 821
    functionName: fatxxfs_istat_attr_flags
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - tsk_fprintf
    - tsk_error_reset
    - fatfs_ptr_arg_is_null
    - fatfs_dentry_load
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fatxxfs_istat_attr_flags(FATFS_INFO *a_fatfs, TSK_INUM_T a_inum,
      FILE *a_hFile)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:832,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:833,1
    - Dst: fatfs_inum_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:833,1
    - Dst: assert
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:834,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:836,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:837,1
    - Dst: fatfs_inum_arg_is_in_range
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:838,1
    - Dst: fatfs_ptr_arg_is_null
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:839,1
    - Dst: FATXXFS_IS_DELETED
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:861,1
    - Dst: tsk_fs_dir_find_inum_named
      Src: /src/sleuthkit/tsk/fs/fatxxfs_meta.c:881,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - a_fatfs
    - a_inum
    - a_dentry
    - a_selection_flags
    - a_cluster_is_alloc
    argTypes:
    - FATFS_INFO*
    - TSK_INUM_T
    - FATFS_DENTRY*
    - unsigned int
    - int
    assertStmts:
    - condition: (a_fatfs != NULL)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    - condition: (fatfs_inum_is_in_range(a_fatfs, a_inum))
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    - condition: (a_dentry != NULL)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    constantsTouched: []
    func_position:
      end: 886
      start: 823
    functionDepth: 6
    functionLinenumber: 823
    functionLinenumberEnd: 886
    functionName: fatxxfs_inode_walk_should_skip_dentry
    functionSourceFile: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
    functionUses: 0
    functionsReached:
    - fatfs_inum_arg_is_in_range
    - FATXXFS_IS_DELETED
    - assert
    - tsk_error_reset
    - fatfs_inum_is_in_range
    - fatfs_ptr_arg_is_null
    - tsk_fs_dir_find_inum_named
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t fatxxfs_inode_walk_should_skip_dentry(FATFS_INFO *a_fatfs,
      TSK_INUM_T a_inum, \n    FATFS_DENTRY *a_dentry, unsigned int a_selection_flags,
      \n    int a_cluster_is_alloc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/sleuthkit/tsk/util/crypto.cpp:32,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/sleuthkit/tsk/util/crypto.cpp:36,1
    - Dst: std::make_unique<std::mutex[]>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:37,1
    - Dst: CRYPTO_num_locks
      Src: /src/sleuthkit/tsk/util/crypto.cpp:37,1
    - Dst: auto::lock
      Src: /src/sleuthkit/tsk/util/crypto.cpp:42,1
    - Dst: auto::unlock
      Src: /src/sleuthkit/tsk/util/crypto.cpp:44,1
    - Dst: CRYPTO_THREADID_set_callback
      Src: /src/sleuthkit/tsk/util/crypto.cpp:48,1
    - Dst: std::hash<std::thread::id>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:50,1
    - Dst: tsk_fs_file_attr_get_id
      Src: /src/sleuthkit/tsk/util/crypto.cpp:50,1
    - Dst: CRYPTO_THREADID_set_numeric
      Src: /src/sleuthkit/tsk/util/crypto.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: _openssl_init
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 0
    functionsReached:
    - auto::unlock
    - std::hash<std::thread::id>
    - CRYPTO_set_locking_callback
    - CRYPTO_THREADID_set_numeric
    - std::make_unique<std::mutex[]>
    - CRYPTO_THREADID_set_callback
    - tsk_fs_file_attr_get_id
    - CRYPTO_num_locks
    - auto::lock
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void _openssl_init() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_cleanup
      Src: /src/sleuthkit/tsk/util/crypto.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ~_openssl_init() noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_cleanup
    linkageType: ''
    returnType: void
    signature: void ~_openssl_init() noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX::EVP_CIPHER_CTX
      Src: /src/sleuthkit/tsk/util/crypto.cpp:65,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/sleuthkit/tsk/util/crypto.cpp:67,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/sleuthkit/tsk/util/crypto.cpp:73,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/crypto.cpp:79,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/crypto.cpp:80,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/sleuthkit/tsk/util/crypto.cpp:82,1
    - Dst: EVP_aes_128_xts
      Src: /src/sleuthkit/tsk/util/crypto.cpp:82,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/crypto.cpp:85,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/crypto.cpp:86,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/sleuthkit/tsk/util/crypto.cpp:88,1
    - Dst: EVP_aes_256_xts
      Src: /src/sleuthkit/tsk/util/crypto.cpp:88,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/sleuthkit/tsk/util/crypto.cpp:93,1
    - Dst: EVP_aes_128_xts
      Src: /src/sleuthkit/tsk/util/crypto.cpp:93,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/sleuthkit/tsk/util/crypto.cpp:95,1
    - Dst: EVP_aes_256_xts
      Src: /src/sleuthkit/tsk/util/crypto.cpp:95,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/sleuthkit/tsk/util/crypto.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - mode
    - key1
    - key2
    - block_size
    argTypes:
    - AES_MODE
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 100
    functionName: aes_xts_decryptor::aes_xts_decryptor
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_init
    - EVP_aes_128_xts
    - memcpy
    - EVP_CIPHER_CTX_set_padding
    - EVP_aes_256_xts
    - EVP_CIPHER_CTX::EVP_CIPHER_CTX
    - EVP_DecryptInit_ex
    linkageType: ''
    returnType: void
    signature: "void aes_xts_decryptor::aes_xts_decryptor(AES_MODE mode, const uint8_t
      *key1,\n                                     const uint8_t *key2,\n                                     size_t
      block_size) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cleanup
      Src: /src/sleuthkit/tsk/util/crypto.cpp:105,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/sleuthkit/tsk/util/crypto.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: aes_xts_decryptor::~aes_xts_decryptor() noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cleanup
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void aes_xts_decryptor::~aes_xts_decryptor() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char *>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:115,1
    - Dst: aes_xts_decryptor::decrypt_block
      Src: /src/sleuthkit/tsk/util/crypto.cpp:118,1
    - Dst: std::min
      Src: /src/sleuthkit/tsk/util/crypto.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buffer
    - length
    - position
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: aes_xts_decryptor::decrypt_buffer
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 1
    functionsReached:
    - static_cast<char *>
    - std::min
    - aes_xts_decryptor::decrypt_block
    linkageType: ''
    returnType: int
    signature: "int aes_xts_decryptor::decrypt_buffer(void *buffer, size_t length,\n
      \                                     uint64_t position) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptInit_ex
      Src: /src/sleuthkit/tsk/util/crypto.cpp:145,1
    - Dst: EVP_DecryptUpdate
      Src: /src/sleuthkit/tsk/util/crypto.cpp:146,1
    - Dst: static_cast<uint8_t *>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:146,1
    - Dst: static_cast<uint8_t *>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - length
    - block
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: aes_xts_decryptor::decrypt_block
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 1
    functionsReached:
    - EVP_DecryptUpdate
    - static_cast<uint8_t *>
    - EVP_DecryptInit_ex
    linkageType: ''
    returnType: int
    signature: "int aes_xts_decryptor::decrypt_block(void *buffer, size_t length,\n
      \                                    uint64_t block) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:156,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/sleuthkit/tsk/util/crypto.cpp:158,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tsk/util/crypto.cpp:159,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tsk/util/crypto.cpp:159,1
    - Dst: EVP_sha256
      Src: /src/sleuthkit/tsk/util/crypto.cpp:160,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/util/crypto.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - password
    - salt
    - salt_len
    - iterations
    - key_len
    argTypes:
    - std::string
    - void*
    - size_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: pbkdf2_hmac_sha256
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 1
    functionsReached:
    - PKCS5_PBKDF2_HMAC
    - auto::get
    - std::string::c_str
    - std::string::length
    - std::make_unique<uint8_t[]>
    - EVP_sha256
    linkageType: ''
    returnType: std::unique_ptr<uint8_t[]>
    signature: "std::unique_ptr<uint8_t[]> pbkdf2_hmac_sha256(const std::string &password,\n
      \                                             const void *salt, size_t salt_len,\n
      \                                             int iterations,\n                                              size_t
      key_len) noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_decrypt_key
      Src: /src/sleuthkit/tsk/util/crypto.cpp:178,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:182,1
    - Dst: AES_unwrap_key
      Src: /src/sleuthkit/tsk/util/crypto.cpp:184,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/util/crypto.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - key
    - key_len
    - input
    - input_len
    - iv
    argTypes:
    - uint8_t*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: rfc3394_key_unwrap
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - std::make_unique<uint8_t[]>
    - AES_set_decrypt_key
    - AES_unwrap_key
    linkageType: ''
    returnType: std::unique_ptr<uint8_t[]>
    signature: "std::unique_ptr<uint8_t[]> rfc3394_key_unwrap(const uint8_t *key,\n
      \                                             size_t key_len, const void *input,\n
      \                                             size_t input_len,\n                                              const
      void *iv) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/sleuthkit/tsk/util/crypto.cpp:197,1
    - Dst: MD5_Update
      Src: /src/sleuthkit/tsk/util/crypto.cpp:199,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:201,1
    - Dst: MD5_Final
      Src: /src/sleuthkit/tsk/util/crypto.cpp:203,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/util/crypto.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: hash_buffer_md5
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 0
    functionsReached:
    - MD5_Update
    - MD5_Init
    - auto::get
    - MD5_Final
    - std::make_unique<uint8_t[]>
    linkageType: ''
    returnType: std::unique_ptr<uint8_t[]>
    signature: "std::unique_ptr<uint8_t[]> hash_buffer_md5(const void *input,\n                                           size_t
      len) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/sleuthkit/tsk/util/crypto.cpp:211,1
    - Dst: SHA256_Update
      Src: /src/sleuthkit/tsk/util/crypto.cpp:213,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/sleuthkit/tsk/util/crypto.cpp:215,1
    - Dst: SHA256_Final
      Src: /src/sleuthkit/tsk/util/crypto.cpp:217,1
    - Dst: auto::get
      Src: /src/sleuthkit/tsk/util/crypto.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: hash_buffer_sha256
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - SHA256_Final
    - SHA256_Update
    - std::make_unique<uint8_t[]>
    - SHA256_Init
    linkageType: ''
    returnType: std::unique_ptr<uint8_t[]>
    signature: "std::unique_ptr<uint8_t[]> hash_buffer_sha256(const void *input,\n
      \                                             size_t len) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSTRNCMP
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:49,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - image_name
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: is_windows_device_path
    functionSourceFile: /src/sleuthkit/tsk/util/file_system_utils.c
    functionUses: 0
    functionsReached:
    - TSTRNCMP
    - _TSK_T
    linkageType: ''
    returnType: int
    signature: int is_windows_device_path(const TSK_TCHAR * image_name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TSTAT
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:68,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:72,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:78,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:79,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:80,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:81,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:86,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:87,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:88,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:98,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:102,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:103,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:104,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:107,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:111,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:115,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:119,1
    - Dst: GetFileSize
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:128,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:130,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:131,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:132,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:133,1
    - Dst: DeviceIoControl
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:150,1
    - Dst: DeviceIoControl
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:156,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:158,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:159,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:160,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:161,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:178,1
    - Dst: open
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:184,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:185,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:186,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:187,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:188,1
    - Dst: lseek
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:195,1
    - Dst: ioctl
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:202,1
    - Dst: ioctl
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:203,1
    - Dst: lseek
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:211,1
    - Dst: close
      Src: /src/sleuthkit/tsk/util/file_system_utils.c:214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 2
    argNames:
    - a_file
    - a_is_winobj
    argTypes:
    - TSK_TCHAR*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 219
    functionName: get_size_of_file_on_disk
    functionSourceFile: /src/sleuthkit/tsk/util/file_system_utils.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - CreateFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - GetLastError
    - open
    - lseek
    - close
    - tsk_error_set_errno
    - TSTAT
    - GetFileSize
    - DeviceIoControl
    - strerror
    - CloseHandle
    - ioctl
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T get_size_of_file_on_disk(const TSK_TCHAR * a_file, uint8_t
      a_is_winobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: aes_xts_decryptor::aes_xts_decryptor
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void aes_xts_decryptor(const aes_xts_decryptor &) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '&operator=(const aes_xts_decryptor) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aes_xts_decryptor
    signature: aes_xts_decryptor &operator=(const aes_xts_decryptor) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(std::nullptr_t) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(const lw_shared_ptr& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rhs'
    - val
    argTypes:
    - lw_shared_ptr<U>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(const lw_shared_ptr<U>& rhs, T* val) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(lw_shared_ptr&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(lw_shared_ptr<U>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:90,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:93,1
    - Dst: T::T
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:93,1
    - Dst: unsigned::unsigned
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - uint8_t::uint8_t
    - T::T
    - std::forward<Args>
    - unsigned::unsigned
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(in_place_t, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:108,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:111,1
    - Dst: T::T
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:111,1
    - Dst: unsigned::unsigned
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 113
    functionName: lw_shared_ptr::lw_shared_ptr
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - uint8_t::uint8_t
    - T::T
    - std::forward<T>
    - unsigned::unsigned
    linkageType: ''
    returnType: void
    signature: void lw_shared_ptr(T&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: "~lw_shared_ptr() noexcept(\n      std::is_nothrow_destructible<T>::value)"
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: "void ~lw_shared_ptr() noexcept(\n      std::is_nothrow_destructible<T>::value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:145,1
    - Dst: lw_shared_ptr::lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: '& operator=(const lw_shared_ptr& rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - lw_shared_ptr::lw_shared_ptr
    - ~lw_shared_ptr
    linkageType: ''
    returnType: lw_shared_ptr
    signature: lw_shared_ptr & operator=(const lw_shared_ptr& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:162,1
    - Dst: lw_shared_ptr::lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: '& operator=(const lw_shared_ptr<U>& rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - lw_shared_ptr::lw_shared_ptr
    - ~lw_shared_ptr
    linkageType: ''
    returnType: lw_shared_ptr
    signature: lw_shared_ptr & operator=(const lw_shared_ptr<U>& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:180,1
    - Dst: std::forward<lw_shared_ptr>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:181,1
    - Dst: lw_shared_ptr::lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: '& operator=(lw_shared_ptr&& rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - lw_shared_ptr::lw_shared_ptr
    - std::forward<lw_shared_ptr>
    - ~lw_shared_ptr
    linkageType: ''
    returnType: lw_shared_ptr
    signature: lw_shared_ptr & operator=(lw_shared_ptr&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:200,1
    - Dst: std::forward<lw_shared_ptr<U>>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:201,1
    - Dst: lw_shared_ptr::lw_shared_ptr
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: '& operator=(lw_shared_ptr<U>&& rhs) noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - lw_shared_ptr::lw_shared_ptr
    - std::forward<lw_shared_ptr<U>>
    - ~lw_shared_ptr
    linkageType: ''
    returnType: lw_shared_ptr
    signature: lw_shared_ptr & operator=(lw_shared_ptr<U>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: operator bool() const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: operator==(std::nullptr_t) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(std::nullptr_t) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: operator!=(std::nullptr_t) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(std::nullptr_t) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: operator==(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: operator!=(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: operator<(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: operator<=(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: operator>(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: operator>=(const lw_shared_ptr<U>& rhs) const noexcept
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const lw_shared_ptr<U>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    functionName: lw_shared_ptr::reset
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:280,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: lw_shared_ptr::reset
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - T
    linkageType: ''
    returnType: void
    signature: "void reset(Args&&... args) noexcept(\n      std::is_nothrow_constructible<T,
      Args...>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lw_shared_ptr::swap
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:286,1
    - Dst: lw_shared_ptr::swap
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lw_shared_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: lw_shared_ptr::swap
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 1
    functionsReached:
    - lw_shared_ptr::swap
    linkageType: ''
    returnType: void
    signature: void swap(lw_shared_ptr& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: '& operator*() const noexcept'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator*() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: '* operator->() const'
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: lw_shared_ptr::get
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: lw_shared_ptr::use_count
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned use_count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - lw_shared_ptr<T>
    - lw_shared_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: swap
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 2
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void swap(lw_shared_ptr<T>& lhs, lw_shared_ptr<T>& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: make_lw_shared
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 1
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: "lw_shared_ptr<T> make_lw_shared(Args&&... args) noexcept(\n    std::is_nothrow_constructible<T,
      Args...>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T*>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:336,1
    - Dst: get
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: lw_static_pointer_cast
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 1
    functionsReached:
    - static_cast<T*>
    - get
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: lw_shared_ptr<T> lw_static_pointer_cast(const lw_shared_ptr<U>& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<T*>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:341,1
    - Dst: get
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: lw_dynamic_pointer_cast
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - get
    - dynamic_cast<T*>
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: lw_shared_ptr<T> lw_dynamic_pointer_cast(const lw_shared_ptr<U>& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<T*>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:350,1
    - Dst: get
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: lw_const_pointer_cast
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - const_cast<T*>
    - get
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: lw_shared_ptr<T> lw_const_pointer_cast(const lw_shared_ptr<U>& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:355,1
    - Dst: get
      Src: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - lw_shared_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: lw_reinterpret_pointer_cast
    functionSourceFile: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - get
    linkageType: ''
    returnType: lw_shared_ptr<T>
    signature: lw_shared_ptr<T> lw_reinterpret_pointer_cast(const lw_shared_ptr<U>&
      r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - signature
    - signatureLen
    - startingOffset
    - endingOffset
    - buf
    - bufLen
    argTypes:
    - char*
    - size_t
    - size_t
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: detectSignature
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int detectSignature(const char * signature, size_t signatureLen, size_t
      startingOffset, size_t endingOffset, const char * buf, size_t bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:34,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: detectLUKS
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectLUKS(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:43,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: detectBitLocker
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectBitLocker(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:50,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: detectFileVault
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectFileVault(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:58,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: detectCheckPoint
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectCheckPoint(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:67,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:67,1
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:68,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: detectMcAfee
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectMcAfee(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:76,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: detectGuardianEdge
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectGuardianEdge(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:85,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:85,1
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:86,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: detectSophos
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectSophos(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:94,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: detectWinMagic
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectWinMagic(const char * buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectSignature
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:102,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: detectSymantecPGP
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - strlen
    - detectSignature
    linkageType: ''
    returnType: int
    signature: int detectSymantecPGP(const char * buf, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:117,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:127,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:138,1
    - Dst: log
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:142,1
    - Dst: log
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 150
    functionName: calculateEntropy
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 0
    functionsReached:
    - free
    - log
    - tsk_malloc
    - tsk_img_read
    linkageType: ''
    returnType: double
    signature: double calculateEntropy(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:164,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:180,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:184,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:185,1
    - Dst: detectBitLocker
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:190,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:192,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:193,1
    - Dst: detectLUKS
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:198,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:200,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:201,1
    - Dst: detectFileVault
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:206,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:208,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:209,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:213,1
    - Dst: calculateEntropy
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:216,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 224
    functionName: detectVolumeEncryption
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 1
    functionsReached:
    - calculateEntropy
    - detectLUKS
    - tsk_malloc
    - detectBitLocker
    - detectFileVault
    - free
    - snprintf
    - tsk_img_read
    linkageType: ''
    returnType: encryption_detected_result
    signature: 'encryption_detected_result *

      detectVolumeEncryption(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:238,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:254,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:258,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:259,1
    - Dst: detectSymantecPGP
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:264,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:266,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:267,1
    - Dst: detectMcAfee
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:272,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:274,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:275,1
    - Dst: detectSophos
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:280,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:282,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:283,1
    - Dst: detectGuardianEdge
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:288,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:290,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:291,1
    - Dst: detectCheckPoint
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:296,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:298,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:299,1
    - Dst: detectWinMagic
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:304,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:306,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:307,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/detect_encryption.c:310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 2
    argNames:
    - img_info
    - offset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 312
    functionName: detectDiskEncryption
    functionSourceFile: /src/sleuthkit/tsk/util/detect_encryption.c
    functionUses: 1
    functionsReached:
    - detectCheckPoint
    - detectSophos
    - detectWinMagic
    - detectMcAfee
    - tsk_malloc
    - detectGuardianEdge
    - free
    - snprintf
    - tsk_img_read
    - detectSymantecPGP
    linkageType: ''
    returnType: encryption_detected_result
    signature: 'encryption_detected_result *

      detectDiskEncryption(TSK_IMG_INFO * img_info, TSK_DADDR_T offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: span::span
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: span::span
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(std::nullptr_t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - pointer
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: span::span
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(pointer p, index_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - element_type[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: span::span
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(element_type (&arr)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/sleuthkit/tsk/util/span.hpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - pointer
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: span::span
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached:
    - std::distance
    linkageType: ''
    returnType: void
    signature: void span(pointer first, pointer last) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: span::count
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_type
    signature: index_type count() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: span::valid
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: span::data
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pointer
    signature: pointer data() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/sleuthkit/tsk/util/span.hpp:65,1
    - Dst: std::runtime_error
      Src: /src/sleuthkit/tsk/util/span.hpp:66,1
    - Dst: reinterpret_cast<T*>
      Src: /src/sleuthkit/tsk/util/span.hpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: as
    functionSourceFile: /src/sleuthkit/tsk/util/span.hpp
    functionUses: 2
    functionsReached:
    - count
    - std::runtime_error
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * as() const
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: getMetadataEntryTypeEnum
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_METADATA_ENTRY_TYPE
    signature: BITLOCKER_METADATA_ENTRY_TYPE getMetadataEntryTypeEnum(uint16_t val)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_METADATA_ENTRY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: convertMetadataEntryTypeToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string convertMetadataEntryTypeToString(BITLOCKER_METADATA_ENTRY_TYPE
      type)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: getMetadataValueTypeEnum
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_METADATA_VALUE_TYPE
    signature: BITLOCKER_METADATA_VALUE_TYPE getMetadataValueTypeEnum(uint16_t val)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: convertMetadataValueTypeToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string convertMetadataValueTypeToString(BITLOCKER_METADATA_VALUE_TYPE
      type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: getKeyProtectionTypeEnum
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_KEY_PROTECTION_TYPE
    signature: BITLOCKER_KEY_PROTECTION_TYPE getKeyProtectionTypeEnum(uint16_t val)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_KEY_PROTECTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: convertKeyProtectionTypeToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string convertKeyProtectionTypeToString(BITLOCKER_KEY_PROTECTION_TYPE
      type)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 242
    functionName: getEncryptionTypeEnum
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_ENCRYPTION_TYPE
    signature: BITLOCKER_ENCRYPTION_TYPE getEncryptionTypeEnum(uint16_t val)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_ENCRYPTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 278
    functionName: convertEncryptionTypeToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string
    signature: string convertEncryptionTypeToString(BITLOCKER_ENCRYPTION_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_ENCRYPTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: isAESCBC
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isAESCBC(BITLOCKER_ENCRYPTION_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_ENCRYPTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: isAESXTS
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isAESXTS(BITLOCKER_ENCRYPTION_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - BITLOCKER_ENCRYPTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: usesDiffuser
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool usesDiffuser(BITLOCKER_ENCRYPTION_TYPE type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:26,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:31,1
    - Dst: getMetadataEntryTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:32,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:32,1
    - Dst: getMetadataValueTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:33,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:33,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:37,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:41,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:45,1
    - Dst: string
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:45,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:45,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:45,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:46,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:46,1
    - Dst: createMetadataValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:50,1
    - Dst: MetadataValue*::wasLoadedSuccessfully
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:54,1
    - Dst: MetadataEntry::MetadataEntry
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:60,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:62,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 74
    functionName: MetadataEntry::createMetadataEntry
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp
    functionUses: 0
    functionsReached:
    - getMetadataValueTypeEnum
    - string
    - getMetadataEntryTypeEnum
    - convertByteArrayToString
    - MetadataEntry::MetadataEntry
    - to_string
    - createMetadataValue
    - tsk_getu16
    - writeError
    - writeDebug
    - MetadataValue*::wasLoadedSuccessfully
    linkageType: ''
    returnType: MetadataEntry
    signature: MetadataEntry * MetadataEntry::createMetadataEntry(uint8_t* buf, size_t
      bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: MetadataEntry::MetadataEntry
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataEntry::MetadataEntry()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: MetadataEntry::~MetadataEntry()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataEntry::~MetadataEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: MetadataValueVolumeMasterKey::getProtectionType
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_KEY_PROTECTION_TYPE
    signature: BITLOCKER_KEY_PROTECTION_TYPE getProtectionType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: '& getProperties()'
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: list<MetadataEntry*>
    signature: list<MetadataEntry*> & getProperties()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dest
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: MetadataValueVolumeMasterKey::copyGuid
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void copyGuid(uint8_t* dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:20,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:21,1
    - Dst: getEncryptionTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:25,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:25,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:26,1
    - Dst: MetadataEntry::createMetadataEntry
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: MetadataValueStretchKey::MetadataValueStretchKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
    functionUses: 0
    functionsReached:
    - memset
    - getEncryptionTypeEnum
    - memcpy
    - MetadataEntry::createMetadataEntry
    - tsk_getu16
    - registerError
    linkageType: ''
    returnType: void
    signature: void MetadataValueStretchKey::MetadataValueStretchKey(BITLOCKER_METADATA_VALUE_TYPE
      valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:45,1
    - Dst: MetadataValueStretchKey::generateStretchedKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:49,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:52,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - passwordHash
    - passwordHashLen
    - stretchKey
    - stretchKeyLen
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: MetadataValueStretchKey::parseStretchKeyUsingPassword
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
    functionUses: 0
    functionsReached:
    - writeDebug
    - MetadataValueStretchKey::generateStretchedKey
    - registerError
    - convertByteArrayToString
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS MetadataValueStretchKey::parseStretchKeyUsingPassword(uint8_t*
      passwordHash, size_t passwordHashLen, uint8_t* stretchKey, size_t stretchKeyLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:75,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:79,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:79,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:80,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:80,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:90,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:91,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:92,1
    - Dst: mbedtls_sha256
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:95,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:99,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - passwordHash
    - passwordHashLen
    - salt
    - saltLen
    - result
    - resultLen
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: MetadataValueStretchKey::generateStretchedKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertByteArrayToString
    - mbedtls_sha256
    - memcpy
    - writeError
    - writeDebug
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS MetadataValueStretchKey::generateStretchedKey(uint8_t*
      passwordHash, size_t passwordHashLen, uint8_t* salt, size_t saltLen, uint8_t*
      result, size_t resultLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: MetadataValueStretchKey::~MetadataValueStretchKey()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataValueStretchKey::~MetadataValueStretchKey()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MetadataEntry::createMetadataEntry
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:37,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:39,1
    - Dst: MetadataEntry*::getSize
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:43,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:45,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:50,1
    - Dst: MetadataEntry*::getSize
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - metadataEntryBuffer
    - metadataEntriesBufSize
    - ' entries'
    argTypes:
    - uint8_t*
    - size_t
    - list<MetadataEntry*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: readMetadataEntries
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp
    functionUses: 0
    functionsReached:
    - MetadataEntry::createMetadataEntry
    - writeError
    - push_back
    - MetadataEntry*::getSize
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS readMetadataEntries(uint8_t* metadataEntryBuffer,
      size_t metadataEntriesBufSize, list<MetadataEntry*>& entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:67,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:68,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:68,1
    - Dst: getEntryType
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:69,1
    - Dst: getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:69,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ' entries'
    - entryType
    - valueType
    - ' results'
    argTypes:
    - list<MetadataEntry*>
    - BITLOCKER_METADATA_ENTRY_TYPE
    - BITLOCKER_METADATA_VALUE_TYPE
    - list<MetadataEntry*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: getMetadataEntries
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp
    functionUses: 0
    functionsReached:
    - getValueType
    - clear
    - begin
    - push_back
    - end
    - getEntryType
    linkageType: ''
    returnType: void
    signature: "void getMetadataEntries(const list<MetadataEntry*>& entries, BITLOCKER_METADATA_ENTRY_TYPE
      entryType,\n    BITLOCKER_METADATA_VALUE_TYPE valueType, list<MetadataEntry*>&
      results)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:83,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:84,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:84,1
    - Dst: getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:85,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:86,1
    - Dst: getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' entries'
    - valueType
    - ' results'
    argTypes:
    - list<MetadataEntry*>
    - BITLOCKER_METADATA_VALUE_TYPE
    - list<MetadataValue*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: getMetadataValues
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp
    functionUses: 0
    functionsReached:
    - getValueType
    - clear
    - begin
    - push_back
    - end
    - getValue
    linkageType: ''
    returnType: void
    signature: void getMetadataValues(const list<MetadataEntry*>& entries, BITLOCKER_METADATA_VALUE_TYPE
      valueType, list<MetadataValue*>& results)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MetadataValueVolumeMasterKey::MetadataValueVolumeMasterKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:107,1
    - Dst: MetadataValueStretchKey::MetadataValueStretchKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:109,1
    - Dst: MetadataValueKey::MetadataValueKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:111,1
    - Dst: MetadataValueAesCcmEncryptedKey::MetadataValueAesCcmEncryptedKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:113,1
    - Dst: MetadataValueOffsetAndSize::MetadataValueOffsetAndSize
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:115,1
    - Dst: MetadataValueUnicode::MetadataValueUnicode
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:117,1
    - Dst: MetadataValueGeneric::MetadataValueGeneric
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:127,1
    - Dst: MetadataValueUnknown::MetadataValueUnknown
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 135
    functionName: createMetadataValue
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp
    functionUses: 1
    functionsReached:
    - MetadataValueAesCcmEncryptedKey::MetadataValueAesCcmEncryptedKey
    - MetadataValueUnicode::MetadataValueUnicode
    - MetadataValueStretchKey::MetadataValueStretchKey
    - MetadataValueVolumeMasterKey::MetadataValueVolumeMasterKey
    - MetadataValueUnknown::MetadataValueUnknown
    - MetadataValueOffsetAndSize::MetadataValueOffsetAndSize
    - MetadataValueGeneric::MetadataValueGeneric
    - MetadataValueKey::MetadataValueKey
    linkageType: ''
    returnType: MetadataValue
    signature: MetadataValue * createMetadataValue(BITLOCKER_METADATA_VALUE_TYPE valueType,
      uint8_t* buf, size_t bufLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser::hasBitlockerSignature
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:47,1
    - Dst: BitlockerParser::initialize
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:53,1
    - Dst: string::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:56,1
    - Dst: BitlockerParser::initialize
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:57,1
    - Dst: BitlockerParser::handlePassword
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:61,1
    - Dst: BitlockerParser::initialize
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a_img_info
    - a_volumeOffset
    - a_password
    argTypes:
    - TSK_IMG_INFO*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 66
    functionName: BitlockerParser::initialize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - BitlockerParser::handlePassword
    - BitlockerParser::initialize
    - BitlockerParser::hasBitlockerSignature
    - string::empty
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::initialize(TSK_IMG_INFO* a_img_info,
      uint64_t a_volumeOffset, const char* a_password)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser::hasBitlockerSignature
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:86,1
    - Dst: BitlockerParser::initializeInternal
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a_img_info
    - a_volumeOffset
    argTypes:
    - TSK_IMG_INFO*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: BitlockerParser::initialize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - BitlockerParser::hasBitlockerSignature
    - BitlockerParser::initializeInternal
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::initialize(TSK_IMG_INFO* a_img_info,
      uint64_t a_volumeOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:104,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:106,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:106,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:110,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:111,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a_img_info
    - a_volumeOffset
    argTypes:
    - TSK_IMG_INFO*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: BitlockerParser::hasBitlockerSignature
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 2
    functionsReached:
    - memcmp
    - convertUint64ToString
    - convertByteArrayToString
    - writeDebug
    - tsk_img_read
    linkageType: ''
    returnType: bool
    signature: bool BitlockerParser::hasBitlockerSignature(TSK_IMG_INFO* a_img_info,
      uint64_t a_volumeOffset)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:141,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:146,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:148,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:152,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:154,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:154,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:155,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:160,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:160,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:161,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:161,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:162,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:163,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:164,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:170,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:170,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:171,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:171,1
    - Dst: push_back
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:172,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:172,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:173,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:177,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:178,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:181,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:189,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:189,1
    - Dst: BitlockerParser::clearFveMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:192,1
    - Dst: BitlockerParser::readFveMetadataBlockHeader
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:198,1
    - Dst: BitlockerParser::readFveMetadataHeader
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:204,1
    - Dst: BitlockerParser::readFveMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:212,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:216,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:217,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:217,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:218,1
    - Dst: convertMetadataEntryTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:218,1
    - Dst: getEntryType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:218,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:219,1
    - Dst: getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:219,1
    - Dst: BitlockerParser::getVolumeMasterKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:223,1
    - Dst: BitlockerParser::getFullVolumeEncryptionKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:238,1
    - Dst: BitlockerParser::parseVolumeHeader
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:245,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:249,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:249,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:250,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:250,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:254,1
    - Dst: BitlockerParser::clearIntermediateData
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:255,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:257,1
    - Dst: BitlockerParser::getDescription
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:257,1
    - Dst: BitlockerParser::clearFveMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:263,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - a_img_info
    - a_volumeOffset
    argTypes:
    - TSK_IMG_INFO*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 274
    functionName: BitlockerParser::initializeInternal
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - convertMetadataValueTypeToString
    - BitlockerParser::readFveMetadataBlockHeader
    - getValueType
    - BitlockerParser::getVolumeMasterKey
    - begin
    - BitlockerParser::clearIntermediateData
    - to_string
    - tsk_getu64
    - convertByteArrayToString
    - writeDebug
    - tsk_img_read
    - BitlockerParser::parseVolumeHeader
    - convertUint64ToString
    - BitlockerParser::readFveMetadataHeader
    - tsk_getu16
    - tsk_malloc
    - writeError
    - end
    - BitlockerParser::getDescription
    - convertMetadataEntryTypeToString
    - BitlockerParser::getFullVolumeEncryptionKey
    - push_back
    - free
    - getEntryType
    - BitlockerParser::clearFveMetadataEntries
    - BitlockerParser::readFveMetadataEntries
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::initializeInternal(TSK_IMG_INFO*
      a_img_info, uint64_t a_volumeOffset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:286,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:286,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:289,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:291,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:295,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:297,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:297,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:298,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:304,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:304,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:305,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:305,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:306,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:307,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:308,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:313,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:314,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:314,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:316,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:316,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:317,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:322,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:326,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:327,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - ' currentOffset'
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 331
    functionName: BitlockerParser::readFveMetadataBlockHeader
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - convertUint64ToString
    - convertByteArrayToString
    - tsk_getu32
    - to_string
    - tsk_getu16
    - tsk_malloc
    - writeError
    - writeDebug
    - free
    - tsk_img_read
    - tsk_getu64
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::readFveMetadataBlockHeader(uint64_t&
      currentOffset)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:343,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:343,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:346,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:348,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:352,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:354,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:354,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:355,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:361,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:362,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:362,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:363,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:363,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:365,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:365,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:366,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:373,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:373,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:374,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:377,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:377,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:380,1
    - Dst: getEncryptionTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:381,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:383,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:383,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:384,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:387,1
    - Dst: convertEncryptionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:387,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:387,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - ' currentOffset'
    - ' metadataEntriesSize'
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 391
    functionName: BitlockerParser::readFveMetadataHeader
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - convertUint64ToString
    - getEncryptionTypeEnum
    - convertEncryptionTypeToString
    - tsk_getu32
    - to_string
    - tsk_malloc
    - writeError
    - convertUint32ToString
    - writeDebug
    - free
    - tsk_img_read
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::readFveMetadataHeader(uint64_t& currentOffset,
      uint32_t& metadataEntriesSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:402,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:402,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:403,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:403,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:406,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:408,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:412,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:414,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:414,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:415,1
    - Dst: readMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:421,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:422,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - currentOffset
    - metadataEntriesSize
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 428
    functionName: BitlockerParser::readFveMetadataEntries
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - convertUint64ToString
    - readMetadataEntries
    - to_string
    - tsk_malloc
    - writeError
    - convertUint32ToString
    - writeDebug
    - free
    - tsk_img_read
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::readFveMetadataEntries(uint64_t currentOffset,
      uint32_t metadataEntriesSize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:449,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:450,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:451,1
    - Dst: list::begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:461,1
    - Dst: list::end
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:461,1
    - Dst: BitlockerParser::parseVMKEntry
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:463,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:485,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 510
    functionName: BitlockerParser::getVolumeMasterKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - list::end
    - getMetadataEntries
    - list::begin
    - BitlockerParser::parseVMKEntry
    - writeError
    - writeDebug
    - list::empty
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::getVolumeMasterKey()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:528,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:532,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:533,1
    - Dst: MetadataEntry*::getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:537,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:539,1
    - Dst: dynamic_cast<MetadataValueVolumeMasterKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:543,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:545,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:550,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:550,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:551,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:551,1
    - Dst: getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:551,1
    - Dst: MetadataValueVolumeMasterKey*::getProtectionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:554,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:555,1
    - Dst: convertKeyProtectionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:555,1
    - Dst: BitlockerParser::parsePasswordProtectedVMK
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:561,1
    - Dst: BitlockerParser::parseClearKeyProtectedVMK
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:564,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:567,1
    - Dst: convertKeyProtectionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:567,1
    - Dst: insert
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - entry
    - vmkEntry
    argTypes:
    - MetadataEntry*
    - MetadataEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 571
    functionName: BitlockerParser::parseVMKEntry
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - getValueType
    - convertMetadataValueTypeToString
    - MetadataValueVolumeMasterKey*::getProtectionType
    - BitlockerParser::parseClearKeyProtectedVMK
    - convertKeyProtectionTypeToString
    - dynamic_cast<MetadataValueVolumeMasterKey*>
    - BitlockerParser::parsePasswordProtectedVMK
    - MetadataEntry*::getValue
    - writeError
    - MetadataEntry*::getValueType
    - MetadataValueVolumeMasterKey*::getProperties
    - writeDebug
    - insert
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::parseVMKEntry(MetadataEntry* entry,
      MetadataEntry** vmkEntry)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:587,1
    - Dst: MetadataValueVolumeMasterKey*::getProtectionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:591,1
    - Dst: MetadataValueVolumeMasterKey*::copyGuid
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:595,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:596,1
    - Dst: convertGuidToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:596,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:602,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:607,1
    - Dst: getMetadataValues
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:613,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:613,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:614,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:615,1
    - Dst: dynamic_cast<MetadataValueStretchKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:619,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:619,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:621,1
    - Dst: MetadataValueStretchKey*::parseStretchKeyUsingPassword
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:629,1
    - Dst: MetadataValueStretchKey*::parseStretchKeyUsingPassword
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:632,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:635,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:636,1
    - Dst: getMetadataValues
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:642,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:642,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:643,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:644,1
    - Dst: dynamic_cast<MetadataValueAesCcmEncryptedKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:648,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:648,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:650,1
    - Dst: MetadataValueAesCcmEncryptedKey*::decrypt
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:658,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:666,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:667,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:668,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:668,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 2
    argNames:
    - vmkValue
    - vmkEntry
    argTypes:
    - MetadataValueVolumeMasterKey*
    - MetadataEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 678
    functionName: BitlockerParser::parsePasswordProtectedVMK
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - convertMetadataValueTypeToString
    - list::empty
    - MetadataValueVolumeMasterKey*::getProtectionType
    - convertGuidToString
    - dynamic_cast<MetadataValueStretchKey*>
    - memset
    - MetadataValueAesCcmEncryptedKey*::decrypt
    - list::front
    - getMetadataValues
    - dynamic_cast<MetadataValueAesCcmEncryptedKey*>
    - writeError
    - MetadataEntry*::getValueType
    - MetadataValueVolumeMasterKey*::getProperties
    - writeDebug
    - MetadataValueVolumeMasterKey*::copyGuid
    - MetadataValueStretchKey*::parseStretchKeyUsingPassword
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::parsePasswordProtectedVMK(MetadataValueVolumeMasterKey*
      vmkValue, MetadataEntry** vmkEntry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MetadataValueVolumeMasterKey*::getProtectionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:691,1
    - Dst: getMetadataValues
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:695,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:695,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:696,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:697,1
    - Dst: dynamic_cast<MetadataValueKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:701,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:701,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:703,1
    - Dst: getMetadataValues
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:709,1
    - Dst: MetadataValueVolumeMasterKey*::getProperties
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:709,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:710,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:711,1
    - Dst: dynamic_cast<MetadataValueAesCcmEncryptedKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:715,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:715,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:717,1
    - Dst: MetadataValueAesCcmEncryptedKey*::decrypt
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:725,1
    - Dst: MetadataValueKey*::getKeyBytes
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:725,1
    - Dst: MetadataValueKey*::getKeyLen
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:725,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:733,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:738,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:739,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:740,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:740,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - vmkValue
    - vmkEntry
    argTypes:
    - MetadataValueVolumeMasterKey*
    - MetadataEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 750
    functionName: BitlockerParser::parseClearKeyProtectedVMK
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - MetadataValueKey*::getKeyLen
    - convertMetadataValueTypeToString
    - MetadataValueAesCcmEncryptedKey*::decrypt
    - MetadataValueVolumeMasterKey*::getProtectionType
    - MetadataValueKey*::getKeyBytes
    - list::front
    - getMetadataValues
    - dynamic_cast<MetadataValueKey*>
    - dynamic_cast<MetadataValueAesCcmEncryptedKey*>
    - writeError
    - MetadataEntry*::getValueType
    - MetadataValueVolumeMasterKey*::getProperties
    - list::empty
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::parseClearKeyProtectedVMK(MetadataValueVolumeMasterKey*
      vmkValue, MetadataEntry** vmkEntry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:762,1
    - Dst: getMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:768,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:770,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:771,1
    - Dst: dynamic_cast<MetadataValueAesCcmEncryptedKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:775,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:775,1
    - Dst: getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:775,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:777,1
    - Dst: BitlockerParser::getKeyData
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:785,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:786,1
    - Dst: MetadataValueAesCcmEncryptedKey*::decrypt
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:794,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:802,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:803,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:804,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:804,1
    - Dst: BitlockerParser::setKeys
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 813
    functionName: BitlockerParser::getFullVolumeEncryptionKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - BitlockerParser::setKeys
    - convertMetadataValueTypeToString
    - MetadataValueAesCcmEncryptedKey*::decrypt
    - list::front
    - getMetadataEntries
    - dynamic_cast<MetadataValueAesCcmEncryptedKey*>
    - BitlockerParser::getKeyData
    - writeError
    - MetadataEntry*::getValueType
    - list::empty
    - getValue
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::getFullVolumeEncryptionKey()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:827,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:828,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:828,1
    - Dst: MetadataEntry*::getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:828,1
    - Dst: dynamic_cast<MetadataValueKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:832,1
    - Dst: MetadataEntry*::getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:832,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:834,1
    - Dst: MetadataValueKey*::getKeyBytes
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:839,1
    - Dst: MetadataValueKey*::getKeyLen
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:840,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - entry
    - keyDataPtr
    - ' keyLen'
    argTypes:
    - MetadataEntry*
    - uint8_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 848
    functionName: BitlockerParser::getKeyData
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - MetadataValueKey*::getKeyLen
    - convertMetadataValueTypeToString
    - MetadataValueKey*::getKeyBytes
    - dynamic_cast<MetadataValueKey*>
    - MetadataEntry*::getValue
    - writeError
    - MetadataEntry*::getValueType
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::getKeyData(MetadataEntry* entry,
      uint8_t** keyDataPtr, size_t& keyLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:861,1
    - Dst: dynamic_cast<MetadataValueKey*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:865,1
    - Dst: MetadataEntry*::getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:865,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:867,1
    - Dst: BitlockerParser::setKeys
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:872,1
    - Dst: MetadataValueKey*::getEncryptionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:876,1
    - Dst: BitlockerParser::setKeys
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:877,1
    - Dst: MetadataValueKey*::getEncryptionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:877,1
    - Dst: MetadataValueKey*::getEncryptionType
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:880,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:886,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:887,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:890,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:893,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - fvekEntry
    argTypes:
    - MetadataEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 900
    functionName: BitlockerParser::setKeys
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 2
    functionsReached:
    - BitlockerParser::setKeys
    - MetadataValueKey*::getEncryptionType
    - dynamic_cast<MetadataValueKey*>
    - MetadataEntry*::getValue
    - tsk_malloc
    - writeError
    - free
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::setKeys(MetadataEntry* fvekEntry)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:913,1
    - Dst: convertEncryptionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:913,1
    - Dst: MetadataValueKey*::getKeyLen
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:916,1
    - Dst: MetadataValueKey*::getKeyBytes
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:917,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:925,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:925,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:929,1
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:930,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:931,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:934,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:942,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:942,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:946,1
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:947,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:948,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:951,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:959,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:959,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:963,1
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:964,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:967,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:975,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:975,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:979,1
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:980,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:983,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:991,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:991,1
    - Dst: mbedtls_aes_xts_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:995,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:998,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1006,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1006,1
    - Dst: mbedtls_aes_xts_setkey_dec
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1010,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1013,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1019,1
    - Dst: convertEncryptionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1019,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 79
    argCount: 2
    argNames:
    - fvek
    - type
    argTypes:
    - MetadataValueKey*
    - BITLOCKER_ENCRYPTION_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 1022
    functionName: BitlockerParser::setKeys
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 2
    functionsReached:
    - MetadataValueKey*::getKeyLen
    - mbedtls_aes_xts_setkey_dec
    - MetadataValueKey*::getKeyBytes
    - mbedtls_aes_setkey_dec
    - convertEncryptionTypeToString
    - to_string
    - writeError
    - mbedtls_aes_setkey_enc
    - writeDebug
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::setKeys(MetadataValueKey* fvek, BITLOCKER_ENCRYPTION_TYPE
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1034,1
    - Dst: list::empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1036,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1037,1
    - Dst: dynamic_cast<MetadataValueOffsetAndSize*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1041,1
    - Dst: list::front
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1041,1
    - Dst: getValue
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1041,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1043,1
    - Dst: MetadataValueOffsetAndSize*::getOffset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1049,1
    - Dst: MetadataValueOffsetAndSize*::getSize
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1050,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1051,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1051,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1052,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1054
    functionName: BitlockerParser::parseVolumeHeader
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - convertUint64ToString
    - list::front
    - getMetadataEntries
    - MetadataValueOffsetAndSize*::getSize
    - writeError
    - writeDebug
    - MetadataValueOffsetAndSize*::getOffset
    - list::empty
    - getValue
    - dynamic_cast<MetadataValueOffsetAndSize*>
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::parseVolumeHeader()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1077,1
    - Dst: std::wstring_convert::from_bytes
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1083,1
    - Dst: mbedtls_sha256
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1087,1
    - Dst: wstring::c_str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1087,1
    - Dst: wstring::length
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1087,1
    - Dst: mbedtls_sha256
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1088,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1091,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1091,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1097,1
    - Dst: std::regex_search
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1108,1
    - Dst: std::match_results::size
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1108,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1109,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1114,1
    - Dst: stoul
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1118,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1120,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1120,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1126,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1126,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1133,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1134,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1139,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1139,1
    - Dst: mbedtls_sha256
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1142,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1145,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 1
    argNames:
    - password
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1148
    functionName: BitlockerParser::handlePassword
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertByteArrayToString
    - wstring::c_str
    - mbedtls_sha256
    - stoul
    - to_string
    - std::wstring_convert::from_bytes
    - writeError
    - std::regex_search
    - writeDebug
    - wstring::length
    - std::match_results::size
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS BitlockerParser::handlePassword(string password)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1161,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1161,1
    - Dst: BitlockerParser::initializationSuccessful
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1162,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1163,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1172,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1172,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1177,1
    - Dst: convertUint32ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1177,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1183,1
    - Dst: BitlockerParser::decryptSector
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1187,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1200,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1204,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1204,1
    - Dst: BitlockerParser::convertVolumeOffset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1210,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1211,1
    - Dst: BitlockerParser::decryptSector
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1217,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1231,1
    - Dst: BitlockerParser::decryptSector
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1239,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - offsetInVolume
    - len
    - data
    argTypes:
    - TSK_DADDR_T
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1247
    functionName: BitlockerParser::readAndDecryptSectors
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached:
    - BitlockerParser::convertVolumeOffset
    - convertUint64ToString
    - BitlockerParser::decryptSector
    - writeError
    - convertUint32ToString
    - writeDebug
    - tsk_img_read
    - BitlockerParser::initializationSuccessful
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t BitlockerParser::readAndDecryptSectors(TSK_DADDR_T offsetInVolume,
      size_t len, uint8_t* data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser::initializationSuccessful
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1259,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1260,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1268,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1269,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1269,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1269,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1274,1
    - Dst: isAESCBC
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1276,1
    - Dst: usesDiffuser
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1277,1
    - Dst: BitlockerParser::decryptSectorAESCBC_diffuser
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1278,1
    - Dst: BitlockerParser::decryptSectorAESCBC_noDiffuser
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1281,1
    - Dst: isAESXTS
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1284,1
    - Dst: BitlockerParser::decryptSectorAESXTS
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1285,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1288,1
    - Dst: convertEncryptionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1288,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - volumeOffset
    - data
    argTypes:
    - TSK_DADDR_T
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1293
    functionName: BitlockerParser::decryptSector
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - tsk_take_lock
    - convertUint64ToString
    - convertByteArrayToString
    - BitlockerParser::decryptSectorAESCBC_diffuser
    - convertEncryptionTypeToString
    - BitlockerParser::decryptSectorAESXTS
    - usesDiffuser
    - writeError
    - tsk_release_lock
    - writeDebug
    - isAESCBC
    - BitlockerParser::decryptSectorAESCBC_noDiffuser
    - BitlockerParser::initializationSuccessful
    - isAESXTS
    linkageType: ''
    returnType: int
    signature: int BitlockerParser::decryptSector(TSK_DADDR_T volumeOffset, uint8_t*
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1305,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1313,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1317,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1317,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1317,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1318,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1318,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1322,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1324,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1324,1
    - Dst: mbedtls_aes_crypt_cbc
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1327,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1329,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1329,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1333
    functionName: BitlockerParser::decryptSectorAESCBC_noDiffuser
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertUint64ToString
    - convertByteArrayToString
    - mbedtls_aes_crypt_ecb
    - memcpy
    - mbedtls_aes_crypt_cbc
    - writeDebug
    linkageType: ''
    returnType: int
    signature: int BitlockerParser::decryptSectorAESCBC_noDiffuser(uint64_t offset,
      uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1336
    functionName: BITLOCKER_DIFFUSER_ROTATE_LEFT
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITLOCKER_DIFFUSER_ROTATE_LEFT(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1347,1
    - Dst: BITLOCKER_DIFFUSER_ROTATE_LEFT
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - dataLen
    - result
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1363
    functionName: BitlockerParser::decryptDiffuserA
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached:
    - BITLOCKER_DIFFUSER_ROTATE_LEFT
    - memcpy
    linkageType: ''
    returnType: void
    signature: void BitlockerParser::decryptDiffuserA(uint8_t* data, uint16_t dataLen,
      uint8_t* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1375,1
    - Dst: BITLOCKER_DIFFUSER_ROTATE_LEFT
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - dataLen
    - result
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1391
    functionName: BitlockerParser::decryptDiffuserB
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached:
    - BITLOCKER_DIFFUSER_ROTATE_LEFT
    - memcpy
    linkageType: ''
    returnType: void
    signature: void BitlockerParser::decryptDiffuserB(uint8_t* data, uint16_t dataLen,
      uint8_t* result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1403,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1404,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1405,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1413,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1418,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1420,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1422,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1425,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1425,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1425,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1426,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1426,1
    - Dst: BitlockerParser::decryptSectorAESCBC_noDiffuser
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1430,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1431,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1432,1
    - Dst: BitlockerParser::decryptDiffuserB
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1437,1
    - Dst: BitlockerParser::decryptDiffuserA
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1438,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1446,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1446,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1446,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1449,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1453
    functionName: BitlockerParser::decryptSectorAESCBC_diffuser
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertUint64ToString
    - convertByteArrayToString
    - mbedtls_aes_crypt_ecb
    - BitlockerParser::decryptDiffuserA
    - BitlockerParser::decryptDiffuserB
    - memcpy
    - writeDebug
    - BitlockerParser::decryptSectorAESCBC_noDiffuser
    linkageType: ''
    returnType: int
    signature: int BitlockerParser::decryptSectorAESCBC_diffuser(uint64_t offset,
      uint8_t* data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1465,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1473,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1477,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1477,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1478,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1478,1
    - Dst: mbedtls_aes_crypt_xts
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1481,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1483,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - data
    argTypes:
    - uint64_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1487
    functionName: BitlockerParser::decryptSectorAESXTS
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertByteArrayToString
    - mbedtls_aes_crypt_xts
    - memcpy
    - writeDebug
    linkageType: ''
    returnType: int
    signature: int BitlockerParser::decryptSectorAESXTS(uint64_t offset, uint8_t*
      data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1498,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1498,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1504,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1516,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - origOffset
    argTypes:
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1519
    functionName: BitlockerParser::convertVolumeOffset
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - writeDebug
    - convertUint64ToString
    linkageType: ''
    returnType: TSK_DADDR_T
    signature: TSK_DADDR_T BitlockerParser::convertVolumeOffset(TSK_DADDR_T origOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convertEncryptionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1539,1
    - Dst: convertKeyProtectionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1540,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1542
    functionName: BitlockerParser::getDescription
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 1
    functionsReached:
    - convertEncryptionTypeToString
    - convertKeyProtectionTypeToString
    - stringstream::str
    linkageType: ''
    returnType: string
    signature: string BitlockerParser::getDescription()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1554,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1559,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1559,1
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1560,1
    - Dst: convertKeyProtectionTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1563,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1566
    functionName: BitlockerParser::getUnsupportedProtectionTypes
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached:
    - empty
    - convertKeyProtectionTypeToString
    - begin
    - stringstream::str
    - end
    linkageType: ''
    returnType: string
    signature: string BitlockerParser::getUnsupportedProtectionTypes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convertGuidToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp:1577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1578
    functionName: BitlockerParser::getRecoveryKeyIdStr
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    functionUses: 0
    functionsReached:
    - convertGuidToString
    linkageType: ''
    returnType: string
    signature: string BitlockerParser::getRecoveryKeyIdStr()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:18,1
    - Dst: getEncryptionTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:23,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:23,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:26,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:28,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - a_valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: MetadataValueKey::MetadataValueKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp
    functionUses: 1
    functionsReached:
    - getEncryptionTypeEnum
    - tsk_getu32
    - memcpy
    - tsk_malloc
    - registerError
    linkageType: ''
    returnType: void
    signature: void MetadataValueKey::MetadataValueKey(BITLOCKER_METADATA_VALUE_TYPE
      a_valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - valueType
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: MetadataValue::MetadataValue
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataValue(BITLOCKER_METADATA_VALUE_TYPE valueType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: MetadataValue::getValueType
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_METADATA_VALUE_TYPE
    signature: BITLOCKER_METADATA_VALUE_TYPE getValueType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: MetadataValue::wasLoadedSuccessfully
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool wasLoadedSuccessfully()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errMsg
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: MetadataValue::registerError
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached:
    - writeError
    linkageType: ''
    returnType: void
    signature: void registerError(string errMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~MetadataValue()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MetadataValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a_valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: MetadataValueGeneric::MetadataValueGeneric
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataValueGeneric(BITLOCKER_METADATA_VALUE_TYPE a_valueType,
      uint8_t* buf, size_t bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~MetadataValueGeneric()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MetadataValueGeneric()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a_valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: MetadataValueUnknown::MetadataValueUnknown
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MetadataValueUnknown(BITLOCKER_METADATA_VALUE_TYPE a_valueType,
      uint8_t* buf, size_t bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~MetadataValueUnknown()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MetadataValueUnknown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: MetadataValueOffsetAndSize::getOffset
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getOffset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: MetadataValueOffsetAndSize::getSize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ~MetadataValueOffsetAndSize()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MetadataValueOffsetAndSize()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:30,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:31,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:32,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:35,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errMes
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: writeError
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 20
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - string::c_str
    linkageType: ''
    returnType: void
    signature: void writeError(string errMes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:47,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - warningMes
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: writeWarning
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 0
    functionsReached:
    - string::c_str
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void writeWarning(string warningMes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:59,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - debugMes
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: writeDebug
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 20
    functionsReached:
    - string::c_str
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void writeDebug(string debugMes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:75,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:75,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: convertByteArrayToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 11
    functionsReached:
    - std::stringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: string
    signature: string convertByteArrayToString(uint8_t* bytes, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:90,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:90,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: convertUint32ToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 3
    functionsReached:
    - std::stringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: string
    signature: string convertUint32ToString(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:104,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:104,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: convertUint64ToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 11
    functionsReached:
    - std::stringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: string
    signature: string convertUint64ToString(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:125,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:126,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:127,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:132,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:132,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:134,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:134,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:136,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:136,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:138,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:138,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:138,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:139,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:139,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:139,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:141,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:141,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:141,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:142,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:142,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:142,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:143,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:143,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:143,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:144,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:144,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:144,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:145,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:145,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:145,1
    - Dst: std::setw
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:146,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:146,1
    - Dst: static_cast<short>
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:146,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 149
    functionName: convertGuidToString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    functionUses: 2
    functionsReached:
    - std::setw
    - tsk_getu32
    - stringstream::str
    - std::setfill
    - tsk_getu16
    - static_cast<short>
    linkageType: ''
    returnType: string
    signature: string convertGuidToString(uint8_t* bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:102,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:103,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:104,1
    - Dst: mbedtls_aes_init
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:105,1
    - Dst: mbedtls_aes_init
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:106,1
    - Dst: mbedtls_aes_init
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:107,1
    - Dst: mbedtls_aes_xts_init
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:108,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: BitlockerParser::BitlockerParser
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 1
    functionsReached:
    - mbedtls_aes_init
    - memset
    - mbedtls_aes_xts_init
    - tsk_init_lock
    linkageType: ''
    returnType: void
    signature: void BitlockerParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: BitlockerParser::initializationSuccessful
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool initializationSuccessful()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: BitlockerParser::getSectorSize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getSectorSize()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clearIntermediateData
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:127,1
    - Dst: mbedtls_aes_free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:128,1
    - Dst: mbedtls_aes_free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:129,1
    - Dst: mbedtls_aes_free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:130,1
    - Dst: mbedtls_aes_xts_free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:131,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:133,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:134,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:138,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:139,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: ~BitlockerParser()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 0
    functionsReached:
    - memset
    - tsk_deinit_lock
    - mbedtls_aes_xts_free
    - free
    - clearIntermediateData
    - mbedtls_aes_free
    linkageType: ''
    returnType: void
    signature: void ~BitlockerParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:163,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:163,1
    - Dst: clear
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: BitlockerParser::clearFveMetadataEntries
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 1
    functionsReached:
    - clear
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void clearFveMetadataEntries()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BitlockerParser::clearFveMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:170,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:171,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: BitlockerParser::clearIntermediateData
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    functionUses: 1
    functionsReached:
    - memset
    - BitlockerParser::clearFveMetadataEntries
    linkageType: ''
    returnType: void
    signature: void clearIntermediateData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: MetadataValueKey::getKeyLen
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getKeyLen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: MetadataValueKey::getKeyBytes
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * getKeyBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: MetadataValueKey::getEncryptionType
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_ENCRYPTION_TYPE
    signature: BITLOCKER_ENCRYPTION_TYPE getEncryptionType()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h:36,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: ~MetadataValueKey()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h
    functionUses: 0
    functionsReached:
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void ~MetadataValueKey()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:18,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:19,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:29,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:30,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:30,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:31,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:32,1
    - Dst: convertUint64ToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:32,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:33,1
    - Dst: getKeyProtectionTypeEnum
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:34,1
    - Dst: tsk_getu16
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:34,1
    - Dst: readMetadataEntries
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:36,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: MetadataValueVolumeMasterKey::MetadataValueVolumeMasterKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertUint64ToString
    - convertByteArrayToString
    - getKeyProtectionTypeEnum
    - readMetadataEntries
    - memcpy
    - tsk_getu16
    - writeDebug
    - registerError
    - tsk_getu64
    linkageType: ''
    returnType: void
    signature: void MetadataValueVolumeMasterKey::MetadataValueVolumeMasterKey(BITLOCKER_METADATA_VALUE_TYPE
      valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:42,1
    - Dst: end
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: MetadataValueVolumeMasterKey::~MetadataValueVolumeMasterKey()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void MetadataValueVolumeMasterKey::~MetadataValueVolumeMasterKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: MetadataValueUnicode::getUnicodeWString
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wstring
    signature: wstring getUnicodeWString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: ~MetadataValueUnicode()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MetadataValueUnicode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.cpp:17,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.cpp:21,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: MetadataValueOffsetAndSize::MetadataValueOffsetAndSize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.cpp
    functionUses: 1
    functionsReached:
    - registerError
    - tsk_getu64
    linkageType: ''
    returnType: void
    signature: void MetadataValueOffsetAndSize::MetadataValueOffsetAndSize(BITLOCKER_METADATA_VALUE_TYPE
      valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp:20,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp:25,1
    - Dst: wstring
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp:28,1
    - Dst: reinterpret_cast<wchar_t*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - a_valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: MetadataValueUnicode::MetadataValueUnicode
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp
    functionUses: 1
    functionsReached:
    - wstring
    - registerError
    - reinterpret_cast<wchar_t*>
    linkageType: ''
    returnType: void
    signature: void MetadataValueUnicode::MetadataValueUnicode(BITLOCKER_METADATA_VALUE_TYPE
      a_valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:18,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:21,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:26,1
    - Dst: registerError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:28,1
    - Dst: tsk_getu64
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:32,1
    - Dst: tsk_getu32
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:33,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:34,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - valueType
    - buf
    - bufLen
    argTypes:
    - BITLOCKER_METADATA_VALUE_TYPE
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: MetadataValueAesCcmEncryptedKey::MetadataValueAesCcmEncryptedKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
    functionUses: 1
    functionsReached:
    - memset
    - tsk_getu32
    - memcpy
    - tsk_malloc
    - registerError
    - tsk_getu64
    linkageType: ''
    returnType: void
    signature: void MetadataValueAesCcmEncryptedKey::MetadataValueAesCcmEncryptedKey(BITLOCKER_METADATA_VALUE_TYPE
      valueType, uint8_t* buf, size_t bufLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:54,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:58,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:60,1
    - Dst: MetadataValueAesCcmEncryptedKey::decryptKey
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:65,1
    - Dst: std::fill_n<volatile uint8_t*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:67,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:68,1
    - Dst: MetadataEntry::createMetadataEntry
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:74,1
    - Dst: std::fill_n<volatile uint8_t*>
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:75,1
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:76,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:80,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:84,1
    - Dst: convertMetadataEntryTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:84,1
    - Dst: getEntryType
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:84,1
    - Dst: convertMetadataValueTypeToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:85,1
    - Dst: getValueType
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - key
    - keyLen
    - keyEntry
    argTypes:
    - uint8_t*
    - size_t
    - MetadataEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 88
    functionName: MetadataValueAesCcmEncryptedKey::decrypt
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
    functionUses: 0
    functionsReached:
    - getValueType
    - convertMetadataValueTypeToString
    - std::fill_n<volatile uint8_t*>
    - MetadataEntry::createMetadataEntry
    - tsk_malloc
    - writeError
    - MetadataValueAesCcmEncryptedKey::decryptKey
    - writeDebug
    - free
    - getEntryType
    - convertMetadataEntryTypeToString
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: BITLOCKER_STATUS MetadataValueAesCcmEncryptedKey::decrypt(uint8_t*
      key, size_t keyLen, MetadataEntry** keyEntry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:106,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:106,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:107,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:107,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:108,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:108,1
    - Dst: min
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:108,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:114,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:115,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:118,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:118,1
    - Dst: mbedtls_aes_init
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:122,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:123,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:129,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:135,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:135,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:154,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:158,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:158,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:163,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:165,1
    - Dst: MetadataValueAesCcmEncryptedKey::createMessageAuthenticationCode
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:168,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:173,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:173,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:174,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:174,1
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:176,1
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 5
    argNames:
    - key
    - keyLen
    - encryptedData
    - encryptedDataLen
    - decryptedData
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 182
    functionName: MetadataValueAesCcmEncryptedKey::decryptKey
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - min
    - memset
    - convertByteArrayToString
    - mbedtls_aes_crypt_ecb
    - memcpy
    - writeError
    - mbedtls_aes_setkey_enc
    - writeDebug
    - mbedtls_aes_init
    - MetadataValueAesCcmEncryptedKey::createMessageAuthenticationCode
    linkageType: ''
    returnType: BITLOCKER_STATUS
    signature: "BITLOCKER_STATUS MetadataValueAesCcmEncryptedKey::decryptKey(uint8_t*
      key, size_t keyLen, uint8_t* encryptedData,\n    size_t encryptedDataLen, uint8_t*
      decryptedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writeError
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:201,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:201,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:205,1
    - Dst: to_string
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:205,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:207,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:207,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:211,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:213,1
    - Dst: writeDebug
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:220,1
    - Dst: convertByteArrayToString
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:220,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:222,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:231,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:244,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:247,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 6
    argNames:
    - aes_context_ptr
    - nonce
    - nonceLen
    - data
    - dataLen
    - mac
    argTypes:
    - mbedtls_aes_context*
    - uint8_t*
    - uint8_t
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: MetadataValueAesCcmEncryptedKey::createMessageAuthenticationCode
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
    functionUses: 1
    functionsReached:
    - memset
    - convertByteArrayToString
    - mbedtls_aes_crypt_ecb
    - to_string
    - memcpy
    - writeError
    - writeDebug
    linkageType: ''
    returnType: int
    signature: "int MetadataValueAesCcmEncryptedKey::createMessageAuthenticationCode(mbedtls_aes_context*
      aes_context_ptr, uint8_t* nonce, uint8_t nonceLen, \n    uint8_t* data, size_t
      dataLen, uint8_t* mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: MetadataValueAesCcmEncryptedKey::~MetadataValueAesCcmEncryptedKey()
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void MetadataValueAesCcmEncryptedKey::~MetadataValueAesCcmEncryptedKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: MetadataEntry::getSize
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: MetadataEntry::getEntryType
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_METADATA_ENTRY_TYPE
    signature: BITLOCKER_METADATA_ENTRY_TYPE getEntryType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: MetadataEntry::getValueType
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BITLOCKER_METADATA_VALUE_TYPE
    signature: BITLOCKER_METADATA_VALUE_TYPE getValueType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: MetadataEntry::getValue
    functionSourceFile: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MetadataValue
    signature: MetadataValue * getValue()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/mult_files.c:25,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/mult_files.c:25,1
    - Dst: TSTRICMP
      Src: /src/sleuthkit/tsk/img/mult_files.c:26,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/mult_files.c:26,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/mult_files.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - TSK_TCHAR*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: endsWith
    functionSourceFile: /src/sleuthkit/tsk/img/mult_files.c
    functionUses: 0
    functionsReached:
    - TSTRLEN
    - TSTRICMP
    linkageType: ''
    returnType: int
    signature: int endsWith(const TSK_TCHAR * str, const TSK_TCHAR * suffix)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/mult_files.c:45,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/mult_files.c:47,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/mult_files.c:55,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:61,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:61,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:62,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:62,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:68,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:68,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:69,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:69,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:73,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:73,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:79,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:79,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:80,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:80,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:82,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:88,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:89,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:89,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:91,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:97,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:98,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:98,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:100,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:100,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:106,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:107,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:108,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:120,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:127,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:127,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:128,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:128,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:129,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:129,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:139,1
    - Dst: endsWith
      Src: /src/sleuthkit/tsk/img/mult_files.c:146,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:146,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tsk/img/mult_files.c:147,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/mult_files.c:147,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:153,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - a_startingName
    - a_segmentNumber
    argTypes:
    - TSK_TCHAR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 155
    functionName: getSegmentName
    functionSourceFile: /src/sleuthkit/tsk/img/mult_files.c
    functionUses: 0
    functionsReached:
    - TSTRNCPY
    - TSNPRINTF
    - tsk_malloc
    - _TSK_T
    - free
    - TSTRLEN
    - endsWith
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR *

      getSegmentName(const TSK_TCHAR * a_startingName, int a_segmentNumber)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getSegmentName
      Src: /src/sleuthkit/tsk/img/mult_files.c:176,1
    - Dst: TSTAT
      Src: /src/sleuthkit/tsk/img/mult_files.c:179,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:180,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/mult_files.c:185,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/mult_files.c:191,1
    - Dst: tsk_realloc
      Src: /src/sleuthkit/tsk/img/mult_files.c:194,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:197,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/mult_files.c:199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/mult_files.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 215
    functionName: tsk_img_findFiles
    functionSourceFile: /src/sleuthkit/tsk/img/mult_files.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_realloc
    - tsk_malloc
    - TSTAT
    - free
    - getSegmentName
    linkageType: ''
    returnType: TSK_TCHAR
    signature: 'TSK_TCHAR **

      tsk_img_findFiles(const TSK_TCHAR * a_startingName, int *a_numFound)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - index
    argTypes:
    - unsigned char*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: getBit
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getBit(unsigned char * buffer, TSK_OFF_T index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - index
    - val
    argTypes:
    - unsigned char*
    - TSK_OFF_T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: setBit
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setBit(unsigned char * buffer, TSK_OFF_T index, bool val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetFilePointer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:65,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:69,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:70,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:71,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:72,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - writer
    - offset
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: seekToOffset
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - GetLastError
    - tsk_error_set_errno
    - SetFilePointer
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM seekToOffset(TSK_IMG_WRITER * writer, TSK_OFF_T offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetFilePointer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:88,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:92,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:93,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:94,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:95,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - writer
    - dist
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: seekAhead
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - GetLastError
    - tsk_error_set_errno
    - SetFilePointer
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM seekAhead(TSK_IMG_WRITER * writer, TSK_OFF_T dist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getBit
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:124,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - writer
    - blockNum
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: checkIfBlockIsFinished
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - getBit
    - free
    linkageType: ''
    returnType: void
    signature: void checkIfBlockIsFinished(TSK_IMG_WRITER* writer, TSK_OFF_T blockNum)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:143,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:144,1
    - Dst: seekToOffset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:148,1
    - Dst: TSK_OFF_T
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:148,1
    - Dst: getBit
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:157,1
    - Dst: seekAhead
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:158,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:165,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:167,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:168,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:169,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:170,1
    - Dst: setBit
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:174,1
    - Dst: seekToOffset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:179,1
    - Dst: TSK_OFF_T
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:179,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:184,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:186,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:187,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:188,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - writer
    - addr
    - buffer
    - len
    - blockNum
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: addToExistingBlock
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - seekToOffset
    - WriteFile
    - tsk_fprintf
    - fflush
    - getBit
    - tsk_error_reset
    - tsk_error_set_errstr
    - GetLastError
    - seekAhead
    - setBit
    - tsk_error_set_errno
    - TSK_OFF_T
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM addToExistingBlock(TSK_IMG_WRITER* writer, TSK_OFF_T
      addr, char *buffer,\n    size_t len, TSK_OFF_T blockNum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seekToOffset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:202,1
    - Dst: writeFooter
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:203,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:206,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:207,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:208,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - position
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: writeFooterAtPosition
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - seekToOffset
    - writeFooter
    - tsk_error_set_errstr
    - tsk_error_reset
    - GetLastError
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM writeFooterAtPosition(TSK_IMG_WRITER* writer, TSK_OFF_T
      position)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:225,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:226,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:234,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:239,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:241,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:245,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:247,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:248,1
    - Dst: setBit
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:259,1
    - Dst: seekToOffset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:276,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:277,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:278,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:282,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:283,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:284,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:285,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:286,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:288,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:289,1
    - Dst: seekToOffset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:294,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:295,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:296,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:302,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:303,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:304,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:305,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:306,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:308,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:309,1
    - Dst: writeFooterAtPosition
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:311,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:316,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:317,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:318,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:319,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:320,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:322,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:323,1
    - Dst: writeFooterAtPosition
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:325,1
    - Dst: writeFooter
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:334,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:336,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:337,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 77
    argCount: 5
    argNames:
    - writer
    - addr
    - buffer
    - len
    - blockNum
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    - char*
    - size_t
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 340
    functionName: addNewBlock
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - seekToOffset
    - WriteFile
    - tsk_fprintf
    - writeFooterAtPosition
    - fflush
    - tsk_error_set_errstr
    - tsk_error_reset
    - writeFooter
    - GetLastError
    - setBit
    - tsk_malloc
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM addNewBlock(TSK_IMG_WRITER* writer, TSK_OFF_T addr,
      char *buffer, size_t len, TSK_OFF_T blockNum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: addToExistingBlock
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:354,1
    - Dst: addNewBlock
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:357,1
    - Dst: checkIfBlockIsFinished
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - writer
    - addr
    - buffer
    - len
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: addBlock
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - checkIfBlockIsFinished
    - addToExistingBlock
    - addNewBlock
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM addBlock(TSK_IMG_WRITER* writer, TSK_OFF_T addr, char
      *buffer, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - offset
    - val
    - nBytes
    argTypes:
    - unsigned char*
    - int
    - TSK_OFF_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: addIntToBuffer
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void addIntToBuffer(unsigned char * buffer, int offset, TSK_OFF_T val,
      int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - offset
    - str
    - nBytes
    argTypes:
    - unsigned char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: addStringToBuffer
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void addStringToBuffer(unsigned char * buffer, int offset, char const
      * str, int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: generateChecksum
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t generateChecksum(unsigned char * buffer, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:412,1
    - Dst: addStringToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:457,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:458,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:459,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:460,1
    - Dst: addStringToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:462,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:463,1
    - Dst: addStringToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:464,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:465,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:466,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:467,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:468,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:469,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:470,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:473,1
    - Dst: generateChecksum
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:473,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:477,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:478,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:479,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:480,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:481,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - writer
    argTypes:
    - TSK_IMG_WRITER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 486
    functionName: writeFooter
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 2
    functionsReached:
    - addStringToBuffer
    - generateChecksum
    - WriteFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - addIntToBuffer
    - GetLastError
    - tsk_malloc
    - tsk_error_set_errno
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM writeFooter(TSK_IMG_WRITER* writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:492,1
    - Dst: addStringToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:500,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:501,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:502,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:503,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:504,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:505,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:506,1
    - Dst: addIntToBuffer
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:507,1
    - Dst: generateChecksum
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:507,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:510,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:511,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:512,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:513,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:514,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:516,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - writer
    argTypes:
    - TSK_IMG_WRITER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 521
    functionName: writeDynamicDiskHeader
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - addStringToBuffer
    - generateChecksum
    - WriteFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - addIntToBuffer
    - GetLastError
    - tsk_malloc
    - tsk_error_set_errno
    - free
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM writeDynamicDiskHeader(TSK_IMG_WRITER * writer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:538,1
    - Dst: addBlock
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:551,1
    - Dst: addBlock
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:557,1
    - Dst: addBlock
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - writer
    - addr
    - buffer
    - len
    argTypes:
    - TSK_IMG_WRITER*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 531
    functionDepth: 7
    functionLinenumber: 531
    functionLinenumberEnd: 567
    functionName: tsk_img_writer_add
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - addBlock
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_img_writer_add(TSK_IMG_WRITER* writer, TSK_OFF_T
      addr, char *buffer, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:576,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:581,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:586,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:589,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:594,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:596,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:600,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - img_writer
    argTypes:
    - TSK_IMG_WRITER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 607
    functionName: tsk_img_writer_close
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - free
    - tsk_fprintf
    - CloseHandle
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_img_writer_close(TSK_IMG_WRITER* img_writer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:616,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:631,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:656,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:660,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:662,1
    - Dst: Sleep
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:669,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:673,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - img_writer
    argTypes:
    - TSK_IMG_WRITER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 676
    functionName: tsk_img_writer_finish_image
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_malloc
    - Sleep
    - free
    - tsk_img_read
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_img_writer_finish_image(TSK_IMG_WRITER* img_writer)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:693,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:701,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:702,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:703,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:708,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:709,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:710,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:718,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:719,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:720,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:725,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:740,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:741,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:742,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:745,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:750,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:751,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:752,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:753,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:754,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:773,1
    - Dst: tsk_img_writer_close
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:780,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:781,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:784,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:785,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:786,1
    - Dst: writeFooter
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:791,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:794,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:795,1
    - Dst: writeDynamicDiskHeader
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:800,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:803,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:804,1
    - Dst: WriteFile
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:821,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:822,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:823,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:824,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:825,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:826,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:827,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:836,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:837,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:838,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:841,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:842,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:843,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:844,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:847,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:848,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:849,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:850,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:851,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 120
    argCount: 2
    argNames:
    - img_info
    - outputFileName
    argTypes:
    - TSK_IMG_INFO*
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 688
    functionDepth: 5
    functionLinenumber: 688
    functionLinenumberEnd: 857
    functionName: tsk_img_writer_create
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 3
    functionsReached:
    - WriteFile
    - tsk_fprintf
    - writeFooter
    - CreateFile
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSTRNCPY
    - GetLastError
    - tsk_malloc
    - tsk_error_set_errno
    - writeDynamicDiskHeader
    - free
    - tsk_img_writer_close
    - TSTRLEN
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_img_writer_create(TSK_IMG_INFO *img_info, const
      TSK_TCHAR *outputFileName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:864,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:865,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:866,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:872,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:873,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:874,1
    - Dst: IMG_RAW_INFO*::img_writer::finish_image
      Src: /src/sleuthkit/tsk/img/img_writer.cpp:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 879
    functionName: tsk_img_writer_finish
    functionSourceFile: /src/sleuthkit/tsk/img/img_writer.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - IMG_RAW_INFO*::img_writer::finish_image
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM tsk_img_writer_finish(TSK_IMG_INFO *img_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libvhdi_error_backtrace_sprint
      Src: /src/sleuthkit/tsk/img/vhd.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vhdi_error
    - error_string
    argTypes:
    - libvhdi_error_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: getError
    functionSourceFile: /src/sleuthkit/tsk/img/vhd.c
    functionUses: 1
    functionsReached:
    - libvhdi_error_backtrace_sprint
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t getError(libvhdi_error_t * vhdi_error,\n    char error_string[TSK_VHDI_ERROR_STRING_SIZE])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:51,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vhd.c:56,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vhd.c:57,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vhd.c:58,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/img/vhd.c:62,1
    - Dst: libvhdi_file_read_buffer_at_offset
      Src: /src/sleuthkit/tsk/img/vhd.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vhd.c:68,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vhd.c:69,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vhd.c:70,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vhd.c:71,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vhd.c:75,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/vhd.c:77,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/vhd.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: vhdi_image_read
    functionSourceFile: /src/sleuthkit/tsk/img/vhd.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - libvhdi_file_read_buffer_at_offset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - getError
    - tsk_error_set_errno
    - tsk_release_lock
    - strerror
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t vhdi_image_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
      char *buf,\n    size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:89,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:90,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:91,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:92,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vhd.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: vhdi_image_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/vhd.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void vhdi_image_imgstat(TSK_IMG_INFO * img_info, FILE * hFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libvhdi_file_close
      Src: /src/sleuthkit/tsk/img/vhd.c:109,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vhd.c:111,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vhd.c:112,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vhd.c:113,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vhd.c:114,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vhd.c:118,1
    - Dst: libvhdi_file_free
      Src: /src/sleuthkit/tsk/img/vhd.c:121,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vhd.c:123,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vhd.c:124,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vhd.c:125,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vhd.c:126,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vhd.c:130,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/vhd.c:134,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/vhd.c:136,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/img/vhd.c:138,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vhd.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 140
    functionName: vhdi_image_close
    functionSourceFile: /src/sleuthkit/tsk/img/vhd.c
    functionUses: 0
    functionsReached:
    - getError
    - tsk_error_reset
    - tsk_error_set_errstr
    - libvhdi_file_close
    - tsk_deinit_lock
    - libvhdi_file_free
    - tsk_error_set_errno
    - tsk_img_free
    - free
    - strerror
    linkageType: ''
    returnType: void
    signature: void vhdi_image_close(TSK_IMG_INFO * img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a_img_info
    - a_hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: logical_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/logical_img.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void logical_imgstat(TSK_IMG_INFO * a_img_info, FILE * a_hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a_logical_img_info
    - a_index
    argTypes:
    - IMG_LOGICAL_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: clear_inum_cache_entry
    functionSourceFile: /src/sleuthkit/tsk/img/logical_img.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void clear_inum_cache_entry(IMG_LOGICAL_INFO *a_logical_img_info, int
      a_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:78,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/logical_img.c:82,1
    - Dst: clear_inum_cache_entry
      Src: /src/sleuthkit/tsk/img/logical_img.c:87,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:93,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:95,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - a_img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: logical_close
    functionSourceFile: /src/sleuthkit/tsk/img/logical_img.c
    functionUses: 0
    functionsReached:
    - free
    - tsk_img_free
    - CloseHandle
    - clear_inum_cache_entry
    linkageType: ''
    returnType: void
    signature: void logical_close(TSK_IMG_INFO * a_img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:104,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:105,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - a_img_info
    - a_offset
    - a_buf
    - a_len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: logical_read
    functionSourceFile: /src/sleuthkit/tsk/img/logical_img.c
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t logical_read(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
      char *a_buf, size_t a_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:127,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/img/logical_img.c:128,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:131,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:132,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:133,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:138,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:139,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:140,1
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/img/logical_img.c:145,1
    - Dst: is_windows_device_path
      Src: /src/sleuthkit/tsk/img/logical_img.c:151,1
    - Dst: get_size_of_file_on_disk
      Src: /src/sleuthkit/tsk/img/logical_img.c:155,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:157,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:158,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:159,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:160,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/logical_img.c:195,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/logical_img.c:197,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:199,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/logical_img.c:202,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/logical_img.c:205,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:217,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:218,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:219,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:222,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:223,1
    - Dst: GetFullPathNameW
      Src: /src/sleuthkit/tsk/img/logical_img.c:238,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:240,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:241,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:242,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/logical_img.c:243,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:244,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:245,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/logical_img.c:248,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:250,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:251,1
    - Dst: GetFullPathNameW
      Src: /src/sleuthkit/tsk/img/logical_img.c:254,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/logical_img.c:256,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/logical_img.c:257,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/logical_img.c:258,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/logical_img.c:259,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:260,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:261,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:262,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:279,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/logical_img.c:280,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:283,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/logical_img.c:284,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/logical_img.c:287,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/logical_img.c:288,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/logical_img.c:289,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/logical_img.c:293,1
    - Dst: fprintf
      Src: /src/sleuthkit/tsk/img/logical_img.c:299,1
    - Dst: fflush
      Src: /src/sleuthkit/tsk/img/logical_img.c:300,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 109
    argCount: 3
    argNames:
    - a_num_img
    - a_images
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 302
    functionName: logical_open
    functionSourceFile: /src/sleuthkit/tsk/img/logical_img.c
    functionUses: 0
    functionsReached:
    - get_size_of_file_on_disk
    - fflush
    - fprintf
    - tsk_error_reset
    - tsk_error_set_errstr
    - tsk_img_malloc
    - TSTRNCPY
    - GetLastError
    - memcpy
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_img_free
    - TSTRLEN
    - GetFullPathNameW
    - free
    - is_windows_device_path
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\nlogical_open(int a_num_img, const TSK_TCHAR * const
      a_images[],\n\tunsigned int a_ssize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:27,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:32,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:33,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:34,1
    - Dst: af_seek
      Src: /src/sleuthkit/tsk/img/aff.c:39,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:40,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:42,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:43,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/aff.c:44,1
    - Dst: af_read
      Src: /src/sleuthkit/tsk/img/aff.c:51,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:54,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:55,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:56,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/aff.c:57,1
    - Dst: af_eof
      Src: /src/sleuthkit/tsk/img/aff.c:66,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/img/aff.c:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 75
    functionName: aff_read
    functionSourceFile: /src/sleuthkit/tsk/img/aff.c
    functionUses: 0
    functionsReached:
    - af_read
    - memset
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - af_eof
    - tsk_error_set_errno
    - af_seek
    - strerror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t aff_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf,
      size_t len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:85,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:86,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:87,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:90,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:93,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:96,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:99,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:103,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:109,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:115,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:122,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:123,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:126,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:128,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:131,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:136,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:139,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:143,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:146,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:150,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:153,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:155,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:157,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:161,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:164,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:171,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:175,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:178,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:182,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:185,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:189,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:192,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:196,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:199,1
    - Dst: af_get_seg
      Src: /src/sleuthkit/tsk/img/aff.c:203,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:206,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 94
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 210
    functionName: aff_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/aff.c
    functionUses: 0
    functionsReached:
    - af_get_seg
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void aff_imgstat(TSK_IMG_INFO * img_info, FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: af_close
      Src: /src/sleuthkit/tsk/img/aff.c:217,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:220,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:222,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/aff.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: aff_close
    functionSourceFile: /src/sleuthkit/tsk/img/aff.c
    functionUses: 0
    functionsReached:
    - free
    - af_close
    - tsk_img_free
    linkageType: ''
    returnType: void
    signature: void aff_close(TSK_IMG_INFO * img_info)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/sleuthkit/tsk/img/aff.c:239,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/aff.c:241,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/img/aff.c:247,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:252,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:253,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:254,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:256,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:262,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:263,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:264,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:267,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/aff.c:273,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/aff.c:273,1
    - Dst: strncpy
      Src: /src/sleuthkit/tsk/img/aff.c:276,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/aff.c:276,1
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/img/aff.c:280,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:282,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/aff.c:295,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:297,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/aff.c:300,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/aff.c:302,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:304,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:305,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/aff.c:308,1
    - Dst: af_identify_file_type
      Src: /src/sleuthkit/tsk/img/aff.c:314,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:317,1
    - Dst: perror
      Src: /src/sleuthkit/tsk/img/aff.c:320,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:322,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:323,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:324,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/aff.c:326,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:327,1
    - Dst: af_open
      Src: /src/sleuthkit/tsk/img/aff.c:343,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:346,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:347,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:348,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/aff.c:349,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/aff.c:350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:352,1
    - Dst: perror
      Src: /src/sleuthkit/tsk/img/aff.c:353,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:355,1
    - Dst: af_cannot_decrypt
      Src: /src/sleuthkit/tsk/img/aff.c:359,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/aff.c:360,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/aff.c:361,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/aff.c:362,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/aff.c:363,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/aff.c:365,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:368,1
    - Dst: af_imagesize
      Src: /src/sleuthkit/tsk/img/aff.c:374,1
    - Dst: af_seek
      Src: /src/sleuthkit/tsk/img/aff.c:376,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/aff.c:378,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 105
    argCount: 2
    argNames:
    - images
    - a_ssize
    argTypes:
    - TSK_TCHAR*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 380
    functionName: aff_open
    functionSourceFile: /src/sleuthkit/tsk/img/aff.c
    functionUses: 0
    functionsReached:
    - perror
    - af_cannot_decrypt
    - tsk_fprintf
    - af_imagesize
    - tsk_error_set_errno
    - strerror
    - strlen
    - TSTRNCPY
    - af_seek
    - tsk_img_malloc
    - tsk_error_reset
    - wcslen
    - af_open
    - tsk_malloc
    - af_identify_file_type
    - tsk_error_set_errstr
    - tsk_img_free
    - strncpy
    - free
    - tsk_UTF16toUTF8_lclorder
    - TSTRLEN
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: 'TSK_IMG_INFO *

      aff_open(const TSK_TCHAR * const images[], unsigned int a_ssize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tsk/img/img_types.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: tsk_img_type_toid_utf8
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM tsk_img_type_toid_utf8(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_toid_utf8
      Src: /src/sleuthkit/tsk/img/img_types.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: tsk_img_type_toid
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached:
    - tsk_img_type_toid_utf8
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM tsk_img_type_toid(const TSK_TCHAR * str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_types.c:115,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/img_types.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: tsk_img_type_print
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void tsk_img_type_print(FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_IMG_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: tsk_img_type_toname
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_img_type_toname(TSK_IMG_TYPE_ENUM type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - TSK_IMG_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: tsk_img_type_todesc
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tsk_img_type_todesc(TSK_IMG_TYPE_ENUM type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: tsk_img_type_supported
    functionSourceFile: /src/sleuthkit/tsk/img/img_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM tsk_img_type_supported()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:67,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:78,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/raw.c:83,1
    - Dst: close
      Src: /src/sleuthkit/tsk/img/raw.c:85,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/img/raw.c:91,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/raw.c:95,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:97,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:98,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:99,1
    - Dst: open
      Src: /src/sleuthkit/tsk/img/raw.c:106,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:108,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:109,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:110,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/raw.c:111,1
    - Dst: is_windows_device_path
      Src: /src/sleuthkit/tsk/img/raw.c:138,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:141,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:143,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:144,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:145,1
    - Dst: SetFilePointer
      Src: /src/sleuthkit/tsk/img/raw.c:158,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/raw.c:162,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:164,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/raw.c:166,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:167,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:168,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:169,1
    - Dst: ReadFile
      Src: /src/sleuthkit/tsk/img/raw.c:184,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:186,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/raw.c:188,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:189,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:190,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:191,1
    - Dst: IMG_RAW_INFO*::img_writer::add
      Src: /src/sleuthkit/tsk/img/raw.c:208,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:212,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:214,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:215,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:216,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/raw.c:235,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:239,1
    - Dst: lseek
      Src: /src/sleuthkit/tsk/img/raw.c:244,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:245,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:246,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:247,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/raw.c:249,1
    - Dst: read
      Src: /src/sleuthkit/tsk/img/raw.c:255,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:257,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:258,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:259,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/raw.c:261,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 121
    argCount: 5
    argNames:
    - raw_info
    - idx
    - buf
    - len
    - rel_offset
    argTypes:
    - IMG_RAW_INFO*
    - int
    - char*
    - size_t
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 268
    functionName: raw_read_segment
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - close
    - tsk_error_set_errno
    - strerror
    - CloseHandle
    - GetLastError
    - memcpy
    - lseek
    - CreateFile
    - tsk_error_reset
    - tsk_malloc
    - SetFilePointer
    - IMG_RAW_INFO*::img_writer::add
    - read
    - is_windows_device_path
    - tsk_error_set_errstr
    - ReadFile
    - open
    - free
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t raw_read_segment(IMG_RAW_INFO * raw_info, int idx, char *buf,\n
      \   size_t len, TSK_OFF_T rel_offset)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:292,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:298,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:299,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:300,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:331,1
    - Dst: raw_read_segment
      Src: /src/sleuthkit/tsk/img/raw.c:337,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:362,1
    - Dst: raw_read_segment
      Src: /src/sleuthkit/tsk/img/raw.c:367,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:385,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:386,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:387,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 391
    functionName: raw_read
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - raw_read_segment
    - tsk_error_set_errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t raw_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:406,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:407,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:408,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:409,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:410,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:415,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:417,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: raw_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void raw_imgstat(TSK_IMG_INFO * img_info, FILE * hFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IMG_RAW_INFO*::img_writer::close
      Src: /src/sleuthkit/tsk/img/raw.c:444,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:445,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/raw.c:453,1
    - Dst: close
      Src: /src/sleuthkit/tsk/img/raw.c:455,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:459,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:461,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:462,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:463,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 466
    functionName: raw_close
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - close
    - IMG_RAW_INFO*::img_writer::close
    - tsk_img_free
    - free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void raw_close(TSK_IMG_INFO * img_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SetFilePointer
      Src: /src/sleuthkit/tsk/img/raw.c:488,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tsk/img/raw.c:491,1
    - Dst: ReadFile
      Src: /src/sleuthkit/tsk/img/raw.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - file_handle
    - offset
    - len
    - buf
    argTypes:
    - HANDLE
    - TSK_OFF_T
    - DWORD
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 506
    functionName: test_sector_read
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - ReadFile
    - GetLastError
    - SetFilePointer
    linkageType: ''
    returnType: int
    signature: int test_sector_read(HANDLE file_handle, TSK_OFF_T offset, DWORD len,
      char * buf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/sleuthkit/tsk/img/raw.c:521,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:526,1
    - Dst: malloc
      Src: /src/sleuthkit/tsk/img/raw.c:533,1
    - Dst: test_sector_read
      Src: /src/sleuthkit/tsk/img/raw.c:536,1
    - Dst: test_sector_read
      Src: /src/sleuthkit/tsk/img/raw.c:556,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:559,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/raw.c:565,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:567,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:573,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:576,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tsk/img/raw.c:580,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - raw_info
    - image_name
    - image_size
    argTypes:
    - IMG_RAW_INFO*
    - TSK_TCHAR*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 582
    functionName: set_device_sector_size
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - test_sector_read
    - tsk_fprintf
    - CreateFile
    - malloc
    - free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void set_device_sector_size(IMG_RAW_INFO * raw_info, const TSK_TCHAR
      * image_name, TSK_OFF_T image_size)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:605,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/raw.c:619,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/raw.c:620,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/raw.c:621,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/raw.c:621,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/raw.c:622,1
    - Dst: get_size_of_file_on_disk
      Src: /src/sleuthkit/tsk/img/raw.c:628,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:630,1
    - Dst: set_device_sector_size
      Src: /src/sleuthkit/tsk/img/raw.c:643,1
    - Dst: tsk_img_findFiles
      Src: /src/sleuthkit/tsk/img/raw.c:651,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:653,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:654,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:655,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:658,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:665,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:667,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/raw.c:672,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:674,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:678,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:680,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:681,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/raw.c:684,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:692,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:697,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:699,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:700,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:705,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:708,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:710,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:711,1
    - Dst: memset
      Src: /src/sleuthkit/tsk/img/raw.c:714,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:721,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:723,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:725,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:727,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:728,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:735,1
    - Dst: get_size_of_file_on_disk
      Src: /src/sleuthkit/tsk/img/raw.c:747,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:751,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:755,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:757,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:759,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:760,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/raw.c:766,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/raw.c:767,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/raw.c:768,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:769,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:770,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:772,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:774,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/raw.c:775,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/raw.c:782,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 3
    argNames:
    - a_num_img
    - a_images
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 790
    functionName: raw_open
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 0
    functionsReached:
    - get_size_of_file_on_disk
    - set_device_sector_size
    - memset
    - tsk_fprintf
    - tsk_img_malloc
    - tsk_error_set_errstr
    - tsk_error_reset
    - TSTRNCPY
    - tsk_malloc
    - tsk_img_free
    - tsk_error_set_errno
    - _TSK_T
    - free
    - tsk_img_findFiles
    - TSTRLEN
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\nraw_open(int a_num_img, const TSK_TCHAR * const a_images[],\n
      \   unsigned int a_ssize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_device_sector_size
      Src: /src/sleuthkit/tsk/img/raw.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: if
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 4
    functionsReached:
    - set_device_sector_size
    linkageType: ''
    returnType: else
    signature: else if (is_windows_device_path(a_images[0]))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/raw.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 804
    functionName: tsk_img_malloc
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 5
    functionsReached:
    - tsk_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tsk_img_malloc(size_t a_len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tsk/img/raw.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 816
    functionName: tsk_img_free
    functionSourceFile: /src/sleuthkit/tsk/img/raw.c
    functionUses: 9
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tsk_img_free(void *a_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_image
    - type
    - a_ssize
    argTypes:
    - TSK_TCHAR*
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: tsk_img_open_sing
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_open
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open_sing(const TSK_TCHAR * a_image, TSK_IMG_TYPE_ENUM
      type,\n    unsigned int a_ssize)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:86,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:89,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:90,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:91,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:96,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:97,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:98,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:104,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:105,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:106,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tsk/img/img_open.cpp:112,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tsk/img/img_open.cpp:113,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:130,1
    - Dst: aff_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:134,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:138,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:148,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:151,1
    - Dst: ewf_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:156,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:162,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:163,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:164,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:165,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:166,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:171,1
    - Dst: vmdk_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:176,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:182,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:183,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:184,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:185,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:186,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:191,1
    - Dst: vhdi_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:196,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:202,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:203,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:204,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:205,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:206,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:211,1
    - Dst: raw_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:222,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:225,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:229,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:230,1
    - Dst: raw_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:235,1
    - Dst: logical_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:239,1
    - Dst: aff_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:247,1
    - Dst: ewf_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:253,1
    - Dst: vmdk_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:259,1
    - Dst: vhdi_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:265,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:270,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:271,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:272,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/img/img_open.cpp:282,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 129
    argCount: 4
    argNames:
    - num_img
    - images
    - type
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 284
    functionName: tsk_img_open
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 3
    functionsReached:
    - logical_open
    - tsk_init_lock
    - tsk_error_set_errstr
    - tsk_error_reset
    - vhdi_open
    - vmdk_open
    - tsk_error_set_errno
    - _TSK_T
    - TSK_IMG_INFO*::close
    - aff_open
    - tsk_error_get_errno
    - raw_open
    - ewf_open
    - TFPRINTF
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open(int num_img,\n    const TSK_TCHAR * const
      images[], TSK_IMG_TYPE_ENUM type,\n    unsigned int a_ssize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open_utf8
      Src: /src/sleuthkit/tsk/img/img_open.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_image
    - type
    - a_ssize
    argTypes:
    - char*
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: tsk_img_open_utf8_sing
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_open_utf8
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open_utf8_sing(const char *a_image,\n    TSK_IMG_TYPE_ENUM
      type, unsigned int a_ssize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_open.cpp:339,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/img_open.cpp:351,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_open.cpp:353,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tsk/img/img_open.cpp:362,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:365,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:366,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:374,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_open.cpp:379,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_open.cpp:381,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/img/img_open.cpp:384,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - num_img
    - images
    - type
    - a_ssize
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 391
    functionName: tsk_img_open_utf8
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 2
    functionsReached:
    - tsk_init_lock
    - tsk_error_set_errstr
    - tsk_img_open
    - tsk_malloc
    - tsk_error_set_errno
    - tsk_UTF8toUTF16
    - free
    - strlen
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open_utf8(int num_img,\n    const char *const
      images[], TSK_IMG_TYPE_ENUM type,\n    unsigned int a_ssize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:423,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:424,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:425,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:430,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:431,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:432,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:437,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:438,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:439,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:444,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:445,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:446,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:451,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:452,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:453,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_open.cpp:459,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:460,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:461,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/img/img_open.cpp:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 3
    argNames:
    - ext_img_info
    - size
    - sector_size
    argTypes:
    - void*
    - TSK_OFF_T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 479
    functionName: tsk_img_open_external
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - tsk_error_set_errno
    - tsk_init_lock
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open_external(\n  void* ext_img_info,\n  TSK_OFF_T
      size,\n  unsigned int sector_size,\n  ssize_t(*read) (TSK_IMG_INFO * img, TSK_OFF_T
      off, char *buf, size_t len),\n  void (*close) (TSK_IMG_INFO *),\n  void (*imgstat)
      (TSK_IMG_INFO *, FILE *)\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:492,1
    - Dst: tsk_guess_end_u16
      Src: /src/sleuthkit/tsk/img/img_open.cpp:506,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_open.cpp:514,1
    - Dst: wcslen
      Src: /src/sleuthkit/tsk/img/img_open.cpp:526,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_open.cpp:529,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tsk/img/img_open.cpp:537,1
    - Dst: wcslen
      Src: /src/sleuthkit/tsk/img/img_open.cpp:538,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_open.cpp:541,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_open.cpp:542,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/img_open.cpp:550,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_open.cpp:553,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_open.cpp:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - num_img
    - images
    - type
    argTypes:
    - int
    - wchar_t*[]
    - TSK_IMG_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 487
    functionDepth: 7
    functionLinenumber: 487
    functionLinenumberEnd: 560
    functionName: tsk_img_open_utf16
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_open
    - tsk_guess_end_u16
    - wcslen
    - tsk_error_set_errstr
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - tsk_UTF16toUTF8_lclorder
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\ntsk_img_open_utf16(int num_img,\n    wchar_t * const
      images[], TSK_IMG_TYPE_ENUM type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/img/img_open.cpp:577,1
    - Dst: TSK_IMG_INFO*::close
      Src: /src/sleuthkit/tsk/img/img_open.cpp:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: tsk_img_close
    functionSourceFile: /src/sleuthkit/tsk/img/img_open.cpp
    functionUses: 3
    functionsReached:
    - tsk_deinit_lock
    - TSK_IMG_INFO*::close
    linkageType: ''
    returnType: void
    signature: void tsk_img_close(TSK_IMG_INFO * a_img_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - signature
    - signatureLen
    - offset
    - buf
    - bufLen
    argTypes:
    - char*
    - size_t
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: detectImageSignatureWithOffset
    functionSourceFile: /src/sleuthkit/tsk/img/unsupported_types.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int detectImageSignatureWithOffset(const char * signature, size_t signatureLen,
      size_t offset, const char * buf, size_t bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detectImageSignatureWithOffset
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - signature
    - signatureLen
    - buf
    - bufLen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: detectImageSignature
    functionSourceFile: /src/sleuthkit/tsk/img/unsupported_types.c
    functionUses: 0
    functionsReached:
    - detectImageSignatureWithOffset
    linkageType: ''
    returnType: int
    signature: int detectImageSignature(const char * signature, size_t signatureLen,
      const char * buf, size_t bufLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 110
    functionName: verifyTarChecksum
    functionSourceFile: /src/sleuthkit/tsk/img/unsupported_types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verifyTarChecksum(const char * buf, size_t bufLen)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:124,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:129,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:131,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:135,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:137,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:142,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:143,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:145,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:146,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:148,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:149,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:151,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:152,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:154,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:155,1
    - Dst: detectImageSignatureWithOffset
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:157,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:158,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:160,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:160,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:161,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:162,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:164,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:165,1
    - Dst: detectImageSignature
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:167,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:168,1
    - Dst: verifyTarChecksum
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:170,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:171,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:174,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:175,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/unsupported_types.c:179,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 182
    functionName: detectUnsupportedImageType
    functionSourceFile: /src/sleuthkit/tsk/img/unsupported_types.c
    functionUses: 1
    functionsReached:
    - verifyTarChecksum
    - tsk_malloc
    - detectImageSignature
    - detectImageSignatureWithOffset
    - free
    - snprintf
    - tsk_img_read
    - strlen
    linkageType: ''
    returnType: char
    signature: char * detectUnsupportedImageType(TSK_IMG_INFO * img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: TSK_IMG_TYPE_ISRAW
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IMG_TYPE_ISRAW(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: TSK_IMG_TYPE_ISAFF
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IMG_TYPE_ISAFF(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: TSK_IMG_TYPE_ISEWF
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IMG_TYPE_ISEWF(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TSK_IMG_TYPE_ISDIR
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IMG_TYPE_ISDIR(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: TskImgInfo::TskImgInfo
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskImgInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tsk/img/tsk_img.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: ~TskImgInfo()
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~TskImgInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a_imgInfo
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: TskImgInfo::TskImgInfo
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskImgInfo(TSK_IMG_INFO * a_imgInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tsk/img/tsk_img.h:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_image
    - a_type
    - a_ssize
    argTypes:
    - TSK_TCHAR*
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: TskImgInfo::open
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_open_sing
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(const TSK_TCHAR * a_image, TSK_IMG_TYPE_ENUM a_type,\n
      \       unsigned int a_ssize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tsk/img/tsk_img.h:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a_num_img
    - a_images
    - a_type
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 7
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: TskImgInfo::open
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_open
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(int a_num_img, const TSK_TCHAR * const a_images[],\n
      \       TSK_IMG_TYPE_ENUM a_type, unsigned int a_ssize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open_utf8_sing
      Src: /src/sleuthkit/tsk/img/tsk_img.h:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_image
    - a_type
    - a_ssize
    argTypes:
    - char*
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: TskImgInfo::open
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_open_utf8_sing
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(const char *a_image, TSK_IMG_TYPE_ENUM a_type,\n        unsigned
      int a_ssize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open_utf8
      Src: /src/sleuthkit/tsk/img/tsk_img.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a_num_img
    - a_images
    - a_type
    - a_ssize
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 8
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: TskImgInfo::open
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_open_utf8
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t open(int a_num_img, const char *const a_images[],\n        TSK_IMG_TYPE_ENUM
      a_type, unsigned int a_ssize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/img/tsk_img.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: TskImgInfo::read
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(TSK_OFF_T a_off, char *a_buf, size_t a_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: TskImgInfo::getType
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM getType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: TskImgInfo::getSize
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: TskImgInfo::getSectorSize
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int getSectorSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tsk/img/tsk_img.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_str
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: TskImgInfo::typeToId
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_type_toid
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM typeToId(const TSK_TCHAR * a_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_toname
      Src: /src/sleuthkit/tsk/img/tsk_img.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_type
    argTypes:
    - TSK_IMG_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: TskImgInfo::typeToName
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_type_toname
    linkageType: ''
    returnType: char
    signature: char *typeToName(TSK_IMG_TYPE_ENUM a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_todesc
      Src: /src/sleuthkit/tsk/img/tsk_img.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_type
    argTypes:
    - TSK_IMG_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: TskImgInfo::typeToDesc
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_type_todesc
    linkageType: ''
    returnType: char
    signature: char *typeToDesc(TSK_IMG_TYPE_ENUM a_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_supported
      Src: /src/sleuthkit/tsk/img/tsk_img.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: TskImgInfo::typeSupported
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_type_supported
    linkageType: ''
    returnType: TSK_IMG_TYPE_ENUM
    signature: TSK_IMG_TYPE_ENUM typeSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tsk/img/tsk_img.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: TskImgInfo::typePrint
    functionSourceFile: /src/sleuthkit/tsk/img/tsk_img.h
    functionUses: 0
    functionsReached:
    - tsk_img_type_print
    linkageType: ''
    returnType: void
    signature: void typePrint(FILE * a_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: roundup
      Src: /src/sleuthkit/tsk/img/img_io.c:28,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/img_io.c:29,1
    - Dst: TSK_IMG_INFO*::read
      Src: /src/sleuthkit/tsk/img/img_io.c:32,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/img_io.c:34,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/img_io.c:37,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/img_io.c:40,1
    - Dst: TSK_IMG_INFO*::read
      Src: /src/sleuthkit/tsk/img/img_io.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - a_img_info
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: tsk_img_read_no_cache
    functionSourceFile: /src/sleuthkit/tsk/img/img_io.c
    functionUses: 0
    functionsReached:
    - memcpy
    - tsk_malloc
    - TSK_IMG_INFO*::read
    - free
    - roundup
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_img_read_no_cache(TSK_IMG_INFO * a_img_info, TSK_OFF_T
      a_off,\n    char *a_buf, size_t a_len)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_io.c:68,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_io.c:69,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_io.c:70,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_io.c:76,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_io.c:77,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_io.c:78,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_io.c:84,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_io.c:85,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_io.c:86,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_io.c:96,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_io.c:97,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_io.c:98,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/img/img_io.c:106,1
    - Dst: tsk_img_read_no_cache
      Src: /src/sleuthkit/tsk/img/img_io.c:110,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/img_io.c:111,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/img_io.c:118,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/img_io.c:119,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/img_io.c:120,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/img_io.c:121,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/img_io.c:155,1
    - Dst: TSK_IMG_INFO*::read
      Src: /src/sleuthkit/tsk/img/img_io.c:207,1
    - Dst: memcpy
      Src: /src/sleuthkit/tsk/img/img_io.c:234,1
    - Dst: tsk_img_read_no_cache
      Src: /src/sleuthkit/tsk/img/img_io.c:244,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/img_io.c:248,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 87
    argCount: 4
    argNames:
    - a_img_info
    - a_off
    - a_buf
    - a_len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 250
    functionName: tsk_img_read
    functionSourceFile: /src/sleuthkit/tsk/img/img_io.c
    functionUses: 26
    functionsReached:
    - tsk_take_lock
    - TSK_IMG_INFO*::read
    - tsk_error_set_errstr
    - tsk_error_reset
    - memcpy
    - tsk_error_set_errno
    - tsk_release_lock
    - tsk_img_read_no_cache
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tsk_img_read(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_off,\n
      \   char *a_buf, size_t a_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TSK_IMG_TYPE_ISEWF
      Src: /src/sleuthkit/tsk/img/img_io.c:272,1
    - Dst: ewf_image_verify
      Src: /src/sleuthkit/tsk/img/img_io.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - a_img_info
    - cb
    - cb_ctx
    argTypes:
    - TSK_IMG_INFO*
    - TSK_IMG_VERIFY_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: tsk_img_verify
    functionSourceFile: /src/sleuthkit/tsk/img/img_io.c
    functionUses: 0
    functionsReached:
    - TSK_IMG_TYPE_ISEWF
    - ewf_image_verify
    linkageType: ''
    returnType: TSK_IMG_VERIFY_RESULT
    signature: "TSK_IMG_VERIFY_RESULT tsk_img_verify(TSK_IMG_INFO * a_img_info,\n
      \   TSK_IMG_VERIFY_CB cb, void *cb_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libewf_error_backtrace_sprint
      Src: /src/sleuthkit/tsk/img/ewf.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ewf_error
    - error_string
    argTypes:
    - libewf_error_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: getError
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 3
    functionsReached:
    - libewf_error_backtrace_sprint
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t getError(libewf_error_t * ewf_error,\n    char error_string[TSK_EWF_ERROR_STRING_SIZE])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:57,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:62,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:63,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:64,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:68,1
    - Dst: libewf_handle_read_random
      Src: /src/sleuthkit/tsk/img/ewf.cpp:70,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:74,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:75,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:76,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/ewf.cpp:77,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:81,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:82,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:84,1
    - Dst: libewf_read_random
      Src: /src/sleuthkit/tsk/img/ewf.cpp:88,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:90,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:91,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:92,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/ewf.cpp:93,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:94,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 101
    functionName: ewf_image_read
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - libewf_handle_read_random
    - libewf_read_random
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - getError
    - tsk_error_set_errno
    - tsk_release_lock
    - libewf_error_free
    - strerror
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t ewf_image_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
      char *buf,\n    size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:108,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:109,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:110,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:111,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:113,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: ewf_image_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void ewf_image_imgstat(TSK_IMG_INFO * img_info, FILE * hFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libewf_handle_close
      Src: /src/sleuthkit/tsk/img/ewf.cpp:127,1
    - Dst: libewf_handle_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:128,1
    - Dst: libewf_close
      Src: /src/sleuthkit/tsk/img/ewf.cpp:131,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:140,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:142,1
    - Dst: libewf_glob_wide_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:146,1
    - Dst: libewf_glob_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:148,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:152,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: ewf_image_close
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - libewf_close
    - tsk_deinit_lock
    - libewf_handle_free
    - libewf_glob_free
    - libewf_handle_close
    - libewf_glob_wide_free
    - tsk_img_free
    - free
    linkageType: ''
    returnType: void
    signature: void ewf_image_close(TSK_IMG_INFO * img_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/sleuthkit/tsk/img/ewf.cpp:177,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:178,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:179,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:180,1
    - Dst: read
      Src: /src/sleuthkit/tsk/img/ewf.cpp:183,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:186,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:187,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:188,1
    - Dst: close
      Src: /src/sleuthkit/tsk/img/ewf.cpp:191,1
    - Dst: strncmp
      Src: /src/sleuthkit/tsk/img/ewf.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - file_header_signature
    - size_of_signature
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 196
    functionName: img_file_header_signature_ncmp
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - tsk_error_set_errstr
    - tsk_error_reset
    - open
    - close
    - tsk_error_set_errno
    - read
    linkageType: ''
    returnType: int
    signature: "int img_file_header_signature_ncmp(const char *filename,\n    const
      char *file_header_signature, int size_of_signature)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: libewf_set_notify_values
      Src: /src/sleuthkit/tsk/img/ewf.cpp:220,1
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/img/ewf.cpp:224,1
    - Dst: libewf_glob_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:235,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/ewf.cpp:235,1
    - Dst: libewf_glob
      Src: /src/sleuthkit/tsk/img/ewf.cpp:239,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/ewf.cpp:239,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:244,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:245,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:247,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:248,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:250,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:251,1
    - Dst: libewf_glob_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:259,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/ewf.cpp:259,1
    - Dst: libewf_glob
      Src: /src/sleuthkit/tsk/img/ewf.cpp:263,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/ewf.cpp:263,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:267,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:268,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:269,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:271,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:278,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/ewf.cpp:286,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:288,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/ewf.cpp:292,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/ewf.cpp:294,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:295,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/ewf.cpp:298,1
    - Dst: libewf_check_file_signature_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:307,1
    - Dst: libewf_check_file_signature
      Src: /src/sleuthkit/tsk/img/ewf.cpp:309,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:313,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:314,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:316,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:317,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:319,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:321,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:324,1
    - Dst: libewf_handle_initialize
      Src: /src/sleuthkit/tsk/img/ewf.cpp:329,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:330,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:331,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:333,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:334,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:336,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:338,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:341,1
    - Dst: libewf_handle_open_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:346,1
    - Dst: libewf_handle_open
      Src: /src/sleuthkit/tsk/img/ewf.cpp:350,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:356,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:357,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:359,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:360,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:362,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:364,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:367,1
    - Dst: libewf_handle_get_media_size
      Src: /src/sleuthkit/tsk/img/ewf.cpp:371,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:373,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:374,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:376,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:377,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:380,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:382,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:385,1
    - Dst: libewf_handle_get_utf8_hash_value_md5
      Src: /src/sleuthkit/tsk/img/ewf.cpp:389,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:393,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:394,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:396,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:397,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:400,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:402,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:405,1
    - Dst: libewf_handle_get_utf8_hash_value_sha1
      Src: /src/sleuthkit/tsk/img/ewf.cpp:411,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:415,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:416,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/ewf.cpp:418,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:419,1
    - Dst: libewf_error_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:422,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:424,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:427,1
    - Dst: libewf_check_file_signature_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:438,1
    - Dst: libewf_check_file_signature
      Src: /src/sleuthkit/tsk/img/ewf.cpp:440,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:444,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:445,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:446,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:447,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:449,1
    - Dst: libewf_open_wide
      Src: /src/sleuthkit/tsk/img/ewf.cpp:455,1
    - Dst: libewf_open
      Src: /src/sleuthkit/tsk/img/ewf.cpp:459,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:464,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:465,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:466,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:468,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:471,1
    - Dst: libewf_get_media_size
      Src: /src/sleuthkit/tsk/img/ewf.cpp:477,1
    - Dst: libewf_get_stored_md5_hash
      Src: /src/sleuthkit/tsk/img/ewf.cpp:479,1
    - Dst: libewf_get_media_size
      Src: /src/sleuthkit/tsk/img/ewf.cpp:483,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/ewf.cpp:485,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/ewf.cpp:486,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/ewf.cpp:487,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:489,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:491,1
    - Dst: libewf_get_md5_hash
      Src: /src/sleuthkit/tsk/img/ewf.cpp:495,1
    - Dst: libewf_handle_get_bytes_per_sector
      Src: /src/sleuthkit/tsk/img/ewf.cpp:534,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:537,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:545,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:552,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/img/ewf.cpp:565,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 202
    argCount: 3
    argNames:
    - a_num_img
    - a_images
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 568
    functionName: ewf_open
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 2
    functionsReached:
    - libewf_check_file_signature
    - tsk_fprintf
    - tsk_init_lock
    - getError
    - libewf_handle_get_utf8_hash_value_sha1
    - libewf_get_stored_md5_hash
    - libewf_get_md5_hash
    - libewf_check_file_signature_wide
    - libewf_glob
    - tsk_error_set_errno
    - libewf_handle_open
    - libewf_glob_wide
    - TSTRNCPY
    - libewf_handle_initialize
    - libewf_handle_get_bytes_per_sector
    - libewf_error_free
    - tsk_img_malloc
    - tsk_error_reset
    - libewf_set_notify_values
    - tsk_malloc
    - libewf_open
    - libewf_get_media_size
    - tsk_error_set_errstr
    - libewf_open_wide
    - tsk_img_free
    - libewf_handle_open_wide
    - libewf_handle_get_media_size
    - libewf_handle_get_utf8_hash_value_md5
    - TSTRLEN
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\newf_open(int a_num_img,\n    const TSK_TCHAR * const
      a_images[], unsigned int a_ssize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/sleuthkit/tsk/img/ewf.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: is_blank
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_blank(const char* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/ewf.cpp:593,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:594,1
    - Dst: strlen
      Src: /src/sleuthkit/tsk/img/ewf.cpp:595,1
    - Dst: libewf_handle_get_utf8_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:598,1
    - Dst: is_blank
      Src: /src/sleuthkit/tsk/img/ewf.cpp:599,1
    - Dst: strcat
      Src: /src/sleuthkit/tsk/img/ewf.cpp:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - handle
    - result_buffer
    - buffer_size
    - identifier
    - key
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 608
    functionName: read_libewf_header_value
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - libewf_handle_get_utf8_header_value
    - is_blank
    - strcat
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char * read_libewf_header_value(libewf_handle_t *handle, char* result_buffer,
      const size_t buffer_size, const uint8_t *identifier,  const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: libewf_read_description
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_description(libewf_handle_t *handle, char* result_buffer,
      const size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: libewf_read_case_number
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_case_number(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 620
    functionName: libewf_read_evidence_number
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_evidence_number(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: libewf_read_examiner_name
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_examiner_name(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: libewf_read_notes
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_notes(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: libewf_read_model
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_model(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: libewf_read_serial_number
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_serial_number(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: libewf_read_device_label
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_device_label(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 644
    functionName: libewf_read_version
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_version(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: libewf_read_platform
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_platform(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: libewf_read_acquired_date
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_acquired_date(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 656
    functionName: libewf_read_system_date
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_system_date(libewf_handle_t *handle, char* result_buffer,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 660
    functionName: libewf_read_acquiry_operating_system
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_acquiry_operating_system(libewf_handle_t *handle,
      char* result_buffer, size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_libewf_header_value
      Src: /src/sleuthkit/tsk/img/ewf.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - result_buffer
    - buffer_size
    argTypes:
    - libewf_handle_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: libewf_read_acquiry_software_version
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 0
    functionsReached:
    - read_libewf_header_value
    linkageType: ''
    returnType: char
    signature: char * libewf_read_acquiry_software_version(libewf_handle_t *handle,
      char* result_buffer, size_t buffer_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/ewf.cpp:675,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:682,1
    - Dst: libewf_read_description
      Src: /src/sleuthkit/tsk/img/ewf.cpp:682,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:683,1
    - Dst: libewf_read_case_number
      Src: /src/sleuthkit/tsk/img/ewf.cpp:683,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:684,1
    - Dst: libewf_read_evidence_number
      Src: /src/sleuthkit/tsk/img/ewf.cpp:684,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:685,1
    - Dst: libewf_read_examiner_name
      Src: /src/sleuthkit/tsk/img/ewf.cpp:685,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:686,1
    - Dst: libewf_read_notes
      Src: /src/sleuthkit/tsk/img/ewf.cpp:686,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:687,1
    - Dst: libewf_read_model
      Src: /src/sleuthkit/tsk/img/ewf.cpp:687,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:688,1
    - Dst: libewf_read_serial_number
      Src: /src/sleuthkit/tsk/img/ewf.cpp:688,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:689,1
    - Dst: libewf_read_device_label
      Src: /src/sleuthkit/tsk/img/ewf.cpp:689,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:690,1
    - Dst: libewf_read_version
      Src: /src/sleuthkit/tsk/img/ewf.cpp:690,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:691,1
    - Dst: libewf_read_platform
      Src: /src/sleuthkit/tsk/img/ewf.cpp:691,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:692,1
    - Dst: libewf_read_acquired_date
      Src: /src/sleuthkit/tsk/img/ewf.cpp:692,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:693,1
    - Dst: libewf_read_system_date
      Src: /src/sleuthkit/tsk/img/ewf.cpp:693,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:694,1
    - Dst: libewf_read_acquiry_operating_system
      Src: /src/sleuthkit/tsk/img/ewf.cpp:694,1
    - Dst: string::append
      Src: /src/sleuthkit/tsk/img/ewf.cpp:695,1
    - Dst: libewf_read_acquiry_software_version
      Src: /src/sleuthkit/tsk/img/ewf.cpp:695,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ewf_info
    argTypes:
    - IMG_EWF_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 698
    functionName: ewf_get_details
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 1
    functionsReached:
    - libewf_read_description
    - libewf_read_platform
    - libewf_read_acquiry_software_version
    - libewf_read_acquired_date
    - libewf_read_examiner_name
    - libewf_read_notes
    - libewf_read_model
    - libewf_read_system_date
    - libewf_read_serial_number
    - tsk_malloc
    - free
    - string::append
    - libewf_read_case_number
    - libewf_read_evidence_number
    - libewf_read_acquiry_operating_system
    - libewf_read_version
    - libewf_read_device_label
    linkageType: ''
    returnType: std::string
    signature: std::string ewf_get_details(IMG_EWF_INFO *ewf_info)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/ewf.cpp:722,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/img/ewf.cpp:724,1
    - Dst: TSK_MD5_Init
      Src: /src/sleuthkit/tsk/img/ewf.cpp:729,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tsk/img/ewf.cpp:737,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:739,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:742,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/img/ewf.cpp:744,1
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/tsk/img/ewf.cpp:748,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/img/ewf.cpp:754,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/ewf.cpp:759,1
    - Dst: TSK_MD5_Final
      Src: /src/sleuthkit/tsk/img/ewf.cpp:762,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:767,1
    - Dst: strcasecmp
      Src: /src/sleuthkit/tsk/img/ewf.cpp:770,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/img/ewf.cpp:771,1
    - Dst: snprintf
      Src: /src/sleuthkit/tsk/img/ewf.cpp:777,1
    - Dst: cb
      Src: /src/sleuthkit/tsk/img/ewf.cpp:779,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - img_info
    - cb
    - cb_ctx
    argTypes:
    - TSK_IMG_INFO*
    - TSK_IMG_VERIFY_CB
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 712
    functionDepth: 4
    functionLinenumber: 712
    functionLinenumberEnd: 782
    functionName: ewf_image_verify
    functionSourceFile: /src/sleuthkit/tsk/img/ewf.cpp
    functionUses: 1
    functionsReached:
    - cb
    - TSK_MD5_Final
    - TSK_MD5_Update
    - tsk_malloc
    - TSK_MD5_Init
    - strcasecmp
    - free
    - snprintf
    - tsk_img_read
    linkageType: ''
    returnType: TSK_IMG_VERIFY_RESULT
    signature: "TSK_IMG_VERIFY_RESULT ewf_image_verify(TSK_IMG_INFO * img_info,\n
      \   TSK_IMG_VERIFY_CB cb, void *cb_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libvmdk_error_backtrace_sprint
      Src: /src/sleuthkit/tsk/img/vmdk.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vmdk_error
    - error_string
    argTypes:
    - libvmdk_error_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: getError
    functionSourceFile: /src/sleuthkit/tsk/img/vmdk.c
    functionUses: 5
    functionsReached:
    - libvmdk_error_backtrace_sprint
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t getError(libvmdk_error_t * vmdk_error,\n    char error_string[TSK_VMDK_ERROR_STRING_SIZE])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:51,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:56,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:57,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:58,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/tsk/img/vmdk.c:62,1
    - Dst: libvmdk_handle_read_buffer_at_offset
      Src: /src/sleuthkit/tsk/img/vmdk.c:64,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:68,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:69,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:70,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vmdk.c:71,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:75,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/vmdk.c:77,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/tsk/img/vmdk.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - img_info
    - offset
    - buf
    - len
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: vmdk_image_read
    functionSourceFile: /src/sleuthkit/tsk/img/vmdk.c
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_fprintf
    - tsk_error_set_errstr
    - tsk_error_reset
    - getError
    - libvmdk_handle_read_buffer_at_offset
    - tsk_error_set_errno
    - tsk_release_lock
    - strerror
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t vmdk_image_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
      char *buf,\n    size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:89,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:90,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:91,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:92,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - img_info
    - hFile
    argTypes:
    - TSK_IMG_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: vmdk_image_imgstat
    functionSourceFile: /src/sleuthkit/tsk/img/vmdk.c
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void vmdk_image_imgstat(TSK_IMG_INFO * img_info, FILE * hFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libvmdk_handle_close
      Src: /src/sleuthkit/tsk/img/vmdk.c:109,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:111,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:112,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:113,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vmdk.c:114,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:118,1
    - Dst: libvmdk_handle_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:121,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:123,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:124,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:125,1
    - Dst: strerror
      Src: /src/sleuthkit/tsk/img/vmdk.c:126,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:130,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/vmdk.c:134,1
    - Dst: free
      Src: /src/sleuthkit/tsk/img/vmdk.c:136,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/tsk/img/vmdk.c:138,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 140
    functionName: vmdk_image_close
    functionSourceFile: /src/sleuthkit/tsk/img/vmdk.c
    functionUses: 0
    functionsReached:
    - libvmdk_handle_close
    - getError
    - tsk_error_reset
    - tsk_error_set_errstr
    - libvmdk_handle_free
    - tsk_deinit_lock
    - tsk_error_set_errno
    - tsk_img_free
    - free
    - strerror
    linkageType: ''
    returnType: void
    signature: void vmdk_image_close(TSK_IMG_INFO * img_info)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: libvmdk_notify_set_verbose
      Src: /src/sleuthkit/tsk/img/vmdk.c:154,1
    - Dst: libvmdk_notify_set_stream
      Src: /src/sleuthkit/tsk/img/vmdk.c:155,1
    - Dst: tsk_img_malloc
      Src: /src/sleuthkit/tsk/img/vmdk.c:159,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/vmdk.c:168,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:170,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tsk/img/vmdk.c:174,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tsk/img/vmdk.c:176,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:177,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tsk/img/vmdk.c:180,1
    - Dst: libvmdk_handle_initialize
      Src: /src/sleuthkit/tsk/img/vmdk.c:183,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:184,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:185,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:187,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:188,1
    - Dst: libvmdk_error_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:190,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:192,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:195,1
    - Dst: libvmdk_handle_open_wide
      Src: /src/sleuthkit/tsk/img/vmdk.c:200,1
    - Dst: libvmdk_handle_open
      Src: /src/sleuthkit/tsk/img/vmdk.c:204,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:209,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:210,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:212,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:213,1
    - Dst: libvmdk_error_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:215,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:217,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:220,1
    - Dst: libvmdk_handle_open_extent_data_files
      Src: /src/sleuthkit/tsk/img/vmdk.c:224,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:226,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:227,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:229,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:230,1
    - Dst: libvmdk_error_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:233,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:235,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:238,1
    - Dst: libvmdk_handle_get_media_size
      Src: /src/sleuthkit/tsk/img/vmdk.c:242,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tsk/img/vmdk.c:244,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tsk/img/vmdk.c:245,1
    - Dst: getError
      Src: /src/sleuthkit/tsk/img/vmdk.c:247,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tsk/img/vmdk.c:248,1
    - Dst: libvmdk_error_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:251,1
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tsk/img/vmdk.c:253,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tsk/img/vmdk.c:256,1
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/tsk/img/vmdk.c:273,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 82
    argCount: 3
    argNames:
    - a_num_img
    - a_images
    - a_ssize
    argTypes:
    - int
    - TSK_TCHAR*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 276
    functionName: vmdk_open
    functionSourceFile: /src/sleuthkit/tsk/img/vmdk.c
    functionUses: 1
    functionsReached:
    - libvmdk_handle_initialize
    - tsk_fprintf
    - tsk_init_lock
    - getError
    - libvmdk_notify_set_stream
    - tsk_error_set_errno
    - libvmdk_handle_open
    - TSTRNCPY
    - libvmdk_notify_set_verbose
    - tsk_img_malloc
    - tsk_error_reset
    - libvmdk_error_free
    - tsk_malloc
    - libvmdk_handle_get_media_size
    - libvmdk_handle_open_wide
    - tsk_error_set_errstr
    - tsk_img_free
    - libvmdk_handle_open_extent_data_files
    - TSTRLEN
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: "TSK_IMG_INFO *\nvmdk_open(int a_num_img,\n    const TSK_TCHAR * const
      a_images[], unsigned int a_ssize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TskIsImageSupported::TskIsImageSupported
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:37,1
    - Dst: std::string::empty
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:40,1
    - Dst: TskIsImageSupported::setFileSystemPassword
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:41,1
    - Dst: strlen
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:48,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:49,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:56,1
    - Dst: free
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:59,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:67,1
    - Dst: TskIsImageSupported::openImage
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:70,1
    - Dst: TskIsImageSupported::findFilesInImg
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:74,1
    - Dst: TskIsImageSupported::getMessageForIsImageSupportedNat
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:75,1
    - Dst: TskIsImageSupported::closeImage
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:79,1
    - Dst: free
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:80,1
    - Dst: free
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:83,1
    - Dst: std::string::empty
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:89,1
    - Dst: malloc
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:90,1
    - Dst: std::string::size
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:96,1
    - Dst: malloc
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:97,1
    - Dst: strncpy_s
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:99,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - path
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 104
    functionName: isImageSupported
    functionSourceFile: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp
    functionUses: 1
    functionsReached:
    - TskIsImageSupported::openImage
    - TskIsImageSupported::closeImage
    - TskIsImageSupported::TskIsImageSupported
    - malloc
    - std::string::empty
    - std::string::c_str
    - TskIsImageSupported::getMessageForIsImageSupportedNat
    - tsk_malloc
    - std::string::size
    - strncpy_s
    - tsk_UTF8toUTF16
    - free
    - TskIsImageSupported::setFileSystemPassword
    - strlen
    - TskIsImageSupported::findFilesInImg
    linkageType: ''
    returnType: char
    signature: char * isImageSupported(const char* path, const char* password)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: freeString
    functionSourceFile: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeString(char* str)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - hModule
    - ul_reason_for_call
    - lpReserved
    argTypes:
    - HMODULE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 18
    functionName: DllMain
    functionSourceFile: /src/sleuthkit/win32/is_image_supported_lib/dllmain.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain( HMODULE hModule,\n                       DWORD  ul_reason_for_call,\n
      \                      LPVOID lpReserved\n                     )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:32,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:34,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:36,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:42,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:44,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:47,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - a_fs
    - a_addr
    - a_type
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - TSK_FS_ATTR_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: test_get_type
    functionSourceFile: /src/sleuthkit/tests/fs_attrlist_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - fprintf
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - tsk_fs_file_attr_get_type
    linkageType: ''
    returnType: int
    signature: "int test_get_type(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr,\n    TSK_FS_ATTR_TYPE_ENUM
      a_type)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:67,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:69,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:71,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:75,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:77,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:81,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:88,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:90,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:93,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:99,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:102,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:105,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:111,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:115,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:120,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:123,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:128,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:130,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:133,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:138,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:141,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:147,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:149,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:152,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:155,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:156,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:158,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:159,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:162,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:166,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:169,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:172,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:175,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:176,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:178,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:179,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:182,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 3
    argNames:
    - a_fs
    - a_addr
    - a_len
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 189
    functionName: test_get_apis
    functionSourceFile: /src/sleuthkit/tests/fs_attrlist_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_file_attr_get_idx
    - tsk_error_print
    - fprintf
    - tsk_error_reset
    - tsk_fs_file_open_meta
    - tsk_fs_file_attr_getsize
    - tsk_fs_file_attr_get_type
    - tsk_error_get_errno
    - tsk_fs_file_close
    linkageType: ''
    returnType: int
    signature: int test_get_apis(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr, int a_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:201,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:202,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:203,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:204,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:208,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:209,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:210,1
    - Dst: test_get_apis
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:215,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:216,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:221,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:222,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:226,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 229
    functionName: test_fat12
    functionSourceFile: /src/sleuthkit/tests/fs_attrlist_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_img_open_sing
    - tsk_fs_close
    - test_get_apis
    - tsk_fs_open_img
    - test_get_type
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_fat12()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:240,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:241,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:242,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:243,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:247,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:248,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:249,1
    - Dst: test_get_apis
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:254,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:255,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:258,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:259,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:262,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:263,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:266,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:267,1
    - Dst: test_get_apis
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:272,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:273,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:276,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:277,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:280,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:281,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:284,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:285,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:288,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:289,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:292,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:293,1
    - Dst: test_get_type
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:296,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:297,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:301,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:302,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 304
    functionName: test_ntfs_fe
    functionSourceFile: /src/sleuthkit/tests/fs_attrlist_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_img_open_sing
    - tsk_fs_close
    - test_get_apis
    - tsk_fs_open_img
    - test_get_type
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_fe()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:312,1
    - Dst: test_fat12
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:317,1
    - Dst: test_ntfs_fe
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:320,1
    - Dst: printf
      Src: /src/sleuthkit/tests/fs_attrlist_apis.cpp:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 326
    functionName: main
    functionSourceFile: /src/sleuthkit/tests/fs_attrlist_apis.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - test_fat12
    - printf
    - test_ntfs_fe
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:33,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:40,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:47,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:57,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:63,1
    - Dst: strcmp
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:66,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:68,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - fs_name1
    - fs_name2
    - a_print
    argTypes:
    - TSK_FS_NAME*
    - TSK_FS_NAME*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 74
    functionName: compare_names
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int compare_names(const TSK_FS_NAME * fs_name1, const TSK_FS_NAME
      * fs_name2,\n    uint8_t a_print)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a_fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: dir_walk_count_cb
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM dir_walk_count_cb(TSK_FS_FILE * a_fs_file, const
      char *a_path, void *a_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compare_names
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a_fs_file
    - a_path
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: dir_walk_comp_cb
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - compare_names
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM dir_walk_comp_cb(TSK_FS_FILE * a_fs_file, const char
      *a_path, void *a_ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:115,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:117,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:119,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:126,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:128,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:134,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:135,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:138,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:144,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:147,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:149,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:152,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:157,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:166,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:168,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:174,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:180,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - a_fs
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 186
    functionName: test_walk_apis
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fs_dir_get
    - fprintf
    - tsk_fs_dir_open_meta
    - tsk_fs_dir_walk
    - tsk_fs_dir_getsize
    - tsk_fs_file_close
    - tsk_fs_dir_close
    linkageType: ''
    returnType: int
    signature: int test_walk_apis(TSK_FS_INFO * a_fs, TSK_INUM_T a_addr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:206,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:208,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:210,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:216,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:218,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:219,1
    - Dst: tsk_fs_dir_open
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:224,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:226,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:227,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:233,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:241,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:252,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:263,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:272,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:272,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:273,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:276,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:276,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:284,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:285,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:290,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:292,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:295,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:300,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:302,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:305,1
    - Dst: compare_names
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:310,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:311,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:315,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:316,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:320,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:321,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:323,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:326,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:331,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:333,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:336,1
    - Dst: compare_names
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:341,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:342,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:347,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:348,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:352,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:353,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:354,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 110
    argCount: 3
    argNames:
    - a_fs
    - a_path
    - a_addr
    argTypes:
    - TSK_FS_INFO*
    - char*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 357
    functionName: test_dir_open_apis
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fs_dir_get
    - fprintf
    - tsk_fs_dir_open_meta
    - compare_names
    - tsk_fs_dir_getsize
    - tsk_fs_file_close
    - tsk_fs_dir_open
    - tsk_fs_dir_close
    linkageType: ''
    returnType: int
    signature: "int test_dir_open_apis(TSK_FS_INFO * a_fs, const char *a_path,\n    TSK_INUM_T
      a_addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:368,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:369,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:370,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:371,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:375,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:376,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:377,1
    - Dst: test_dir_open_apis
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:381,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:382,1
    - Dst: test_walk_apis
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:387,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:388,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:393,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 360
    functionDepth: 8
    functionLinenumber: 360
    functionLinenumberEnd: 396
    functionName: test_fat12
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - test_dir_open_apis
    - tsk_img_close
    - fprintf
    - tsk_img_open_sing
    - tsk_fs_close
    - tsk_fs_open_img
    - test_walk_apis
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_fat12()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:406,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:407,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:408,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:409,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:413,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:414,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:415,1
    - Dst: test_dir_open_apis
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:419,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:420,1
    - Dst: test_walk_apis
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:424,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:425,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:429,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 398
    functionDepth: 8
    functionLinenumber: 398
    functionLinenumberEnd: 432
    functionName: test_ntfs_fe
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - test_dir_open_apis
    - tsk_img_close
    - fprintf
    - tsk_img_open_sing
    - tsk_fs_close
    - tsk_fs_open_img
    - test_walk_apis
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_fe()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:443,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:444,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:445,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:446,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:450,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:451,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:452,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:456,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:457,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:461,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:462,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:466,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 469
    functionName: test_ntfs_comp
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_img_open_sing
    - testfile
    - tsk_fs_close
    - tsk_fs_open_img
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_comp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:477,1
    - Dst: test_fat12
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:482,1
    - Dst: test_ntfs_fe
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:484,1
    - Dst: printf
      Src: /src/sleuthkit/tests/fs_fname_apis.cpp:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: main
    functionSourceFile: /src/sleuthkit/tests/fs_fname_apis.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - test_fat12
    - printf
    - test_ntfs_fe
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:38,1
    - Dst: tsk_fs_file_get_owner_sid
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:45,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:47,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:50,1
    - Dst: free
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:51,1
    - Dst: fputc
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:54,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:67,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:70,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:77,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - fs_file
    - path
    - stuff
    argTypes:
    - TSK_FS_FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 101
    functionName: proc_dir
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - fprintf
    - tsk_fs_file_get_owner_sid
    - fputc
    - tsk_fs_file_read
    - free
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM proc_dir(TSK_FS_FILE* fs_file, const char* path,
      void* stuff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:107,1
    - Dst: TSK_FS_ORPHANDIR_INUM
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:107,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:108,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:109,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:115,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:116,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fs
    - log
    argTypes:
    - TSK_FS_INFO*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 7
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: proc_fs
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_ORPHANDIR_INUM
    - fprintf
    - tsk_fs_dir_walk
    - tsk_error_print
    linkageType: ''
    returnType: void
    signature: void proc_fs(TSK_FS_INFO* fs, FILE* log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id
    - fs
    - niters
    argTypes:
    - int
    - TSK_FS_INFO*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: MyThread::MyThread
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyThread(int id, TSK_FS_INFO* fs, size_t niters)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:131,1
    - Dst: fopen
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:133,1
    - Dst: perror
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:135,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:136,1
    - Dst: proc_fs
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:138,1
    - Dst: fclose
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: operator()()
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 0
    functionsReached:
    - perror
    - fopen
    - exit
    - fclose
    - proc_fs
    - snprintf
    linkageType: ''
    returnType: void
    signature: void operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:157,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:157,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: usage
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 0
    functionsReached:
    - exit
    - _TSK_T
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:171,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:171,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:173,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:174,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:185,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:185,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:187,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:188,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:190,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:191,1
    - Dst: usage
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:192,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:195,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:196,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:197,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:198,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:201,1
    - Dst: usage
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:205,1
    - Dst: usage
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:210,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:214,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:216,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:217,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:219,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:221,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:222,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:225,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:227,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:228,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:232,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:234,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:237,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:239,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:240,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:241,1
    - Dst: TskThread::TskThread
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:244,1
    - Dst: MyThread::MyThread
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:246,1
    - Dst: TskThread::run
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:248,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:254,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:255,1
    - Dst: exit
      Src: /src/sleuthkit/tests/fs_thread_test.cpp:256,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 257
    functionName: main
    functionSourceFile: /src/sleuthkit/tests/fs_thread_test.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_img_open_sing
    - _TSK_T
    - TFPRINTF
    - MyThread::MyThread
    - tsk_parse_offset
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - TskThread::run
    - GetCommandLineW
    - GETOPT
    - tsk_fs_open_img
    - tsk_fs_type_toid
    - TskThread::TskThread
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: TskThread::~TskThread()
    functionSourceFile: /src/sleuthkit/tests/tsk_thread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskThread::~TskThread()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ta
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: x_thread_top
    functionSourceFile: /src/sleuthkit/tests/tsk_thread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *x_thread_top(void *ta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_t::pthread_t
      Src: /src/sleuthkit/tests/tsk_thread.cpp:23,1
    - Dst: pthread_attr_init
      Src: /src/sleuthkit/tests/tsk_thread.cpp:25,1
    - Dst: pthread_create
      Src: /src/sleuthkit/tests/tsk_thread.cpp:28,1
    - Dst: assert
      Src: /src/sleuthkit/tests/tsk_thread.cpp:29,1
    - Dst: pthread_join
      Src: /src/sleuthkit/tests/tsk_thread.cpp:36,1
    - Dst: assert
      Src: /src/sleuthkit/tests/tsk_thread.cpp:37,1
    - Dst: assert
      Src: /src/sleuthkit/tests/tsk_thread.cpp:38,1
    - Dst: pthread_attr_destroy
      Src: /src/sleuthkit/tests/tsk_thread.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - threads
    - nthreads
    argTypes:
    - TskThread**
    - size_t
    assertStmts:
    - condition: (0 == pt)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/sleuthkit/tests/tsk_thread.cpp
    - condition: (0 == pt)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/sleuthkit/tests/tsk_thread.cpp
    - condition: (0 == thread_return)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/sleuthkit/tests/tsk_thread.cpp
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: TskThread::run
    functionSourceFile: /src/sleuthkit/tests/tsk_thread.cpp
    functionUses: 1
    functionsReached:
    - pthread_attr_destroy
    - assert
    - pthread_t::pthread_t
    - pthread_join
    - pthread_attr_init
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void TskThread::run(TskThread** threads, size_t nthreads)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:42,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:60,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:63,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:67,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:78,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:81,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:84,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:88,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:89,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tests/read_apis.cpp:102,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:104,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:107,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tests/read_apis.cpp:111,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:113,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:114,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:119,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:120,1
    - Dst: tsk_fs_read_block
      Src: /src/sleuthkit/tests/read_apis.cpp:127,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:129,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:132,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tests/read_apis.cpp:138,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:140,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:143,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:148,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 7
    argNames:
    - a_fs_file
    - a_off
    - a_addr
    - a_buf
    - a_size
    - a_flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 30
    functionDepth: 6
    functionLinenumber: 30
    functionLinenumberEnd: 158
    functionName: fw_action1
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - tsk_error_print
    - tsk_fs_read_block
    - fprintf
    - tsk_fs_file_read
    - tsk_img_read
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM fw_action1(TSK_FS_FILE * a_fs_file, TSK_OFF_T a_off,
      TSK_DADDR_T a_addr,\n    char *a_buf, size_t a_size, TSK_FS_BLOCK_FLAG_ENUM
      a_flags,\n    void *a_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/sleuthkit/tests/read_apis.cpp:166,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:167,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:171,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:173,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:177,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:179,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tests/read_apis.cpp:184,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:186,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:188,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:189,1
    - Dst: free
      Src: /src/sleuthkit/tests/read_apis.cpp:193,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:194,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - a_fs
    - a_inum
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 197
    functionName: testfile
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - malloc
    - fprintf
    - tsk_error_reset
    - tsk_fs_file_walk
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - free
    linkageType: ''
    returnType: int
    signature: int testfile(TSK_FS_INFO * a_fs, TSK_INUM_T a_inum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:209,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:210,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:211,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:212,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:213,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:217,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:218,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:219,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:220,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/read_apis.cpp:224,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:225,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:229,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 232
    functionName: test_fat12
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 2
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - testfile
    - tsk_fs_close
    - tsk_fs_open_img
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_fat12()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:248,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:249,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:250,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:251,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:252,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:256,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:257,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:258,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:259,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:265,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:267,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:273,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:281,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:284,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:286,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:287,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:291,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:293,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:298,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:301,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:302,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:303,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:307,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:309,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:314,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:315,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:323,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 326
    functionName: test_fat_slack
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - tsk_fs_close
    - tsk_fs_file_read
    - tsk_fs_open_img
    - tsk_fs_file_open_meta
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_fat_slack()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:342,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:343,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:344,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:345,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:346,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:351,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:353,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:354,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:355,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:362,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:364,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:365,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:366,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:372,1
    - Dst: tsk_fs_file_open
      Src: /src/sleuthkit/tests/read_apis.cpp:379,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:381,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:384,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:385,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:390,1
    - Dst: strcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:396,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:397,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:405,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:412,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:417,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:420,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:422,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:423,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:429,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:432,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:437,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:440,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:442,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:443,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:447,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:450,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:455,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:456,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:462,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:463,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:464,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 330
    functionDepth: 6
    functionLinenumber: 330
    functionLinenumberEnd: 466
    functionName: test_fat_recover
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - tsk_fs_close
    - tsk_fs_file_read
    - strcmp
    - tsk_fs_open_img
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - tsk_fs_file_open
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_fat_recover()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:482,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:483,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:484,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:485,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:486,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:490,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:491,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:492,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:493,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:499,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:501,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:507,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:515,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:518,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:521,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:522,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:526,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:529,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:534,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:537,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:540,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:541,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:545,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:548,1
    - Dst: memcmp
      Src: /src/sleuthkit/tests/read_apis.cpp:553,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:554,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tests/read_apis.cpp:564,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:567,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:570,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:575,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tests/read_apis.cpp:578,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:580,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:581,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:582,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:588,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/read_apis.cpp:596,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:598,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:600,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:601,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:605,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/tests/read_apis.cpp:612,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:614,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:617,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:618,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:622,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tests/read_apis.cpp:628,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:630,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:631,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 471
    functionDepth: 6
    functionLinenumber: 471
    functionLinenumberEnd: 633
    functionName: test_ntfs_slack_ads
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - tsk_fs_close
    - tsk_fs_file_read
    - tsk_fs_open_img
    - tsk_fs_file_open_meta
    - tsk_fs_file_close
    - tsk_fs_file_attr_get_type
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_slack_ads()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:643,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:644,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:645,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:646,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:647,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:651,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:652,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:653,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:654,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/read_apis.cpp:658,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:659,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/read_apis.cpp:663,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:664,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:668,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 635
    functionDepth: 7
    functionLinenumber: 635
    functionLinenumberEnd: 671
    functionName: test_ntfs_fe
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 2
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - testfile
    - tsk_fs_close
    - tsk_fs_open_img
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_fe()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:681,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/tests/read_apis.cpp:682,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:683,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:684,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:685,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tests/read_apis.cpp:689,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:690,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tests/read_apis.cpp:691,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tests/read_apis.cpp:692,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/read_apis.cpp:696,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:697,1
    - Dst: testfile
      Src: /src/sleuthkit/tests/read_apis.cpp:701,1
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:702,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tests/read_apis.cpp:706,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tests/read_apis.cpp:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 673
    functionDepth: 7
    functionLinenumber: 673
    functionLinenumberEnd: 709
    functionName: test_ntfs_comp
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_error_reset
    - tsk_img_open_sing
    - testfile
    - tsk_fs_close
    - tsk_fs_open_img
    - snprintf
    linkageType: ''
    returnType: int
    signature: int test_ntfs_comp()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tests/read_apis.cpp:716,1
    - Dst: test_fat12
      Src: /src/sleuthkit/tests/read_apis.cpp:721,1
    - Dst: test_fat_slack
      Src: /src/sleuthkit/tests/read_apis.cpp:723,1
    - Dst: test_fat_recover
      Src: /src/sleuthkit/tests/read_apis.cpp:725,1
    - Dst: test_ntfs_fe
      Src: /src/sleuthkit/tests/read_apis.cpp:727,1
    - Dst: test_ntfs_comp
      Src: /src/sleuthkit/tests/read_apis.cpp:729,1
    - Dst: test_ntfs_slack_ads
      Src: /src/sleuthkit/tests/read_apis.cpp:731,1
    - Dst: printf
      Src: /src/sleuthkit/tests/read_apis.cpp:734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 712
    functionDepth: 7
    functionLinenumber: 712
    functionLinenumberEnd: 736
    functionName: main
    functionSourceFile: /src/sleuthkit/tests/read_apis.cpp
    functionUses: 0
    functionsReached:
    - test_fat_recover
    - test_ntfs_fe
    - fprintf
    - printf
    - test_fat12
    - test_fat_slack
    - test_ntfs_slack_ads
    - test_ntfs_comp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LFRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LFRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LFRecord::LFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LFRecord::LFRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LFRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LFRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LFRecord::LFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LFRecord::LFRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~ValueListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ValueListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Rejistry::ValueListRecord::getValuesSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getValuesSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord(const ValueListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& operator=(const ValueListRecord &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueListRecord
    signature: ValueListRecord & operator=(const ValueListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~ValueListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ValueListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Rejistry::ValueListRecord::getValuesSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getValuesSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord(const ValueListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& operator=(const ValueListRecord &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueListRecord
    signature: ValueListRecord & operator=(const ValueListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Rejistry::BinaryBlock::getWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getWord
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t BinaryBlock::getWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getDWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Rejistry::BinaryBlock::getDWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BinaryBlock::getDWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getQWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Rejistry::BinaryBlock::getQWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BinaryBlock::getQWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getASCIIString
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Rejistry::BinaryBlock::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string BinaryBlock::getASCIIString(uint32_t offset, uint32_t length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getUTF16String
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::BinaryBlock::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getUTF16String
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring BinaryBlock::getUTF16String(uint32_t offset, uint32_t
      length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Rejistry::BinaryBlock::getAbsoluteOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BinaryBlock::getAbsoluteOffset(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getData
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Rejistry::BinaryBlock::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::BinaryBlock::getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray BinaryBlock::getData(uint32_t offset, uint32_t
      length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Rejistry::BinaryBlock::getWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getWord
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t BinaryBlock::getWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getDWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Rejistry::BinaryBlock::getDWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BinaryBlock::getDWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getQWord
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Rejistry::BinaryBlock::getQWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BinaryBlock::getQWord(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getASCIIString
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Rejistry::BinaryBlock::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string BinaryBlock::getASCIIString(uint32_t offset, uint32_t length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getUTF16String
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::BinaryBlock::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getUTF16String
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring BinaryBlock::getUTF16String(uint32_t offset, uint32_t
      length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Rejistry::BinaryBlock::getAbsoluteOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BinaryBlock::getAbsoluteOffset(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::BinaryBlock::getData
      Src: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Rejistry::BinaryBlock::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::BinaryBlock::getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray BinaryBlock::getData(uint32_t offset, uint32_t
      length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LIRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LIRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LIRecord::LIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LIRecord::LIRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LIRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LIRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LIRecord::LIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LIRecord::LIRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Rejistry::getBooleanString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring getBooleanString(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileTimeToSystemTime
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:57,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:60,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:60,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:61,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:61,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:62,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:62,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:63,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:63,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:64,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:64,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:65,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' dateTime'
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: Rejistry::printDatetimeString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - std::setw
    - FileTimeToSystemTime
    - std::setfill
    linkageType: ''
    returnType: void
    signature: void printDatetimeString(const uint64_t& dateTime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:73,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:73,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:87,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:92,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - ' data'
    - offset
    - length
    - linePadding
    argTypes:
    - std::vector<uint8_t>
    - uint32_t
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: Rejistry::dumpHexString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: void
    signature: void dumpHexString(const std::vector<uint8_t>& data, const uint32_t
      offset, const uint64_t length, const size_t linePadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:149,1
    - Dst: first::empty
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: first::begin
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: first::end
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 168
    functionName: Rejistry::print
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - first::begin
    - first::c_str
    - first::empty
    - first::end
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:180,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:181,1
    - Dst: VKRecord*::hasName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:181,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:182,1
    - Dst: VKRecord*::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:182,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:183,1
    - Dst: VKRecord*::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:183,1
    - Dst: VKRecord*::getDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:184,1
    - Dst: VKRecord*::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:185,1
    - Dst: VKRecord*::getDataOffset
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:186,1
    - Dst: VKRecord*::getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:188,1
    - Dst: ValueData::ValueDataUniqPtr::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:191,1
    - Dst: ValueData::ValueDataUniqPtr::getAsString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:194,1
    - Dst: ValueData::ValueDataUniqPtr::getAsStringList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:198,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:200,1
    - Dst: ValueData::ValueDataUniqPtr::getAsNumber
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:212,1
    - Dst: ValueData::ValueDataUniqPtr::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:217,1
    - Dst: Rejistry::dumpHexString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - vkRecord
    - ' prefix'
    argTypes:
    - VKRecord*
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 226
    functionName: Rejistry::printVKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - ValueData::ValueDataUniqPtr::getValueType
    - VKRecord*::getRawDataLength
    - Rejistry::ValueData::getValueType
    - Rejistry::getBooleanString
    - VKRecord*::getValue
    - ValueData::ValueDataUniqPtr::getAsRawData
    - VKRecord*::getDataOffset
    - Rejistry::dumpHexString
    - VKRecord*::getName
    - VKRecord*::hasAsciiName
    - VKRecord*::getValueType
    - what
    - ValueData::ValueDataUniqPtr::getAsString
    - std::vector::size
    - VKRecord*::hasName
    - size
    - VKRecord*::getDataLength
    - ValueData::ValueDataUniqPtr::getAsNumber
    - ValueData::ValueDataUniqPtr::getAsStringList
    linkageType: ''
    returnType: void
    signature: void printVKRecord(const VKRecord* vkRecord, const std::wstring& prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:230,1
    - Dst: NKRecord*::hasClassname
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:230,1
    - Dst: NKRecord*::getClassName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:231,1
    - Dst: Rejistry::printDatetimeString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:232,1
    - Dst: NKRecord*::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:232,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:233,1
    - Dst: NKRecord*::isRootKey
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:233,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:234,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:235,1
    - Dst: NKRecord*::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:235,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:236,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:236,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:237,1
    - Dst: NKRecord*::getParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:239,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:240,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:243,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:250,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:251,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - nkRecord
    - ' prefix'
    argTypes:
    - NKRecord*
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: Rejistry::printNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::printDatetimeString
    - what
    - NKRecord*::hasAsciiName
    - NKRecord*::getSubkeyCount
    - NKRecord*::hasParentRecord
    - NKRecord*::getName
    - NKRecord*::getNumberOfValues
    - Rejistry::getBooleanString
    - auto::getName
    - NKRecord*::getParentRecord
    - NKRecord*::hasClassname
    - NKRecord*::getTimestamp
    - NKRecord*::isRootKey
    - NKRecord*::getClassName
    linkageType: ''
    returnType: void
    signature: void printNKRecord(const NKRecord* nkRecord, const std::wstring& prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:266,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:266,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:267,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:268,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:274,1
    - Dst: VKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:278,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:279,1
    - Dst: VKRecord*::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:286,1
    - Dst: getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:287,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:290,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:291,1
    - Dst: VKRecord*::getDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:295,1
    - Dst: getValueLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:296,1
    - Dst: getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:304,1
    - Dst: VKRecord*::getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:305,1
    - Dst: auto::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:308,1
    - Dst: auto::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:309,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:312,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:313,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:318,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ' vkRecords'
    - ' rvList'
    - ' prefix'
    argTypes:
    - VKRecord::VKRecordUniqPtrList
    - RegistryValue::RegistryValuePtrList
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 326
    functionName: Rejistry::crossCheckValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - VKRecord*::getName
    - getValueType
    - VKRecord*::getValueType
    - what
    - std::min
    - size
    - getName
    - VKRecord*::getDataLength
    - getValueLength
    - Rejistry::ValueData::getValueType
    - auto::size
    - get
    - VKRecord*::getValue
    - auto::getAsRawData
    - getValue
    linkageType: ''
    returnType: void
    signature: "void crossCheckValues(const VKRecord::VKRecordUniqPtrList& vkRecords,\n
      \                         const RegistryValue::RegistryValuePtrList& rvList,\n
      \                         const std::wstring& prefix)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::printNKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:340,1
    - Dst: NKRecord*::getValueList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:345,1
    - Dst: auto::getValuesSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:346,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:348,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:350,1
    - Dst: auto::getValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:355,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:356,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:356,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:357,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:358,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:358,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:361,1
    - Dst: Rejistry::printVKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:362,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:362,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:364,1
    - Dst: getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:364,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:372,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:378,1
    - Dst: NKRecord*::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:379,1
    - Dst: auto::getMagic
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:381,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:382,1
    - Dst: auto::getListLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:383,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:397,1
    - Dst: auto::getSubkeys
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:403,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:406,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:413,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:414,1
    - Dst: NKRecord*::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:421,1
    - Dst: getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:422,1
    - Dst: getSubkeyListSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:429,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:430,1
    - Dst: getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:437,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:438,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:438,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:439,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:440,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:444,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:446,1
    - Dst: getValueListSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:450,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:451,1
    - Dst: getValueList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:458,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:459,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:459,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:460,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:461,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:465,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:467,1
    - Dst: Rejistry::crossCheckValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:471,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:474,1
    - Dst: getParent
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:476,1
    - Dst: NKRecord*::getParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:477,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:478,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:478,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:480,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:481,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:485,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:490,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:500,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:500,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:502,1
    - Dst: getSubkey
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:504,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:508,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:511,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:512,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:518,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:518,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:520,1
    - Dst: getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:522,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:526,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:529,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:530,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:538,1
    - Dst: Rejistry::recurseAll
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:539,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:539,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:543,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:544,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:546,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:547,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 3
    argNames:
    - nkRecord
    - ' regKey'
    - ' prefix'
    argTypes:
    - NKRecord*
    - RegistryKey
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 549
    functionName: Rejistry::recurseAll
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - getValueType
    - getValueListSize
    - Rejistry::ValueData::getValueType
    - RegistryKey::RegistryKeyPtrList::size
    - NKRecord*::getName
    - auto::getName
    - Rejistry::recurseAll
    - NKRecord*::getSubkeyList
    - VKRecord::VKRecordUniqPtrList::size
    - getValueList
    - getName
    - NKRecord::NKRecordUniqPtrList::size
    - getSubkeyList
    - NKRecord*::getParentRecord
    - auto::getListLength
    - getSubkey
    - getTimestamp
    - what
    - getSubkeyListSize
    - auto::getValuesSize
    - std::string::c_str
    - NKRecord*::getSubkeyCount
    - auto::size
    - NKRecord*::hasParentRecord
    - auto::getValues
    - getValue
    - Rejistry::crossCheckValues
    - auto::getSubkeys
    - std::min
    - getParent
    - auto::getMagic
    - Rejistry::printNKRecord
    - NKRecord*::getValueList
    - NKRecord*::getNumberOfValues
    - get
    - static_cast<uint32_t>
    - Rejistry::printVKRecord
    - NKRecord*::getTimestamp
    linkageType: ''
    returnType: void
    signature: void recurseAll(NKRecord* nkRecord, const RegistryKey& regKey, const
      std::wstring& prefix, uint32_t depth = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:561,1
    - Dst: width
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:562,1
    - Dst: fill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:563,1
    - Dst: getHeader
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:567,1
    - Dst: auto::getHiveName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:568,1
    - Dst: auto::getMajorVersion
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:569,1
    - Dst: auto::getMinorVersion
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:570,1
    - Dst: auto::isSynchronized
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:571,1
    - Dst: auto::getHBINs
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:573,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:574,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:574,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:575,1
    - Dst: auto::getLastHbinOffset
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:576,1
    - Dst: auto::getFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:580,1
    - Dst: auto::getRelativeOffsetFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:581,1
    - Dst: auto::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:582,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:585,1
    - Dst: getRelativeOffsetFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:591,1
    - Dst: getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:592,1
    - Dst: getCells
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:596,1
    - Dst: isActive
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:597,1
    - Dst: getDataSignature
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:608,1
    - Dst: getLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:611,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:612,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:613,1
    - Dst: getLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:629,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:630,1
    - Dst: auto::getRootNKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:641,1
    - Dst: getRoot
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:642,1
    - Dst: Rejistry::recurseAll
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:643,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:643,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:646,1
    - Dst: Rejistry::print
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:650,1
    - Dst: flags
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:652,1
    - Dst: width
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:653,1
    - Dst: fill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:654,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - ' hive'
    argTypes:
    - RegistryHive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 655
    functionName: Rejistry::processRegistryHive
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - getDataSignature
    - auto::getMajorVersion
    - auto::get
    - getRelativeOffsetNextHBIN
    - Rejistry::recurseAll
    - auto::getHBINs
    - getHeader
    - Rejistry::print
    - flags
    - auto::isSynchronized
    - getLength
    - getRoot
    - auto::getHiveName
    - getRelativeOffsetFirstHBIN
    - what
    - std::string::c_str
    - auto::getRootNKRecord
    - auto::size
    - fill
    - width
    - auto::getRelativeOffsetFirstHBIN
    - getCells
    - auto::getMinorVersion
    - auto::getRelativeOffsetNextHBIN
    - auto::getLastHbinOffset
    - static_cast<uint32_t>
    - getData
    - isActive
    - auto::getFirstHBIN
    linkageType: ''
    returnType: void
    signature: void processRegistryHive(RegistryHive& hive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::processRegistryHive
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:661,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - regFilePath
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: Rejistry::processRegistryFile
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::processRegistryHive
    - what
    linkageType: ''
    returnType: void
    signature: void processRegistryFile(wchar_t * regFilePath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Rejistry::getBooleanString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring getBooleanString(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileTimeToSystemTime
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:57,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:60,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:60,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:61,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:61,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:62,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:62,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:63,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:63,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:64,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:64,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:65,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' dateTime'
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: Rejistry::printDatetimeString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - std::setw
    - FileTimeToSystemTime
    - std::setfill
    linkageType: ''
    returnType: void
    signature: void printDatetimeString(const uint64_t& dateTime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:73,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:73,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:87,1
    - Dst: std::setw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:92,1
    - Dst: std::setfill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - ' data'
    - offset
    - length
    - linePadding
    argTypes:
    - std::vector<uint8_t>
    - uint32_t
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: Rejistry::dumpHexString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: void
    signature: void dumpHexString(const std::vector<uint8_t>& data, const uint32_t
      offset, const uint64_t length, const size_t linePadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:149,1
    - Dst: first::empty
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: first::begin
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    - Dst: first::end
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 168
    functionName: Rejistry::print
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - std::wstring
    - first::begin
    - first::c_str
    - first::empty
    - first::end
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:180,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:181,1
    - Dst: VKRecord*::hasName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:181,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:182,1
    - Dst: VKRecord*::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:182,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:183,1
    - Dst: VKRecord*::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:183,1
    - Dst: VKRecord*::getDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:184,1
    - Dst: VKRecord*::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:185,1
    - Dst: VKRecord*::getDataOffset
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:186,1
    - Dst: VKRecord*::getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:188,1
    - Dst: ValueData::ValueDataUniqPtr::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:191,1
    - Dst: ValueData::ValueDataUniqPtr::getAsString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:194,1
    - Dst: ValueData::ValueDataUniqPtr::getAsStringList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:198,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:200,1
    - Dst: ValueData::ValueDataUniqPtr::getAsNumber
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:212,1
    - Dst: ValueData::ValueDataUniqPtr::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:217,1
    - Dst: Rejistry::dumpHexString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:218,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - vkRecord
    - ' prefix'
    argTypes:
    - VKRecord*
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 226
    functionName: Rejistry::printVKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - ValueData::ValueDataUniqPtr::getValueType
    - VKRecord*::getRawDataLength
    - Rejistry::ValueData::getValueType
    - Rejistry::getBooleanString
    - VKRecord*::getValue
    - ValueData::ValueDataUniqPtr::getAsRawData
    - VKRecord*::getDataOffset
    - Rejistry::dumpHexString
    - VKRecord*::getName
    - VKRecord*::hasAsciiName
    - VKRecord*::getValueType
    - what
    - ValueData::ValueDataUniqPtr::getAsString
    - std::vector::size
    - VKRecord*::hasName
    - size
    - VKRecord*::getDataLength
    - ValueData::ValueDataUniqPtr::getAsNumber
    - ValueData::ValueDataUniqPtr::getAsStringList
    linkageType: ''
    returnType: void
    signature: void printVKRecord(const VKRecord* vkRecord, const std::wstring& prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:230,1
    - Dst: NKRecord*::hasClassname
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:230,1
    - Dst: NKRecord*::getClassName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:231,1
    - Dst: Rejistry::printDatetimeString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:232,1
    - Dst: NKRecord*::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:232,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:233,1
    - Dst: NKRecord*::isRootKey
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:233,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:234,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:235,1
    - Dst: NKRecord*::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:235,1
    - Dst: Rejistry::getBooleanString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:236,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:236,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:237,1
    - Dst: NKRecord*::getParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:239,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:240,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:243,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:250,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:251,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - nkRecord
    - ' prefix'
    argTypes:
    - NKRecord*
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: Rejistry::printNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::printDatetimeString
    - what
    - NKRecord*::hasAsciiName
    - NKRecord*::getSubkeyCount
    - NKRecord*::hasParentRecord
    - NKRecord*::getName
    - NKRecord*::getNumberOfValues
    - Rejistry::getBooleanString
    - auto::getName
    - NKRecord*::getParentRecord
    - NKRecord*::hasClassname
    - NKRecord*::getTimestamp
    - NKRecord*::isRootKey
    - NKRecord*::getClassName
    linkageType: ''
    returnType: void
    signature: void printNKRecord(const NKRecord* nkRecord, const std::wstring& prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:266,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:266,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:267,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:268,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:271,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:274,1
    - Dst: VKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:278,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:279,1
    - Dst: VKRecord*::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:286,1
    - Dst: getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:287,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:290,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:291,1
    - Dst: VKRecord*::getDataLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:295,1
    - Dst: getValueLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:296,1
    - Dst: getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:304,1
    - Dst: VKRecord*::getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:305,1
    - Dst: auto::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:308,1
    - Dst: auto::getAsRawData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:309,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:312,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:313,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:318,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ' vkRecords'
    - ' rvList'
    - ' prefix'
    argTypes:
    - VKRecord::VKRecordUniqPtrList
    - RegistryValue::RegistryValuePtrList
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 326
    functionName: Rejistry::crossCheckValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - VKRecord*::getName
    - getValueType
    - VKRecord*::getValueType
    - what
    - std::min
    - size
    - getName
    - VKRecord*::getDataLength
    - getValueLength
    - Rejistry::ValueData::getValueType
    - auto::size
    - get
    - VKRecord*::getValue
    - auto::getAsRawData
    - getValue
    linkageType: ''
    returnType: void
    signature: "void crossCheckValues(const VKRecord::VKRecordUniqPtrList& vkRecords,\n
      \                         const RegistryValue::RegistryValuePtrList& rvList,\n
      \                         const std::wstring& prefix)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::printNKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:340,1
    - Dst: NKRecord*::getValueList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:345,1
    - Dst: auto::getValuesSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:346,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:348,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:350,1
    - Dst: auto::getValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:355,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:356,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:356,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:357,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:358,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:358,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:361,1
    - Dst: Rejistry::printVKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:362,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:362,1
    - Dst: Rejistry::ValueData::getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:364,1
    - Dst: getValueType
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:364,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:372,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:378,1
    - Dst: NKRecord*::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:379,1
    - Dst: auto::getMagic
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:381,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:382,1
    - Dst: auto::getListLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:383,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:397,1
    - Dst: auto::getSubkeys
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:403,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:406,1
    - Dst: NKRecord*::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:413,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:414,1
    - Dst: NKRecord*::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:421,1
    - Dst: getTimestamp
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:422,1
    - Dst: getSubkeyListSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:429,1
    - Dst: NKRecord*::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:430,1
    - Dst: getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:437,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:438,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:438,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:439,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:440,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:444,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:446,1
    - Dst: getValueListSize
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:450,1
    - Dst: NKRecord*::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:451,1
    - Dst: getValueList
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:458,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:459,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:459,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:460,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:461,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:465,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:467,1
    - Dst: Rejistry::crossCheckValues
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:471,1
    - Dst: NKRecord*::hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:474,1
    - Dst: getParent
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:476,1
    - Dst: NKRecord*::getParentRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:477,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:478,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:478,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:480,1
    - Dst: auto::getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:481,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:485,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:490,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:500,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:500,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:502,1
    - Dst: getSubkey
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:504,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:508,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:511,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:512,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:518,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:518,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:520,1
    - Dst: getValue
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:522,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:526,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:529,1
    - Dst: VKRecord::VKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:530,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:536,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:538,1
    - Dst: Rejistry::recurseAll
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:539,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:539,1
    - Dst: NKRecord::NKRecordUniqPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:543,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:544,1
    - Dst: RegistryKey::RegistryKeyPtrList::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:546,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:547,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 3
    argNames:
    - nkRecord
    - ' regKey'
    - ' prefix'
    argTypes:
    - NKRecord*
    - RegistryKey
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 549
    functionName: Rejistry::recurseAll
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 3
    functionsReached:
    - getValueType
    - getValueListSize
    - Rejistry::ValueData::getValueType
    - RegistryKey::RegistryKeyPtrList::size
    - NKRecord*::getName
    - auto::getName
    - Rejistry::recurseAll
    - NKRecord*::getSubkeyList
    - VKRecord::VKRecordUniqPtrList::size
    - getValueList
    - getName
    - NKRecord::NKRecordUniqPtrList::size
    - getSubkeyList
    - NKRecord*::getParentRecord
    - auto::getListLength
    - getSubkey
    - getTimestamp
    - what
    - getSubkeyListSize
    - auto::getValuesSize
    - std::string::c_str
    - NKRecord*::getSubkeyCount
    - auto::size
    - NKRecord*::hasParentRecord
    - auto::getValues
    - getValue
    - Rejistry::crossCheckValues
    - auto::getSubkeys
    - std::min
    - getParent
    - auto::getMagic
    - Rejistry::printNKRecord
    - NKRecord*::getValueList
    - NKRecord*::getNumberOfValues
    - get
    - static_cast<uint32_t>
    - Rejistry::printVKRecord
    - NKRecord*::getTimestamp
    linkageType: ''
    returnType: void
    signature: void recurseAll(NKRecord* nkRecord, const RegistryKey& regKey, const
      std::wstring& prefix, uint32_t depth = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:561,1
    - Dst: width
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:562,1
    - Dst: fill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:563,1
    - Dst: getHeader
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:567,1
    - Dst: auto::getHiveName
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:568,1
    - Dst: auto::getMajorVersion
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:569,1
    - Dst: auto::getMinorVersion
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:570,1
    - Dst: auto::isSynchronized
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:571,1
    - Dst: auto::getHBINs
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:573,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:574,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:574,1
    - Dst: auto::size
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:575,1
    - Dst: auto::getLastHbinOffset
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:576,1
    - Dst: auto::getFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:580,1
    - Dst: auto::getRelativeOffsetFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:581,1
    - Dst: auto::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:582,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:585,1
    - Dst: getRelativeOffsetFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:591,1
    - Dst: getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:592,1
    - Dst: getCells
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:596,1
    - Dst: isActive
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:597,1
    - Dst: getDataSignature
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:608,1
    - Dst: getLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:611,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:612,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:613,1
    - Dst: getLength
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:629,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:630,1
    - Dst: auto::getRootNKRecord
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:641,1
    - Dst: getRoot
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:642,1
    - Dst: Rejistry::recurseAll
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:643,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:643,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:646,1
    - Dst: Rejistry::print
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:650,1
    - Dst: flags
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:652,1
    - Dst: width
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:653,1
    - Dst: fill
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:654,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - ' hive'
    argTypes:
    - RegistryHive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 655
    functionName: Rejistry::processRegistryHive
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 1
    functionsReached:
    - getDataSignature
    - auto::getMajorVersion
    - auto::get
    - getRelativeOffsetNextHBIN
    - Rejistry::recurseAll
    - auto::getHBINs
    - getHeader
    - Rejistry::print
    - flags
    - auto::isSynchronized
    - getLength
    - getRoot
    - auto::getHiveName
    - getRelativeOffsetFirstHBIN
    - what
    - std::string::c_str
    - auto::getRootNKRecord
    - auto::size
    - fill
    - width
    - auto::getRelativeOffsetFirstHBIN
    - getCells
    - auto::getMinorVersion
    - auto::getRelativeOffsetNextHBIN
    - auto::getLastHbinOffset
    - static_cast<uint32_t>
    - getData
    - isActive
    - auto::getFirstHBIN
    linkageType: ''
    returnType: void
    signature: void processRegistryHive(RegistryHive& hive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::processRegistryHive
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:661,1
    - Dst: what
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - regFilePath
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: Rejistry::processRegistryFile
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::processRegistryHive
    - what
    linkageType: ''
    returnType: void
    signature: void processRegistryFile(wchar_t * regFilePath)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 692
    functionName: sehCodeToString
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t * sehCodeToString(DWORD code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::processRegistryFile
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:696,1
    - Dst: GetExceptionCode
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:700,1
    - Dst: _resetstkoflw
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:704,1
    - Dst: sehCodeToString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:708,1
    - Dst: sehCodeToString
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - regFilePath
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 714
    functionName: sehRunProcessRegistryFile
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - sehCodeToString
    - GetExceptionCode
    - Rejistry::processRegistryFile
    - _resetstkoflw
    linkageType: ''
    returnType: int
    signature: int sehRunProcessRegistryFile(wchar_t* regFilePath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:720,1
    - Dst: _wfreopen
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:726,1
    - Dst: exit
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:728,1
    - Dst: _setmode
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:730,1
    - Dst: _fileno
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:730,1
    - Dst: _setmode
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:734,1
    - Dst: _fileno
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:734,1
    - Dst: std::chrono::high_resolution_clock::now
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:737,1
    - Dst: sehRunProcessRegistryFile
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:739,1
    - Dst: std::chrono::high_resolution_clock::now
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:741,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/sleuthkit/rejistry++/src/Rejistry.cpp:742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - wchar_t*[]
    - wchar_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 750
    functionName: wmain
    functionSourceFile: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    functionUses: 0
    functionsReached:
    - sehRunProcessRegistryFile
    - _setmode
    - exit
    - std::chrono::high_resolution_clock::now
    - _fileno
    - std::chrono::duration_cast<std::chrono::seconds>
    - _wfreopen
    linkageType: ''
    returnType: int
    signature: int wmain(int argc, wchar_t *argv[], wchar_t *envp[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Rejistry::Cell::Cell
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cell(RegistryByteBuffer * buf, const uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~Cell()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Rejistry::Cell::Cell
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Rejistry::Cell::Cell
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cell(RegistryByteBuffer * buf, const uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~Cell()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Rejistry::Cell::Cell
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cell()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - offset
    - itemSize
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectSubkeyListRecord(RegistryByteBuffer * buf, uint32_t offset,
      uint32_t itemSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DirectSubkeyListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DirectSubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectSubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - offset
    - itemSize
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectSubkeyListRecord(RegistryByteBuffer * buf, uint32_t offset,
      uint32_t itemSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DirectSubkeyListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DirectSubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DirectSubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Rejistry::EmptySubkeyList::EmptySubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmptySubkeyList(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~EmptySubkeyList()
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EmptySubkeyList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::EmptySubkeyList::getListLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getListLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Rejistry::EmptySubkeyList::getMagic
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getMagic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NKRecord::NKRecordUniqPtrList
      Src: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Rejistry::EmptySubkeyList::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached:
    - NKRecord::NKRecordUniqPtrList
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList getSubkeys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Rejistry::EmptySubkeyList::EmptySubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmptySubkeyList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Rejistry::EmptySubkeyList::EmptySubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmptySubkeyList(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~EmptySubkeyList()
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EmptySubkeyList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::EmptySubkeyList::getListLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getListLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Rejistry::EmptySubkeyList::getMagic
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getMagic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NKRecord::NKRecordUniqPtrList
      Src: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Rejistry::EmptySubkeyList::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached:
    - NKRecord::NKRecordUniqPtrList
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList getSubkeys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Rejistry::EmptySubkeyList::EmptySubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmptySubkeyList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~HBIN()
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~HBIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Rejistry::HBIN::HBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HBIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~HBIN()
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~HBIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Rejistry::HBIN::HBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HBIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vk
    argTypes:
    - std::unique_ptr<VKRecord>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::RegistryValue::RegistryValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RegistryValue(std::unique_ptr<VKRecord> vk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vk
    argTypes:
    - std::unique_ptr<VKRecord>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::RegistryValue::RegistryValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RegistryValue(std::unique_ptr<VKRecord> vk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:40,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Rejistry::DBRecord::DBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void DBRecord::DBRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:46,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:49,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:50,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:51,1
    - Dst: auto::getDBIndirectRecord
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:54,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - length
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Rejistry::DBRecord::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::getData
    - RegistryParseException
    - getDWord
    - std::make_unique< Cell >
    - auto::getDBIndirectRecord
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray DBRecord::getData(uint32_t length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:40,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Rejistry::DBRecord::DBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void DBRecord::DBRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:46,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:49,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:50,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:51,1
    - Dst: auto::getDBIndirectRecord
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:54,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/DBRecord.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - length
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Rejistry::DBRecord::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::getData
    - RegistryParseException
    - getDWord
    - std::make_unique< Cell >
    - auto::getDBIndirectRecord
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray DBRecord::getData(uint32_t length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:40,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Rejistry::Cell::getLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Cell::getLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Rejistry::Cell::isActive
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool Cell::isActive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::Cell::getLength
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:52,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:54,1
    - Dst: Rejistry::Cell::getData
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:56,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: Rejistry::Cell::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getAbsoluteOffset
    - Rejistry::Cell::getData
    - RegistryParseException
    - Rejistry::Cell::getLength
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cell::getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getASCIIString
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Rejistry::Cell::getDataSignature
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string Cell::getDataSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Rejistry::Cell::getDataQword
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Cell::getDataQword() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:68,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Rejistry::Cell::getNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> Cell::getNKRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VKRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:72,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Rejistry::Cell::getVKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<VKRecord>
    linkageType: ''
    returnType: std::unique_ptr<VKRecord>
    signature: std::unique_ptr<VKRecord> Cell::getVKRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LFRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:76,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Rejistry::Cell::getLFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<LFRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLFRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LHRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:80,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Rejistry::Cell::getLHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<LHRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLHRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:84,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Rejistry::Cell::getRIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<RIRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getRIRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LIRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:88,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Rejistry::Cell::getLIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<LIRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLIRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DBRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:92,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: Rejistry::Cell::getDBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DBRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: DBRecord::DBRecordPtr
    signature: DBRecord::DBRecordPtr Cell::getDBRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DBIndirectRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:96,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Rejistry::Cell::getDBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DBIndirectRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: DBIndirectRecord::DBIndirectRecordPtr
    signature: DBIndirectRecord::DBIndirectRecordPtr Cell::getDBIndirectRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ValueListRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:100,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numValues
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: Rejistry::Cell::getValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<ValueListRecord>
    linkageType: ''
    returnType: ValueListRecord::ValueListRecordPtr
    signature: ValueListRecord::ValueListRecordPtr Cell::getValueListRecord(const
      uint32_t numValues) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::Cell::getDataSignature
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:104,1
    - Dst: Rejistry::Cell::getLFRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:107,1
    - Dst: Rejistry::Cell::getLHRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:110,1
    - Dst: Rejistry::Cell::getRIRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:113,1
    - Dst: Rejistry::Cell::getLIRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:116,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: Rejistry::Cell::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::Cell::getLFRecord
    - Rejistry::Cell::getLHRecord
    - Rejistry::Cell::getRIRecord
    - Rejistry::Cell::getLIRecord
    - RegistryParseException
    - Rejistry::Cell::getDataSignature
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getSubkeyList() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:40,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Rejistry::Cell::getLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Cell::getLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Rejistry::Cell::isActive
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool Cell::isActive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::Cell::getLength
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:52,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:54,1
    - Dst: Rejistry::Cell::getData
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:56,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: Rejistry::Cell::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 2
    functionsReached:
    - getAbsoluteOffset
    - Rejistry::Cell::getData
    - RegistryParseException
    - Rejistry::Cell::getLength
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cell::getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getASCIIString
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Rejistry::Cell::getDataSignature
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string Cell::getDataSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Rejistry::Cell::getDataQword
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Cell::getDataQword() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:68,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Rejistry::Cell::getNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> Cell::getNKRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VKRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:72,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Rejistry::Cell::getVKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<VKRecord>
    linkageType: ''
    returnType: std::unique_ptr<VKRecord>
    signature: std::unique_ptr<VKRecord> Cell::getVKRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LFRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:76,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Rejistry::Cell::getLFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<LFRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLFRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LHRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:80,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Rejistry::Cell::getLHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<LHRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLHRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:84,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Rejistry::Cell::getRIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<RIRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getRIRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LIRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:88,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Rejistry::Cell::getLIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 1
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<LIRecord>
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getLIRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DBRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:92,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: Rejistry::Cell::getDBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DBRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: DBRecord::DBRecordPtr
    signature: DBRecord::DBRecordPtr Cell::getDBRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DBIndirectRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:96,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Rejistry::Cell::getDBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DBIndirectRecord>
    - getAbsoluteOffset
    linkageType: ''
    returnType: DBIndirectRecord::DBIndirectRecordPtr
    signature: DBIndirectRecord::DBIndirectRecordPtr Cell::getDBIndirectRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ValueListRecord>
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:100,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numValues
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: Rejistry::Cell::getValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<ValueListRecord>
    linkageType: ''
    returnType: ValueListRecord::ValueListRecordPtr
    signature: ValueListRecord::ValueListRecordPtr Cell::getValueListRecord(const
      uint32_t numValues) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::Cell::getDataSignature
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:104,1
    - Dst: Rejistry::Cell::getLFRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:107,1
    - Dst: Rejistry::Cell::getLHRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:110,1
    - Dst: Rejistry::Cell::getRIRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:113,1
    - Dst: Rejistry::Cell::getLIRecord
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:116,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Cell.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: Rejistry::Cell::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/Cell.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::Cell::getLFRecord
    - Rejistry::Cell::getLHRecord
    - Rejistry::Cell::getRIRecord
    - Rejistry::Cell::getLIRecord
    - RegistryParseException
    - Rejistry::Cell::getDataSignature
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr Cell::getSubkeyList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~Record()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record(const Record &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator=(const Record &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Record
    signature: Record & operator=(const Record &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~Record()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Rejistry::Record::Record
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record(const Record &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator=(const Record &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Record
    signature: Record & operator=(const Record &)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:39,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: Rejistry::ValueData::getAsString
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    - IllegalArgumentException
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ValueData::getAsString() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:50,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:50,1
    - Dst: getStringList
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:53,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: Rejistry::ValueData::getAsStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    - IllegalArgumentException
    - getStringList
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> ValueData::getAsStringList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::ValueData::getAsRawData
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray ValueData::getAsRawData() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:69,1
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:72,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:75,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: Rejistry::ValueData::getAsNumber
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - IllegalArgumentException
    - getDWord
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ValueData::getAsNumber() const
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - type
    argTypes:
    - ValueData::VALUE_TYPES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: Rejistry::ValueData::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ValueData::getValueType(ValueData::VALUE_TYPES type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:39,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: Rejistry::ValueData::getAsString
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    - IllegalArgumentException
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ValueData::getAsString() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:50,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:50,1
    - Dst: getStringList
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:53,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: Rejistry::ValueData::getAsStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    - IllegalArgumentException
    - getStringList
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> ValueData::getAsStringList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::ValueData::getAsRawData
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray ValueData::getAsRawData() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:69,1
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:72,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:75,1
    - Dst: IllegalArgumentException
      Src: /src/sleuthkit/rejistry++/src/ValueData.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: Rejistry::ValueData::getAsNumber
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 0
    functionsReached:
    - IllegalArgumentException
    - getDWord
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ValueData::getAsNumber() const
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - type
    argTypes:
    - ValueData::VALUE_TYPES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: Rejistry::ValueData::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ValueData::getValueType(ValueData::VALUE_TYPES type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~LIRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LIRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::LIRecord::LIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LIRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~LIRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LIRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Rejistry::LIRecord::LIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LIRecord()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:42,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Rejistry::VKRecord::VKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void VKRecord::VKRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sourceRecord'
    argTypes:
    - VKRecord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: Rejistry::VKRecord::VKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VKRecord::VKRecord(const VKRecord& sourceRecord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::VKRecord::hasName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool VKRecord::hasName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Rejistry::VKRecord::hasAsciiName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool VKRecord::hasAsciiName() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::hasName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:59,1
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:63,1
    - Dst: Rejistry::VKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:64,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:67,1
    - Dst: Rejistry::VKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:70,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:73,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: Rejistry::VKRecord::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - Rejistry::VKRecord::hasName
    - std::vector::begin
    - getWord
    - getUTF16String
    - Rejistry::VKRecord::hasAsciiName
    - RegistryParseException
    - std::vector::end
    - getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring VKRecord::getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Rejistry::VKRecord::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: ValueData::VALUE_TYPES
    signature: ValueData::VALUE_TYPES VKRecord::getValueType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: Rejistry::VKRecord::getDataLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getDataLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Rejistry::VKRecord::getRawDataLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getRawDataLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:97,1
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:97,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: Rejistry::VKRecord::getDataOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - Rejistry::VKRecord::getRawDataLength
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getDataOffset() const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:106,1
    - Dst: Rejistry::VKRecord::getDataOffset
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:107,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:110,1
    - Dst: Rejistry::VKRecord::getValueType
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:115,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:131,1
    - Dst: auto::getDBRecord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:133,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:141,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: Rejistry::VKRecord::getDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:152,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:156,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:157,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:157,1
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:160,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:161,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:163,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:164,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:170,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:170,1
    - Dst: std::make_unique<ValueData>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    - Dst: Rejistry::VKRecord::getValueType
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 174
    functionName: Rejistry::VKRecord::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Cell>
    - ByteBuffer::ByteArray::size
    - std::min
    - std::make_unique<ValueData>
    - std::move
    - Rejistry::VKRecord::getValueType
    - getData
    - auto::getData
    - Rejistry::VKRecord::getDataOffset
    - Rejistry::VKRecord::getRawDataLength
    - RegistryParseException
    - auto::getDBRecord
    - static_cast<uint32_t>
    - Rejistry::VKRecord::getDataLength
    - std::make_unique<RegistryByteBuffer>
    - std::make_unique< Cell >
    - std::make_unique<ByteBuffer>
    linkageType: ''
    returnType: ValueData::ValueDataUniqPtr
    signature: ValueData::ValueDataUniqPtr VKRecord::getValue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:42,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Rejistry::VKRecord::VKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void VKRecord::VKRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sourceRecord'
    argTypes:
    - VKRecord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: Rejistry::VKRecord::VKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VKRecord::VKRecord(const VKRecord& sourceRecord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::VKRecord::hasName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 1
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool VKRecord::hasName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Rejistry::VKRecord::hasAsciiName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 1
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool VKRecord::hasAsciiName() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::hasName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:59,1
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:63,1
    - Dst: Rejistry::VKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:64,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:67,1
    - Dst: Rejistry::VKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:70,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:73,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:74,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: Rejistry::VKRecord::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - Rejistry::VKRecord::hasName
    - std::vector::begin
    - getWord
    - getUTF16String
    - Rejistry::VKRecord::hasAsciiName
    - RegistryParseException
    - std::vector::end
    - getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring VKRecord::getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Rejistry::VKRecord::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: ValueData::VALUE_TYPES
    signature: ValueData::VALUE_TYPES VKRecord::getValueType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: Rejistry::VKRecord::getDataLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getDataLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Rejistry::VKRecord::getRawDataLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 2
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getRawDataLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:97,1
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:97,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: Rejistry::VKRecord::getDataOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    - Rejistry::VKRecord::getRawDataLength
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VKRecord::getDataOffset() const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::VKRecord::getRawDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:106,1
    - Dst: Rejistry::VKRecord::getDataOffset
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:107,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:110,1
    - Dst: Rejistry::VKRecord::getValueType
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:115,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:128,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:131,1
    - Dst: auto::getDBRecord
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:133,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:134,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:137,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:141,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:142,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:147,1
    - Dst: Rejistry::VKRecord::getDataLength
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:152,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:156,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:157,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:157,1
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:160,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:161,1
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:162,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:163,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:164,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:170,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:170,1
    - Dst: std::make_unique<ValueData>
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    - Dst: Rejistry::VKRecord::getValueType
      Src: /src/sleuthkit/rejistry++/src/VKRecord.cpp:173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 174
    functionName: Rejistry::VKRecord::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Cell>
    - ByteBuffer::ByteArray::size
    - std::min
    - std::make_unique<ValueData>
    - std::move
    - Rejistry::VKRecord::getValueType
    - getData
    - auto::getData
    - Rejistry::VKRecord::getDataOffset
    - Rejistry::VKRecord::getRawDataLength
    - RegistryParseException
    - auto::getDBRecord
    - static_cast<uint32_t>
    - Rejistry::VKRecord::getDataLength
    - std::make_unique<RegistryByteBuffer>
    - std::make_unique< Cell >
    - std::make_unique<ByteBuffer>
    linkageType: ''
    returnType: ValueData::ValueDataUniqPtr
    signature: ValueData::ValueDataUniqPtr VKRecord::getValue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Buffer.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - newLimit
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: '&  Buffer::limit(const uint32_t newLimit)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    linkageType: ''
    returnType: Buffer
    signature: Buffer &  Buffer::limit(const uint32_t newLimit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Buffer.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - newPosition
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: '& Buffer::position(const uint32_t newPosition)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    linkageType: ''
    returnType: Buffer
    signature: Buffer & Buffer::position(const uint32_t newPosition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::Buffer(const uint32_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' buffer'
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::Buffer(const Buffer& buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Buffer::~Buffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::~Buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Buffer.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - newLimit
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: '&  Buffer::limit(const uint32_t newLimit)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    linkageType: ''
    returnType: Buffer
    signature: Buffer &  Buffer::limit(const uint32_t newLimit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/Buffer.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - newPosition
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: '& Buffer::position(const uint32_t newPosition)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    linkageType: ''
    returnType: Buffer
    signature: Buffer & Buffer::position(const uint32_t newPosition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::Buffer(const uint32_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' buffer'
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::Buffer(const Buffer& buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Buffer::~Buffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer::~Buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rk'
    argTypes:
    - RegistryKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::RegistryKey::RegistryKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: void
    signature: void RegistryKey::RegistryKey(const RegistryKey& rk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rk'
    argTypes:
    - RegistryKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: '& RegistryKey::operator=(const RegistryKey & rk)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: RegistryKey
    signature: RegistryKey & RegistryKey::operator=(const RegistryKey & rk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: RegistryKey::~RegistryKey()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryKey::~RegistryKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Rejistry::RegistryKey::getTimestamp
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryKey::getTimestamp
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t RegistryKey::getTimestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getName
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Rejistry::RegistryKey::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryKey::getName
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryKey::getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:57,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:58,1
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:61,1
    - Dst: getParentRecord
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Rejistry::RegistryKey::getParent
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - NoSuchElementException
    - std::make_unique<RegistryKey>
    - getParentRecord
    - hasParentRecord
    linkageType: ''
    returnType: std::unique_ptr<RegistryKey>
    signature: std::unique_ptr<RegistryKey> RegistryKey::getParent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Rejistry::RegistryKey::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryKey::getSubkeyList
    - std::vector::push_back
    linkageType: ''
    returnType: RegistryKey::RegistryKeyPtrList
    signature: RegistryKey::RegistryKeyPtrList RegistryKey::getSubkeyList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Rejistry::RegistryKey::getSubkeyListSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - getSubkeyCount
    linkageType: ''
    returnType: size_t
    signature: size_t RegistryKey::getSubkeyListSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:78,1
    - Dst: Rejistry::RegistryKey::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Rejistry::RegistryKey::getSubkey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryKey::getSubkeyList
    linkageType: ''
    returnType: RegistryKey::RegistryKeyUniqPtr
    signature: RegistryKey::RegistryKeyUniqPtr RegistryKey::getSubkey(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:84,1
    - Dst: RegistryValue::RegistryValuePtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    - Dst: std::make_unique<RegistryValue>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: Rejistry::RegistryKey::getValueList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 1
    functionsReached:
    - RegistryValue::RegistryValuePtrList::push_back
    - std::make_unique<RegistryValue>
    - std::move
    - Rejistry::RegistryKey::getValueList
    linkageType: ''
    returnType: RegistryValue::RegistryValuePtrList
    signature: RegistryValue::RegistryValuePtrList RegistryKey::getValueList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:92,1
    - Dst: auto::getValuesSize
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Rejistry::RegistryKey::getValueListSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - auto::getValuesSize
    - Rejistry::RegistryKey::getValueList
    linkageType: ''
    returnType: size_t
    signature: size_t RegistryKey::getValueListSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryValue>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:97,1
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Rejistry::RegistryKey::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::RegistryKey::getValueList
    - std::make_unique<RegistryValue>
    linkageType: ''
    returnType: RegistryValue::RegistryValueUniqPtr
    signature: RegistryValue::RegistryValueUniqPtr RegistryKey::getValue(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rk'
    argTypes:
    - RegistryKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::RegistryKey::RegistryKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: void
    signature: void RegistryKey::RegistryKey(const RegistryKey& rk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rk'
    argTypes:
    - RegistryKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: '& RegistryKey::operator=(const RegistryKey & rk)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<NKRecord>
    linkageType: ''
    returnType: RegistryKey
    signature: RegistryKey & RegistryKey::operator=(const RegistryKey & rk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: RegistryKey::~RegistryKey()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryKey::~RegistryKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getTimestamp
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Rejistry::RegistryKey::getTimestamp
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryKey::getTimestamp
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t RegistryKey::getTimestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getName
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Rejistry::RegistryKey::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryKey::getName
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryKey::getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasParentRecord
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:57,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:58,1
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:61,1
    - Dst: getParentRecord
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Rejistry::RegistryKey::getParent
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - NoSuchElementException
    - std::make_unique<RegistryKey>
    - getParentRecord
    - hasParentRecord
    linkageType: ''
    returnType: std::unique_ptr<RegistryKey>
    signature: std::unique_ptr<RegistryKey> RegistryKey::getParent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Rejistry::RegistryKey::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryKey::getSubkeyList
    - std::vector::push_back
    linkageType: ''
    returnType: RegistryKey::RegistryKeyPtrList
    signature: RegistryKey::RegistryKeyPtrList RegistryKey::getSubkeyList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Rejistry::RegistryKey::getSubkeyListSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - getSubkeyCount
    linkageType: ''
    returnType: size_t
    signature: size_t RegistryKey::getSubkeyListSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:78,1
    - Dst: Rejistry::RegistryKey::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Rejistry::RegistryKey::getSubkey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryKey::getSubkeyList
    linkageType: ''
    returnType: RegistryKey::RegistryKeyUniqPtr
    signature: RegistryKey::RegistryKeyUniqPtr RegistryKey::getSubkey(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:84,1
    - Dst: RegistryValue::RegistryValuePtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    - Dst: std::make_unique<RegistryValue>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: Rejistry::RegistryKey::getValueList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 4
    functionsReached:
    - RegistryValue::RegistryValuePtrList::push_back
    - std::make_unique<RegistryValue>
    - std::move
    - Rejistry::RegistryKey::getValueList
    linkageType: ''
    returnType: RegistryValue::RegistryValuePtrList
    signature: RegistryValue::RegistryValuePtrList RegistryKey::getValueList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:92,1
    - Dst: auto::getValuesSize
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Rejistry::RegistryKey::getValueListSize
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - auto::getValuesSize
    - Rejistry::RegistryKey::getValueList
    linkageType: ''
    returnType: size_t
    signature: size_t RegistryKey::getValueListSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryValue>
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:97,1
    - Dst: Rejistry::RegistryKey::getValueList
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Rejistry::RegistryKey::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::RegistryKey::getValueList
    - std::make_unique<RegistryValue>
    linkageType: ''
    returnType: RegistryValue::RegistryValueUniqPtr
    signature: RegistryValue::RegistryValueUniqPtr RegistryKey::getValue(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Rejistry::SubkeyListRecord::SubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubkeyListRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~SubkeyListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Rejistry::SubkeyListRecord::SubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubkeyListRecord(const SubkeyListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: '& operator=(const SubkeyListRecord &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubkeyListRecord
    signature: SubkeyListRecord & operator=(const SubkeyListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Rejistry::SubkeyListRecord::SubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubkeyListRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~SubkeyListRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SubkeyListRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Rejistry::SubkeyListRecord::SubkeyListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubkeyListRecord(const SubkeyListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: '& operator=(const SubkeyListRecord &)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubkeyListRecord
    signature: SubkeyListRecord & operator=(const SubkeyListRecord &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: '& RejistryException::message() const'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & RejistryException::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Rejistry::RejistryException::message
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::message(const std::string &msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: Rejistry::RejistryException::code
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RejistryException::code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CLS
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: REJISTRY_DECLARE_EXCEPTION
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REJISTRY_DECLARE_EXCEPTION(CLS, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLS
    - ','
    - BASE
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: REJISTRY_IMPLEMENT_EXCEPTION
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REJISTRY_IMPLEMENT_EXCEPTION(CLS, BASE, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: '& RejistryException::message() const'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & RejistryException::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Rejistry::RejistryException::message
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::message(const std::string &msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: Rejistry::RejistryException::code
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RejistryException::code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CLS
    - ','
    - BASE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: REJISTRY_DECLARE_EXCEPTION
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REJISTRY_DECLARE_EXCEPTION(CLS, BASE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLS
    - ','
    - BASE
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: REJISTRY_IMPLEMENT_EXCEPTION
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REJISTRY_IMPLEMENT_EXCEPTION(CLS, BASE, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nk
    argTypes:
    - std::unique_ptr<NKRecord>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Rejistry::RegistryKey::RegistryKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RegistryKey(std::unique_ptr<NKRecord> nk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryKey.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nk
    argTypes:
    - std::unique_ptr<NKRecord>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Rejistry::RegistryKey::RegistryKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryKey.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RegistryKey(std::unique_ptr<NKRecord> nk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~NKRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NKRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NKRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: ~NKRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NKRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NKRecord()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:48,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::unique_ptr<ByteBuffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Rejistry::RegistryByteBuffer::RegistryByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void RegistryByteBuffer::RegistryByteBuffer(std::unique_ptr<ByteBuffer>
      buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RegistryByteBuffer::~RegistryByteBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryByteBuffer::~RegistryByteBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getShort
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Rejistry::RegistryByteBuffer::getWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getShort
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t RegistryByteBuffer::getWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getInt
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Rejistry::RegistryByteBuffer::getDWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getInt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RegistryByteBuffer::getDWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLong
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Rejistry::RegistryByteBuffer::getQWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getLong
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t RegistryByteBuffer::getQWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getASCIIString
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:81,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Rejistry::RegistryByteBuffer::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryByteBuffer::getASCIIString
    - limit
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryByteBuffer::getASCIIString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:96,1
    - Dst: std::string
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    - Dst: ByteBuffer::ByteArray::begin
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    - Dst: ByteBuffer::ByteArray::end
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Rejistry::RegistryByteBuffer::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - ByteBuffer::ByteArray::end
    - std::string
    - Rejistry::RegistryByteBuffer::getData
    - ByteBuffer::ByteArray::begin
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryByteBuffer::getASCIIString(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getUTF16String
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:102,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Rejistry::RegistryByteBuffer::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryByteBuffer::getUTF16String
    - limit
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryByteBuffer::getUTF16String() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:117,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:120,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:121,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:125,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:129,1
    - Dst: tsk_cleanupUTF16
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:132,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: Rejistry::RegistryByteBuffer::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - tsk_cleanupUTF16
    - ByteBuffer::ByteArray::size
    - std::wstring
    - ByteBuffer::ByteArray::push_back
    - Rejistry::RegistryByteBuffer::getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryByteBuffer::getUTF16String(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:138,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Rejistry::RegistryByteBuffer::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 3
    functionsReached:
    - limit
    - Rejistry::RegistryByteBuffer::getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray RegistryByteBuffer::getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:148,1
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:149,1
    - Dst: ByteBuffer::ByteArray::resize
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:151,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:152,1
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Rejistry::RegistryByteBuffer::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 3
    functionsReached:
    - get
    - ByteBuffer::ByteArray::resize
    - position
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray RegistryByteBuffer::getData(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getStringList
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:158,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Rejistry::RegistryByteBuffer::getStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - limit
    - Rejistry::RegistryByteBuffer::getStringList
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> RegistryByteBuffer::getStringList() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:169,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:174,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:176,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:176,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:178,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:188,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:189,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:192,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:196,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:198,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 202
    functionName: Rejistry::RegistryByteBuffer::getStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 1
    functionsReached:
    - std::wstring
    - ByteBuffer::ByteArray::size
    - ByteBuffer::ByteArray::push_back
    - Rejistry::RegistryByteBuffer::getData
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> RegistryByteBuffer::getStringList(const uint32_t
      offset, const uint32_t length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:48,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::unique_ptr<ByteBuffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Rejistry::RegistryByteBuffer::RegistryByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void RegistryByteBuffer::RegistryByteBuffer(std::unique_ptr<ByteBuffer>
      buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RegistryByteBuffer::~RegistryByteBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryByteBuffer::~RegistryByteBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getShort
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Rejistry::RegistryByteBuffer::getWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getShort
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t RegistryByteBuffer::getWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getInt
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Rejistry::RegistryByteBuffer::getDWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getInt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RegistryByteBuffer::getDWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLong
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Rejistry::RegistryByteBuffer::getQWord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - getLong
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t RegistryByteBuffer::getQWord(const uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getASCIIString
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:81,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Rejistry::RegistryByteBuffer::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryByteBuffer::getASCIIString
    - limit
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryByteBuffer::getASCIIString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:96,1
    - Dst: std::string
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    - Dst: ByteBuffer::ByteArray::begin
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    - Dst: ByteBuffer::ByteArray::end
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Rejistry::RegistryByteBuffer::getASCIIString
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - ByteBuffer::ByteArray::end
    - std::string
    - Rejistry::RegistryByteBuffer::getData
    - ByteBuffer::ByteArray::begin
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryByteBuffer::getASCIIString(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getUTF16String
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:102,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Rejistry::RegistryByteBuffer::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryByteBuffer::getUTF16String
    - limit
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryByteBuffer::getUTF16String() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:117,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:120,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:121,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:125,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:129,1
    - Dst: tsk_cleanupUTF16
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:132,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: Rejistry::RegistryByteBuffer::getUTF16String
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - tsk_cleanupUTF16
    - ByteBuffer::ByteArray::size
    - std::wstring
    - ByteBuffer::ByteArray::push_back
    - Rejistry::RegistryByteBuffer::getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryByteBuffer::getUTF16String(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:138,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Rejistry::RegistryByteBuffer::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 7
    functionsReached:
    - limit
    - Rejistry::RegistryByteBuffer::getData
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray RegistryByteBuffer::getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:148,1
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:149,1
    - Dst: ByteBuffer::ByteArray::resize
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:151,1
    - Dst: get
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:152,1
    - Dst: position
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Rejistry::RegistryByteBuffer::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 7
    functionsReached:
    - get
    - ByteBuffer::ByteArray::resize
    - position
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray RegistryByteBuffer::getData(const uint32_t offset,
      const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getStringList
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:158,1
    - Dst: limit
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Rejistry::RegistryByteBuffer::getStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - limit
    - Rejistry::RegistryByteBuffer::getStringList
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> RegistryByteBuffer::getStringList() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryByteBuffer::getData
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:169,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:174,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:176,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:176,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:178,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:188,1
    - Dst: ByteBuffer::ByteArray::size
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:189,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:192,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:196,1
    - Dst: ByteBuffer::ByteArray::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:198,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - offset
    - length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 202
    functionName: Rejistry::RegistryByteBuffer::getStringList
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - std::wstring
    - ByteBuffer::ByteArray::size
    - ByteBuffer::ByteArray::push_back
    - Rejistry::RegistryByteBuffer::getData
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> RegistryByteBuffer::getStringList(const uint32_t
      offset, const uint32_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rv'
    argTypes:
    - RegistryValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Rejistry::RegistryValue::RegistryValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<VKRecord>
    linkageType: ''
    returnType: void
    signature: void RegistryValue::RegistryValue(const RegistryValue& rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: RegistryValue::~RegistryValue()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryValue::~RegistryValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getName
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Rejistry::RegistryValue::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryValue::getName
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryValue::getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getValueType
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Rejistry::RegistryValue::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryValue::getValueType
    linkageType: ''
    returnType: ValueData::VALUE_TYPES
    signature: ValueData::VALUE_TYPES RegistryValue::getValueType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getValue
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Rejistry::RegistryValue::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RegistryValue::getValue
    linkageType: ''
    returnType: ValueData::ValueDataUniqPtr
    signature: ValueData::ValueDataUniqPtr RegistryValue::getValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDataLength
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Rejistry::RegistryValue::getValueLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached:
    - getDataLength
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RegistryValue::getValueLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<VKRecord>
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rv'
    argTypes:
    - RegistryValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Rejistry::RegistryValue::RegistryValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<VKRecord>
    linkageType: ''
    returnType: void
    signature: void RegistryValue::RegistryValue(const RegistryValue& rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: RegistryValue::~RegistryValue()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryValue::~RegistryValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getName
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Rejistry::RegistryValue::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryValue::getName
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegistryValue::getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getValueType
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Rejistry::RegistryValue::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryValue::getValueType
    linkageType: ''
    returnType: ValueData::VALUE_TYPES
    signature: ValueData::VALUE_TYPES RegistryValue::getValueType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue::getValue
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Rejistry::RegistryValue::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RegistryValue::getValue
    linkageType: ''
    returnType: ValueData::ValueDataUniqPtr
    signature: ValueData::ValueDataUniqPtr RegistryValue::getValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDataLength
      Src: /src/sleuthkit/rejistry++/src/RegistryValue.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Rejistry::RegistryValue::getValueLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
    functionUses: 0
    functionsReached:
    - getDataLength
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RegistryValue::getValueLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~VKRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VKRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~VKRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/VKRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VKRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:39,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryByteBuffer>
    - std::make_unique<ByteBuffer>
    linkageType: ''
    returnType: void
    signature: void RegistryHiveBuffer::RegistryHiveBuffer(const uint8_t * buffer,
      const uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: RegistryHiveBuffer::~RegistryHiveBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHiveBuffer::~RegistryHiveBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:46,1
    - Dst: Rejistry::RegistryHiveBuffer::getHeader
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Rejistry::RegistryHiveBuffer::getRoot
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryHiveBuffer::getHeader
    linkageType: ''
    returnType: std::unique_ptr <RegistryKey>
    signature: std::unique_ptr <RegistryKey> RegistryHiveBuffer::getRoot() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique< REGFHeader >
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Rejistry::RegistryHiveBuffer::getHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique< REGFHeader >
    linkageType: ''
    returnType: std::unique_ptr<REGFHeader>
    signature: std::unique_ptr<REGFHeader> RegistryHiveBuffer::getHeader() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:39,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryByteBuffer>
    - std::make_unique<ByteBuffer>
    linkageType: ''
    returnType: void
    signature: void RegistryHiveBuffer::RegistryHiveBuffer(const uint8_t * buffer,
      const uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: RegistryHiveBuffer::~RegistryHiveBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHiveBuffer::~RegistryHiveBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:46,1
    - Dst: Rejistry::RegistryHiveBuffer::getHeader
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Rejistry::RegistryHiveBuffer::getRoot
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RegistryKey>
    - Rejistry::RegistryHiveBuffer::getHeader
    linkageType: ''
    returnType: std::unique_ptr <RegistryKey>
    signature: std::unique_ptr <RegistryKey> RegistryHiveBuffer::getRoot() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique< REGFHeader >
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Rejistry::RegistryHiveBuffer::getHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique< REGFHeader >
    linkageType: ''
    returnType: std::unique_ptr<REGFHeader>
    signature: std::unique_ptr<REGFHeader> RegistryHiveBuffer::getHeader() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:42,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void NKRecord::NKRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sourceRecord'
    argTypes:
    - NKRecord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NKRecord::NKRecord(const NKRecord& sourceRecord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::NKRecord::hasClassname
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasClassname() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::hasClassname
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:55,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:59,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:61,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:64,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:65,1
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:67,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:68,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:69,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    - Dst: reinterpret_cast<const wchar_t*>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    - Dst: std::vector::data
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: Rejistry::NKRecord::getClassName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - getWord
    - Rejistry::NKRecord::hasClassname
    - reinterpret_cast<const wchar_t*>
    - std::vector::data
    - auto::getData
    - RegistryParseException
    - std::vector::size
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring NKRecord::getClassName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Rejistry::NKRecord::getTimestamp
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t NKRecord::getTimestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Rejistry::NKRecord::isRootKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::isRootKey() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Rejistry::NKRecord::hasAsciiName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasAsciiName() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:90,1
    - Dst: Rejistry::NKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:91,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:94,1
    - Dst: Rejistry::NKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:97,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:98,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: Rejistry::NKRecord::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - std::vector::begin
    - getWord
    - getUTF16String
    - Rejistry::NKRecord::hasAsciiName
    - RegistryParseException
    - std::vector::end
    - getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring NKRecord::getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::isRootKey
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: Rejistry::NKRecord::hasParentRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::NKRecord::isRootKey
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasParentRecord() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:120,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:122,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:125,1
    - Dst: auto::getNKRecord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: Rejistry::NKRecord::getParentRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    - std::make_unique< Cell >
    - auto::getNKRecord
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> NKRecord::getParentRecord() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: Rejistry::NKRecord::getNumberOfValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t NKRecord::getNumberOfValues() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: Rejistry::NKRecord::getSubkeyCount
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t NKRecord::getSubkeyCount() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:146,1
    - Dst: std::make_unique<EmptySubkeyList>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:147,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:150,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:153,1
    - Dst: auto::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: Rejistry::NKRecord::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EmptySubkeyList>
    - Rejistry::NKRecord::getSubkeyCount
    - auto::getSubkeyList
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr NKRecord::getSubkeyList() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:159,1
    - Dst: std::make_unique<ValueListRecord>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:160,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:163,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:166,1
    - Dst: auto::getValueListRecord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:167,1
    - Dst: Rejistry::NKRecord::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: Rejistry::NKRecord::getValueList
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::getValueListRecord
    - std::make_unique<ValueListRecord>
    - Rejistry::NKRecord::getNumberOfValues
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: ValueListRecord::ValueListRecordPtr
    signature: ValueListRecord::ValueListRecordPtr NKRecord::getValueList() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:42,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void NKRecord::NKRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sourceRecord'
    argTypes:
    - NKRecord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: Rejistry::NKRecord::NKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NKRecord::NKRecord(const NKRecord& sourceRecord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::NKRecord::hasClassname
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasClassname() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::hasClassname
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:55,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:59,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:61,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:64,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:65,1
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:67,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:68,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:69,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    - Dst: reinterpret_cast<const wchar_t*>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    - Dst: std::vector::data
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: Rejistry::NKRecord::getClassName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - getWord
    - Rejistry::NKRecord::hasClassname
    - reinterpret_cast<const wchar_t*>
    - std::vector::data
    - auto::getData
    - RegistryParseException
    - std::vector::size
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring NKRecord::getClassName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getQWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Rejistry::NKRecord::getTimestamp
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getQWord
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t NKRecord::getTimestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Rejistry::NKRecord::isRootKey
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 1
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::isRootKey() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Rejistry::NKRecord::hasAsciiName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 1
    functionsReached:
    - getWord
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasAsciiName() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:90,1
    - Dst: Rejistry::NKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:91,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:94,1
    - Dst: Rejistry::NKRecord::hasAsciiName
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:97,1
    - Dst: getData
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:98,1
    - Dst: std::wstring
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:99,1
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: Rejistry::NKRecord::getName
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - std::vector::begin
    - getWord
    - getUTF16String
    - Rejistry::NKRecord::hasAsciiName
    - RegistryParseException
    - std::vector::end
    - getData
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring NKRecord::getName() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::isRootKey
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: Rejistry::NKRecord::hasParentRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::NKRecord::isRootKey
    linkageType: ''
    returnType: bool
    signature: bool NKRecord::hasParentRecord() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:120,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:122,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:125,1
    - Dst: auto::getNKRecord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: Rejistry::NKRecord::getParentRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    - std::make_unique< Cell >
    - auto::getNKRecord
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> NKRecord::getParentRecord() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: Rejistry::NKRecord::getNumberOfValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t NKRecord::getNumberOfValues() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: Rejistry::NKRecord::getSubkeyCount
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t NKRecord::getSubkeyCount() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::getSubkeyCount
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:146,1
    - Dst: std::make_unique<EmptySubkeyList>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:147,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:150,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:153,1
    - Dst: auto::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: Rejistry::NKRecord::getSubkeyList
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EmptySubkeyList>
    - Rejistry::NKRecord::getSubkeyCount
    - auto::getSubkeyList
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtr
    signature: SubkeyListRecord::SubkeyListRecordPtr NKRecord::getSubkeyList() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::NKRecord::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:159,1
    - Dst: std::make_unique<ValueListRecord>
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:160,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:163,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:166,1
    - Dst: auto::getValueListRecord
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:167,1
    - Dst: Rejistry::NKRecord::getNumberOfValues
      Src: /src/sleuthkit/rejistry++/src/NKRecord.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: Rejistry::NKRecord::getValueList
    functionSourceFile: /src/sleuthkit/rejistry++/src/NKRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::getValueListRecord
    - std::make_unique<ValueListRecord>
    - Rejistry::NKRecord::getNumberOfValues
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: ValueListRecord::ValueListRecordPtr
    signature: ValueListRecord::ValueListRecordPtr NKRecord::getValueList() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Rejistry::DBIndirectRecord::DBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBIndirectRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DBIndirectRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DBIndirectRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Rejistry::DBIndirectRecord::DBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBIndirectRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Rejistry::DBIndirectRecord::DBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBIndirectRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DBIndirectRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DBIndirectRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Rejistry::DBIndirectRecord::DBIndirectRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBIndirectRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/ValueData.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - type
    argTypes:
    - std::unique_ptr<RegistryByteBuffer>
    - VALUE_TYPES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Rejistry::ValueData::ValueData
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ValueData(std::unique_ptr<RegistryByteBuffer> buf, const VALUE_TYPES
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ~ValueData()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ValueData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Rejistry::ValueData::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: VALUE_TYPES
    signature: VALUE_TYPES getValueType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/ValueData.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - type
    argTypes:
    - std::unique_ptr<RegistryByteBuffer>
    - VALUE_TYPES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Rejistry::ValueData::ValueData
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ValueData(std::unique_ptr<RegistryByteBuffer> buf, const VALUE_TYPES
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ~ValueData()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ValueData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Rejistry::ValueData::getValueType
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueData.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: VALUE_TYPES
    signature: VALUE_TYPES getValueType() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:39,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:41,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:41,1
    - Dst: GetFileSizeEx
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:45,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:46,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:47,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:51,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:52,1
    - Dst: CreateFileMapping
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:55,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:57,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:58,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:58,1
    - Dst: MapViewOfFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:61,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:64,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:65,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:66,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:66,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:69,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:69,1
    - Dst: UnmapViewOfFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:71,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:72,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - ' filePath'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: Rejistry::RegistryHiveFile::RegistryHiveFile
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached:
    - GetFileSizeEx
    - CreateFileMapping
    - CreateFile
    - std::make_unique<ByteBuffer>
    - RegistryParseException
    - UnmapViewOfFile
    - Rejistry::RegistryHiveFile::getErrorMessage
    - std::make_unique<RegistryByteBuffer>
    - MapViewOfFile
    - CloseHandle
    - c_str
    linkageType: ''
    returnType: void
    signature: void RegistryHiveFile::RegistryHiveFile(const std::wstring& filePath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: RegistryHiveFile::~RegistryHiveFile()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHiveFile::~RegistryHiveFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique <RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:80,1
    - Dst: Rejistry::RegistryHiveFile::getHeader
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Rejistry::RegistryHiveFile::getRoot
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique <RegistryKey>
    - Rejistry::RegistryHiveFile::getHeader
    linkageType: ''
    returnType: std::unique_ptr <RegistryKey>
    signature: std::unique_ptr <RegistryKey> RegistryHiveFile::getRoot() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<REGFHeader>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Rejistry::RegistryHiveFile::getHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<REGFHeader>
    linkageType: ''
    returnType: std::unique_ptr<REGFHeader>
    signature: std::unique_ptr<REGFHeader> RegistryHiveFile::getHeader() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:88,1
    - Dst: FormatMessageA
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:91,1
    - Dst: MAKELANGID
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:93,1
    - Dst: to_string
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:97,1
    - Dst: LocalFree
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: Rejistry::RegistryHiveFile::getErrorMessage
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 1
    functionsReached:
    - MAKELANGID
    - LocalFree
    - FormatMessageA
    - GetLastError
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryHiveFile::getErrorMessage() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:39,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:41,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:41,1
    - Dst: GetFileSizeEx
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:45,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:46,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:47,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:51,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:52,1
    - Dst: CreateFileMapping
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:55,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:57,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:58,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:58,1
    - Dst: MapViewOfFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:61,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:64,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:65,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:66,1
    - Dst: Rejistry::RegistryHiveFile::getErrorMessage
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:66,1
    - Dst: std::make_unique<RegistryByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:69,1
    - Dst: std::make_unique<ByteBuffer>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:69,1
    - Dst: UnmapViewOfFile
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:71,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:72,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - ' filePath'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: Rejistry::RegistryHiveFile::RegistryHiveFile
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached:
    - GetFileSizeEx
    - CreateFileMapping
    - CreateFile
    - std::make_unique<ByteBuffer>
    - RegistryParseException
    - UnmapViewOfFile
    - Rejistry::RegistryHiveFile::getErrorMessage
    - std::make_unique<RegistryByteBuffer>
    - MapViewOfFile
    - CloseHandle
    - c_str
    linkageType: ''
    returnType: void
    signature: void RegistryHiveFile::RegistryHiveFile(const std::wstring& filePath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: RegistryHiveFile::~RegistryHiveFile()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHiveFile::~RegistryHiveFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique <RegistryKey>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:80,1
    - Dst: Rejistry::RegistryHiveFile::getHeader
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Rejistry::RegistryHiveFile::getRoot
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique <RegistryKey>
    - Rejistry::RegistryHiveFile::getHeader
    linkageType: ''
    returnType: std::unique_ptr <RegistryKey>
    signature: std::unique_ptr <RegistryKey> RegistryHiveFile::getRoot() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<REGFHeader>
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Rejistry::RegistryHiveFile::getHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<REGFHeader>
    linkageType: ''
    returnType: std::unique_ptr<REGFHeader>
    signature: std::unique_ptr<REGFHeader> RegistryHiveFile::getHeader() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:88,1
    - Dst: FormatMessageA
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:91,1
    - Dst: MAKELANGID
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:93,1
    - Dst: to_string
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:97,1
    - Dst: LocalFree
      Src: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: Rejistry::RegistryHiveFile::getErrorMessage
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
    functionUses: 2
    functionsReached:
    - MAKELANGID
    - LocalFree
    - FormatMessageA
    - GetLastError
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string RegistryHiveFile::getErrorMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Rejistry::Buffer::capacity
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Rejistry::Buffer::limit
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Rejistry::Buffer::position
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t position() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const Buffer& )'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Buffer
    signature: Buffer & operator=(const Buffer& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Rejistry::Buffer::capacity
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Rejistry::Buffer::limit
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Rejistry::Buffer::position
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t position() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Rejistry::Buffer::Buffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const Buffer& )'
    functionSourceFile: /src/sleuthkit/rejistry++/src/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Buffer
    signature: Buffer & operator=(const Buffer& )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const uint32_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::initializeBuffer
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::initializeBuffer
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const uint8_t * buf, const uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:52,1
    - Dst: Rejistry::ByteBuffer::initializeBuffer
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' buf'
    - length
    argTypes:
    - ByteArray
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Rejistry::ByteBuffer::initializeBuffer
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const ByteArray& buf, const uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:59,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:63,1
    - Dst: memcpy
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: Rejistry::ByteBuffer::initializeBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - RegistryParseException
    - resize
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::initializeBuffer(const uint8_t * buf, const uint32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Rejistry::ByteBuffer::get
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ByteBuffer::get(uint32_t offset) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:87,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:88,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:91,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:92,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:96,1
    - Dst: memcpy
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' dst'
    - offset
    - length
    argTypes:
    - ByteArray
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: Rejistry::ByteBuffer::get
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    - size
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::get(ByteArray& dst, const uint32_t offset, const uint32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Rejistry::ByteBuffer::getShort
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ByteBuffer::getShort(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Rejistry::ByteBuffer::getInt
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ByteBuffer::getInt(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Rejistry::ByteBuffer::getLong
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ByteBuffer::getLong(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const uint32_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::initializeBuffer
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::initializeBuffer
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const uint8_t * buf, const uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:52,1
    - Dst: Rejistry::ByteBuffer::initializeBuffer
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' buf'
    - length
    argTypes:
    - ByteArray
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - size
    - Rejistry::ByteBuffer::initializeBuffer
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::ByteBuffer(const ByteArray& buf, const uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:59,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:63,1
    - Dst: memcpy
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: Rejistry::ByteBuffer::initializeBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 4
    functionsReached:
    - memcpy
    - RegistryParseException
    - resize
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::initializeBuffer(const uint8_t * buf, const uint32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Rejistry::ByteBuffer::get
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ByteBuffer::get(uint32_t offset) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:87,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:88,1
    - Dst: size
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:91,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:92,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:96,1
    - Dst: memcpy
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' dst'
    - offset
    - length
    argTypes:
    - ByteArray
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: Rejistry::ByteBuffer::get
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - RegistryParseException
    - size
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ByteBuffer::get(ByteArray& dst, const uint32_t offset, const uint32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Rejistry::ByteBuffer::getShort
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ByteBuffer::getShort(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Rejistry::ByteBuffer::getInt
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ByteBuffer::getInt(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ByteBuffer::read
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Rejistry::ByteBuffer::getLong
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::ByteBuffer::read
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ByteBuffer::getLong(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~ByteBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~ByteBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteBuffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Rejistry::ByteBuffer::read
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T read(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/rejistry++/src/ByteBuffer.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~ByteBuffer()
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~ByteBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Rejistry::ByteBuffer::ByteBuffer
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteBuffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Rejistry::ByteBuffer::read
    functionSourceFile: /src/sleuthkit/rejistry++/src/ByteBuffer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T read(uint32_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~REGFHeader()
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~REGFHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Rejistry::REGFHeader::REGFHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void REGFHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~REGFHeader()
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~REGFHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Rejistry::REGFHeader::REGFHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void REGFHeader()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - RegistryByteBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Rejistry::REGFHeader::REGFHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void REGFHeader::REGFHeader(RegistryByteBuffer& buf, const uint32_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:47,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Rejistry::REGFHeader::isSynchronized
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool REGFHeader::isSynchronized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::REGFHeader::getMajorVersion
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getMajorVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Rejistry::REGFHeader::getMinorVersion
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getMinorVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Rejistry::REGFHeader::getHiveName
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring REGFHeader::getHiveName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::REGFHeader::getLastHbinOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getLastHbinOffset() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:71,1
    - Dst: std::make_unique<HBIN>
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:76,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:76,1
    - Dst: auto::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:78,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:78,1
    - Dst: Rejistry::REGFHeader::getLastHbinOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: Rejistry::REGFHeader::getHBINs
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<HBIN>
    - auto::getRelativeOffsetNextHBIN
    - Rejistry::REGFHeader::getLastHbinOffset
    - std::move
    - getDWord
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<HBIN::HBINUniqPtr>
    signature: std::vector<HBIN::HBINUniqPtr> REGFHeader::getHBINs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:90,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:91,1
    - Dst: std::make_unique<HBIN>
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:94,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: Rejistry::REGFHeader::getFirstHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - getDWord
    - RegistryParseException
    - std::make_unique<HBIN>
    linkageType: ''
    returnType: HBIN::HBINUniqPtr
    signature: HBIN::HBINUniqPtr REGFHeader::getFirstHBIN() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:101,1
    - Dst: Rejistry::REGFHeader::getFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:102,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:104,1
    - Dst: auto::getCellAtOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: Rejistry::REGFHeader::getRootNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::REGFHeader::getFirstHBIN
    - getDWord
    - RegistryParseException
    - auto::getCellAtOffset
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> REGFHeader::getRootNKRecord() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - RegistryByteBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Rejistry::REGFHeader::REGFHeader
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void REGFHeader::REGFHeader(RegistryByteBuffer& buf, const uint32_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:47,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Rejistry::REGFHeader::isSynchronized
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: bool
    signature: bool REGFHeader::isSynchronized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Rejistry::REGFHeader::getMajorVersion
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getMajorVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Rejistry::REGFHeader::getMinorVersion
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getMinorVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUTF16String
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Rejistry::REGFHeader::getHiveName
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getUTF16String
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring REGFHeader::getHiveName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Rejistry::REGFHeader::getLastHbinOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t REGFHeader::getLastHbinOffset() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:71,1
    - Dst: std::make_unique<HBIN>
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:76,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:76,1
    - Dst: auto::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:78,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:78,1
    - Dst: Rejistry::REGFHeader::getLastHbinOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: Rejistry::REGFHeader::getHBINs
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<HBIN>
    - auto::getRelativeOffsetNextHBIN
    - Rejistry::REGFHeader::getLastHbinOffset
    - std::move
    - getDWord
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<HBIN::HBINUniqPtr>
    signature: std::vector<HBIN::HBINUniqPtr> REGFHeader::getHBINs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:90,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:91,1
    - Dst: std::make_unique<HBIN>
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:94,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: Rejistry::REGFHeader::getFirstHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 1
    functionsReached:
    - getAbsoluteOffset
    - getDWord
    - RegistryParseException
    - std::make_unique<HBIN>
    linkageType: ''
    returnType: HBIN::HBINUniqPtr
    signature: HBIN::HBINUniqPtr REGFHeader::getFirstHBIN() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:101,1
    - Dst: Rejistry::REGFHeader::getFirstHBIN
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:102,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:104,1
    - Dst: auto::getCellAtOffset
      Src: /src/sleuthkit/rejistry++/src/REGFHeader.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: Rejistry::REGFHeader::getRootNKRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::REGFHeader::getFirstHBIN
    - getDWord
    - RegistryParseException
    - auto::getCellAtOffset
    linkageType: ''
    returnType: std::unique_ptr<NKRecord>
    signature: std::unique_ptr<NKRecord> REGFHeader::getRootNKRecord() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Rejistry::SubkeyListRecord::getListLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t SubkeyListRecord::getListLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubkeys
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:41,1
    - Dst: _wcsicmp
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:43,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: Rejistry::SubkeyListRecord::getSubkey
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - getName
    - getSubkeys
    - NoSuchElementException
    - std::move
    - c_str
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtr
    signature: NKRecord::NKRecordUniqPtr SubkeyListRecord::getSubkey(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getWord
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Rejistry::SubkeyListRecord::getListLength
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - getWord
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t SubkeyListRecord::getListLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubkeys
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:41,1
    - Dst: _wcsicmp
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:42,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:43,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: Rejistry::SubkeyListRecord::getSubkey
    functionSourceFile: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - getName
    - getSubkeys
    - NoSuchElementException
    - std::move
    - c_str
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtr
    signature: NKRecord::NKRecordUniqPtr SubkeyListRecord::getSubkey(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - code
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(const std::string &msg, int
      code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - RejistryException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(const RejistryException &e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: RejistryException::~RejistryException() throw()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::~RejistryException() throw()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - RejistryException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: '& RejistryException::operator =(const RejistryException &e)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RejistryException
    signature: RejistryException & RejistryException::operator =(const RejistryException
      &e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Rejistry::RejistryException::name
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * RejistryException::name() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeid
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Rejistry::RejistryException::className
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached:
    - typeid
    linkageType: ''
    returnType: char
    signature: char * RejistryException::className() const throw()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RejistryException::name
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:73,1
    - Dst: length
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:74,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: Rejistry::RejistryException::what
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached:
    - length
    - Rejistry::RejistryException::name
    - c_str
    linkageType: ''
    returnType: char
    signature: char * RejistryException::what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - code
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(const std::string &msg, int
      code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - RejistryException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Rejistry::RejistryException::RejistryException
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::RejistryException(const RejistryException &e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: RejistryException::~RejistryException() throw()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RejistryException::~RejistryException() throw()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - RejistryException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: '& RejistryException::operator =(const RejistryException &e)'
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RejistryException
    signature: RejistryException & RejistryException::operator =(const RejistryException
      &e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Rejistry::RejistryException::name
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * RejistryException::name() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeid
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Rejistry::RejistryException::className
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached:
    - typeid
    linkageType: ''
    returnType: char
    signature: char * RejistryException::className() const throw()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RejistryException::name
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:73,1
    - Dst: length
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:74,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/RejistryException.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: Rejistry::RejistryException::what
    functionSourceFile: /src/sleuthkit/rejistry++/src/RejistryException.cpp
    functionUses: 0
    functionsReached:
    - length
    - Rejistry::RejistryException::name
    - c_str
    linkageType: ''
    returnType: char
    signature: char * RejistryException::what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~LFRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LFRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Rejistry::LFRecord::LFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LFRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~LFRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LFRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Rejistry::LFRecord::LFRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LFRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LFRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DBRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DBRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Rejistry::DBRecord::DBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~DBRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DBRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Rejistry::DBRecord::DBRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBRecord()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:38,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - header
    - buf
    - offset
    argTypes:
    - REGFHeader*
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: Rejistry::HBIN::HBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void HBIN::HBIN(const REGFHeader * header, RegistryByteBuffer * buf,
      uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Rejistry::HBIN::getRelativeOffsetNextHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HBIN::getRelativeOffsetNextHBIN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Rejistry::HBIN::getRelativeOffsetFirstHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HBIN::getRelativeOffsetFirstHBIN() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::HBIN::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:53,1
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:57,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:57,1
    - Dst: auto::getLength
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:58,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:62,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: Rejistry::HBIN::getCells
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<Cell>
    - RegistryParseException
    - std::move
    - auto::getLength
    - Rejistry::HBIN::getRelativeOffsetNextHBIN
    - std::vector::push_back
    linkageType: ''
    returnType: Cell::CellUniqPtrList
    signature: Cell::CellUniqPtrList HBIN::getCells() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:71,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Rejistry::HBIN::getCellAtOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<Cell>
    linkageType: ''
    returnType: Cell::CellUniqPtr
    signature: Cell::CellUniqPtr HBIN::getCellAtOffset(uint32_t offset) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:38,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - header
    - buf
    - offset
    argTypes:
    - REGFHeader*
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: Rejistry::HBIN::HBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void HBIN::HBIN(const REGFHeader * header, RegistryByteBuffer * buf,
      uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Rejistry::HBIN::getRelativeOffsetNextHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 1
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HBIN::getRelativeOffsetNextHBIN() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Rejistry::HBIN::getRelativeOffsetFirstHBIN
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getDWord
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HBIN::getRelativeOffsetFirstHBIN() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::HBIN::getRelativeOffsetNextHBIN
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:53,1
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:57,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:57,1
    - Dst: auto::getLength
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:58,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:62,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: Rejistry::HBIN::getCells
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<Cell>
    - RegistryParseException
    - std::move
    - auto::getLength
    - Rejistry::HBIN::getRelativeOffsetNextHBIN
    - std::vector::push_back
    linkageType: ''
    returnType: Cell::CellUniqPtrList
    signature: Cell::CellUniqPtrList HBIN::getCells() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Cell>
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:71,1
    - Dst: getAbsoluteOffset
      Src: /src/sleuthkit/rejistry++/src/HBIN.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Rejistry::HBIN::getCellAtOffset
    functionSourceFile: /src/sleuthkit/rejistry++/src/HBIN.cpp
    functionUses: 0
    functionsReached:
    - getAbsoluteOffset
    - std::make_unique<Cell>
    linkageType: ''
    returnType: Cell::CellUniqPtr
    signature: Cell::CellUniqPtr HBIN::getCellAtOffset(uint32_t offset) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:45,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:46,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:48,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:50,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:51,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:54,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:55,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:56,1
    - Dst: std::vector::insert
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - length
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: Rejistry::DBIndirectRecord::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::vector::insert
    - std::min
    - std::vector::begin
    - auto::getData
    - RegistryParseException
    - std::vector::end
    - std::vector::size
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray DBIndirectRecord::getData(uint32_t length) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:45,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:46,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:48,1
    - Dst: auto::get
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:50,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:51,1
    - Dst: auto::getData
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:54,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:55,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:56,1
    - Dst: std::vector::insert
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - length
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: Rejistry::DBIndirectRecord::getData
    functionSourceFile: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::vector::insert
    - std::min
    - std::vector::begin
    - auto::getData
    - RegistryParseException
    - std::vector::end
    - std::vector::size
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: ByteBuffer::ByteArray
    signature: ByteBuffer::ByteArray DBIndirectRecord::getData(uint32_t length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LHRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LHRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LHRecord::LHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LHRecord::LHRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/LHRecord.cpp:37,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/LHRecord.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Rejistry::LHRecord::LHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void LHRecord::LHRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getListLength
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:38,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:42,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:44,1
    - Dst: NKRecord::NKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:45,1
    - Dst: auto::getNKRecord
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Rejistry::DirectSubkeyListRecord::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - getListLength
    - auto::getNKRecord
    - getDWord
    - std::make_unique< Cell >
    - NKRecord::NKRecordUniqPtrList::push_back
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList DirectSubkeyListRecord::getSubkeys()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getListLength
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:38,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:42,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:44,1
    - Dst: NKRecord::NKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:45,1
    - Dst: auto::getNKRecord
      Src: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Rejistry::DirectSubkeyListRecord::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp
    functionUses: 0
    functionsReached:
    - getListLength
    - auto::getNKRecord
    - getDWord
    - std::make_unique< Cell >
    - NKRecord::NKRecordUniqPtrList::push_back
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList DirectSubkeyListRecord::getSubkeys()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~LHRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LHRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Rejistry::LHRecord::LHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LHRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~LHRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~LHRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Rejistry::LHRecord::LHRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/LHRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LHRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - RegistryByteBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Rejistry::BinaryBlock::BinaryBlock
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryBlock(RegistryByteBuffer& buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~BinaryBlock()
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BinaryBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Rejistry::BinaryBlock::BinaryBlock
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - RegistryByteBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Rejistry::BinaryBlock::BinaryBlock
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryBlock(RegistryByteBuffer& buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~BinaryBlock()
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BinaryBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Rejistry::BinaryBlock::BinaryBlock
    functionSourceFile: /src/sleuthkit/rejistry++/src/BinaryBlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~RegistryHive()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHive.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RegistryHive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~RegistryHive()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RegistryHive.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RegistryHive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - buf
    - offset
    - numValues
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord::ValueListRecord(RegistryByteBuffer * buf, uint32_t
      offset, uint32_t numValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:45,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:48,1
    - Dst: VKRecord::VKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:49,1
    - Dst: auto::getVKRecord
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: Rejistry::ValueListRecord::getValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 0
    functionsReached:
    - auto::getVKRecord
    - getDWord
    - VKRecord::VKRecordUniqPtrList::push_back
    - std::make_unique< Cell >
    linkageType: ''
    returnType: VKRecord::VKRecordUniqPtrList
    signature: VKRecord::VKRecordUniqPtrList ValueListRecord::getValues() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ValueListRecord::getValues
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:56,1
    - Dst: hasName
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:57,1
    - Dst: _wcsicmp
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:59,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Rejistry::ValueListRecord::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - hasName
    - getName
    - Rejistry::ValueListRecord::getValues
    - NoSuchElementException
    - std::move
    - c_str
    linkageType: ''
    returnType: VKRecord::VKRecordUniqPtr
    signature: VKRecord::VKRecordUniqPtr ValueListRecord::getValue(const std::wstring&
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - buf
    - offset
    - numValues
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Rejistry::ValueListRecord::ValueListRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ValueListRecord::ValueListRecord(RegistryByteBuffer * buf, uint32_t
      offset, uint32_t numValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:45,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:48,1
    - Dst: VKRecord::VKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:49,1
    - Dst: auto::getVKRecord
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: Rejistry::ValueListRecord::getValues
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 1
    functionsReached:
    - auto::getVKRecord
    - getDWord
    - VKRecord::VKRecordUniqPtrList::push_back
    - std::make_unique< Cell >
    linkageType: ''
    returnType: VKRecord::VKRecordUniqPtrList
    signature: VKRecord::VKRecordUniqPtrList ValueListRecord::getValues() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::ValueListRecord::getValues
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:56,1
    - Dst: hasName
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:57,1
    - Dst: _wcsicmp
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: c_str
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: getName
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:58,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:59,1
    - Dst: NoSuchElementException
      Src: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Rejistry::ValueListRecord::getValue
    functionSourceFile: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - hasName
    - getName
    - Rejistry::ValueListRecord::getValues
    - NoSuchElementException
    - std::move
    - c_str
    linkageType: ''
    returnType: VKRecord::VKRecordUniqPtr
    signature: VKRecord::VKRecordUniqPtr ValueListRecord::getValue(const std::wstring&
      name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Rejistry::RIRecord::RIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void RIRecord::RIRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getListLength
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:47,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:49,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:51,1
    - Dst: SubkeyListRecord::SubkeyListRecordPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:52,1
    - Dst: auto::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: Rejistry::RIRecord::getSubkeyLists
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 0
    functionsReached:
    - getListLength
    - SubkeyListRecord::SubkeyListRecordPtrList::push_back
    - auto::getSubkeyList
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtrList
    signature: SubkeyListRecord::SubkeyListRecordPtrList RIRecord::getSubkeyLists()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RIRecord::getSubkeyLists
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:62,1
    - Dst: Rejistry::RIRecord::getSubkeys
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:63,1
    - Dst: NKRecord::NKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:64,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Rejistry::RIRecord::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 1
    functionsReached:
    - Rejistry::RIRecord::getSubkeys
    - std::move
    - Rejistry::RIRecord::getSubkeyLists
    - NKRecord::NKRecordUniqPtrList::push_back
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList RIRecord::getSubkeys() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMagic
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:39,1
    - Dst: RegistryParseException
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - offset
    argTypes:
    - RegistryByteBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Rejistry::RIRecord::RIRecord
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 0
    functionsReached:
    - getMagic
    - RegistryParseException
    linkageType: ''
    returnType: void
    signature: void RIRecord::RIRecord(RegistryByteBuffer * buf, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getListLength
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:47,1
    - Dst: getDWord
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:49,1
    - Dst: std::make_unique< Cell >
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:51,1
    - Dst: SubkeyListRecord::SubkeyListRecordPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:52,1
    - Dst: auto::getSubkeyList
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: Rejistry::RIRecord::getSubkeyLists
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 1
    functionsReached:
    - getListLength
    - SubkeyListRecord::SubkeyListRecordPtrList::push_back
    - auto::getSubkeyList
    - getDWord
    - std::make_unique< Cell >
    linkageType: ''
    returnType: SubkeyListRecord::SubkeyListRecordPtrList
    signature: SubkeyListRecord::SubkeyListRecordPtrList RIRecord::getSubkeyLists()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RIRecord::getSubkeyLists
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:62,1
    - Dst: Rejistry::RIRecord::getSubkeys
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:63,1
    - Dst: NKRecord::NKRecordUniqPtrList::push_back
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:64,1
    - Dst: std::move
      Src: /src/sleuthkit/rejistry++/src/RIRecord.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Rejistry::RIRecord::getSubkeys
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.cpp
    functionUses: 2
    functionsReached:
    - Rejistry::RIRecord::getSubkeys
    - std::move
    - Rejistry::RIRecord::getSubkeyLists
    - NKRecord::NKRecordUniqPtrList::push_back
    linkageType: ''
    returnType: NKRecord::NKRecordUniqPtrList
    signature: NKRecord::NKRecordUniqPtrList RIRecord::getSubkeys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~RIRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RIRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~RIRecord()
    functionSourceFile: /src/sleuthkit/rejistry++/src/RIRecord.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RIRecord()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getASCIIString
      Src: /src/sleuthkit/rejistry++/src/Record.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::Record::getMagic
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.cpp
    functionUses: 0
    functionsReached:
    - getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string Record::getMagic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getASCIIString
      Src: /src/sleuthkit/rejistry++/src/Record.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Rejistry::Record::getMagic
    functionSourceFile: /src/sleuthkit/rejistry++/src/Record.cpp
    functionUses: 0
    functionsReached:
    - getASCIIString
    linkageType: ''
    returnType: std::string
    signature: std::string Record::getMagic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.h:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: operator()(char* s1, char* s2) const
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool operator()(char* s1, char* s2) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:22,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:23,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:37,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 1
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a_secSkew
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: TskGetTimes::TskGetTimes
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskGetTimes::TskGetTimes(int32_t a_secSkew)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a_secSkew
    - a_compute_hash
    argTypes:
    - int32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TskGetTimes::TskGetTimes
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskGetTimes::TskGetTimes(int32_t a_secSkew, bool a_compute_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:81,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: TskGetTimes::handleError
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_error_get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskGetTimes::handleError()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: TskGetTimes::processFile
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskGetTimes::processFile(TSK_FS_FILE * /*fs_file*/,
      const char * /*path*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:97,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:105,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:106,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:106,1
    - Dst: tsk_fs_fls
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: TskGetTimes::filterFs
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached:
    - TSNPRINTF
    - TSTRNCAT
    - _TSK_T
    - tsk_fs_fls
    - TSTRLEN
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskGetTimes::filterFs(TSK_FS_INFO * fs_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vs_part
    argTypes:
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: TskGetTimes::filterVol
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskGetTimes::filterVol(const TSK_VS_PART_INFO * vs_part)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool_info
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: TskGetTimes::filterPool
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskGetTimes::filterPool(const TSK_POOL_INFO * pool_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool_vol
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: TskGetTimes::filterPoolVol
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskGetTimes::filterPoolVol(const TSK_POOL_VOLUME_INFO
      * pool_vol)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:160,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:160,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:162,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:163,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:170,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:172,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:172,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:174,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:176,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:176,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:178,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:181,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:182,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:184,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:185,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:188,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:194,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:195,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:195,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:196,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:197,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:199,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:201,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:201,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:203,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:207,1
    - Dst: TATOI
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:208,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:211,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:215,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:219,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:223,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:224,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:225,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:230,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:230,1
    - Dst: TPUTENV
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:231,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:232,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:233,1
    - Dst: TZSET
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:237,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:246,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:248,1
    - Dst: TskGetTimes::setFileSystemPassword
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:252,1
    - Dst: TskGetTimes::openImage
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:253,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:255,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:256,1
    - Dst: TskGetTimes::findFilesInImg
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:259,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:261,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp:264,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 265
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - TZSET
    - _TSK_T
    - TSTRCMP
    - TFPRINTF
    - TskGetTimes::openImage
    - TskGetTimes::findFilesInImg
    - tsk_img_type_toid
    - TPUTENV
    - exit
    - TATOI
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - TskGetTimes::setFileSystemPassword
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TSNPRINTF
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:38,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:53,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:58,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 2
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:67,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: TskCompareDir::handleError
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_error_get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCompareDir::handleError()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:91,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:93,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:94,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:94,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:96,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:96,1
    - Dst: FindFirstFile
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:100,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:101,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:103,1
    - Dst: FormatMessage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:106,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:109,1
    - Dst: wcsncpy
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:115,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:117,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:117,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:118,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:118,1
    - Dst: TskCompareDir::processLclDir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:126,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:136,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:139,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:145,1
    - Dst: find
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:150,1
    - Dst: end
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:151,1
    - Dst: erase
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:152,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:155,1
    - Dst: FindNextFile
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:159,1
    - Dst: FindClose
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:161,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:170,1
    - Dst: opendir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:171,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:172,1
    - Dst: readdir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:175,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:176,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:177,1
    - Dst: stat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:179,1
    - Dst: S_ISDIR
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:180,1
    - Dst: TskCompareDir::processLclDir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:185,1
    - Dst: find
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:191,1
    - Dst: end
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:192,1
    - Dst: erase
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:193,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:196,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 1
    argNames:
    - a_dir
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 204
    functionName: TskCompareDir::processLclDir
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 1
    functionsReached:
    - erase
    - FindFirstFile
    - FindNextFile
    - fprintf
    - wcsncat
    - TskCompareDir::processLclDir
    - snprintf
    - readdir
    - printf
    - GetLastError
    - opendir
    - wcsncpy
    - wcslen
    - end
    - S_ISDIR
    - find
    - stat
    - FindClose
    - FormatMessage
    - tsk_UTF16toUTF8_lclorder
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCompareDir::processLclDir(const TSK_TCHAR * a_dir)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:210,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:212,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:213,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:214,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:219,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:221,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:222,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:223,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:227,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:228,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:229,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:230,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - a_soffset
    - fstype
    - pooltype
    - pvol_block
    argTypes:
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - TSK_POOL_TYPE_ENUM
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 206
    functionDepth: 8
    functionLinenumber: 206
    functionLinenumberEnd: 236
    functionName: TskCompareDir::openFs
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    - tsk_error_print
    - tsk_fs_type_print
    - tsk_error_get_errno
    - tsk_pool_open_img_sing
    - tsk_pool_type_print
    - TSK_POOL_INFO*::get_img_info
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCompareDir::openFs(TSK_OFF_T a_soffset, TSK_FS_TYPE_ENUM
      fstype, TSK_POOL_TYPE_ENUM pooltype, TSK_DADDR_T pvol_block)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isDotDir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:245,1
    - Dst: isDir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:248,1
    - Dst: isNtfsSystemFiles
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:251,1
    - Dst: isFATSystemFiles
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:251,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:258,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:258,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:259,1
    - Dst: registerError
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:261,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:265,1
    - Dst: strncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:266,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:266,1
    - Dst: strncat
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:267,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:267,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:271,1
    - Dst: insert
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - a_fs_file
    - a_path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 280
    functionName: TskCompareDir::processFile
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - strncat
    - insert
    - snprintf
    - isDotDir
    - tsk_malloc
    - isFATSystemFiles
    - isDir
    - registerError
    - isNtfsSystemFiles
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskCompareDir::processFile(TSK_FS_FILE * a_fs_file,
      const char *a_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: TskCompareDir::filterVol
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskCompareDir::filterVol(const TSK_VS_PART_INFO * /*a_vs_part*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: findFilesInFs
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:305,1
    - Dst: findFilesInFs
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:307,1
    - Dst: TskCompareDir::processLclDir
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:316,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:316,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:320,1
    - Dst: begin
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:323,1
    - Dst: end
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:323,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:324,1
    - Dst: begin
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:328,1
    - Dst: end
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:328,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - a_inum
    - a_lcl_dir
    argTypes:
    - TSK_INUM_T
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 335
    functionName: TskCompareDir::compareDirs
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - begin
    - printf
    - findFilesInFs
    - TskCompareDir::processLclDir
    - _TSK_T
    - end
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskCompareDir::compareDirs(TSK_INUM_T a_inum, const TSK_TCHAR
      * a_lcl_dir)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:350,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:350,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:352,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:353,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:365,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:367,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:367,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:369,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:371,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:371,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:373,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:376,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:377,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:379,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:380,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:383,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:387,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:388,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:388,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:389,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:390,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:392,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:394,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:395,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:396,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:401,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:402,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:402,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:403,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:404,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:406,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:408,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:408,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:410,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:415,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:416,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:417,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:418,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:422,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:423,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:424,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:425,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:429,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:430,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:430,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:431,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:432,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:434,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:436,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:437,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:438,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:442,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:443,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:444,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:445,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:449,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:453,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:454,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:455,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:461,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:463,1
    - Dst: TskCompareDir::setFileFilterFlags
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:468,1
    - Dst: TskCompareDir::openImage
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:470,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:471,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:472,1
    - Dst: TskCompareDir::openFs
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:475,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:477,1
    - Dst: TskCompareDir::compareDirs
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:480,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp:482,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 338
    functionDepth: 9
    functionLinenumber: 338
    functionLinenumberEnd: 486
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - TskCompareDir::setFileFilterFlags
    - tsk_parse_offset
    - TskCompareDir::openFs
    - tsk_fs_parse_inum
    - TskCompareDir::compareDirs
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - TskCompareDir::openImage
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:21,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:22,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:25,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:35,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 38
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp
    functionUses: 3
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:59,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:59,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:61,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:62,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:69,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:71,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:71,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:73,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:75,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:75,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:77,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:80,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:84,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:85,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:87,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:88,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:95,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:96,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:96,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:97,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:98,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:100,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:102,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:104,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:112,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:120,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:124,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:125,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:126,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:128,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:130,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:130,1
    - Dst: TPUTENV
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:131,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:132,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:133,1
    - Dst: TZSET
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:135,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:142,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:143,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:150,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:151,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:153,1
    - Dst: TskCaseDb::newDb
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:162,1
    - Dst: TskCaseDb::openDb
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:164,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:168,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:169,1
    - Dst: TskCaseDb*::initAddImage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:172,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:174,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:175,1
    - Dst: TskAutoDb*::createBlockMap
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:177,1
    - Dst: TskAutoDb*::hashFiles
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:178,1
    - Dst: TskAutoDb*::setAddUnallocSpace
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:179,1
    - Dst: TskAutoDb*::startAddImage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:181,1
    - Dst: TskAutoDb*::getErrorList
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:182,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:183,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:184,1
    - Dst: TskAuto::errorRecordToString
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:184,1
    - Dst: TskAutoDb*::commitAddImage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:188,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:189,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:190,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:192,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:192,1
    - Dst: TskAutoDb*::closeImage
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:194,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp:198,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - TZSET
    - TskCaseDb*::initAddImage
    - TskAutoDb*::hashFiles
    - _TSK_T
    - TSTRCMP
    - TFPRINTF
    - TskAutoDb*::commitAddImage
    - TskAutoDb*::startAddImage
    - tsk_img_type_toid
    - TPUTENV
    - TskCaseDb::openDb
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - TskAutoDb*::closeImage
    - TskAutoDb*::setAddUnallocSpace
    - TskAuto::errorRecordToString
    - std::vector::size
    - TskCaseDb::newDb
    - setlocale
    - TskAutoDb*::createBlockMap
    - GetCommandLineW
    - TskAutoDb*::getErrorList
    - tsk_img_type_print
    - GETOPT
    - TSNPRINTF
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:23,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:24,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:32,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp
    functionUses: 4
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:49,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:49,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:51,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:52,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:59,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:61,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:61,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:63,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:65,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:65,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:67,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:70,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:71,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:73,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:74,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:77,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:81,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:82,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:83,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:84,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:86,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:88,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:90,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:98,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:99,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:100,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:106,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:108,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:113,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:115,1
    - Dst: TskIsImageSupported::TskIsImageSupported
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:118,1
    - Dst: TskIsImageSupported::openImage
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:119,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:120,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:121,1
    - Dst: TskIsImageSupported::findFilesInImg
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:126,1
    - Dst: TskIsImageSupported::printResults
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:127,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 129
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - _TSK_T
    - TSTRCMP
    - TFPRINTF
    - TskIsImageSupported::TskIsImageSupported
    - tsk_img_type_toid
    - TskIsImageSupported::printResults
    - usage
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - TskIsImageSupported::openImage
    - tsk_img_type_print
    - GETOPT
    - TskIsImageSupported::findFilesInImg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:23,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:24,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:44,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 5
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TSK_IS_SPL_FILE_CHAR
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IS_SPL_FILE_CHAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: TSK_IS_SPL_FILE_CHAR
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSK_IS_SPL_FILE_CHAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - a_base_dir
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: TskRecover::TskRecover
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskRecover::TskRecover(TSK_TCHAR * a_base_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:102,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: TskRecover::handleError
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - tsk_error_get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskRecover::handleError()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:117,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:118,1
    - Dst: fwrite
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:124,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - a_fs_file
    - a_off
    - a_addr
    - a_buf
    - a_len
    - a_flags
    - a_ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: file_walk_cb
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - WriteFile
    - fwrite
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM file_walk_cb(TSK_FS_FILE * a_fs_file, TSK_OFF_T
      a_off,\n    TSK_DADDR_T a_addr, char *a_buf, size_t a_len,\n    TSK_FS_BLOCK_FLAG_ENUM
      a_flags, void *a_ptr)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:145,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:147,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:160,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:185,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:189,1
    - Dst: wcsncpy
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:198,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:199,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:199,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:200,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:200,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:204,1
    - Dst: CreateDirectoryW
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:219,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:221,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:222,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:237,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:240,1
    - Dst: TSK_IS_SPL_FILE_CHAR
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:240,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:248,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:252,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:257,1
    - Dst: wcsncat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:262,1
    - Dst: wcslen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:262,1
    - Dst: CreateFileW
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:267,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:270,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:275,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:277,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:278,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:279,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:283,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:293,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:295,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:300,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:301,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:307,1
    - Dst: lstat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:318,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:320,1
    - Dst: lstat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:332,1
    - Dst: mkdir
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:333,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:334,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:346,1
    - Dst: strncat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:347,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:347,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:349,1
    - Dst: strncat
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:350,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:350,1
    - Dst: TSK_IS_CNTRL
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:356,1
    - Dst: TSK_IS_SPL_FILE_CHAR
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:356,1
    - Dst: fopen
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:361,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:362,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:366,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:368,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:369,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:370,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:374,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:380,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 132
    argCount: 2
    argNames:
    - a_fs_file
    - a_path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 384
    functionName: TskRecover::writeFile
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - TSK_IS_SPL_FILE_CHAR
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - wcsncat
    - tsk_fs_file_walk
    - tsk_UTF8toUTF16
    - snprintf
    - strlen
    - CloseHandle
    - GetLastError
    - wcsncpy
    - wcslen
    - CreateFileW
    - mkdir
    - strncat
    - TSK_IS_CNTRL
    - fopen
    - fclose
    - CreateDirectoryW
    - lstat
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskRecover::writeFile(TSK_FS_FILE * a_fs_file, const char *a_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isDotDir
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:390,1
    - Dst: isDir
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:392,1
    - Dst: isNtfsSystemFiles
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:394,1
    - Dst: isFATSystemFiles
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:394,1
    - Dst: TskRecover::writeFile
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 401
    functionName: TskRecover::processFile
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - TskRecover::writeFile
    - isDotDir
    - isFATSystemFiles
    - isDir
    - isNtfsSystemFiles
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskRecover::processFile(TSK_FS_FILE * fs_file, const
      char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: TskRecover::filterVol
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskRecover::filterVol(const TSK_VS_PART_INFO * /*vs_part*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: TskRecover::filterFs
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskRecover::filterFs(TSK_FS_INFO * fs_info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:429,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:431,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:432,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:433,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:438,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:440,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:441,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:442,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:446,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:447,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:448,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:449,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - a_soffset
    - fstype
    - pooltype
    - pvol_block
    argTypes:
    - TSK_OFF_T
    - TSK_FS_TYPE_ENUM
    - TSK_POOL_TYPE_ENUM
    - TSK_DADDR_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 425
    functionDepth: 8
    functionLinenumber: 425
    functionLinenumberEnd: 455
    functionName: TskRecover::openFs
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    - tsk_error_print
    - tsk_fs_type_print
    - tsk_error_get_errno
    - tsk_pool_open_img_sing
    - tsk_pool_type_print
    - TSK_POOL_INFO*::get_img_info
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskRecover::openFs(TSK_OFF_T a_soffset, TSK_FS_TYPE_ENUM fstype,
      TSK_POOL_TYPE_ENUM pooltype, TSK_DADDR_T pvol_block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findFilesInFs
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:462,1
    - Dst: findFilesInFs
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:464,1
    - Dst: printf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_dirInum
    argTypes:
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: TskRecover::findFiles
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - printf
    - findFilesInFs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskRecover::findFiles(TSK_INUM_T a_dirInum)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:487,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:487,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:489,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:490,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:497,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:499,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:499,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:501,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:503,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:503,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:505,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:508,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:512,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:513,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:515,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:516,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:519,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:523,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:524,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:525,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:526,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:528,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:532,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:538,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:539,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:539,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:540,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:541,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:543,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:545,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:546,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:547,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:552,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:553,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:553,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:554,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:555,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:557,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:559,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:559,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:561,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:565,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:566,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:567,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:568,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:572,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:573,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:573,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:574,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:575,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:577,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:579,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:580,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:581,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:585,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:586,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:587,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:588,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:592,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:596,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:597,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:598,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:604,1
    - Dst: usage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:606,1
    - Dst: TskRecover::setFileFilterFlags
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:611,1
    - Dst: TskRecover::openImage
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:612,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:614,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:615,1
    - Dst: TskRecover::openFs
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:618,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:620,1
    - Dst: TskRecover::findFiles
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:623,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:625,1
    - Dst: exit
      Src: /src/sleuthkit/tools/autotools/tsk_recover.cpp:628,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 629
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/autotools/tsk_recover.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - TSTRCMP
    - TskRecover::openImage
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - TskRecover::findFiles
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - TskRecover::openFs
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TskRecover::setFileFilterFlags
    - tsk_fs_type_toid
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:25,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:41,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/jcat.cpp
    functionUses: 6
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:65,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:65,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:67,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:68,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:75,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:77,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:77,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:79,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:81,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:81,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:83,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:85,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:86,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:89,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:92,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:95,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:96,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:96,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:97,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:98,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:100,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:103,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:104,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:107,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:108,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:109,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:110,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:112,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:114,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:119,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:120,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:121,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:122,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:125,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:128,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:129,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:130,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:136,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:137,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:140,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:142,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:142,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:143,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:147,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:150,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:152,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:153,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:156,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:159,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:162,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:163,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:164,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:165,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:166,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:167,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:173,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:175,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:176,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:179,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:180,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:181,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:182,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:183,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:184,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:189,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:192,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:193,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:194,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:198,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:201,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:202,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:203,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:207,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:209,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:210,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:211,1
    - Dst: _setmode
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:215,1
    - Dst: _fileno
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:215,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:216,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:217,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:218,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:219,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:220,1
    - Dst: TSK_FS_INFO*::jopen
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:224,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:225,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:226,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:227,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:228,1
    - Dst: TSK_FS_INFO*::jblk_walk
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:230,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:231,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:232,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:233,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:234,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:237,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:238,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jcat.cpp:239,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 137
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 240
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/jcat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - _setmode
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_error_get_errno
    - TSTRCMP
    - strerror
    - TFPRINTF
    - tsk_img_type_toid
    - TSK_FS_INFO*::jblk_walk
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - _fileno
    - tsk_fs_open_img
    - tsk_fs_type_toid
    - TSK_FS_INFO*::jopen
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:25,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:43,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 46
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/blkstat.cpp
    functionUses: 7
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:73,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:73,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:75,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:76,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:83,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:87,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:88,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:90,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:91,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:97,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:98,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:98,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:99,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:100,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:102,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:104,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:105,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:109,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:110,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:111,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:112,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:114,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:116,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:118,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:121,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:122,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:123,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:124,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:127,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:128,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:128,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:129,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:130,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:132,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:135,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:136,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:139,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:140,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:141,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:142,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:145,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:148,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:151,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:152,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:154,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:156,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:158,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:163,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:164,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:168,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:170,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:171,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:176,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:178,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:179,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:182,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:185,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:188,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:190,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:191,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:192,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:193,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:194,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:198,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:200,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:201,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:202,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:203,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:204,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:207,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:208,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:209,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:210,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:211,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:212,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:213,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:219,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:222,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:223,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:224,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:227,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:230,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:231,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:232,1
    - Dst: tsk_fs_blkstat
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:236,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:237,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:238,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:239,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:240,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:243,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:244,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkstat.cpp:245,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 141
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 246
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/blkstat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_fs_blkstat
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:29,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:48,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:49,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/ffind.cpp
    functionUses: 8
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:83,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:83,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:85,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:86,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:93,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:95,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:95,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:100,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:101,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:103,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:104,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:113,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:114,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:115,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:116,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:118,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:120,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:121,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:122,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:125,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:126,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:126,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:127,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:128,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:130,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:132,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:137,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:138,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:139,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:140,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:143,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:144,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:144,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:145,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:146,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:148,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:150,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:151,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:152,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:155,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:156,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:157,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:158,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:164,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:167,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:168,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:169,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:170,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:172,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:172,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:174,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:188,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:189,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:194,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:196,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:196,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:197,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:202,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:204,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:205,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:208,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:211,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:215,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:217,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:218,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:219,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:220,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:221,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:225,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:227,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:228,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:229,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:230,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:231,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:234,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:235,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:236,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:237,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:238,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:239,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:240,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:245,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:248,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:251,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:254,1
    - Dst: tsk_fs_ffind
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:257,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:260,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:261,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:262,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:263,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:266,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:267,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ffind.cpp:268,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 144
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 269
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/ffind.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_fs_ffind
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:32,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:53,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:54,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:58,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:60,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:61,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:62,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:63,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:64,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:65,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:66,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:68,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:70,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 73
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/fls.cpp
    functionUses: 9
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/fls.cpp:106,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/fls.cpp:106,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:108,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:109,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/fls.cpp:116,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/fls.cpp:121,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:121,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:123,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:125,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:125,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:127,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:129,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:132,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/fls.cpp:133,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:135,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:136,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:139,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:142,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:145,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:149,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fls.cpp:150,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:150,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:151,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:152,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/fls.cpp:154,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:157,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:158,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:165,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fls.cpp:166,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:166,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:167,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:168,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/fls.cpp:170,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:172,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:172,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:177,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:180,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:184,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:187,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fls.cpp:188,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:189,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:190,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:193,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fls.cpp:194,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:194,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:195,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:196,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/fls.cpp:198,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:200,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:201,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:202,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:205,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fls.cpp:206,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:207,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:208,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:211,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fls.cpp:212,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:213,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:214,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:217,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:220,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:223,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:226,1
    - Dst: TATOI
      Src: /src/sleuthkit/tools/fstools/fls.cpp:227,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:229,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:232,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:235,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:236,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:237,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/fstools/fls.cpp:241,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:241,1
    - Dst: TPUTENV
      Src: /src/sleuthkit/tools/fstools/fls.cpp:242,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:243,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:244,1
    - Dst: TZSET
      Src: /src/sleuthkit/tools/fstools/fls.cpp:248,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:257,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:258,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fstools/fls.cpp:282,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fstools/fls.cpp:285,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tools/fstools/fls.cpp:286,1
    - Dst: TSTRNCAT
      Src: /src/sleuthkit/tools/fstools/fls.cpp:287,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fls.cpp:287,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/fls.cpp:295,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/fls.cpp:298,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:300,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:301,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:304,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:307,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:308,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fls.cpp:312,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:313,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:314,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:315,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:316,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:317,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/fls.cpp:321,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:323,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:324,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:325,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:326,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:327,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/fls.cpp:331,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fls.cpp:332,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:333,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:334,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:335,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:336,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:337,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:338,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:339,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:348,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fls.cpp:349,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/fls.cpp:353,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:355,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:356,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fls.cpp:359,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:362,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:363,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fls.cpp:367,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:368,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:369,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:370,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:371,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:372,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/fls.cpp:376,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:379,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:380,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:381,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:382,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:383,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/fls.cpp:387,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fls.cpp:388,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:389,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fls.cpp:390,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:391,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:392,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:393,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:394,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:395,1
    - Dst: tsk_apfs_set_snapshot
      Src: /src/sleuthkit/tools/fstools/fls.cpp:401,1
    - Dst: tsk_fs_fls
      Src: /src/sleuthkit/tools/fstools/fls.cpp:404,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fls.cpp:406,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:407,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:408,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:410,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:413,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:415,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:418,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:419,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:422,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fls.cpp:425,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fls.cpp:427,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 256
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 428
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/fls.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - tsk_pool_close
    - fprintf
    - TZSET
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - TSTRNCPY
    - TPUTENV
    - tsk_pool_open_img_sing
    - TSTRLEN
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - TATOI
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - tsk_fs_fls
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - malloc
    - GETOPT
    - TSNPRINTF
    - TSTRNCAT
    - tsk_fs_type_toid
    - tsk_apfs_set_snapshot
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:33,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:54,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:59,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/blkcat.cpp
    functionUses: 10
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:92,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:92,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:94,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:95,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:103,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:110,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:111,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:113,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:114,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:120,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:121,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:124,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:124,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:125,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:127,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:128,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:131,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:135,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:136,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:139,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:142,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:143,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:143,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:144,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:145,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:147,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:149,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:149,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:151,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:154,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:155,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:156,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:157,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:160,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:161,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:162,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:163,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:165,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:167,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:168,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:169,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:172,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:173,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:174,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:175,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:178,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:181,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:182,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:184,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:184,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:186,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:189,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:192,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:193,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:194,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:196,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:199,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:202,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:204,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:204,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:206,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:212,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:216,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:222,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:227,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:229,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:241,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:243,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:244,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:247,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:250,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:255,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:259,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:261,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:261,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:263,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:267,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:269,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:273,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:276,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:282,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:284,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:284,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:286,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:289,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:291,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:295,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:298,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:299,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:302,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:305,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:311,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:313,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:314,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:315,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:316,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:317,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:321,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:323,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:324,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:325,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:326,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:327,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:330,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:331,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:332,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:333,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:334,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:335,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:336,1
    - Dst: TSK_FS_TYPE_ISRAW
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:343,1
    - Dst: TSK_FS_TYPE_ISSWAP
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:343,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:348,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:350,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:370,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:373,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:374,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:375,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:378,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:381,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:382,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:383,1
    - Dst: tsk_fs_blkcat
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:386,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:388,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:389,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:390,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:391,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:394,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:395,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcat.cpp:397,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 224
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 66
    functionDepth: 8
    functionLinenumber: 66
    functionLinenumberEnd: 398
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/blkcat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - TSK_FS_TYPE_ISRAW
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - tsk_fs_blkcat
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - TSK_FS_TYPE_ISSWAP
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:35,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:48,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:50,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:53,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:59,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:61,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:63,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:65,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:66,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/ils.cpp
    functionUses: 11
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/ils.cpp:100,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/ils.cpp:100,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:102,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:103,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/ils.cpp:110,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/ils.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:119,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:121,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:121,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:123,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:125,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/ils.cpp:126,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:128,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:129,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:135,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ils.cpp:136,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:136,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:137,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:138,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/ils.cpp:140,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:142,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:143,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:144,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:147,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ils.cpp:148,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:148,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:149,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:150,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/ils.cpp:152,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:154,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:154,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:159,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:163,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:166,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ils.cpp:167,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:168,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:169,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:172,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ils.cpp:173,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:173,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:174,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:175,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/ils.cpp:177,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ils.cpp:179,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:180,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:181,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:184,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ils.cpp:185,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:186,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:187,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:190,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:195,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:199,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:203,1
    - Dst: TATOI
      Src: /src/sleuthkit/tools/fstools/ils.cpp:204,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:206,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:209,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:210,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:211,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:216,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:220,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:223,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:226,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:229,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:232,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:239,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:240,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:244,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ils.cpp:246,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tools/fstools/ils.cpp:250,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:250,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/ils.cpp:252,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ils.cpp:257,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:259,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:260,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:263,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:266,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ils.cpp:275,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:277,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:278,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:281,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:284,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/ils.cpp:292,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ils.cpp:295,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ils.cpp:298,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:300,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:301,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:304,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:307,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/ils.cpp:312,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ils.cpp:319,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:321,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:322,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:325,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:328,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ils.cpp:336,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:338,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:339,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:342,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:345,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ils.cpp:352,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:354,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ils.cpp:355,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:356,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:357,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:358,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/ils.cpp:362,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:364,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ils.cpp:365,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:366,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:367,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:368,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/ils.cpp:371,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ils.cpp:372,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:373,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ils.cpp:374,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:375,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:376,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:377,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/fstools/ils.cpp:403,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fstools/ils.cpp:404,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/ils.cpp:405,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:407,1
    - Dst: tsk_fs_ils
      Src: /src/sleuthkit/tools/fstools/ils.cpp:410,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ils.cpp:412,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:413,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:414,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:415,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:418,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ils.cpp:419,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ils.cpp:420,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 243
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 73
    functionDepth: 8
    functionLinenumber: 73
    functionLinenumberEnd: 421
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/ils.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - TSK_FS_TYPE_ISFAT
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - TSK_FS_TYPE_ISNTFS
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - TATOI
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - tsk_fs_ils
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TSTRCHR
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:32,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:48,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:50,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:54,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:57,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/blkcalc.cpp
    functionUses: 12
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:89,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:89,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:91,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:92,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:100,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:104,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:106,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:111,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:112,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:115,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:118,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:122,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:124,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:126,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:126,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:127,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:132,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:133,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:133,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:134,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:135,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:137,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:139,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:140,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:141,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:145,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:146,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:146,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:147,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:148,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:150,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:152,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:152,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:154,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:158,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:159,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:160,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:165,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:166,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:166,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:167,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:168,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:170,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:172,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:173,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:178,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:179,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:180,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:181,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:185,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:187,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:189,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:189,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:190,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:195,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:197,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:199,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:199,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:200,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:205,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:209,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:210,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:211,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:217,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:218,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:222,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:228,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:229,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:234,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:236,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:237,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:240,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:243,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:247,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:249,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:250,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:251,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:252,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:253,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:257,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:259,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:260,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:261,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:262,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:263,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:266,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:267,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:268,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:269,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:270,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:271,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:272,1
    - Dst: tsk_fs_blkcalc
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:276,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:277,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:278,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:279,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:280,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:283,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:284,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkcalc.cpp:286,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 157
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 287
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/blkcalc.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_fs_blkcalc
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jls.cpp:21,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:22,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:25,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:34,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 36
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/jls.cpp
    functionUses: 13
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/jls.cpp:57,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/jls.cpp:57,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:59,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:60,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/jls.cpp:67,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/jls.cpp:69,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:69,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:71,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jls.cpp:73,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:73,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jls.cpp:75,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:77,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/jls.cpp:78,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jls.cpp:80,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:81,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jls.cpp:84,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:87,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/jls.cpp:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:88,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:89,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:90,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/jls.cpp:92,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jls.cpp:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:95,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jls.cpp:96,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:99,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/jls.cpp:100,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:100,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:101,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:102,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/jls.cpp:104,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/jls.cpp:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:106,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jls.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:111,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/jls.cpp:112,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:113,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/jls.cpp:120,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:121,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:122,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:128,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/jls.cpp:129,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/jls.cpp:137,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/jls.cpp:140,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:142,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:143,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:146,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:149,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/jls.cpp:152,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:153,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/jls.cpp:154,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:155,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:156,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:157,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/jls.cpp:164,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:166,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:167,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/jls.cpp:170,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:171,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/jls.cpp:172,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:173,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:174,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:175,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:180,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:182,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:183,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:184,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:188,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:191,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:192,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:193,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/jls.cpp:197,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:200,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:201,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:202,1
    - Dst: TSK_FS_INFO*::jopen
      Src: /src/sleuthkit/tools/fstools/jls.cpp:205,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:206,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:207,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:208,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:209,1
    - Dst: TSK_FS_INFO*::jentry_walk
      Src: /src/sleuthkit/tools/fstools/jls.cpp:211,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/jls.cpp:212,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:213,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:214,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:215,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:218,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/jls.cpp:219,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/jls.cpp:220,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 221
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/jls.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - TSK_FS_INFO*::jentry_walk
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_open_img
    - tsk_fs_type_toid
    - TSK_FS_INFO*::jopen
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:23,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:24,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:42,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 45
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/fsstat.cpp
    functionUses: 14
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:70,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:70,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:72,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:73,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:80,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:84,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:86,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:86,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:90,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:91,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:93,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:94,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:100,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:101,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:101,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:102,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:103,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:105,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:108,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:109,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:113,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:114,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:115,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:116,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:118,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:120,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:120,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:122,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:126,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:127,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:128,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:129,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:133,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:137,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:138,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:138,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:139,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:140,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:142,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:144,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:145,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:146,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:150,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:151,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:152,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:157,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:165,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:166,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:167,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:173,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:174,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:178,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:180,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:181,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:184,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:187,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:191,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:192,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:193,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:194,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:195,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:196,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:199,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:201,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:202,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:203,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:204,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:205,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:208,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:209,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:210,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:211,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:212,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:213,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:214,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:219,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:219,1
    - Dst: TSK_FS_INFO*::fsstat
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:222,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:223,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:224,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:225,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:226,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:230,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:231,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fsstat.cpp:232,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 233
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/fsstat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - tsk_printf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - tsk_fs_type_toname
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - TSK_FS_INFO*::fsstat
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:35,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:48,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:50,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:54,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:58,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:59,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 62
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/icat.cpp
    functionUses: 15
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/icat.cpp:93,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/icat.cpp:93,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:95,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:96,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/icat.cpp:103,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/icat.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:107,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:109,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:109,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:111,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:113,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/icat.cpp:114,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:117,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:120,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:123,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/icat.cpp:124,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:124,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:125,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:126,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/icat.cpp:128,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:130,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:131,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:135,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:138,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/icat.cpp:139,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:139,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:140,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:141,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/icat.cpp:143,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:145,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:145,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:147,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:150,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:153,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/icat.cpp:154,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:155,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:159,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/icat.cpp:160,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:160,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:161,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:162,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/icat.cpp:164,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:166,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:167,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:168,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:171,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/icat.cpp:172,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:173,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:177,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/icat.cpp:178,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:179,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:180,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:183,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:186,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:189,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:192,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:195,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:196,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:197,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:203,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:204,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/icat.cpp:208,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/icat.cpp:210,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/icat.cpp:210,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/icat.cpp:212,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/icat.cpp:216,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:218,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:219,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:222,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:225,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/icat.cpp:229,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:231,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/icat.cpp:232,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:233,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:234,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:235,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/icat.cpp:238,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:240,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/icat.cpp:241,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:242,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:243,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:244,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/icat.cpp:247,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/icat.cpp:248,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:249,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/icat.cpp:250,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:251,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:252,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:253,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:258,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:261,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:262,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:263,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/icat.cpp:266,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:269,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:270,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:271,1
    - Dst: tsk_apfs_set_snapshot
      Src: /src/sleuthkit/tools/fstools/icat.cpp:275,1
    - Dst: tsk_fs_icat
      Src: /src/sleuthkit/tools/fstools/icat.cpp:279,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/icat.cpp:283,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fstools/icat.cpp:284,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/icat.cpp:287,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:288,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:289,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:290,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:293,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/icat.cpp:294,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/icat.cpp:295,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 166
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 296
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/icat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - tsk_parse_offset
    - tsk_fs_icat
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - tsk_error_reset
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - tsk_apfs_set_snapshot
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:32,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:53,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:58,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/istat.cpp
    functionUses: 16
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/istat.cpp:91,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/istat.cpp:91,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:93,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:94,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/istat.cpp:101,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/istat.cpp:103,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:103,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:105,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:107,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:109,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:111,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/istat.cpp:112,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:115,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:118,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:121,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/istat.cpp:122,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:124,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:125,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:128,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:131,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/istat.cpp:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:132,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:133,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:134,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/istat.cpp:136,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:138,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:139,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:140,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:143,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:146,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/istat.cpp:147,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:147,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:148,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:149,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/istat.cpp:151,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:153,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:155,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:158,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/istat.cpp:159,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:160,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:164,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/istat.cpp:165,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:165,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:166,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:167,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/istat.cpp:169,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:171,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:172,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:173,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:176,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/istat.cpp:177,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:178,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:179,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:182,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/istat.cpp:183,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:184,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:185,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:188,1
    - Dst: TATOI
      Src: /src/sleuthkit/tools/fstools/istat.cpp:189,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:191,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:194,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:197,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:198,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:199,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:200,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:203,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:203,1
    - Dst: TPUTENV
      Src: /src/sleuthkit/tools/fstools/istat.cpp:204,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:205,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:206,1
    - Dst: TZSET
      Src: /src/sleuthkit/tools/fstools/istat.cpp:208,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:216,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:217,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/istat.cpp:225,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/istat.cpp:226,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/istat.cpp:226,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/istat.cpp:228,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/istat.cpp:235,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:237,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:238,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:241,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:244,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/istat.cpp:248,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:250,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/istat.cpp:251,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:252,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:253,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:254,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/istat.cpp:257,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:259,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/istat.cpp:260,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:261,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:262,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:263,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/istat.cpp:266,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/istat.cpp:267,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:268,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/istat.cpp:269,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:270,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:271,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:272,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:277,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:280,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:281,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:282,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/istat.cpp:286,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:289,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:290,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:291,1
    - Dst: tsk_apfs_set_snapshot
      Src: /src/sleuthkit/tools/fstools/istat.cpp:295,1
    - Dst: TSK_FS_INFO*::istat
      Src: /src/sleuthkit/tools/fstools/istat.cpp:298,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/istat.cpp:299,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:300,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:301,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:302,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:305,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/istat.cpp:306,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/istat.cpp:307,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 172
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 308
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/istat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - TZSET
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - TPUTENV
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - TATOI
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - TSK_FS_INFO*::istat
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TSNPRINTF
    - tsk_fs_type_toid
    - tsk_apfs_set_snapshot
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:15,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:18,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:19,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:21,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:23,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:24,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:25,1
    - Dst: fs_print_types
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:26,1
    - Dst: img_print_types
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:27,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 30
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/fscheck.cpp
    functionUses: 17
    functionsReached:
    - tsk_fprintf
    - fprintf
    - exit
    - fs_print_types
    - img_print_types
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:50,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:50,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:52,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:53,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:62,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:66,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:67,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:68,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:69,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:71,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:72,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:75,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:79,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:79,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:80,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:81,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:83,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:86,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:87,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:92,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:92,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:93,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:94,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:96,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:98,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:98,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:100,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:105,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:106,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:107,1
    - Dst: print_version
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:116,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:117,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:123,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:124,1
    - Dst: img_open
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:128,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:131,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:132,1
    - Dst: fs_open
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:135,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:136,1
    - Dst: tsk_print_types
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:137,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:139,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:140,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:141,1
    - Dst: TSK_FS_INFO*::fscheck
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:145,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:146,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:147,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:148,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:149,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:152,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:153,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fscheck.cpp:155,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 156
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/fscheck.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - tsk_fs_type_print
    - fs_open
    - _TSK_T
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - img_open
    - tsk_print_types
    - tsk_parse_offset
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TSK_FS_INFO*::fscheck
    - tsk_fs_type_toid
    - print_version
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:27,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:47,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/usnjls.cpp
    functionUses: 18
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:73,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:73,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:75,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:76,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:83,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:87,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:89,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:89,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:94,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:95,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:98,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:101,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:104,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:105,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:106,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:107,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:109,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:111,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:112,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:113,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:116,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:117,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:118,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:119,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:121,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:123,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:123,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:125,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:128,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:129,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:130,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:131,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:137,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:140,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:143,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:144,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:145,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:151,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:152,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:159,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:160,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:162,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:163,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:167,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:170,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:173,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:175,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:177,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:178,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:181,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:182,1
    - Dst: tsk_fs_file_open
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:185,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:187,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:192,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:196,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:198,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:200,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:201,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:205,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:208,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:211,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:213,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:215,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:216,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:218,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:219,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:224,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:227,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:228,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:229,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:233,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:236,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:237,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:238,1
    - Dst: tsk_fs_usnjls
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:241,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:242,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:243,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:244,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:245,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:248,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:249,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/usnjls.cpp:250,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 137
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 53
    functionDepth: 7
    functionLinenumber: 53
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/usnjls.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_fs_usnjls
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - tsk_fs_file_open
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_open_img
    - tsk_fs_type_toid
    - tsk_fs_file_close
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:32,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:48,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:50,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:52,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:54,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:56,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:58,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/ifind.cpp
    functionUses: 19
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:94,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:94,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:96,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:97,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:104,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:108,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:113,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:114,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:117,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:120,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:123,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:125,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:127,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:130,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:132,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:132,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:137,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:138,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:138,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:139,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:140,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:142,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:144,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:145,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:146,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:149,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:150,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:150,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:151,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:152,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:154,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:156,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:156,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:158,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:164,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:168,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:170,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:173,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:174,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:175,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:176,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:178,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:178,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:182,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:183,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:184,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:187,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:188,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:188,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:189,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:190,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:192,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:194,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:195,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:196,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:199,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:200,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:201,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:202,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:207,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:209,1
    - Dst: tsk_fs_parse_inum
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:212,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:214,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:214,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:216,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:223,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:224,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:228,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:228,1
    - Dst: TPUTENV
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:229,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:230,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:231,1
    - Dst: TZSET
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:235,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:240,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:241,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:247,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:249,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:250,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:254,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:255,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:260,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:262,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:264,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:265,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:268,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:271,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:275,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:277,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:278,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:279,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:280,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:281,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:285,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:287,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:288,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:289,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:290,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:291,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:294,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:295,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:296,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:297,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:298,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:299,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:300,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:306,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:310,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:311,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:312,1
    - Dst: tsk_fs_ifind_data
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:314,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:316,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:317,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:318,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:319,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:324,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:325,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:326,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:327,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:328,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:331,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:335,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:336,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:337,1
    - Dst: tsk_fs_ifind_par
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:339,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:341,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:342,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:343,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:344,1
    - Dst: tsk_fs_ifind_path
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:352,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:353,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:354,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:355,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:356,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:357,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:359,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:361,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:363,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:365,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:366,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/ifind.cpp:368,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 223
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 369
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/ifind.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - tsk_printf
    - fprintf
    - TZSET
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_fs_ifind_data
    - tsk_img_type_toid
    - TSTRNCPY
    - TPUTENV
    - TSK_FS_TYPE_ISNTFS
    - tsk_pool_open_img_sing
    - usage
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_fs_parse_inum
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - tsk_fs_ifind_path
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - malloc
    - GETOPT
    - tsk_fs_ifind_par
    - TSNPRINTF
    - tsk_fs_type_toid
    - free
    - TSK_POOL_INFO*::get_img_info
    - TSTRLEN
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:36,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:47,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:49,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:51,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:53,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:55,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:57,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:59,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:60,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/blkls.cpp
    functionUses: 20
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:99,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:99,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:101,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:102,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:109,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:111,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:111,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:113,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:115,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:115,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:117,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:119,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:123,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:127,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:128,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:130,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:131,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:134,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:137,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:140,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:141,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:141,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:142,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:143,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:145,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:147,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:148,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:149,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:152,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:153,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:154,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:155,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:157,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:159,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:159,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:161,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:164,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:167,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:168,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:169,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:170,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:173,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:174,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:175,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:176,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:178,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:180,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:181,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:182,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:185,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:186,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:187,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:188,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:191,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:194,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:197,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:198,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:206,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:207,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:213,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:215,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:219,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:222,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:223,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:226,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:229,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:233,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:235,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:236,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:237,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:238,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:239,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:243,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:245,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:246,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:247,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:248,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:249,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:252,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:253,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:254,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:255,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:256,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:257,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:258,1
    - Dst: TSTRCHR
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:265,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:265,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:268,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:270,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:271,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:274,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:277,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:286,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:289,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:291,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:293,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:294,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:297,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:300,1
    - Dst: TSTRTOULL
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:308,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:312,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:314,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:316,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:317,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:320,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:323,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:333,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:335,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:336,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:339,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:342,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:349,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:351,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:352,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:353,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:354,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:355,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:359,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:361,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:362,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:363,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:364,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:365,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:368,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:369,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:370,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:371,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:372,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:373,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:374,1
    - Dst: tsk_fs_blkls
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:392,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:394,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:395,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:396,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:397,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:400,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:401,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/blkls.cpp:402,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 233
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 72
    functionDepth: 8
    functionLinenumber: 72
    functionLinenumberEnd: 403
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/blkls.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - TSTRTOULL
    - tsk_parse_offset
    - tsk_fs_blkls
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - TSTRCHR
    - tsk_fs_type_toid
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:21,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:22,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:25,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:42,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fstools/fcat.cpp
    functionUses: 21
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:73,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:73,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:75,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:76,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:83,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:87,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:89,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:89,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:93,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:94,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:96,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:97,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:100,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:103,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:104,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:104,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:105,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:106,1
    - Dst: tsk_fs_type_toid
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:108,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:111,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:112,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:115,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:118,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:119,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:119,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:120,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:121,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:123,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:125,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:125,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:127,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:130,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:131,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:132,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:133,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:136,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:137,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:137,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:138,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:139,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:141,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:143,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:144,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:145,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:148,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:149,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:150,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:151,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:154,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:157,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:160,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:163,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:164,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:165,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:171,1
    - Dst: usage
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:172,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:177,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:178,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:179,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:180,1
    - Dst: TSTRNCPY
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:182,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:185,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:187,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:188,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:191,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:194,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:198,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:200,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:201,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:202,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:203,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:204,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:208,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:210,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:211,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:212,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:213,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:214,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:217,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:218,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:219,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:220,1
    - Dst: tsk_fs_type_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:221,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:222,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:223,1
    - Dst: tsk_fs_ifind_path
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:228,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:229,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:230,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:231,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:232,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:233,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:236,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:237,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:238,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:239,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:240,1
    - Dst: free
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:242,1
    - Dst: tsk_fs_icat
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:246,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:250,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:251,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:254,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:255,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:256,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:257,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:261,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:262,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fstools/fcat.cpp:263,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 156
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 47
    functionDepth: 8
    functionLinenumber: 47
    functionLinenumberEnd: 264
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fstools/fcat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_fs_type_print
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - TFPRINTF
    - tsk_fs_open_img_decrypt
    - tsk_img_type_toid
    - TSTRNCPY
    - tsk_pool_open_img_sing
    - TSTRLEN
    - tsk_parse_offset
    - tsk_fs_icat
    - tsk_img_open
    - exit
    - tsk_error_reset
    - CommandLineToArgvW
    - tsk_fs_close
    - TSTRTOUL
    - tsk_malloc
    - tsk_version_print
    - tsk_fs_ifind_path
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_fs_type_toid
    - free
    - TSK_POOL_INFO*::get_img_info
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:22,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:23,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:35,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/imgtools/img_cat.cpp
    functionUses: 22
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:56,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:56,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:58,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:59,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:67,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:67,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:69,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:71,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:71,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:73,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:75,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:76,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:78,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:79,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:85,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:86,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:86,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:87,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:88,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:90,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:92,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:92,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:98,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:99,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:101,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:102,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:105,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:109,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:110,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:112,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:113,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:116,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:121,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:125,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:126,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:127,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:133,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:134,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:138,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:140,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:141,1
    - Dst: _setmode
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:145,1
    - Dst: _fileno
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:145,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:146,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:147,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:148,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:174,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:177,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:183,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:185,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:186,1
    - Dst: fwrite
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:189,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:190,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:191,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:192,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:193,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:197,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_cat.cpp:198,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/imgtools/img_cat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - _setmode
    - tsk_fprintf
    - tsk_img_close
    - fprintf
    - _TSK_T
    - TSTRCMP
    - strerror
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_img_read
    - fwrite
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - _fileno
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:21,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:23,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:25,1
    - Dst: fflush
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a_percent
    - a_msg
    - a_ctx
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: verify_progress_cb
    functionSourceFile: /src/sleuthkit/tools/imgtools/img_stat.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - tsk_printf
    - fflush
    linkageType: ''
    returnType: void
    signature: void verify_progress_cb(int a_percent, const char *a_msg, void *a_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:33,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:39,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:43,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:44,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/imgtools/img_stat.cpp
    functionUses: 23
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:64,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:64,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:66,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:67,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:75,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:75,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:77,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:79,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:79,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:81,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:83,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:84,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:86,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:87,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:90,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:93,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:94,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:94,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:95,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:96,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:98,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:100,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:100,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:114,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:118,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:119,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:120,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:126,1
    - Dst: usage
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:127,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:131,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:133,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:134,1
    - Dst: tsk_img_type_toname
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:138,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:139,1
    - Dst: TSK_IMG_INFO*::imgstat
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:142,1
    - Dst: tsk_img_verify
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:148,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:151,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:154,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:155,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:156,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:157,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:159,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:160,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:161,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:162,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:164,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:165,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:166,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:170,1
    - Dst: exit
      Src: /src/sleuthkit/tools/imgtools/img_stat.cpp:171,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 172
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/imgtools/img_stat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_printf
    - tsk_fprintf
    - tsk_img_close
    - fprintf
    - TSK_IMG_INFO*::imgstat
    - _TSK_T
    - tsk_img_verify
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_img_type_toname
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:25,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:34,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:36,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:44,1
    - Dst: exit
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/hashtools/hfind.cpp
    functionUses: 24
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hash
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: lookup_act
    functionSourceFile: /src/sleuthkit/tools/hashtools/hfind.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM lookup_act(TSK_HDB_INFO * /*hdb_info*/, const char
      *hash, const char *name,\n           void * /*ptr*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: print_notfound
    functionSourceFile: /src/sleuthkit/tools/hashtools/hfind.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void print_notfound(char *hash)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:85,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:85,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:87,1
    - Dst: exit
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:88,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:95,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:99,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:103,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:111,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:115,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:119,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:123,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:124,1
    - Dst: exit
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:125,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:128,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:133,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:134,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:138,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:140,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:148,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:149,1
    - Dst: TSTRRCHR
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:152,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:152,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:153,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:153,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:153,1
    - Dst: tsk_hdb_create
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:154,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:155,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:159,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:164,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:170,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:171,1
    - Dst: tsk_hdb_accepts_updates
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:177,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:178,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:179,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:185,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:186,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:190,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:191,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:195,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:196,1
    - Dst: tsk_hdb_uses_external_indexes
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:199,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:200,1
    - Dst: tsk_hdb_is_idx_only
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:203,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:204,1
    - Dst: tsk_hdb_make_index
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:207,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:208,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:209,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:213,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:214,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:224,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:226,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:230,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:231,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:235,1
    - Dst: usage
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:237,1
    - Dst: tsk_hdb_add_entry
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:256,1
    - Dst: printf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:258,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:259,1
    - Dst: printf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:263,1
    - Dst: tsk_hdb_lookup_str
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:268,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:271,1
    - Dst: printf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:275,1
    - Dst: print_notfound
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:278,1
    - Dst: CreateFile
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:292,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:295,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:295,1
    - Dst: exit
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:297,1
    - Dst: GetStdHandle
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:301,1
    - Dst: fopen
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:306,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:308,1
    - Dst: exit
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:310,1
    - Dst: memset
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:320,1
    - Dst: ReadFile
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:327,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:345,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:351,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:352,1
    - Dst: tsk_hdb_lookup_str
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:355,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:358,1
    - Dst: printf
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:362,1
    - Dst: print_notfound
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:366,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:372,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:375,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/tools/hashtools/hfind.cpp:380,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 203
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 382
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/hashtools/hfind.cpp
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - TSTRRCHR
    - memset
    - tsk_error_print
    - tsk_fprintf
    - fprintf
    - tsk_hdb_lookup_str
    - fgets
    - _TSK_T
    - tsk_hdb_add_entry
    - TSTRCMP
    - strlen
    - CloseHandle
    - TFPRINTF
    - tsk_hdb_close
    - printf
    - tsk_hdb_create
    - tsk_hdb_open
    - usage
    - CreateFile
    - exit
    - CommandLineToArgvW
    - tsk_hdb_make_index
    - tsk_version_print
    - tsk_hdb_accepts_updates
    - setlocale
    - GetCommandLineW
    - fopen
    - GETOPT
    - fclose
    - ReadFile
    - tsk_hdb_is_idx_only
    - tsk_hdb_uses_external_indexes
    - print_notfound
    - TSTRLEN
    linkageType: ''
    returnType: int
    signature: int main(int argc, char ** argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:25,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:37,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:38,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:40,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:41,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:42,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:44,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:45,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:46,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:47,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/vstools/mmls.cpp
    functionUses: 25
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:60,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:64,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:68,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:73,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:77,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:106,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:113,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - vs
    - part
    argTypes:
    - TSK_VS_INFO*
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 127
    functionName: part_act
    functionSourceFile: /src/sleuthkit/tools/vstools/mmls.cpp
    functionUses: 0
    functionsReached:
    - tsk_printf
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM part_act(TSK_VS_INFO * vs, const TSK_VS_PART_INFO
      * part, void * /*ptr*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:132,1
    - Dst: tsk_vs_type_todesc
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:132,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:133,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:135,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:137,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: print_header
    functionSourceFile: /src/sleuthkit/tools/vstools/mmls.cpp
    functionUses: 1
    functionsReached:
    - tsk_vs_type_todesc
    - tsk_printf
    linkageType: ''
    returnType: void
    signature: void print_header(const TSK_VS_INFO * vs)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:162,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:162,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:164,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:165,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:174,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:176,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:179,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:182,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:185,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:186,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:188,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:189,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:192,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:195,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:196,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:196,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:197,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:198,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:200,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:202,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:202,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:204,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:207,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:210,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:214,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:215,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:216,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:217,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:220,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:223,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:224,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:224,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:225,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:226,1
    - Dst: tsk_vs_type_toid
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:228,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:230,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:231,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:233,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:236,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:239,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:240,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:241,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:242,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:244,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:245,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:262,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:263,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:267,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:270,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:274,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:281,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:283,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:284,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:285,1
    - Dst: print_header
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:289,1
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:291,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:293,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:294,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:306,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:308,1
    - Dst: print_header
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:309,1
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:310,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:312,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:314,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:318,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:325,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:326,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:327,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:331,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmls.cpp:333,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 138
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 145
    functionDepth: 7
    functionLinenumber: 145
    functionLinenumberEnd: 334
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/vstools/mmls.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_printf
    - tsk_fprintf
    - tsk_img_close
    - fprintf
    - tsk_vs_type_print
    - _TSK_T
    - tsk_vs_open
    - tsk_error_get_errno
    - tsk_vs_close
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_vs_part_walk
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - tsk_error_reset
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - print_header
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_vs_type_toid
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:23,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:24,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:27,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:29,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:31,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:33,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:35,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:36,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/vstools/mmcat.cpp
    functionUses: 26
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:60,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:60,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:62,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:63,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:72,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:72,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:74,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:75,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:77,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:78,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:81,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:84,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:85,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:85,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:86,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:87,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:89,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:91,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:91,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:93,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:97,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:98,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:99,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:100,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:103,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:104,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:104,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:105,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:106,1
    - Dst: tsk_vs_type_toid
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:108,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:111,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:113,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:120,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:121,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:124,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:125,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:131,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:133,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:138,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:140,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:141,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:144,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:147,1
    - Dst: tsk_parse_pnum
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:150,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:151,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:152,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:156,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:157,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:158,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:159,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:161,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:165,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:168,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:171,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:173,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:174,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:177,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:179,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:180,1
    - Dst: _setmode
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:184,1
    - Dst: _fileno
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:184,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:185,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:186,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:187,1
    - Dst: tsk_vs_part_read_block
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:194,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:196,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:197,1
    - Dst: fwrite
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:200,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:201,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:202,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:206,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:207,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmcat.cpp:208,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 111
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 209
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/vstools/mmcat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - _setmode
    - tsk_fprintf
    - tsk_img_close
    - fprintf
    - tsk_vs_type_print
    - _TSK_T
    - tsk_vs_open
    - tsk_error_get_errno
    - tsk_vs_part_get
    - TSTRCMP
    - tsk_vs_close
    - strerror
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_parse_offset
    - fwrite
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - GetCommandLineW
    - tsk_img_type_print
    - malloc
    - GETOPT
    - tsk_parse_pnum
    - _fileno
    - tsk_vs_part_read_block
    - tsk_vs_type_toid
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:20,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:21,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:24,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:26,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:28,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:30,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:32,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:33,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/vstools/mmstat.cpp
    functionUses: 27
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:40,1
    - Dst: tsk_vs_type_toname
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vs
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: print_stats
    functionSourceFile: /src/sleuthkit/tools/vstools/mmstat.cpp
    functionUses: 0
    functionsReached:
    - tsk_vs_type_toname
    - tsk_printf
    linkageType: ''
    returnType: void
    signature: void print_stats(const TSK_VS_INFO * vs)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:58,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:58,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:60,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:61,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:69,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:69,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:71,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:72,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:74,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:75,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:78,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:81,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:82,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:82,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:83,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:84,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:86,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:88,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:88,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:90,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:94,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:95,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:96,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:97,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:100,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:101,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:101,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:102,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:103,1
    - Dst: tsk_vs_type_toid
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:105,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:107,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:108,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:110,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:117,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:118,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:121,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:122,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:128,1
    - Dst: usage
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:129,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:134,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:136,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:137,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:140,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:143,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:148,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:149,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:150,1
    - Dst: tsk_vs_type_print
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:151,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:153,1
    - Dst: print_stats
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:156,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:158,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:159,1
    - Dst: exit
      Src: /src/sleuthkit/tools/vstools/mmstat.cpp:160,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 43
    functionDepth: 7
    functionLinenumber: 43
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/vstools/mmstat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - fprintf
    - tsk_vs_type_print
    - _TSK_T
    - tsk_vs_open
    - tsk_error_get_errno
    - tsk_vs_close
    - TSTRCMP
    - TFPRINTF
    - tsk_img_type_toid
    - tsk_parse_offset
    - print_stats
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - tsk_vs_type_toid
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:9,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:10,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:13,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:14,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:16,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:18,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:20,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:22,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:23,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 4
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/pooltools/pstat.cpp
    functionUses: 28
    functionsReached:
    - exit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:44,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:44,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:46,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:47,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:54,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:56,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:56,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:58,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:60,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:60,1
    - Dst: usage
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:62,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:64,1
    - Dst: TSTRTOUL
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:65,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:67,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:68,1
    - Dst: usage
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:71,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:74,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:75,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:75,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:76,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:77,1
    - Dst: tsk_pool_type_toid
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:79,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:81,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:82,1
    - Dst: usage
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:83,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:86,1
    - Dst: TSTRCMP
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:87,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:87,1
    - Dst: tsk_img_type_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:88,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:89,1
    - Dst: tsk_img_type_toid
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:91,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:93,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:93,1
    - Dst: usage
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:95,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:99,1
    - Dst: tsk_parse_offset
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:100,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:101,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:102,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:106,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:110,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:114,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:115,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:116,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:122,1
    - Dst: usage
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:123,1
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:126,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:129,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:130,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:133,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:136,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:139,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:141,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:142,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:143,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:144,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:145,1
    - Dst: tsk_printf
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:149,1
    - Dst: tsk_pool_type_toname
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:149,1
    - Dst: auto::poolstat
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:152,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:153,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:154,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:155,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:156,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:160,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:161,1
    - Dst: exit
      Src: /src/sleuthkit/tools/pooltools/pstat.cpp:162,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 94
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/pooltools/pstat.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_fprintf
    - tsk_printf
    - tsk_pool_close
    - fprintf
    - _TSK_T
    - tsk_pool_type_print
    - tsk_pool_type_toid
    - tsk_error_get_errno
    - TSTRCMP
    - tsk_pool_type_toname
    - TFPRINTF
    - auto::poolstat
    - tsk_img_type_toid
    - tsk_pool_open_img_sing
    - tsk_parse_offset
    - tsk_img_open
    - exit
    - CommandLineToArgvW
    - TSTRTOUL
    - tsk_version_print
    - setlocale
    - GetCommandLineW
    - tsk_img_type_print
    - GETOPT
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Assert
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/base64.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assert(Cond)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:144,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:145,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:146,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:147,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:167,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:168,1
    - Dst: Assert
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 4
    argNames:
    - src
    - srclength
    - target
    - targsize
    argTypes:
    - unsigned char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 185
    functionName: b64_ntop
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/base64.cpp
    functionUses: 0
    functionsReached:
    - Assert
    linkageType: ''
    returnType: int
    signature: int b64_ntop(unsigned char const *src, size_t srclength, char *target,
      size_t targsize)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:205,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:211,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:213,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:221,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:231,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:244,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:257,1
    - Dst: abort
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:266,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:282,1
    - Dst: isspace
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:289,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:295,1
    - Dst: isspace
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:309,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:310,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:321,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/base64.cpp:331,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 102
    argCount: 4
    argNames:
    - src
    - srclen
    - target
    - targsize
    argTypes:
    - char*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 337
    functionName: b64_pton_slg
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/base64.cpp
    functionUses: 0
    functionsReached:
    - puts
    - isspace
    - strchr
    - abort
    linkageType: ''
    returnType: int
    signature: int b64_pton_slg(char const *src, int srclen, unsigned char *target,
      size_t targsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::fgets
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:77,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:78,1
    - Dst: std::ferror
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:80,1
    - Dst: std::feof
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:84,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:84,1
    - Dst: static_cast<char*>
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:87,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:87,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:87,1
    - Dst: std::strcpy
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:88,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:88,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - lineptr
    - stream
    argTypes:
    - char**
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: getline
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 1
    functionsReached:
    - std::ferror
    - std::string::append
    - malloc
    - std::fgets
    - std::strcpy
    - std::string::c_str
    - std::feof
    - static_cast<char*>
    - std::string::size
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t getline(char** lineptr, size_t*, FILE* stream)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:104,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:105,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:105,1
    - Dst: string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:107,1
    - Dst: string::append
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:108,1
    - Dst: string::append
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:109,1
    - Dst: string::append
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:110,1
    - Dst: string::append
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:111,1
    - Dst: string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:112,1
    - Dst: string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:115,1
    - Dst: regcomp
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:116,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:116,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: myglob::myglob
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - string::push_back
    - std::string::end
    - exit
    - std::string::begin
    - string::append
    - string::c_str
    - regcomp
    linkageType: ''
    returnType: void
    signature: void myglob(const std::string &pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:123,1
    - Dst: regexec
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:124,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fname
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: myglob::match
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - memset
    - std::string::c_str
    - regexec
    linkageType: ''
    returnType: bool
    signature: bool match(const std::string &fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: ~myglob()
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - regfree
    linkageType: ''
    returnType: void
    signature: void ~myglob()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: plugins::plugins
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void plugins()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:144,1
    - Dst: myglob::myglob
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pattern
    - method
    - path
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: plugins::plugins
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - myglob::myglob
    - string::c_str
    linkageType: ''
    returnType: void
    signature: void plugins(string pattern,string method,string path)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: ~plugins()
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~plugins()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: all_whitespace
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: bool
    signature: bool all_whitespace(const char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:172,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:173,1
    - Dst: glob::match
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fname
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: plugin_match
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - begin
    - glob::match
    - end
    linkageType: ''
    returnType: bool
    signature: bool plugin_match(const std::string &fname)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:191,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:191,1
    - Dst: regcomp
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:195,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:195,1
    - Dst: popen
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:201,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:201,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:202,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:202,1
    - Dst: getline
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:205,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:206,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:213,1
    - Dst: regexec
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:214,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:215,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:216,1
    - Dst: path::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:216,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:217,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:217,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:218,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:219,1
    - Dst: isalpha
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:228,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:230,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:231,1
    - Dst: pclose
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - fname
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 236
    functionName: plugin_process
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - path::c_str
    - comment
    - strchr
    - memset
    - isalpha
    - fprintf
    - exit
    - std::string::c_str
    - err
    - popen
    - pclose
    - regexec
    - file_info
    - string::c_str
    - regcomp
    - free
    - getline
    linkageType: ''
    returnType: void
    signature: void plugin_process(const std::string &fname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: myglob::myglob
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:242,1
    - Dst: myglob::myglob
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:243,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:245,1
    - Dst: myglob*::match
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:245,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:246,1
    - Dst: myglob*::match
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:246,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:248,1
    - Dst: myglob*::match
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:248,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:249,1
    - Dst: myglob*::match
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:249,1
    - Dst: regcomp
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:256,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:256,1
    - Dst: fopen
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:257,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:258,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:261,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:263,1
    - Dst: all_whitespace
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:267,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:271,1
    - Dst: regexec
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:272,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:274,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:275,1
    - Dst: plugins::plugins
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:281,1
    - Dst: class plugins*::pattern::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:282,1
    - Dst: myglob::myglob
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:282,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:283,1
    - Dst: class plugins*::pattern::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:283,1
    - Dst: class plugins*::method::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:283,1
    - Dst: class plugins*::path::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:283,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:284,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:286,1
    - Dst: regfree
      Src: /src/sleuthkit/tools/fiwalk/src/plugin.cpp:287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts:
    - condition: (g1->match("file.jpg")==false)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    - condition: (g2->match("file.jpg")==true)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    - condition: (g2->match("file.jpeg")==false)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    - condition: (g1->match("file.jpeg")==true)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    constantsTouched: []
    func_position:
      end: 288
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 288
    functionName: config_read
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
    functionUses: 0
    functionsReached:
    - all_whitespace
    - memset
    - regfree
    - fprintf
    - class plugins*::path::c_str
    - myglob::myglob
    - class plugins*::method::c_str
    - myglob*::match
    - fgets
    - regexec
    - regcomp
    - strchr
    - assert
    - exit
    - err
    - class plugins*::pattern::c_str
    - comment
    - fopen
    - fclose
    - push_back
    - plugins::plugins
    linkageType: ''
    returnType: void
    signature: void config_read(const char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: seg::next_file_offset
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_file_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: seg::next_img_offset
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_img_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - img_info_
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: content::content
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void content(TSK_IMG_INFO *img_info_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: content::set_invalid
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_invalid(bool f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: content::has_filename
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool has_filename()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: content::filename
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string filename()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: content::add_bytes
      Src: /src/sleuthkit/tools/fiwalk/src/content.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - file_offset
    - size
    argTypes:
    - char*
    - uint64_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: content::add_bytes
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.h
    functionUses: 1
    functionsReached:
    - content::add_bytes
    linkageType: ''
    returnType: void
    signature: void add_bytes(const char *buf,uint64_t file_offset,ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: xml::not_impl::what
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: not_impl::not_impl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: xml::outfilename
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached:
    - not_impl::not_impl
    linkageType: ''
    returnType: void
    signature: void outfilename()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: not_impl::not_impl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xml
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: '&operator=(const xml &x)'
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached:
    - not_impl::not_impl
    linkageType: ''
    returnType: xml
    signature: xml &operator=(const xml &x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:118,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: xml::make_command_line
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached:
    - std::string::append
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string make_command_line(int argc,char * const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ~xml()
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~xml()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: xml::push
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 1
    functionsReached:
    - xml::push
    linkageType: ''
    returnType: void
    signature: void push(const std::string &tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:153,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:154,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:155,1
    - Dst: xml::add_DFXML_build_environment
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:156,1
    - Dst: xml::add_DFXML_execution_environment
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:157,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - program
    - version
    - command_line
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: xml::add_DFXML_creator
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached:
    - xml::add_DFXML_execution_environment
    - xml::xmlout
    - xml::push
    - xml::add_DFXML_build_environment
    - xml::pop
    linkageType: ''
    returnType: void
    signature: void add_DFXML_creator(const std::string &program,const std::string
      &version,const std::string &command_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - value
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 2
    functionsReached:
    - xml::xmlout
    linkageType: ''
    returnType: void
    signature: void xmlout( const std::string &tag,const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - value
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 2
    functionsReached:
    - xml::xmlprintf
    linkageType: ''
    returnType: void
    signature: void xmlout( const std::string &tag,const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - value
    argTypes:
    - std::string
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: xml::xmloutl
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 0
    functionsReached:
    - xml::xmlprintf
    linkageType: ''
    returnType: void
    signature: void xmloutl(const std::string &tag,const long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - value
    argTypes:
    - std::string
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 2
    functionsReached:
    - xml::xmlprintf
    linkageType: ''
    returnType: void
    signature: void xmlout( const std::string &tag,const int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - value
    argTypes:
    - std::string
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 2
    functionsReached:
    - xml::xmlprintf
    linkageType: ''
    returnType: void
    signature: void xmlout( const std::string &tag,const double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ts
    argTypes:
    - std::string
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.h
    functionUses: 2
    functionsReached:
    - xml::xmlprintf
    linkageType: ''
    returnType: void
    signature: void xmlout( const std::string &tag,const struct timeval &ts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:71,1
    - Dst: toupper
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:71,1
    - Dst: toupper
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:76,1
    - Dst: toupper
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: strcasestr
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - toupper
    linkageType: ''
    returnType: char
    signature: char * strcasestr (char *haystack, char *needle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: plugin_match
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:91,1
    - Dst: content::open_tempfile
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:92,1
    - Dst: content::open_savefile
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: content::set_filename
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - plugin_match
    - content::open_tempfile
    - content::open_savefile
    linkageType: ''
    returnType: void
    signature: void content::set_filename(const string &filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:99,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:99,1
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:100,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:100,1
    - Dst: strcasestr
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:101,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:101,1
    - Dst: vector<string>::const_iterator::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: content::name_filtered
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - size
    - vector<string>::const_iterator::c_str
    - begin
    - end
    - strcasestr
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool content::name_filtered()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:125,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:125,1
    - Dst: string::rfind
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:128,1
    - Dst: string::insert
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:133,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:135,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:135,1
    - Dst: open
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - filename
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: open_filename_with_suffix
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - string::insert
    - strcpy
    - open
    - string::c_str
    - snprintf
    - string::rfind
    linkageType: ''
    returnType: int
    signature: int open_filename_with_suffix(string &filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:154,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:155,1
    - Dst: isalnum
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:157,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:158,1
    - Dst: open_filename_with_suffix
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:163,1
    - Dst: errx
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:164,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: content::open_tempfile
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 1
    functionsReached:
    - errx
    - begin
    - push_back
    - open_filename_with_suffix
    - isalnum
    - end
    - c_str
    linkageType: ''
    returnType: void
    signature: void content::open_tempfile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_filename_with_suffix
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:179,1
    - Dst: warn
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:181,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: content::open_savefile
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 1
    functionsReached:
    - warn
    - open_filename_with_suffix
    - c_str
    linkageType: ''
    returnType: void
    signature: void content::open_savefile()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:200,1
    - Dst: magic_open
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:204,1
    - Dst: magic_load
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:205,1
    - Dst: string
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:207,1
    - Dst: magic_file
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:210,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:210,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:216,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:216,1
    - Dst: _popen
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:217,1
    - Dst: feof
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:218,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:219,1
    - Dst: _pclose
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:221,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:227,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:227,1
    - Dst: popen
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:228,1
    - Dst: feof
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:229,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:230,1
    - Dst: pclose
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:232,1
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:236,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:236,1
    - Dst: isprint
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:237,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:241,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:241,1
    - Dst: string::erase
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:242,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:242,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 245
    functionName: content::filemagic
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - string
    - _popen
    - magic_open
    - magic_load
    - magic_file
    - popen
    - pclose
    - fgets
    - feof
    - string::size
    - string::end
    - string::erase
    - string::begin
    - snprintf
    - isprint
    - _pclose
    - c_str
    linkageType: ''
    returnType: string
    signature: string content::filemagic()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:251,1
    - Dst: validateOrEscapeUTF8
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:251,1
    - Dst: content::filemagic
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:251,1
    - Dst: content::segs::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:253,1
    - Dst: content::segs::begin
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:255,1
    - Dst: content::segs::end
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:255,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:258,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:260,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:265,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:270,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:274,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:279,1
    - Dst: seglist::const_iterator::md5::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:283,1
    - Dst: file_info_xml
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:289,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:291,1
    - Dst: final
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:291,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:292,1
    - Dst: final
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:292,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:298,1
    - Dst: content::segs::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:298,1
    - Dst: content::segs::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:300,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:302,1
    - Dst: content::segs::size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:304,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:306,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 310
    functionName: content::write_record
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - file_info_xml
    - content::segs::end
    - content::segs::size
    - validateOrEscapeUTF8
    - final
    - file_info
    - seglist::const_iterator::md5::size
    - content::segs::begin
    - snprintf
    - content::filemagic
    linkageType: ''
    returnType: void
    signature: void content::write_record()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: content::need_file_walk
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool content::need_file_walk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: content::segs::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - img_offset
    - fs_offset
    - file_offset
    - len
    - flags
    - md5
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: content::add_seg
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - content::segs::push_back
    linkageType: ''
    returnType: void
    signature: "void content::add_seg(int64_t img_offset,int64_t fs_offset,\n\t\t
      \     int64_t file_offset,int64_t len,\n\t\t      TSK_FS_BLOCK_FLAG_ENUM flags,\n
      \                     const std::string &md5)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:343,1
    - Dst: update
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:344,1
    - Dst: lseek
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:347,1
    - Dst: warn
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:348,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:349,1
    - Dst: write
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:353,1
    - Dst: warn
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:355,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:357,1
    - Dst: lseek
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:363,1
    - Dst: warn
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:364,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:365,1
    - Dst: write
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:369,1
    - Dst: warn
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:371,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - buf
    - file_offset
    - size
    argTypes:
    - u_char*
    - uint64_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 379
    functionName: content::add_bytes
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 1
    functionsReached:
    - warn
    - write
    - update
    - lseek
    - close
    linkageType: ''
    returnType: void
    signature: void content::add_bytes(const u_char *buf,uint64_t file_offset,ssize_t
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:385,1
    - Dst: ::unlink
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:387,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:387,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:392,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:395,1
    - Dst: ::unlink
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:396,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: content::~content()
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - size
    - close
    - ::unlink
    - c_str
    linkageType: ''
    returnType: void
    signature: void content::~content()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:405,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:407,1
    - Dst: fwrite
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:408,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:408,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:409,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:420,1
    - Dst: content::add_bytes
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:424,1
    - Dst: content::set_invalid
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:427,1
    - Dst: content::add_bytes
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:431,1
    - Dst: md5_generator::md5_generator
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:452,1
    - Dst: update
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:456,1
    - Dst: content::add_seg
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:459,1
    - Dst: final
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:459,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:469,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:471,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:474,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:477,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:482,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:484,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:484,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:485,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:492,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:494,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:494,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:495,1
    - Dst: content::add_seg
      Src: /src/sleuthkit/tools/fiwalk/src/content.cpp:501,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 6
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 503
    functionName: content::file_act
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/content.cpp
    functionUses: 0
    functionsReached:
    - fwrite
    - md5_generator::md5_generator
    - memset
    - content::add_seg
    - update
    - size
    - back
    - printf
    - err
    - final
    - content::set_invalid
    - content::add_bytes
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM content::file_act(TSK_FS_FILE * fs_file, TSK_OFF_T
      a_off, TSK_DADDR_T addr, char *buf,\n\t size_t size, TSK_FS_BLOCK_FLAG_ENUM
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: content*::file_act
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fs_file
    - a_off
    - addr
    - buf
    - size
    - flags
    - ptr
    argTypes:
    - TSK_FS_FILE*
    - TSK_OFF_T
    - TSK_DADDR_T
    - char*
    - size_t
    - TSK_FS_BLOCK_FLAG_ENUM
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: file_act
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 1
    functionsReached:
    - content*::file_act
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
      TSK_DADDR_T addr, char *buf,\n\t size_t size, TSK_FS_BLOCK_FLAG_ENUM flags,
      void *ptr)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:87,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:91,1
    - Dst: content::set_filename
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:98,1
    - Dst: content::name_filtered
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:101,1
    - Dst: new_row
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:104,1
    - Dst: push
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:105,1
    - Dst: push
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:111,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:112,1
    - Dst: pop
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:113,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:117,1
    - Dst: content::need_file_walk
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:125,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:128,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:132,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:134,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:136,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:139,1
    - Dst: tsk_fs_meta_make_ls
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:154,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:155,1
    - Dst: content::h_md5::final
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:156,1
    - Dst: content::filename
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:156,1
    - Dst: content::has_filename
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:175,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:175,1
    - Dst: validateOrEscapeUTF8
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:175,1
    - Dst: content::filename
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:175,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:176,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:177,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:178,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:183,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:184,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:185,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:186,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:187,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:188,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:189,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:191,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:192,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:193,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:194,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:195,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:196,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:199,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:201,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:202,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:203,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:204,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:207,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:208,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:209,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:210,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:214,1
    - Dst: TSK_FS_TYPE_ISEXT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:217,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:219,1
    - Dst: TSK_FS_TYPE_ISHFS
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:224,1
    - Dst: file_infot
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:226,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:232,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:233,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:237,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:238,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:240,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:244,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:259,1
    - Dst: content::write_record
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:262,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:273,1
    - Dst: plugin_process
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:279,1
    - Dst: pop
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:282,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:283,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 144
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 285
    functionName: process_tsk_file
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - content::need_file_walk
    - tsk_error_print
    - fprintf
    - TSK_FS_TYPE_ISFAT
    - validateOrEscapeUTF8
    - content::set_filename
    - new_row
    - tsk_fs_file_walk
    - tsk_error_get_errno
    - content::has_filename
    - content::filename
    - printf
    - content::name_filtered
    - TSK_FS_TYPE_ISNTFS
    - content::h_md5::final
    - plugin_process
    - tsk_error_reset
    - strcmp
    - push
    - fputs
    - TSK_FS_TYPE_ISEXT
    - file_infot
    - file_info
    - TSK_FS_TYPE_ISHFS
    - tsk_fs_meta_make_ls
    - content::write_record
    - pop
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t process_tsk_file(TSK_FS_FILE * fs_file, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:298,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:298,1
    - Dst: process_tsk_file
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 293
    functionDepth: 7
    functionLinenumber: 293
    functionLinenumberEnd: 307
    functionName: dir_act
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_TYPE_ISNTFS
    - TSK_FS_TYPE_ISFAT
    - process_tsk_file
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM dir_act(TSK_FS_FILE * fs_file, const char *path,
      void * /*ptr*/)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:323,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:325,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:326,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:332,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:335,1
    - Dst: push
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:336,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:341,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:344,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:346,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:347,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:351,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:354,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:355,1
    - Dst: tsk_fs_type_toname
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:355,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:356,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:357,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:358,1
    - Dst: fputc
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:359,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:366,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:373,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:375,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:375,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:380,1
    - Dst: pop
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:382,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:383,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 385
    functionName: proc_fs
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 1
    functionsReached:
    - comment
    - pop
    - partition_info
    - tsk_fs_dir_walk
    - TSK_FS_TYPE_ISFAT
    - fputc
    - tsk_fs_close
    - tsk_fs_open_img
    - push
    - tsk_fs_type_toname
    - snprintf
    - tsk_error_get
    linkageType: ''
    returnType: int
    signature: int proc_fs(TSK_IMG_INFO * img_info, TSK_OFF_T start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proc_fs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:395,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vs_info
    - vs_part
    - ptr
    argTypes:
    - TSK_VS_INFO*
    - TSK_VS_PART_INFO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: vs_act
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - proc_fs
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM vs_act(TSK_VS_INFO * vs_info, const TSK_VS_PART_INFO
      * vs_part, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:426,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:431,1
    - Dst: proc_fs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:432,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:433,1
    - Dst: proc_fs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:434,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:435,1
    - Dst: proc_fs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:439,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:440,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:446,1
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:449,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:451,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 457
    functionName: proc_vs
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - tsk_vs_close
    - fprintf
    - tsk_error_reset
    - tsk_vs_open
    - tsk_vs_part_walk
    - proc_fs
    linkageType: ''
    returnType: int
    signature: int proc_vs(TSK_IMG_INFO * img_info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:462,1
    - Dst: feof
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:463,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:465,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:470,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:471,1
    - Dst: sscanf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:472,1
    - Dst: new_row
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:475,1
    - Dst: push
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:476,1
    - Dst: content::set_filename
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:480,1
    - Dst: calloc
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:482,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:483,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:485,1
    - Dst: file_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:487,1
    - Dst: content::add_seg
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:490,1
    - Dst: content::add_bytes
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:491,1
    - Dst: content::write_record
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:492,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:493,1
    - Dst: pop
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:497,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - img_info
    - audit_file
    argTypes:
    - TSK_IMG_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 502
    functionName: process_scalpel_audit_file
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - memset
    - fopen
    - content::add_seg
    - pop
    - fputs
    - fgets
    - feof
    - new_row
    - push
    - content::set_filename
    - file_info
    - content::write_record
    - free
    - sscanf
    - tsk_img_read
    - content::add_bytes
    - calloc
    linkageType: ''
    returnType: void
    signature: void process_scalpel_audit_file(TSK_IMG_INFO *img_info,const char *audit_file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open_utf8
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:509,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:512,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:512,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:515,1
    - Dst: process_scalpel_audit_file
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:516,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:519,1
    - Dst: proc_vs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:521,1
    - Dst: comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:523,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:523,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp:527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - audit_file
    - sector_size
    argTypes:
    - int
    - char**
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 504
    functionDepth: 8
    functionLinenumber: 504
    functionLinenumberEnd: 530
    functionName: process_image_file
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
    functionUses: 0
    functionsReached:
    - comment
    - process_scalpel_audit_file
    - tsk_img_close
    - printf
    - tsk_img_open_utf8
    - proc_vs
    - tsk_error_get
    linkageType: ''
    returnType: int
    signature: int process_image_file(int argc,char * const *argv,const char *audit_file,u_int
      sector_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mktemp
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:68,1
    - Dst: open
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: mkstemp
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - mktemp
    - open
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tp
    - tzp
    argTypes:
    - struct timeval*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: gettimeofday
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 1
    functionsReached:
    - time
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tp, void* tzp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:100,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - xml
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: xml::xmlescape
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - string::begin
    - string::end
    linkageType: ''
    returnType: string
    signature: string xml::xmlescape(const string &xml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:122,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:122,1
    - Dst: isprint
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:123,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:123,1
    - Dst: isspace
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:124,1
    - Dst: tolower
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: xml::xmlstrip
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - isspace
    - strchr
    - string::end
    - string::begin
    - isprint
    - tolower
    linkageType: ''
    returnType: string
    signature: string xml::xmlstrip(const string &xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: xml::xml
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void xml::xml()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:150,1
    - Dst: gettimeofday
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:154,1
    - Dst: is_open
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:155,1
    - Dst: perror
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:156,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - outfilename_
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: xml::xml
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - perror
    - exit
    - std::string::c_str
    - is_open
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void xml::xml(const std::string &outfilename_, bool /*makeDTD*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - temp
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: xml::set_tempfile_template
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xml::set_tempfile_template(const std::string &temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::close
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: xml::close
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 1
    functionsReached:
    - xml::close
    linkageType: ''
    returnType: void
    signature: void xml::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:185,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: xml::write_dtd
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void xml::write_dtd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string::substr
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:199,1
    - Dst: string::find
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:200,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:202,1
    - Dst: insert
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tag
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: xml::verify_tag
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - string::find
    - exit
    - insert
    - string::substr
    linkageType: ''
    returnType: void
    signature: void xml::verify_tag(string tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: xml::puts
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xml::puts(const string &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: xml::spaces
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void xml::spaces()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xml::verify_tag
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:221,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tag
    - attribute
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: xml::tagout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - string::size
    - xml::verify_tag
    linkageType: ''
    returnType: void
    signature: void xml::tagout(const string &tag,const string &attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: __MINGW_ATTRIB_NONNULL
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __MINGW_ATTRIB_NONNULL(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:248,1
    - Dst: strdup
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ret
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: vasprintf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - vsnprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int vasprintf(char **ret,const char *fmt,va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:261,1
    - Dst: vasprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:265,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:266,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:267,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:270,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 274
    functionName: xml::printf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - exit
    - va_start
    - vasprintf
    - free
    - va_end
    - strerror
    linkageType: ''
    returnType: void
    signature: void xml::printf(const char *fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml::spaces
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:278,1
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:279,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - attribute
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: xml::push
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 3
    functionsReached:
    - xml::tagout
    - xml::spaces
    - xml::push
    linkageType: ''
    returnType: void
    signature: void xml::push(const string &tag,const string &attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:286,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:286,1
    - Dst: top
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:287,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:288,1
    - Dst: xml::spaces
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:289,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tag_stack.size()>0)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: xml::pop
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 2
    functionsReached:
    - size
    - assert
    - xml::tagout
    - xml::spaces
    - top
    - xml::pop
    linkageType: ''
    returnType: void
    signature: void xml::pop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:301,1
    - Dst: cpuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:309,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:311,1
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:312,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:313,1
    - Dst: cpuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:315,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:316,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:316,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:317,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:317,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:318,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:318,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:319,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:319,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:320,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:320,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:321,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:321,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:322,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:322,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:323,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:323,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:324,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:324,1
    - Dst: cpuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:326,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:327,1
    - Dst: b
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:327,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:328,1
    - Dst: uname
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:334,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:335,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:336,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:337,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:338,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:339,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:343,1
    - Dst: gethostname
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:348,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:349,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:361,1
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:363,1
    - Dst: getuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:363,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:365,1
    - Dst: getpwuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:365,1
    - Dst: getuid
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:365,1
    - Dst: time
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:369,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:370,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:370,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:371,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - command_line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 373
    functionName: xml::add_DFXML_execution_environment
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 1
    functionsReached:
    - xml::pop
    - cpuid
    - time
    - xml::xmlout
    - strftime
    - gmtime
    - getpwuid
    - xml::push
    - uname
    - getuid
    - xml::xmlprintf
    - snprintf
    - gethostname
    - b
    linkageType: ''
    returnType: void
    signature: void xml::add_DFXML_execution_environment(const std::string &command_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: cpuid
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpuid(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - base
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: b
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 139
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: b(val, base, end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:381,1
    - Dst: getrusage
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:382,1
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:383,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:384,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:385,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:386,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:387,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:388,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:389,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:390,1
    - Dst: xml::xmloutl
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:391,1
    - Dst: gettimeofday
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:394,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:404,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 409
    functionName: xml::add_rusage
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - memset
    - xml::xmlout
    - getrusage
    - xml::xmloutl
    - xml::push
    - gettimeofday
    - xml::pop
    linkageType: ''
    returnType: void
    signature: void xml::add_rusage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comment_
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: xml::xmlcomment
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 0
    functionsReached:
    - flush
    linkageType: ''
    returnType: void
    signature: void xml::xmlcomment(const string &comment_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xml::spaces
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:424,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:425,1
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:427,1
    - Dst: vasprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:431,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:432,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:433,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:436,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:439,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:440,1
    - Dst: flush
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - tag
    - attribute
    - fmt
    argTypes:
    - std::string
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 443
    functionName: xml::xmlprintf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 6
    functionsReached:
    - flush
    - exit
    - xml::tagout
    - va_start
    - vasprintf
    - xml::spaces
    - free
    - va_end
    - strerror
    linkageType: ''
    returnType: void
    signature: void xml::xmlprintf(const std::string &tag,const std::string &attribute,
      const char *fmt,...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xml::spaces
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:447,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:448,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:449,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:451,1
    - Dst: xml::xmlescape
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:452,1
    - Dst: xml::tagout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:454,1
    - Dst: flush
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - tag
    - value
    - attribute
    - escape_value
    argTypes:
    - string
    - string
    - string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 458
    functionName: xml::xmlout
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 4
    functionsReached:
    - flush
    - xml::tagout
    - xml::spaces
    - string::size
    - xml::xmlescape
    linkageType: ''
    returnType: void
    signature: void xml::xmlout(const string &tag,const string &value,const string
      &attribute,bool escape_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:483,1
    - Dst: xml::push
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:484,1
    - Dst: xml::xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:486,1
    - Dst: strptime
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:489,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:491,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:492,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:496,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:496,1
    - Dst: tsk_version_get_str
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:496,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:499,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:499,1
    - Dst: af_version
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:499,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:502,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:502,1
    - Dst: libewf_get_version
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:502,1
    - Dst: xml::xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:505,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:505,1
    - Dst: xml::pop
      Src: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 479
    functionDepth: 4
    functionLinenumber: 479
    functionLinenumberEnd: 508
    functionName: xml::add_DFXML_build_environment
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
    functionUses: 1
    functionsReached:
    - memset
    - af_version
    - strptime
    - xml::xmlout
    - tsk_version_get_str
    - xml::push
    - std::string
    - libewf_get_version
    - xml::xmlprintf
    - snprintf
    - xml::pop
    linkageType: ''
    returnType: void
    signature: void xml::add_DFXML_build_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: POINTS_ASCII
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POINTS_ASCII(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - min
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: RANGE
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE(x, min, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: RANGE_SND
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_SND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: UTF8_BOM
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_BOM(p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_BOM
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:20,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:26,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:28,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:29,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:29,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:31,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:31,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:33,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:33,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:35,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:35,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:36,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:36,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:38,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:39,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:39,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:41,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:42,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:42,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 24
    argCount: 1
    argNames:
    - str
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 45
    functionName: sarn_utf8_next
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - RANGE
    - RANGE_SND
    - UTF8_BOM
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_next(const unsigned char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - remain
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: BACK
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACK(str, remain)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BACK
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:50,1
    - Dst: BACK
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:54,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:55,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:55,1
    - Dst: BACK
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:58,1
    - Dst: UTF8_BOM
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:59,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:61,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:62,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:62,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:64,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:64,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:66,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:66,1
    - Dst: BACK
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:69,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:70,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:70,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:71,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:71,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:73,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:74,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:74,1
    - Dst: RANGE
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:76,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:77,1
    - Dst: RANGE_SND
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:77,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 24
    argCount: 2
    argNames:
    - str
    - remain
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: sarn_utf8_prev
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - RANGE
    - RANGE_SND
    - UTF8_BOM
    - BACK
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_prev(unsigned char* str, int remain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sarn_utf8_next
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - index
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: sarn_utf8_realign
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - sarn_utf8_next
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_realign(unsigned char* str, size_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:105,1
    - Dst: luaL_checklong
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:106,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:107,1
    - Dst: lua_pushnil
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:108,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:111,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:114,1
    - Dst: sarn_utf8_next
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:116,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:118,1
    - Dst: lua_pushnumber
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:120,1
    - Dst: strncpy
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:121,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 124
    functionName: sarn_utf8_next_func
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - memset
    - luaL_error
    - lua_pushnumber
    - lua_pushnil
    - lua_pushstring
    - luaL_checklong
    - strncpy
    - strlen
    - sarn_utf8_next
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_next_func(lua_State* L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:132,1
    - Dst: POINTS_ASCII
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:135,1
    - Dst: sarn_utf8_next
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:140,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:142,1
    - Dst: lua_pushnumber
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: sarn_utf8_len_func
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - luaL_error
    - lua_pushnumber
    - POINTS_ASCII
    - sarn_utf8_next
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_len_func(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:157,1
    - Dst: luaL_checklong
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:158,1
    - Dst: luaL_checklong
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:159,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:160,1
    - Dst: lua_pushinteger
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:163,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:168,1
    - Dst: abs
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:173,1
    - Dst: lua_pushnil
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:175,1
    - Dst: sarn_utf8_prev
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:181,1
    - Dst: lua_pushnil
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:183,1
    - Dst: POINTS_ASCII
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:190,1
    - Dst: sarn_utf8_next
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:194,1
    - Dst: lua_pushnil
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:196,1
    - Dst: lua_pushinteger
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:203,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 205
    functionName: sarn_utf8_seek_func
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - sarn_utf8_prev
    - luaL_error
    - sarn_utf8_next
    - lua_pushnil
    - POINTS_ASCII
    - luaL_checklong
    - abs
    - strlen
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_seek_func(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checklong
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:214,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:215,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:219,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:224,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:229,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:237,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:246,1
    - Dst: lua_pushstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:253,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:257,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 258
    functionName: sarn_utf8_char_func
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - memset
    - luaL_error
    - lua_pushstring
    - luaL_checklong
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_char_func(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checklstring
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:269,1
    - Dst: sarn_utf8_next
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:271,1
    - Dst: luaL_error
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:272,1
    - Dst: UTF8_BOM
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:274,1
    - Dst: lua_pushinteger
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:275,1
    - Dst: lua_pushinteger
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: sarn_utf8_code_func
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - UTF8_BOM
    - luaL_error
    - sarn_utf8_next
    - luaL_checklstring
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int sarn_utf8_code_func(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getglobal
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:292,1
    - Dst: lua_pushcfunction
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:293,1
    - Dst: lua_setfield
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:294,1
    - Dst: lua_pushcfunction
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:295,1
    - Dst: lua_setfield
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:296,1
    - Dst: lua_pushcfunction
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:297,1
    - Dst: lua_setfield
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:298,1
    - Dst: lua_pushcfunction
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:299,1
    - Dst: lua_setfield
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:300,1
    - Dst: lua_pushcfunction
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:301,1
    - Dst: lua_setfield
      Src: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 304
    functionName: luaopen_libluautf8
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
    functionUses: 0
    functionsReached:
    - lua_setfield
    - lua_getglobal
    - lua_pushcfunction
    linkageType: ''
    returnType: int
    signature: int luaopen_libluautf8 (lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:111,1
    - Dst: tsk_version_get_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:111,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:113,1
    - Dst: af_version
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:113,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:115,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:118,1
    - Dst: libewf_get_version
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:118,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: print_version
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 1
    functionsReached:
    - tsk_version_get_str
    - printf
    - libewf_get_version
    - af_version
    linkageType: ''
    returnType: void
    signature: void print_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:127,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:128,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:129,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:130,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:131,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:133,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:134,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:135,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:136,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:137,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:138,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:139,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:140,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:141,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:142,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:143,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:144,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:145,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:146,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:147,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:149,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:151,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:152,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:153,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:154,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:155,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:157,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:159,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:163,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:164,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:165,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:166,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:167,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:168,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:169,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:170,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:171,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:172,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:173,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:179,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:180,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:181,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:182,1
    - Dst: print_version
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:183,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 185
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 30
    functionsReached:
    - exit
    - print_version
    - printf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: cstr
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - string::c_str
    linkageType: ''
    returnType: char
    signature: char *cstr(const string &str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:214,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:215,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:216,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:218,1
    - Dst: xmlcomment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:219,1
    - Dst: add_comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: comment
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 5
    functionsReached:
    - vsnprintf
    - fprintf
    - add_comment
    - va_start
    - xmlcomment
    - va_end
    linkageType: ''
    returnType: void
    signature: void comment(const char *format,...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string::find
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:235,1
    - Dst: err
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:235,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:235,1
    - Dst: add_comment
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:236,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:237,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:237,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - name
    - value
    - attribute
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: partition_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 1
    functionsReached:
    - cstr
    - string::find
    - add_comment
    - fputs
    - err
    - xmlout
    linkageType: ''
    returnType: void
    signature: void partition_info(const string &name,const string &value,const string
      &attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: partition_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 2
    functionsReached:
    - partition_info
    linkageType: ''
    returnType: void
    signature: void partition_info(const string &name,const string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:249,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - i
    argTypes:
    - string
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: partition_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 3
    functionsReached:
    - partition_info
    - snprintf
    linkageType: ''
    returnType: void
    signature: void partition_info(const string &name,long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:256,1
    - Dst: partition_info
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ts
    argTypes:
    - string
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: partition_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - partition_info
    - snprintf
    linkageType: ''
    returnType: void
    signature: void partition_info(const string &name, const struct timeval &ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:268,1
    - Dst: puts
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:269,1
    - Dst: pop
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: file_info_xml
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 1
    functionsReached:
    - puts
    - push
    - pop
    linkageType: ''
    returnType: void
    signature: void file_info_xml(const string &name,const string &value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_value
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:277,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:278,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:278,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:279,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: file_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - cstr
    - fputs
    - std::string
    - add_value
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_info(const string &name,const string &value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_value
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:285,1
    - Dst: md5_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:285,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:286,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:286,1
    - Dst: md5_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:286,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:287,1
    - Dst: md5_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - md5_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: file_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - cstr
    - fputs
    - md5_t::hexdigest
    - add_value
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_info(const md5_t &h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_value
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:292,1
    - Dst: sha1_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:292,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:293,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:293,1
    - Dst: sha1_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:293,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:294,1
    - Dst: sha1_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - sha1_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: file_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - cstr
    - fputs
    - sha1_t::hexdigest
    - add_value
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_info(const sha1_t &h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_value
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:299,1
    - Dst: sha256_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:299,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:300,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:300,1
    - Dst: sha256_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:300,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:301,1
    - Dst: sha256_t::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - sha256_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: file_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - cstr
    - sha256_t::hexdigest
    - fputs
    - add_value
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_info(const sha256_t &h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_value
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:308,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:310,1
    - Dst: cstr
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:310,1
    - Dst: xmlprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: file_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 4
    functionsReached:
    - fprintf
    - cstr
    - add_value
    - xmlprintf
    linkageType: ''
    returnType: void
    signature: void file_info(const string name, int64_t value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:320,1
    - Dst: add_valuet
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:337,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:341,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:341,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:342,1
    - Dst: string::compare
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:344,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:345,1
    - Dst: string::compare
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:346,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:347,1
    - Dst: string::compare
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:348,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:349,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:352,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:356,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:356,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:357,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:357,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:358,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - name
    - t0
    - ftype
    argTypes:
    - string
    - time_t
    - TSK_FS_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 360
    functionName: file_infot
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 1
    functionsReached:
    - string::compare
    - fprintf
    - TSK_FS_TYPE_ISFAT
    - strftime
    - gmtime
    - string::c_str
    - add_valuet
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_infot(const string name,time_t t0, TSK_FS_TYPE_ENUM ftype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_valuet
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:370,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:374,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:374,1
    - Dst: xmlout
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:375,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:379,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:379,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:380,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:380,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:381,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - name
    - t0
    argTypes:
    - string
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 383
    functionName: file_infot
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    - strftime
    - gmtime
    - string::c_str
    - add_valuet
    - xmlout
    linkageType: ''
    returnType: void
    signature: void file_infot(const string name,time_t t0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:388,1
    - Dst: ctime
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:389,1
    - Dst: string
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: mytime
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - ctime
    - string
    - time
    linkageType: ''
    returnType: string
    signature: string mytime()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - u_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: has_unprintable
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - isprint
    linkageType: ''
    returnType: bool
    signature: bool has_unprintable(const u_char *buf,int buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:407,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: sig_info
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void sig_info(int /*arg*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - segname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: af_display_as_quad
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int af_display_as_quad(const char *segname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:434,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:435,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:436,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - segname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: af_display_as_hex
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int af_display_as_hex(const char *segname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:448,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:451,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:451,1
    - Dst: tsk_UTF16toUTF8
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:454,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:459,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - OPTARG
    - _opt_arg
    argTypes:
    - TSK_TCHAR*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 465
    functionName: convert
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
    functionUses: 0
    functionsReached:
    - tsk_malloc
    - printf
    - TSTRLEN
    - tsk_UTF16toUTF8
    linkageType: ''
    returnType: int
    signature: int convert(TSK_TCHAR *OPTARG, char **_opt_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - relation_name
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: arff::arff
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arff(string relation_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: arff::set_outfile
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_outfile(FILE *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tools/fiwalk/src/arff.h:72,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.h:72,1
    - Dst: perror
      Src: /src/sleuthkit/tools/fiwalk/src/arff.h:72,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.h:72,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fn
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: arff::set_outfile
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.h
    functionUses: 0
    functionsReached:
    - perror
    - exit
    - fopen
    - string::c_str
    linkageType: ''
    returnType: void
    signature: void set_outfile(string fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:40,1
    - Dst: vfprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:41,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:42,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:43,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:43,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: err
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 8
    functionsReached:
    - fprintf
    - exit
    - va_start
    - vfprintf
    - va_end
    - strerror
    linkageType: ''
    returnType: void
    signature: void err(int eval,const char *fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:53,1
    - Dst: vfprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:54,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:55,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:55,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:56,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: errx
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 1
    functionsReached:
    - fprintf
    - exit
    - va_start
    - vfprintf
    - va_end
    - strerror
    linkageType: ''
    returnType: void
    signature: void errx(int eval,const char *fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:66,1
    - Dst: vfprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:67,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:68,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: warn
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 2
    functionsReached:
    - vfprintf
    - fprintf
    - va_start
    - strerror
    linkageType: ''
    returnType: void
    signature: void warn(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:77,1
    - Dst: vfprintf
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:78,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: warnx
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void warnx(const char *fmt,...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lseek
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:90,1
    - Dst: read
      Src: /src/sleuthkit/tools/fiwalk/src/utils.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - offset
    argTypes:
    - unsigned int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: pread
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 0
    functionsReached:
    - read
    - _lseek
    linkageType: ''
    returnType: int
    signature: int pread(unsigned int fd, char *buf, size_t count, int offset)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: ishexnumber
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ishexnumber(int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/sleuthkit/tools/fiwalk/src/hexbuf.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - dst
    - dst_len
    - bin
    - bytes
    - flag
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 39
    functionName: hexbuf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hexbuf.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *hexbuf(char *dst,int dst_len,const unsigned char *bin,int bytes,int
      flag)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - v
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: hash__::hexcharval
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hexcharval(char v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: hash__::hash__
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash__()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provided
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: hash__::hash__
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void hash__(const uint8_t *provided)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: hash__::final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *final() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hexbuf
    - bufsize
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: hash__::hexdigest
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *hexdigest(char *hexbuf,size_t bufsize) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:128,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:130,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:132,1
    - Dst: hash__::hexdigest
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:132,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: hash__::hexdigest
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 1
    functionsReached:
    - free
    - hash__::hexdigest
    - std::string
    - calloc
    linkageType: ''
    returnType: std::string
    signature: std::string hexdigest() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash__::hexcharval
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:149,1
    - Dst: hash__::hexcharval
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - binbuf
    - binbuf_size
    - hex
    argTypes:
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: hash__::hex2bin
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - hash__::hexcharval
    linkageType: ''
    returnType: int
    signature: int hex2bin(uint8_t *binbuf,size_t binbuf_size,const char *hex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash__::hash__
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:157,1
    - Dst: hash__::hex2bin
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:158,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: hash__::new_from_hex
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - exit
    - hash__::hex2bin
    - hash__::hash__
    linkageType: ''
    returnType: hash__
    signature: hash__ *new_from_hex(const char *hex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s2
    argTypes:
    - hash__
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: operator<(const hash__ &s2) const
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator<(const hash__ &s2) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s2
    argTypes:
    - hash__
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: operator==(const hash__ &s2) const
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==(const hash__ &s2) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: hash_generator__::iszero
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool iszero(const uint8_t *buf,size_t bufsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:203,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:204,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:205,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:206,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:212,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:213,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:214,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:215,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:221,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:222,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:228,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:229,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    constantsTouched: []
    func_position:
      end: 237
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 237
    functionName: hash_generator__::hash_generator__
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void hash_generator__()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: ~hash_generator__()
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~hash_generator__()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md_init
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: hash_generator__::init
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - md_init
    linkageType: ''
    returnType: void
    signature: void init()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hash_generator__::init
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:250,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:253,1
    - Dst: md_update
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: hash_generator__::update
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - exit
    - hash_generator__::init
    - md_update
    linkageType: ''
    returnType: void
    signature: void update(const uint8_t *buf,size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:259,1
    - Dst: free
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: hash_generator__::release
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:269,1
    - Dst: hash_generator__::init
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:273,1
    - Dst: hash__::hash__
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:275,1
    - Dst: md_final
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: hash_generator__::final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - hash_generator__::init
    - md_final
    - hash__::hash__
    - assert
    linkageType: ''
    returnType: hash__<T>
    signature: hash__<T> final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_generator__::hash_generator__
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:284,1
    - Dst: hash_generator__::update
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:285,1
    - Dst: hash_generator__::final
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: hash_generator__::hash_buf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - hash_generator__::final
    - hash_generator__::update
    - hash_generator__::hash_generator__
    linkageType: ''
    returnType: hash__<T>
    signature: hash__<T> hash_buf(const uint8_t *buf,size_t bufsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:292,1
    - Dst: fstat
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:299,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:300,1
    - Dst: mmap
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:303,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:305,1
    - Dst: hash_generator__::hash_buf
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:308,1
    - Dst: munmap
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:309,1
    - Dst: close
      Src: /src/sleuthkit/tools/fiwalk/src/hash_t.h:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 312
    functionName: hash_generator__::hash_file
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/hash_t.h
    functionUses: 0
    functionsReached:
    - hash_generator__::hash_buf
    - mmap
    - open
    - close
    - fstat
    - munmap
    linkageType: ''
    returnType: hash__<T>
    signature: hash__<T> hash_file(const char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - f
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: IS_IN_RANGE
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_IN_RANGE(c, f, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:47,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: hexesc
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string hexesc(unsigned char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: utf8cont
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool utf8cont(unsigned char ch)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 1
    argNames:
    - unichar
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 94
    functionName: invalid_utf8unichar
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invalid_utf8unichar(uint32_t unichar)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:108,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:109,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:113,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:119,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:131,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:132,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:132,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:133,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:133,1
    - Dst: invalid_utf8unichar
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:136,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:137,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:139,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:139,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:140,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:140,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:144,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:145,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:151,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:152,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:152,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:153,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:153,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:154,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:155,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:156,1
    - Dst: invalid_utf8unichar
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:158,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:159,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:159,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:160,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:160,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:164,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:165,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:166,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:172,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:173,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:173,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:174,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:174,1
    - Dst: utf8cont
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:175,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:175,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:176,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:177,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:178,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:179,1
    - Dst: invalid_utf8unichar
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:181,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:182,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:182,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:183,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:183,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:184,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:184,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:185,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:185,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:188,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:189,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:190,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:191,1
    - Dst: hexesc
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:196,1
    - Dst: std::string::at
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:196,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 55
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 199
    functionName: validateOrEscapeUTF8
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 2
    functionsReached:
    - hexesc
    - utf8cont
    - invalid_utf8unichar
    - std::string::at
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: std::string validateOrEscapeUTF8(std::string input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validateOrEscapeUTF8
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:211,1
    - Dst: utf8::utf8to16
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:215,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:215,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:215,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:217,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:218,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:219,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:221,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:222,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:223,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:225,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:232,1
    - Dst: getline
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:238,1
    - Dst: validateOrEscapeUTF8
      Src: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 242
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
    functionUses: 0
    functionsReached:
    - std::string::end
    - exit
    - printf
    - std::string::begin
    - validateOrEscapeUTF8
    - std::back_inserter
    - utf8::utf8to16
    - std::string::size
    - getline
    linkageType: ''
    returnType: int
    signature: int main(int argc,char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: SHFR
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHFR(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: ROTR
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ROTL
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: CH
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CH(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MAJ
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SHA256_F1
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_F1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SHA256_F2
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_F2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: SHA256_F3
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_F3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SHA256_F4
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_F4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SHA512_F1
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_F1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: SHA512_F2
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_F2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: SHA512_F3
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_F3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SHA512_F4
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_F4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: UNPACK32
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK32(x, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: PACK32
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK32(str, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: UNPACK64
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK64(x, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: PACK64
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK64(str, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: SHA256_SCR
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_SCR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: SHA512_SCR
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_SCR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: SHA256_EXP
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_EXP(a, b, c, d, e, f, g, h, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: SHA512_EXP
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_EXP(a, b, c, d, e, f, g ,h, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:230,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:234,1
    - Dst: SHA256_F2
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:242,1
    - Dst: CH
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:242,1
    - Dst: SHA256_F1
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:244,1
    - Dst: MAJ
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:244,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:259,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:259,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:260,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:260,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:261,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:261,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:262,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:262,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:263,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:263,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:264,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:264,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:265,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:265,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:266,1
    - Dst: PACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:266,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:268,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:268,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:268,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:268,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:269,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:269,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:269,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:269,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:270,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:270,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:270,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:270,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:271,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:271,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:271,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:271,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:272,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:272,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:272,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:272,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:273,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:273,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:273,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:273,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:274,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:274,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:274,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:274,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:275,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:275,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:275,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:275,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:276,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:276,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:276,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:276,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:277,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:277,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:277,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:277,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:278,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:278,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:278,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:278,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:279,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:279,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:279,1
    - Dst: SHA256_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:279,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:286,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:286,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:287,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:287,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:288,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:288,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:289,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:289,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:290,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:290,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:291,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:291,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:292,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:292,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:293,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:293,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:294,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:294,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:295,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:295,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:296,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:296,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:297,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:297,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:298,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:298,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:299,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:299,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:300,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:300,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:301,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:301,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:302,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:302,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:303,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:303,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:304,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:304,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:305,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:305,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:306,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:306,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:307,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:307,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:308,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:308,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:309,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:309,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:310,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:310,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:311,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:311,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:312,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:312,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:313,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:313,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:314,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:314,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:315,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:315,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:316,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:316,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:317,1
    - Dst: SHA256_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 172
    argCount: 3
    argNames:
    - ctx
    - message
    - block_nb
    argTypes:
    - SHA256_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 325
    functionName: sha256_transf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - MAJ
    - PACK32
    - SHA256_EXP
    - SHA256_F2
    - CH
    - SHA256_F1
    - SHA256_SCR
    linkageType: ''
    returnType: void
    signature: "void sha256_transf(SHA256_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int block_nb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:331,1
    - Dst: SHA256_Update
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:332,1
    - Dst: SHA256_Final
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - message
    - len
    - digest
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: SHA256
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - SHA256_Init
    - SHA256_Final
    linkageType: ''
    returnType: void
    signature: void SHA256(const unsigned char *message, unsigned int len, unsigned
      char *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: SHA256_Init
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA256_Init(SHA256_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:364,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:376,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:377,1
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - message
    - len
    argTypes:
    - SHA256_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 386
    functionName: SHA256_Update
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 2
    functionsReached:
    - sha256_transf
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update(SHA256_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:404,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:406,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:408,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:412,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:415,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:416,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:417,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:418,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:419,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:420,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:421,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - SHA256_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 424
    functionName: SHA256_Final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 2
    functionsReached:
    - memset
    - UNPACK32
    - sha256_transf
    linkageType: ''
    returnType: void
    signature: void SHA256_Final(SHA256_CTX *ctx, unsigned char *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:442,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:446,1
    - Dst: SHA512_F2
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:454,1
    - Dst: CH
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:454,1
    - Dst: SHA512_F1
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:456,1
    - Dst: MAJ
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:456,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:471,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:471,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:472,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:472,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:473,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:473,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:474,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:474,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:475,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:475,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:476,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:476,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:477,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:477,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:478,1
    - Dst: PACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:478,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:480,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:480,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:480,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:480,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:481,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:481,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:481,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:481,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:482,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:482,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:482,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:482,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:483,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:483,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:483,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:483,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:484,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:484,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:484,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:484,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:485,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:485,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:485,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:485,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:486,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:486,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:486,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:486,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:487,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:487,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:487,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:487,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:488,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:488,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:488,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:488,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:489,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:489,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:489,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:489,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:490,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:490,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:490,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:490,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:491,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:491,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:491,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:491,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:492,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:492,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:492,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:492,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:493,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:493,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:493,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:493,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:494,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:494,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:494,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:494,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:495,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:495,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:495,1
    - Dst: SHA512_SCR
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:495,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:505,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:506,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:507,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:508,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:509,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:510,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:511,1
    - Dst: SHA512_EXP
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:512,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 143
    argCount: 3
    argNames:
    - ctx
    - message
    - block_nb
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 521
    functionName: sha512_transf
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - SHA512_EXP
    - SHA512_F1
    - MAJ
    - PACK64
    - CH
    - SHA512_SCR
    - SHA512_F2
    linkageType: ''
    returnType: void
    signature: "void sha512_transf(SHA512_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int block_nb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:528,1
    - Dst: SHA512_Update
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:529,1
    - Dst: SHA512_Final
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - message
    - len
    - digest
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 531
    functionName: SHA512
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - SHA512_Init
    - SHA512_Update
    linkageType: ''
    returnType: void
    signature: "void SHA512(const unsigned char *message, unsigned int len,\n            unsigned
      char *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 549
    functionName: SHA512_Init
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA512_Init(SHA512_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:561,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:573,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:574,1
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - message
    - len
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 583
    functionName: SHA512_Update
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - sha512_transf
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHA512_Update(SHA512_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:601,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:603,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:605,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:609,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:612,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:613,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:614,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:615,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:616,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:617,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:618,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 621
    functionName: SHA512_Final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - memset
    - UNPACK32
    - sha512_transf
    - UNPACK64
    linkageType: ''
    returnType: void
    signature: void SHA512_Final(SHA512_CTX *ctx, unsigned char *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:630,1
    - Dst: SHA384_Update
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:631,1
    - Dst: SHA384_Final
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - message
    - len
    - digest
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: SHA384
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - SHA384_Final
    - SHA384_Init
    - SHA384_Update
    linkageType: ''
    returnType: void
    signature: "void SHA384(const unsigned char *message, unsigned int len,\n            unsigned
      char *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA384_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 651
    functionName: SHA384_Init
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA384_Init(SHA384_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:663,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:675,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:676,1
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - message
    - len
    argTypes:
    - SHA384_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 685
    functionName: SHA384_Update
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - sha512_transf
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHA384_Update(SHA384_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:703,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:705,1
    - Dst: sha512_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:707,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:711,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:714,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:715,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:716,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:717,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:718,1
    - Dst: UNPACK64
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - SHA384_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 721
    functionName: SHA384_Final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - memset
    - UNPACK32
    - sha512_transf
    - UNPACK64
    linkageType: ''
    returnType: void
    signature: void SHA384_Final(SHA384_CTX *ctx, unsigned char *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Init
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:730,1
    - Dst: SHA224_Update
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:731,1
    - Dst: SHA224_Final
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - message
    - len
    - digest
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 733
    functionName: SHA224
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - SHA224_Init
    - SHA224_Update
    - SHA224_Final
    linkageType: ''
    returnType: void
    signature: "void SHA224(const unsigned char *message, unsigned int len,\n            unsigned
      char *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA224_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 751
    functionName: SHA224_Init
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA224_Init(SHA224_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:763,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:775,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:776,1
    - Dst: memcpy
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - message
    - len
    argTypes:
    - SHA224_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 785
    functionName: SHA224_Update
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - sha256_transf
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHA224_Update(SHA224_CTX *ctx, const unsigned char *message,\n
      \                  unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:803,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:805,1
    - Dst: sha256_transf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:807,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:811,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:814,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:815,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:816,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:817,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:818,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:819,1
    - Dst: UNPACK32
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - digest
    argTypes:
    - SHA224_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 822
    functionName: SHA224_Final
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - memset
    - UNPACK32
    - sha256_transf
    linkageType: ''
    returnType: void
    signature: void SHA224_Final(SHA224_CTX *ctx, unsigned char *digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:840,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:843,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:844,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:845,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - vector
    - digest
    - digest_size
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 848
    functionName: test
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 1
    functionsReached:
    - sprintf
    - fprintf
    - exit
    - printf
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void test(const char *vector, unsigned char *digest,\n          unsigned
      int digest_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:895,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:897,1
    - Dst: memset
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:900,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:902,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:903,1
    - Dst: sha224
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:905,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:905,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:906,1
    - Dst: sha224
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:907,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:907,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:908,1
    - Dst: sha224
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:909,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:910,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:911,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:913,1
    - Dst: sha256
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:915,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:915,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:916,1
    - Dst: sha256
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:917,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:917,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:918,1
    - Dst: sha256
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:919,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:920,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:921,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:923,1
    - Dst: sha384
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:925,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:925,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:926,1
    - Dst: sha384
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:927,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:927,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:928,1
    - Dst: sha384
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:929,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:930,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:931,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:933,1
    - Dst: sha512
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:935,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:935,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:936,1
    - Dst: sha512
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:937,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:937,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:938,1
    - Dst: sha512
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:939,1
    - Dst: test
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:940,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:941,1
    - Dst: printf
      Src: /src/sleuthkit/tools/fiwalk/src/sha2.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 946
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/sha2.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    - fprintf
    - sha224
    - printf
    - test
    - sha384
    - sha512
    - strlen
    - sha256
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:49,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:49,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:50,1
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: has_non_numeric
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - string::begin
    - string::end
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool has_non_numeric(const string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:63,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:63,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:63,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:63,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:64,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:64,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:65,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:65,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:67,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:67,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:68,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:68,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:69,1
    - Dst: isdigit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:69,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:69,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: arff::is_weka_date
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - string::size
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool arff::is_weka_date(const string &s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:79,1
    - Dst: regexec
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:81,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: arff::is_msword_date
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - regcomp
    - regexec
    - string::c_str
    linkageType: ''
    returnType: bool
    signature: bool arff::is_msword_date(const string &s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:91,1
    - Dst: regexec
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:93,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: arff::is_exif_date
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - regcomp
    - regexec
    - string::c_str
    linkageType: ''
    returnType: bool
    signature: bool arff::is_exif_date(const string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arff::is_msword_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:105,1
    - Dst: arff::is_exif_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:105,1
    - Dst: arff::is_weka_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: arff::is_recognized_date_format
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - arff::is_exif_date
    - arff::is_msword_date
    - arff::is_weka_date
    linkageType: ''
    returnType: bool
    signature: bool arff::is_recognized_date_format(const string &s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arff::is_msword_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:125,1
    - Dst: string::replace
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:128,1
    - Dst: string::erase
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:129,1
    - Dst: arff::is_exif_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:131,1
    - Dst: string::replace
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:133,1
    - Dst: string::replace
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:134,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:137,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:137,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:138,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:139,1
    - Dst: string::length
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:142,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:143,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 148
    functionName: arff::make_weka_date
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - arff::is_msword_date
    - string::length
    - fprintf
    - exit
    - string::replace
    - string::c_str
    - arff::is_exif_date
    - string::erase
    linkageType: ''
    returnType: string
    signature: string arff::make_weka_date(const string &s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comment
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: arff::add_comment
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void arff::add_comment(string comment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: arff::has_attribute
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool arff::has_attribute(const string &name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:172,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:177,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:178,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - code
    argTypes:
    - string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: arff::add_attribute
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - size
    linkageType: ''
    returnType: void
    signature: void arff::add_attribute(string name,int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:187,1
    - Dst: valueMapT::valueMapT
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: arff::new_row
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - valueMapT::valueMapT
    - push_back
    linkageType: ''
    returnType: void
    signature: void arff::new_row()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:198,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:198,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:198,1
    - Dst: find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:201,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:201,1
    - Dst: arff::add_attribute
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:202,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: arff::add_value
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - back
    - fprintf
    - find
    - arff::add_attribute
    - end
    - string::c_str
    linkageType: ''
    returnType: void
    signature: void arff::add_value(string name,const string &value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:225,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:225,1
    - Dst: arff::add_attribute
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:226,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:230,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:230,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - name
    - t
    argTypes:
    - string
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: arff::add_valuet
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - back
    - find
    - strftime
    - arff::add_attribute
    - end
    - gmtime
    linkageType: ''
    returnType: void
    signature: void arff::add_valuet(string name,time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:241,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:241,1
    - Dst: arff::add_attribute
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:242,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:251,1
    - Dst: gmtime
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:251,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:254,1
    - Dst: back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - string
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: arff::add_value
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - back
    - find
    - strftime
    - arff::add_attribute
    - end
    - snprintf
    - gmtime
    linkageType: ''
    returnType: void
    signature: void arff::add_value(string name,int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - attributeName
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: arff::attributeCol
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int arff::attributeCol(const string &attributeName) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arff::attributeCol
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:273,1
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:274,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:274,1
    - Dst: find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:275,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:276,1
    - Dst: second::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:277,1
    - Dst: has_non_numeric
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - attributeName
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: arff::attributeAlwaysNumeric
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - begin
    - find
    - end
    - has_non_numeric
    - second::c_str
    - arff::attributeCol
    linkageType: ''
    returnType: bool
    signature: bool arff::attributeAlwaysNumeric(const string &attributeName) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arff::attributeCol
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:286,1
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:287,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:287,1
    - Dst: find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:288,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:289,1
    - Dst: second::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:290,1
    - Dst: arff::is_recognized_date_format
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - attributeName
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: arff::attributeAlwaysDate
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - arff::is_recognized_date_format
    - begin
    - find
    - end
    - second::c_str
    - arff::attributeCol
    linkageType: ''
    returnType: bool
    signature: bool arff::attributeAlwaysDate(const string &attributeName) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:298,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: arff::needs_quoting
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - string::begin
    - string::end
    linkageType: ''
    returnType: bool
    signature: bool arff::needs_quoting(const string &str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:314,1
    - Dst: valueMapT::find
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:315,1
    - Dst: valueMapT::end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:318,1
    - Dst: arff::is_weka_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:324,1
    - Dst: arff::make_weka_date
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:325,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:329,1
    - Dst: arff::needs_quoting
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:334,1
    - Dst: string::length
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:336,1
    - Dst: string::push_back
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:337,1
    - Dst: string::size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:341,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:342,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:343,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:343,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:345,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - out
    - row
    argTypes:
    - FILE*
    - valueMapT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 346
    functionName: arff::write_row
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - valueMapT::end
    - string::push_back
    - size
    - string::length
    - arff::make_weka_date
    - fprintf
    - valueMapT::find
    - string::c_str
    - arff::is_weka_date
    - string::size
    - arff::needs_quoting
    linkageType: ''
    returnType: void
    signature: void arff::write_row(FILE *out,const valueMapT &row)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:357,1
    - Dst: arff::attributeAlwaysNumeric
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:358,1
    - Dst: arff::attributeAlwaysDate
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:361,1
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:366,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:367,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:369,1
    - Dst: vector<string>::const_iterator::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:369,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:371,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:372,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:372,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:373,1
    - Dst: size
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:376,1
    - Dst: string::begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:380,1
    - Dst: string::end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:380,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:385,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:385,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:388,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:388,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:391,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:391,1
    - Dst: assert
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:394,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:399,1
    - Dst: begin
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:400,1
    - Dst: end
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:401,1
    - Dst: arff::write_row
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:403,1
    - Dst: fflush
      Src: /src/sleuthkit/tools/fiwalk/src/arff.cpp:405,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    constantsTouched: []
    func_position:
      end: 406
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 406
    functionName: arff::write
    functionSourceFile: /src/sleuthkit/tools/fiwalk/src/arff.cpp
    functionUses: 0
    functionsReached:
    - arff::write_row
    - size
    - assert
    - fflush
    - fprintf
    - vector<string>::const_iterator::c_str
    - begin
    - arff::attributeAlwaysNumeric
    - arff::attributeAlwaysDate
    - end
    - string::end
    - string::c_str
    - string::begin
    - c_str
    linkageType: ''
    returnType: void
    signature: void arff::write()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:19,1
    - Dst: exit
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:20,1
    - Dst: snprintf
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:22,1
    - Dst: popen
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:23,1
    - Dst: perror
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:24,1
    - Dst: fgets
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:29,1
    - Dst: strncmp
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:31,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:32,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:43,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:44,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:45,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:46,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:47,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:47,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:48,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:52,1
    - Dst: pclose
      Src: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp:56,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp
    functionUses: 0
    functionsReached:
    - perror
    - strncmp
    - strchr
    - fprintf
    - exit
    - popen
    - pclose
    - putchar
    - fgets
    - snprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc,char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: RegFileInfo::getName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: RegFileInfo::getPath
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getPath() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: RegFileInfo::getOffset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getOffset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: RegFileInfo::getMetaAddr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getMetaAddr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: RegFileInfo::getHiveType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RegHiveType::Enum
    signature: RegHiveType::Enum getHiveType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: RegFileInfo::getPathName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getPathName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: RegFileInfo::getUserName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getUserName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: RegFileInfo::setUserAccountName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setUserAccountName(const std::string & a_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a_sid'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: RegFileInfo::setUserSID
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setUserSID(const std::string & a_sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '&getRegParser() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RegParser
    signature: RegParser &getRegParser() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.h:58,1
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - RegFileInfo*
    - RegFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator()(RegFileInfo *lhs, RegFileInfo *rhs)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
    functionUses: 0
    functionsReached:
    - RegFileInfo*::getHiveType
    linkageType: ''
    returnType: bool
    signature: bool operator()(RegFileInfo *lhs, RegFileInfo *rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: RegParser::RegParser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: RegParser::RegParser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegParser(const RegParser &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& operator=(const RegParser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RegParser
    signature: RegParser & operator=(const RegParser&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:39,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:39,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:41,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:41,1
    - Dst: exit
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:42,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:45,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:51,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - outputFilePath
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: RegistryAnalyzer::RegistryAnalyzer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - fopen
    - fprintf
    - exit
    - ReportUtil::consoleOutput
    - c_str
    linkageType: ''
    returnType: void
    signature: void RegistryAnalyzer::RegistryAnalyzer(const std::string &outputFilePath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: RegistryAnalyzer::~RegistryAnalyzer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void RegistryAnalyzer::~RegistryAnalyzer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::clear
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:73,1
    - Dst: gmtime_s
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:80,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:83,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:89,1
    - Dst: std::setw
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:89,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - aTime
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: getTimeStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - std::string::clear
    - std::setw
    - strftime
    - std::stringstream::str
    - std::setfill
    - gmtime_s
    linkageType: ''
    returnType: std::string
    signature: std::string getTimeStr(time_t aTime, unsigned long aFractionSecs =
      0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ft'
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: filetimeToTimet
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t filetimeToTimet(const FILETIME& ft)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTimeStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:121,1
    - Dst: filetimeToTimet
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - filetime
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: FiletimeToStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - filetimeToTimet
    - getTimeStr
    linkageType: ''
    returnType: std::string
    signature: std::string FiletimeToStr(FILETIME filetime)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ' acctType'
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: samUserTypeToAccountType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: USER_ACCOUNT_TYPE::Enum
    signature: USER_ACCOUNT_TYPE::Enum samUserTypeToAccountType(uint32_t& acctType)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ' acctType'
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: samUserTypeToAdminPriv
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: USER_ADMIN_PRIV::Enum
    signature: USER_ADMIN_PRIV::Enum samUserTypeToAdminPriv(uint32_t& acctType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::RegistryLoader
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:195,1
    - Dst: RegistryLoader*::getSAMHive
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:197,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:199,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:200,1
    - Dst: RegFileInfo*::getRegParser
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:204,1
    - Dst: RegParser::getSubKeys
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:212,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:214,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:214,1
    - Dst: RegKey::RegKey
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:217,1
    - Dst: RegParser::getKey
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:218,1
    - Dst: RegKey*::getModifyTime
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:220,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:227,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:229,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:229,1
    - Dst: RegParser::getSubKeys
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:236,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:238,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:238,1
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:239,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:239,1
    - Dst: RegVal::RegVal
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:253,1
    - Dst: RegVal*::setValName
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:255,1
    - Dst: RegParser::getValue
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:256,1
    - Dst: RegistryAnalyzer::parseSAMVRecord
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:258,1
    - Dst: RegVal*::getBinary
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:258,1
    - Dst: RegVal*::getValLen
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:258,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:262,1
    - Dst: samUserTypeToAccountType
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:263,1
    - Dst: samUserTypeToAdminPriv
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:264,1
    - Dst: RegVal::RegVal
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:287,1
    - Dst: RegVal*::setValName
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:289,1
    - Dst: RegParser::getValue
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:291,1
    - Dst: RegistryAnalyzer::parseSAMFRecord
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:294,1
    - Dst: RegVal*::getBinary
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:294,1
    - Dst: RegVal*::getValLen
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:294,1
    - Dst: FiletimeToStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:297,1
    - Dst: FiletimeToStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:298,1
    - Dst: FiletimeToStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:299,1
    - Dst: std::map::find
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:301,1
    - Dst: std::map::end
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:302,1
    - Dst: FiletimeToStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:303,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:306,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:307,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:307,1
    - Dst: UserAccount::setUserDomain
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:321,1
    - Dst: UserAccount::setAccountType
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:322,1
    - Dst: UserAccount::setAdminPriv
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:323,1
    - Dst: UserAccount::setDateCreated
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:325,1
    - Dst: UserAccount::setLastLoginDate
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:326,1
    - Dst: UserAccount::setLoginCount
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:327,1
    - Dst: UserAccount::setAccountLocation
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:329,1
    - Dst: UserAccount::setDisabled
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:330,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:332,1
    - Dst: UserAccount::getUserName
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:333,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:334,1
    - Dst: UserAccount::getUserDomain
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:335,1
    - Dst: UserAccount::getHomeDir
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:336,1
    - Dst: UserAccount::getAccountType
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:337,1
    - Dst: UserAccount::getAdminPriv
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:338,1
    - Dst: UserAccount::getDateCreated
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:339,1
    - Dst: UserAccount::getLastLoginDate
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:340,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:341,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:342,1
    - Dst: UserAccount::getLoginCount
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:343,1
    - Dst: UserAccount::getAccountLocationStr
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:344,1
    - Dst: UserAccount::isDisabled
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:345,1
    - Dst: UserAccount::getAccountStatus
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:346,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:354,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:356,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:356,1
    - Dst: std::current_exception
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:361,1
    - Dst: std::rethrow_exception
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:363,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:367,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:367,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:368,1
    - Dst: what
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:368,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:372,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 375
    functionName: RegistryAnalyzer::analyzeSAMUsers
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - UserAccount::getLastLoginDate
    - RegParser::getValue
    - RegParser::getKey
    - UserAccount::setUserDomain
    - UserAccount::setAccountType
    - samUserTypeToAccountType
    - UserAccount::getAccountStatus
    - UserAccount::getAccountType
    - std::vector::begin
    - RegVal*::getValLen
    - RegVal::RegVal
    - samUserTypeToAdminPriv
    - RegistryLoader*::getSAMHive
    - RegVal*::setValName
    - RegKey::RegKey
    - RegFileInfo*::getRegParser
    - RegistryAnalyzer::parseSAMFRecord
    - UserAccount::setDisabled
    - UserAccount::setAdminPriv
    - UserAccount::setDateCreated
    - UserAccount::setLastLoginDate
    - what
    - RegistryLoader::RegistryLoader
    - std::string::c_str
    - UserAccount::getLoginCount
    - std::vector::end
    - RegVal*::getBinary
    - TskHelper::toNarrow
    - ReportUtil::consoleOutput
    - UserAccount::getUserName
    - std::map::end
    - UserAccount::getDateCreated
    - UserAccount::getAdminPriv
    - UserAccount::setLoginCount
    - UserAccount::getHomeDir
    - std::current_exception
    - UserAccount::getAccountLocationStr
    - std::map::find
    - TskHelper::startsWith
    - std::rethrow_exception
    - fclose
    - UserAccount::isDisabled
    - UserAccount::getUserDomain
    - RegKey*::getModifyTime
    - UserAccount::setAccountLocation
    - RegistryAnalyzer::parseSAMVRecord
    - FiletimeToStr
    - RegParser::getSubKeys
    linkageType: ''
    returnType: int
    signature: int RegistryAnalyzer::analyzeSAMUsers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: makeDWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD makeDWORD(const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: makeWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WORD
    signature: WORD makeWORD(const unsigned char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:394,1
    - Dst: std::wstring_convert::from_bytes
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:398,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:399,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: utf16LEToWString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 0
    functionsReached:
    - std::wstring_convert::from_bytes
    - std::wstring
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring utf16LEToWString(const unsigned char *buf, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:433,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:438,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:441,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:442,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:445,1
    - Dst: utf16LEToWString
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:448,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:451,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:452,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:455,1
    - Dst: utf16LEToWString
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:458,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:462,1
    - Dst: makeDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:463,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:466,1
    - Dst: utf16LEToWString
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 6
    argNames:
    - pVRec
    - aVRecLen
    - userName
    - userFullName
    - comment
    - acctType
    argTypes:
    - unsigned char*
    - size_t
    - std::wstring
    - std::wstring
    - std::wstring
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: RegistryAnalyzer::parseSAMVRecord
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 1
    functionsReached:
    - ReportUtil::consoleOutput
    - utf16LEToWString
    - makeDWORD
    linkageType: ''
    returnType: int
    signature: "int RegistryAnalyzer::parseSAMVRecord(const unsigned char *pVRec,
      size_t aVRecLen, std::wstring &userName, \n    std::wstring &userFullName, std::wstring
      &comment, uint32_t &acctType) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:500,1
    - Dst: makeWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:528,1
    - Dst: makeWORD
      Src: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - pFRec
    - aFRecLen
    - ' lastLoginDate'
    - ' lastPWResetDate'
    - ' accountExpiryDate'
    - ' lastFailedLoginDate'
    - ' loginCount'
    - ' acbFlags'
    argTypes:
    - unsigned char*
    - long
    - FILETIME
    - FILETIME
    - FILETIME
    - FILETIME
    - unsigned short
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 531
    functionName: RegistryAnalyzer::parseSAMFRecord
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
    functionUses: 1
    functionsReached:
    - ReportUtil::consoleOutput
    - makeWORD
    linkageType: ''
    returnType: int
    signature: "int RegistryAnalyzer::parseSAMFRecord(const unsigned char *pFRec,
      long aFRecLen, FILETIME& lastLoginDate,\n    FILETIME& lastPWResetDate, FILETIME&
      accountExpiryDate, FILETIME& lastFailedLoginDate,\n    unsigned short& loginCount,
      unsigned short& acbFlags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a_inum
    - a_tsk_fs_dir
    argTypes:
    - TSK_INUM_T
    - TSK_FS_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Path2InumCacheData::Path2InumCacheData
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Path2InumCacheData::Path2InumCacheData(TSK_INUM_T a_inum, TSK_FS_DIR
      *a_tsk_fs_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::reset
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: TskHelper::TskHelper
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - TskHelper::reset
    linkageType: ''
    returnType: void
    signature: void TskHelper::TskHelper()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:38,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:40,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:40,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:41,1
    - Dst: tsk_fs_free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: TskHelper::~TskHelper()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - begin
    - tsk_fs_close
    - tsk_fs_free
    - tsk_img_free
    - end
    linkageType: ''
    returnType: void
    signature: void TskHelper::~TskHelper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::releasePath2InumCache
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:47,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:49,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:49,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:50,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: TskHelper::reset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - clear
    - begin
    - tsk_fs_close
    - end
    - TskHelper::releasePath2InumCache
    linkageType: ''
    returnType: void
    signature: void TskHelper::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:62,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:62,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:62,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - srcStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: TskHelper::toUpper
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::end
    - std::transform
    - std::string::begin
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::toUpper(const std::string &srcStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bytes
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' a_utf16Str'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: TskHelper::toNarrow
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - to_bytes
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::toNarrow(const std::wstring & a_utf16Str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_bytes
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a_utf8Str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: TskHelper::toWide
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - from_bytes
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring TskHelper::toWide(const std::string &a_utf8Str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:102,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:102,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:102,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - srcStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: TskHelper::toLower
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::end
    - std::transform
    - std::string::begin
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::toLower(const std::string &srcStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: TskHelper::intToStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::intToStr(long l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: TskHelper::intToStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::intToStr(size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:123,1
    - Dst: std::string::rfind
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:125,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: TskHelper::stripExt
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::rfind
    - std::string::substr
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string TskHelper::stripExt(const char *a_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::stripExt
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:146,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:147,1
    - Dst: TSK_FS_INFO*::name_cmp
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - curFileName
    - targetFileName
    - ignoreExt
    - a_fs
    argTypes:
    - char*
    - char*
    - bool
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: TskHelper::compareNames
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - TSK_FS_INFO*::name_cmp
    - TskHelper::stripExt
    linkageType: ''
    returnType: bool
    signature: bool TskHelper::compareNames(const char *curFileName, const char *targetFileName,
      bool ignoreExt, TSK_FS_INFO *a_fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:165,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:165,1
    - Dst: equal
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:166,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:166,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:166,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bigStr
    - lilStr
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: TskHelper::startsWith
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - std::string::end
    - std::string::begin
    - std::string::length
    - equal
    linkageType: ''
    returnType: bool
    signature: bool TskHelper::startsWith(const std::string &bigStr, const std::string
      &lilStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:173,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:173,1
    - Dst: std::string::compare
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:174,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:174,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:174,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: TskHelper::endsWith
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool TskHelper::endsWith(const std::string &str, const std::string
      &suffix)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: TSKFileNameInfo::setINUM
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:205,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:216,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:217,1
    - Dst: strncpy
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:220,1
    - Dst: TskHelper::stripExt
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:227,1
    - Dst: strtok_r
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:234,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:239,1
    - Dst: TSKFileNameInfo::setINUM
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:240,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:258,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:259,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:264,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:265,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:271,1
    - Dst: TskHelper::lookupPathToInumCache
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:273,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:273,1
    - Dst: Path2InumCacheData*::getInum
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:279,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:282,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:282,1
    - Dst: TSKFileNameInfo::setINUM
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:283,1
    - Dst: TSKFileNameInfo::setFSNameFlags
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:284,1
    - Dst: Path2InumCacheData*::getFSNameFlag
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:284,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:288,1
    - Dst: Path2InumCacheData*::getFSDir
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:296,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:299,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:299,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:299,1
    - Dst: strcpy
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:300,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:300,1
    - Dst: strtok_r
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:304,1
    - Dst: TSKFileNameInfo::setINUM
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:310,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:314,1
    - Dst: std::string::find_last_of
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:321,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:323,1
    - Dst: std::string::clear
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:326,1
    - Dst: std::string::clear
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:335,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:355,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:356,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:366,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:367,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:368,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:370,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:375,1
    - Dst: tsk_fs_dir_get_name
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:380,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:382,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:384,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:391,1
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:404,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:404,1
    - Dst: Path2InumCacheData::Path2InumCacheData
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:406,1
    - Dst: Path2InumCacheData*::setFSNameFlag
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:407,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:410,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:411,1
    - Dst: TskHelper::addPathToInumCache
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:412,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:414,1
    - Dst: Path2InumCacheData*::getFSDir
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:414,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:425,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:425,1
    - Dst: TskHelper::compareNames
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:428,1
    - Dst: TskHelper::compareNames
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:432,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:438,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:443,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:449,1
    - Dst: tsk_fs_file_attr_get_idx
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:452,1
    - Dst: TSK_FS_INFO*::name_cmp
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:457,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:463,1
    - Dst: TskHelper::compareNames
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:469,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:514,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:518,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:519,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:527,1
    - Dst: Path2InumCacheData::Path2InumCacheData
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:528,1
    - Dst: Path2InumCacheData::Path2InumCacheData
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:532,1
    - Dst: Path2InumCacheData*::setFSNameFlag
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:533,1
    - Dst: TskHelper::addPathToInumCache
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:537,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:539,1
    - Dst: Path2InumCacheData*::getFSDir
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:539,1
    - Dst: strtok_r
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:546,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:550,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:559,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:572,1
    - Dst: TSKFileNameInfo::setINUM
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:576,1
    - Dst: TSKFileNameInfo::setFSNameFlags
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:577,1
    - Dst: tsk_fs_name_copy
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:581,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:586,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:593,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:595,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:601,1
    - Dst: strchr
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:602,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:617,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:624,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 241
    argCount: 6
    argNames:
    - a_fs
    - a_path
    - anyExtension
    - a_result
    - a_fs_name
    - a_fs_file
    argTypes:
    - TSK_FS_INFO*
    - char*
    - bool
    - TSKFileNameInfo
    - TSK_FS_NAME*
    - TSK_FS_FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 626
    functionName: TskHelper::path2Inum
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::clear
    - tsk_fprintf
    - tsk_fs_dir_open_meta
    - TskHelper::lookupPathToInumCache
    - TSK_FS_TYPE_ISFAT
    - strcpy
    - tsk_error_set_errno
    - std::string
    - TSKFileNameInfo::setFSNameFlags
    - strlen
    - tsk_fs_name_copy
    - TskHelper::addPathToInumCache
    - tsk_fs_dir_get_name
    - tsk_fs_file_attr_get_idx
    - Path2InumCacheData*::getFSNameFlag
    - tsk_fs_dir_getsize
    - Path2InumCacheData*::getFSDir
    - TSK_FS_TYPE_ISNTFS
    - TskHelper::compareNames
    - tsk_fs_file_open_meta
    - Path2InumCacheData*::getInum
    - strtok_r
    - std::string::find_last_of
    - TSK_FS_INFO*::name_cmp
    - strchr
    - tsk_error_reset
    - std::string::c_str
    - Path2InumCacheData*::setFSNameFlag
    - tsk_malloc
    - std::string::length
    - TskHelper::stripExt
    - tsk_fs_dir_close
    - TskHelper::toLower
    - TSKFileNameInfo::setINUM
    - TskHelper::startsWith
    - tsk_error_set_errstr
    - std::string::append
    - std::string::substr
    - TSK_FS_ISDOT
    - Path2InumCacheData::Path2InumCacheData
    - tsk_fs_file_attr_getsize
    - tsk_fs_file_close
    - strncpy
    - free
    linkageType: ''
    returnType: int
    signature: "int TskHelper::path2Inum(TSK_FS_INFO *a_fs, const char *a_path, bool
      anyExtension,\n    TSKFileNameInfo &a_result, TSK_FS_NAME *a_fs_name, TSK_FS_FILE
      **a_fs_file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:638,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:640,1
    - Dst: make_pair
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:640,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a_fs
    - a_path
    argTypes:
    - TSK_FS_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: TskHelper::lookupPathToInumCache
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - find
    - end
    - make_pair
    - TskHelper::toLower
    linkageType: ''
    returnType: Path2InumCacheData
    signature: Path2InumCacheData * TskHelper::lookupPathToInumCache(const TSK_FS_INFO
      *a_fs, const char *a_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:660,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:662,1
    - Dst: make_pair
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:662,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:662,1
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:663,1
    - Dst: make_pair
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:663,1
    - Dst: make_pair
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a_fs
    - a_path
    - a_cacheData
    argTypes:
    - TSK_FS_INFO*
    - std::string
    - Path2InumCacheData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: TskHelper::addPathToInumCache
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - make_pair
    - find
    - TskHelper::toLower
    - end
    - insert
    linkageType: ''
    returnType: bool
    signature: bool TskHelper::addPathToInumCache(const TSK_FS_INFO *a_fs, const std::string
      &a_path, const Path2InumCacheData *a_cacheData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:677,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:677,1
    - Dst: Path2InumCacheData*::getFSDir
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:679,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:681,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 687
    functionName: TskHelper::releasePath2InumCache
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 1
    functionsReached:
    - clear
    - begin
    - Path2InumCacheData*::getFSDir
    - end
    - tsk_fs_dir_close
    linkageType: ''
    returnType: int
    signature: int TskHelper::releasePath2InumCache()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: TskHelper::addFSInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void TskHelper::addFSInfo(TSK_FS_INFO *a_fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:696,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: TskHelper::getFSInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: TSK_FS_INFO *TskHelper::getFSInfo(TSK_OFF_T offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: TskHelper::getFSInfoList
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::list<TSK_FS_INFO *>
    signature: std::list<TSK_FS_INFO *> TskHelper::getFSInfoList()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:709,1
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:712,1
    - Dst: std::string::replace
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:713,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:713,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - from
    - to
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 716
    functionName: TskHelper::replaceAll
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::replace
    - std::string::find
    - std::string::empty
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void TskHelper::replaceAll(std::string &str, const std::string &from,
      const std::string &to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::empty
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:719,1
    - Dst: std::wstring::find
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:722,1
    - Dst: std::wstring::replace
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:723,1
    - Dst: std::wstring::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:723,1
    - Dst: std::wstring::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - from
    - to
    argTypes:
    - std::wstring
    - std::wstring
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 726
    functionName: TskHelper::replaceAll
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::replace
    - std::wstring::find
    - std::wstring::length
    - std::wstring::empty
    linkageType: ''
    returnType: void
    signature: void TskHelper::replaceAll(std::wstring &str, const std::wstring &from,
      const std::wstring &to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:739,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:739,1
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:742,1
    - Dst: std::string::replace
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:743,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:743,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - str
    - from
    - to
    - pos
    argTypes:
    - std::string
    - std::string
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 746
    functionName: TskHelper::replaceAll
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - std::string::replace
    - std::string::find
    - std::string::empty
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void TskHelper::replaceAll(std::string &str, const std::string &from,
      const std::string &to, size_t pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:756,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:758,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:763,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:773,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - img
    - byteOffset
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 754
    functionDepth: 4
    functionLinenumber: 754
    functionLinenumberEnd: 776
    functionName: TskHelper::openFs
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - TskHelper::getInstance
    - tsk_fs_open_img
    - ReportUtil::printDebug
    - tsk_img_read
    linkageType: ''
    returnType: void
    signature: void TskHelper::openFs(TSK_IMG_INFO *img, TSK_OFF_T byteOffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:780,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:781,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:782,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:788,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:794,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:796,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - img
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 798
    functionName: TskHelper::enumerateFileAndVolumeSystems
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - TskHelper::getInstance
    - tsk_vs_open
    - tsk_vs_part_get
    - tsk_vs_close
    - ReportUtil::printDebug
    linkageType: ''
    returnType: void
    signature: void TskHelper::enumerateFileAndVolumeSystems(TSK_IMG_INFO *img)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_img_open
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:815,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:816,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:816,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:820,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:821,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:824,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:825,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:830,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:834,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.cpp:836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - image
    argTypes:
    - TSK_TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 810
    functionDepth: 7
    functionLinenumber: 810
    functionLinenumberEnd: 839
    functionName: TskHelper::addFSFromImage
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
    functionUses: 0
    functionsReached:
    - tsk_vs_close
    - tsk_img_open
    - TskHelper::getInstance
    - tsk_vs_open
    - tsk_vs_part_get
    - ReportUtil::consoleOutput
    - tsk_error_get
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: TSK_IMG_INFO *TskHelper::addFSFromImage(const TSK_TCHAR *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: operator size_t() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: operator size_t() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: operator size_t() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: operator size_t() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::what
      Src: /src/sleuthkit/tools/logicalimager/json.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nlohmann::detail::exception::what
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::exception::what
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nlohmann::detail::exception::exception
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exception(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ename'
    - id_
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nlohmann::detail::exception::name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string name(const std::string& ename, int id_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:228,1
    - Dst: nlohmann::detail::parse_error::position_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:229,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' pos'
    - ' what_arg'
    argTypes:
    - int
    - position_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - nlohmann::detail::parse_error::position_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, const position_t& pos, const std::string&
      what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:235,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:236,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - byte_
    - ' what_arg'
    argTypes:
    - int
    - std::size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - to_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, std::size_t byte_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id_
    - byte_
    - what_arg
    argTypes:
    - int
    - std::size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: nlohmann::detail::parse_error::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_error(int id_, std::size_t byte_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:258,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: nlohmann::detail::parse_error::position_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string position_string(const position_t& pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:305,1
    - Dst: nlohmann::detail::invalid_iterator::invalid_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: nlohmann::detail::invalid_iterator::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::invalid_iterator::invalid_iterator
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: invalid_iterator
    signature: invalid_iterator create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: nlohmann::detail::invalid_iterator::invalid_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalid_iterator(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:358,1
    - Dst: nlohmann::detail::type_error::type_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: nlohmann::detail::type_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::type_error::type_error
    - std::string::c_str
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: type_error
    signature: type_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: nlohmann::detail::type_error::type_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:404,1
    - Dst: nlohmann::detail::out_of_range::out_of_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: nlohmann::detail::out_of_range::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::out_of_range::out_of_range
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: out_of_range
    signature: out_of_range create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: nlohmann::detail::out_of_range::out_of_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out_of_range(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:441,1
    - Dst: nlohmann::detail::other_error::other_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: nlohmann::detail::other_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::other_error::other_error
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: other_error
    signature: other_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: nlohmann::detail::other_error::other_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void other_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::what
      Src: /src/sleuthkit/tools/logicalimager/json.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nlohmann::detail::exception::what
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::exception::what
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nlohmann::detail::exception::exception
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exception(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ename'
    - id_
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nlohmann::detail::exception::name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string name(const std::string& ename, int id_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:228,1
    - Dst: nlohmann::detail::parse_error::position_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:229,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' pos'
    - ' what_arg'
    argTypes:
    - int
    - position_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - nlohmann::detail::parse_error::position_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, const position_t& pos, const std::string&
      what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:235,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:236,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - byte_
    - ' what_arg'
    argTypes:
    - int
    - std::size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - to_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, std::size_t byte_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id_
    - byte_
    - what_arg
    argTypes:
    - int
    - std::size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: nlohmann::detail::parse_error::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_error(int id_, std::size_t byte_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:258,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: nlohmann::detail::parse_error::position_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string position_string(const position_t& pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:305,1
    - Dst: nlohmann::detail::invalid_iterator::invalid_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: nlohmann::detail::invalid_iterator::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::invalid_iterator::invalid_iterator
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: invalid_iterator
    signature: invalid_iterator create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: nlohmann::detail::invalid_iterator::invalid_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalid_iterator(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:358,1
    - Dst: nlohmann::detail::type_error::type_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: nlohmann::detail::type_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::type_error::type_error
    - std::string::c_str
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: type_error
    signature: type_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: nlohmann::detail::type_error::type_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:404,1
    - Dst: nlohmann::detail::out_of_range::out_of_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: nlohmann::detail::out_of_range::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::out_of_range::out_of_range
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: out_of_range
    signature: out_of_range create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: nlohmann::detail::out_of_range::out_of_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out_of_range(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:441,1
    - Dst: nlohmann::detail::other_error::other_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: nlohmann::detail::other_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::other_error::other_error
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: other_error
    signature: other_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: nlohmann::detail::other_error::other_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void other_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::what
      Src: /src/sleuthkit/tools/logicalimager/json.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nlohmann::detail::exception::what
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::exception::what
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nlohmann::detail::exception::exception
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exception(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ename'
    - id_
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nlohmann::detail::exception::name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string name(const std::string& ename, int id_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:228,1
    - Dst: nlohmann::detail::parse_error::position_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:229,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' pos'
    - ' what_arg'
    argTypes:
    - int
    - position_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - nlohmann::detail::parse_error::position_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, const position_t& pos, const std::string&
      what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:235,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:236,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - byte_
    - ' what_arg'
    argTypes:
    - int
    - std::size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - to_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, std::size_t byte_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id_
    - byte_
    - what_arg
    argTypes:
    - int
    - std::size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: nlohmann::detail::parse_error::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_error(int id_, std::size_t byte_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:258,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: nlohmann::detail::parse_error::position_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string position_string(const position_t& pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:305,1
    - Dst: nlohmann::detail::invalid_iterator::invalid_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: nlohmann::detail::invalid_iterator::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::invalid_iterator::invalid_iterator
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: invalid_iterator
    signature: invalid_iterator create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: nlohmann::detail::invalid_iterator::invalid_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalid_iterator(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:358,1
    - Dst: nlohmann::detail::type_error::type_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: nlohmann::detail::type_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::type_error::type_error
    - std::string::c_str
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: type_error
    signature: type_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: nlohmann::detail::type_error::type_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:404,1
    - Dst: nlohmann::detail::out_of_range::out_of_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: nlohmann::detail::out_of_range::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::out_of_range::out_of_range
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: out_of_range
    signature: out_of_range create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: nlohmann::detail::out_of_range::out_of_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out_of_range(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:441,1
    - Dst: nlohmann::detail::other_error::other_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: nlohmann::detail::other_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::other_error::other_error
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: other_error
    signature: other_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: nlohmann::detail::other_error::other_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void other_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::what
      Src: /src/sleuthkit/tools/logicalimager/json.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nlohmann::detail::exception::what
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::exception::what
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nlohmann::detail::exception::exception
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exception(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ename'
    - id_
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nlohmann::detail::exception::name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 18
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string name(const std::string& ename, int id_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:228,1
    - Dst: nlohmann::detail::parse_error::position_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:229,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' pos'
    - ' what_arg'
    argTypes:
    - int
    - position_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - nlohmann::detail::parse_error::position_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, const position_t& pos, const std::string&
      what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:235,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:236,1
    - Dst: nlohmann::detail::parse_error::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - byte_
    - ' what_arg'
    argTypes:
    - int
    - std::size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: nlohmann::detail::parse_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parse_error::parse_error
    - std::string::c_str
    - to_string
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, std::size_t byte_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id_
    - byte_
    - what_arg
    argTypes:
    - int
    - std::size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: nlohmann::detail::parse_error::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_error(int id_, std::size_t byte_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:258,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: nlohmann::detail::parse_error::position_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string position_string(const position_t& pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:305,1
    - Dst: nlohmann::detail::invalid_iterator::invalid_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: nlohmann::detail::invalid_iterator::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::invalid_iterator::invalid_iterator
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: invalid_iterator
    signature: invalid_iterator create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: nlohmann::detail::invalid_iterator::invalid_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalid_iterator(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:358,1
    - Dst: nlohmann::detail::type_error::type_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: nlohmann::detail::type_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::type_error::type_error
    - std::string::c_str
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: type_error
    signature: type_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: nlohmann::detail::type_error::type_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void type_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:404,1
    - Dst: nlohmann::detail::out_of_range::out_of_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: nlohmann::detail::out_of_range::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::out_of_range::out_of_range
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: out_of_range
    signature: out_of_range create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: nlohmann::detail::out_of_range::out_of_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out_of_range(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::exception::name
      Src: /src/sleuthkit/tools/logicalimager/json.h:441,1
    - Dst: nlohmann::detail::other_error::other_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id_
    - ' what_arg'
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: nlohmann::detail::other_error::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - nlohmann::detail::other_error::other_error
    - nlohmann::detail::exception::name
    linkageType: ''
    returnType: other_error
    signature: other_error create(int id_, const std::string& what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id_
    - what_arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: nlohmann::detail::other_error::other_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void other_error(int id_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: JSON_THROW
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_THROW(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: JSON_THROW
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_THROW(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: JSON_LIKELY
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: JSON_UNLIKELY
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 558
    functionName: JSON_LIKELY
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: JSON_UNLIKELY
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ENUM_TYPE
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 591
    functionName: NLOHMANN_JSON_SERIALIZE_ENUM
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: nlohmann::detail::size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: nlohmann::detail::size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: nlohmann::detail::size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: nlohmann::detail::size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: ~nonesuch()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 770
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: operator=(nonesuch const&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: operator=(nonesuch&&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: ~nonesuch()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 770
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: operator=(nonesuch const&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: operator=(nonesuch&&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: ~nonesuch()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 770
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: operator=(nonesuch const&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: operator=(nonesuch&&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: ~nonesuch()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 770
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: nlohmann::detail::nonesuch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: operator=(nonesuch const&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: operator=(nonesuch&&)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1302,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1303,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1305
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1302,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1303,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1305
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1302,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1303,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1305
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1302,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1303,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1305
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' n'
    argTypes:
    - BasicJsonType
    - typename std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_null
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename std::nullptr_t& n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1331,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1352
    functionName: nlohmann::detail::get_arithmetic_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - type_name
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - nlohmann::detail::type_error::create
    - is_boolean
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::string_t&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - ConstructibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1389
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleStringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1392
    functionDepth: 4
    functionLinenumber: 1392
    functionLinenumberEnd: 1395
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 4
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1414,1
    - Dst: static_cast<EnumType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1416
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    - static_cast<EnumType>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, EnumType& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1427,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rend
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: std::front_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1429,1
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::forward_list<T, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get<T>
    - clear
    - std::transform
    - rbegin
    - nlohmann::detail::type_error::create
    - rend
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - std::front_inserter
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - std::copy
    - begin
    - resize
    - nlohmann::detail::type_error::create
    - nlohmann::detail::size
    - m_value::array::end
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::valarray<T>& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1450,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, T (&arr)[N])

      -> decltype(j.template get<T>(), void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1462
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get_ptr<const typename BasicJsonType::array_t*>
    linkageType: ''
    returnType: void
    signature: void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t&
      arr, priority_tag<3> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1467,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::array<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>&
      arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template
      get<T>(), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1479,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1491,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<typename ConstructibleArrayType::size_type>
    - reserve
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - nlohmann::detail::size
    - std::inserter
    - end
    - std::move
    - std::transform
    - ConstructibleArrayType::reserve
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename
      ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n
      \   void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1503,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1509,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1512
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - std::inserter
    - end
    - std::move
    - std::transform
    linkageType: ''
    returnType: void
    signature: "void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr,\n                          priority_tag<0> /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1523,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1524,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1522
    functionDepth: 3
    functionLinenumber: 1522
    functionLinenumberEnd: 1534
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - nlohmann::detail::from_json_array_impl
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)

      -> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),

      j.template get<typename ConstructibleArrayType::value_type>(),

      void())'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1546,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1548,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: value_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - ConstructibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1556
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::transform
    - auto::end
    - value_type
    - is_object
    - auto::begin
    - ConstructibleObjectType::begin
    - nlohmann::detail::type_error::create
    - std::string
    - std::inserter
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::object_t*>
    - JSON_UNLIKELY
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1572,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1598
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - type_name
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<A1, A2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::pair<A1, A2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: nlohmann::detail::from_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - at
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::from_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::tuple<Args...>& t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1627,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::map<Key, Value, Compare, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1621
    functionDepth: 3
    functionLinenumber: 1621
    functionLinenumberEnd: 1636
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::map<Key, Value, Compare,
      Allocator>& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1647,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::unordered_map<Key, Value,
      Hash, KeyEqual, Allocator>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1663,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1661
    functionDepth: 4
    functionLinenumber: 1661
    functionLinenumberEnd: 1666
    functionName: "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' n'
    argTypes:
    - BasicJsonType
    - typename std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_null
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename std::nullptr_t& n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1331,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1352
    functionName: nlohmann::detail::get_arithmetic_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - type_name
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - nlohmann::detail::type_error::create
    - is_boolean
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::string_t&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - ConstructibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1389
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleStringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1392
    functionDepth: 4
    functionLinenumber: 1392
    functionLinenumberEnd: 1395
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 4
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1414,1
    - Dst: static_cast<EnumType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1416
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    - static_cast<EnumType>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, EnumType& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1427,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rend
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: std::front_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1429,1
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::forward_list<T, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - clear
    - std::transform
    - rbegin
    - nlohmann::detail::type_error::create
    - rend
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - std::front_inserter
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - m_value::array::begin
    - std::copy
    - begin
    - resize
    - nlohmann::detail::type_error::create
    - nlohmann::detail::size
    - m_value::array::end
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::valarray<T>& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1450,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, T (&arr)[N])

      -> decltype(j.template get<T>(), void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1462
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get_ptr<const typename BasicJsonType::array_t*>
    linkageType: ''
    returnType: void
    signature: void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t&
      arr, priority_tag<3> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1467,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::array<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>&
      arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template
      get<T>(), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1479,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1491,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::declval<typename ConstructibleArrayType::size_type>
    - reserve
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - nlohmann::detail::size
    - std::inserter
    - end
    - std::move
    - std::transform
    - ConstructibleArrayType::reserve
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename
      ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n
      \   void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1503,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1509,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1512
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - std::inserter
    - end
    - std::move
    - std::transform
    linkageType: ''
    returnType: void
    signature: "void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr,\n                          priority_tag<0> /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1523,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1524,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1522
    functionDepth: 3
    functionLinenumber: 1522
    functionLinenumberEnd: 1534
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - nlohmann::detail::from_json_array_impl
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)

      -> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),

      j.template get<typename ConstructibleArrayType::value_type>(),

      void())'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1546,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1548,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: value_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - ConstructibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1556
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::move
    - std::transform
    - auto::end
    - value_type
    - is_object
    - auto::begin
    - ConstructibleObjectType::begin
    - nlohmann::detail::type_error::create
    - std::string
    - std::inserter
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::object_t*>
    - JSON_UNLIKELY
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1572,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1598
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - type_name
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<A1, A2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::pair<A1, A2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: nlohmann::detail::from_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::make_tuple
    - at
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::from_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::tuple<Args...>& t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1627,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::map<Key, Value, Compare, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1621
    functionDepth: 3
    functionLinenumber: 1621
    functionLinenumberEnd: 1636
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::map<Key, Value, Compare,
      Allocator>& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1647,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::unordered_map<Key, Value,
      Hash, KeyEqual, Allocator>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1663,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1666
    functionName: "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' n'
    argTypes:
    - BasicJsonType
    - typename std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_null
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename std::nullptr_t& n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1331,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1352
    functionName: nlohmann::detail::get_arithmetic_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - type_name
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - nlohmann::detail::type_error::create
    - is_boolean
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::string_t&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - ConstructibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1389
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleStringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1392
    functionDepth: 4
    functionLinenumber: 1392
    functionLinenumberEnd: 1395
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 4
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1414,1
    - Dst: static_cast<EnumType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1416
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    - static_cast<EnumType>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, EnumType& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1427,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rend
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: std::front_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1429,1
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::forward_list<T, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - clear
    - std::transform
    - rbegin
    - nlohmann::detail::type_error::create
    - rend
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - std::front_inserter
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - m_value::array::begin
    - std::copy
    - begin
    - resize
    - nlohmann::detail::type_error::create
    - nlohmann::detail::size
    - m_value::array::end
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::valarray<T>& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1450,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, T (&arr)[N])

      -> decltype(j.template get<T>(), void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1462
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - template get_ptr<const typename BasicJsonType::array_t*>
    linkageType: ''
    returnType: void
    signature: void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t&
      arr, priority_tag<3> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1467,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::array<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>&
      arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template
      get<T>(), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1479,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1491,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::declval<typename ConstructibleArrayType::size_type>
    - reserve
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - nlohmann::detail::size
    - std::inserter
    - end
    - std::move
    - std::transform
    - ConstructibleArrayType::reserve
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename
      ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n
      \   void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1503,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1509,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1512
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - std::inserter
    - end
    - std::move
    - std::transform
    linkageType: ''
    returnType: void
    signature: "void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr,\n                          priority_tag<0> /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1523,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1524,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1522
    functionDepth: 3
    functionLinenumber: 1522
    functionLinenumberEnd: 1534
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - nlohmann::detail::from_json_array_impl
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)

      -> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),

      j.template get<typename ConstructibleArrayType::value_type>(),

      void())'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1546,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1548,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: value_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - ConstructibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1556
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::move
    - std::transform
    - auto::end
    - value_type
    - is_object
    - auto::begin
    - ConstructibleObjectType::begin
    - nlohmann::detail::type_error::create
    - std::string
    - std::inserter
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::object_t*>
    - JSON_UNLIKELY
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1572,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1598
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - type_name
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<A1, A2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::pair<A1, A2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: nlohmann::detail::from_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::make_tuple
    - at
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::from_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::tuple<Args...>& t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1627,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::map<Key, Value, Compare, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1621
    functionDepth: 3
    functionLinenumber: 1621
    functionLinenumberEnd: 1636
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::map<Key, Value, Compare,
      Allocator>& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1647,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::unordered_map<Key, Value,
      Hash, KeyEqual, Allocator>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1663,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1666
    functionName: "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:1317,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' n'
    argTypes:
    - BasicJsonType
    - typename std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_null
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename std::nullptr_t& n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1331,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1335,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1340,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1345,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1352
    functionName: nlohmann::detail::get_arithmetic_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - type_name
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:1357,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1359,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - nlohmann::detail::type_error::create
    - is_boolean
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1367,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1369,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::string_t&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1383,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1385,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - ConstructibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1389
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - is_string
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - template get_ptr<const typename BasicJsonType::string_t*>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleStringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1392
    functionDepth: 4
    functionLinenumber: 1392
    functionLinenumberEnd: 1395
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 4
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::get_arithmetic_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1414,1
    - Dst: static_cast<EnumType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1416
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::get_arithmetic_value
    - static_cast<EnumType>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, EnumType& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1423,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1425,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1427,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: rend
      Src: /src/sleuthkit/tools/logicalimager/json.h:1428,1
    - Dst: std::front_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1429,1
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::forward_list<T, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - clear
    - std::transform
    - rbegin
    - nlohmann::detail::type_error::create
    - rend
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - std::front_inserter
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1440,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1442,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1444,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - m_value::array::begin
    - std::copy
    - begin
    - resize
    - nlohmann::detail::type_error::create
    - nlohmann::detail::size
    - m_value::array::end
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::valarray<T>& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1450,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, T (&arr)[N])

      -> decltype(j.template get<T>(), void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1462
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - template get_ptr<const typename BasicJsonType::array_t*>
    linkageType: ''
    returnType: void
    signature: void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t&
      arr, priority_tag<3> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1467,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::array<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1473
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - template get<T>
    - at
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>&
      arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template
      get<T>(), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1478,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1479,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1485,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1486,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1487,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1491,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::declval<typename ConstructibleArrayType::size_type>
    - reserve
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - nlohmann::detail::size
    - std::inserter
    - end
    - std::move
    - std::transform
    - ConstructibleArrayType::reserve
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename
      ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n
      \   void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1503,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1504,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1509,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1512
    functionName: nlohmann::detail::from_json_array_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - begin
    - std::inserter
    - end
    - std::move
    - std::transform
    linkageType: ''
    returnType: void
    signature: "void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr,\n                          priority_tag<0> /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1523,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1524,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1527,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1529,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1530,1
    - Dst: nlohmann::detail::from_json_array_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1522
    functionDepth: 3
    functionLinenumber: 1522
    functionLinenumberEnd: 1534
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - nlohmann::detail::from_json_array_impl
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)

      -> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),

      j.template get<typename ConstructibleArrayType::value_type>(),

      void())'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:1540,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1542,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1546,1
    - Dst: std::transform
      Src: /src/sleuthkit/tools/logicalimager/json.h:1548,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1549,1
    - Dst: std::inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1550,1
    - Dst: value_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1553,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - ConstructibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1556
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::move
    - std::transform
    - auto::end
    - value_type
    - is_object
    - auto::begin
    - ConstructibleObjectType::begin
    - nlohmann::detail::type_error::create
    - std::string
    - std::inserter
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::object_t*>
    - JSON_UNLIKELY
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1572,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1576,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1581,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1586,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1591,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1598
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - type_name
    - static_cast<ArithmeticType>
    - nlohmann::detail::type_error::create
    - std::string
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - static_cast<value_t>
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<A1, A2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::pair<A1, A2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: nlohmann::detail::from_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::make_tuple
    - at
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::from_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::from_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::tuple<Args...>& t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1623,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1625,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1627,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1630,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1632,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::map<Key, Value, Compare, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1621
    functionDepth: 3
    functionLinenumber: 1621
    functionLinenumberEnd: 1636
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::map<Key, Value, Compare,
      Allocator>& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1643,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1645,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:1647,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:1650,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:1652,1
    - Dst: emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    - Dst: at
      Src: /src/sleuthkit/tools/logicalimager/json.h:1654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: nlohmann::detail::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - at
    - clear
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - emplace
    - type_name
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::unordered_map<Key, Value,
      Hash, KeyEqual, Allocator>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1662,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1663,1
    - Dst: from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1666
    functionName: "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
      val)))\n    -> decltype(from_json(j, val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    functionName: nlohmann::detail::iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(IteratorType it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1737
    functionName: '& operator*()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1758
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:1763,1
    - Dst: m_object::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1765,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1772,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (anchor.m_object != nullptr)
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 1786
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1786
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    - m_object::type
    - key
    - assert
    linkageType: ''
    returnType: std::string
    signature: std::string & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::iteration_proxy_value::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1792
    functionName: nlohmann::detail::iteration_proxy_value::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1805
    functionName: nlohmann::detail::iteration_proxy::iteration_proxy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    - Dst: nlohmann::detail::iteration_proxy::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1811
    functionName: nlohmann::detail::iteration_proxy::begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - iteration_proxy_value<IteratorType>
    - nlohmann::detail::iteration_proxy::begin
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    - Dst: nlohmann::detail::iteration_proxy::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1817
    functionName: nlohmann::detail::iteration_proxy::end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1823,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1831,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1834
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    functionName: nlohmann::detail::iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(IteratorType it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1737
    functionName: '& operator*()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1758
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:1763,1
    - Dst: m_object::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1765,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1772,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (anchor.m_object != nullptr)
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 1786
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1786
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    - m_object::type
    - key
    - assert
    linkageType: ''
    returnType: std::string
    signature: std::string & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::iteration_proxy_value::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1792
    functionName: nlohmann::detail::iteration_proxy_value::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1805
    functionName: nlohmann::detail::iteration_proxy::iteration_proxy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    - Dst: nlohmann::detail::iteration_proxy::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1811
    functionName: nlohmann::detail::iteration_proxy::begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - iteration_proxy_value<IteratorType>
    - nlohmann::detail::iteration_proxy::begin
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    - Dst: nlohmann::detail::iteration_proxy::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1817
    functionName: nlohmann::detail::iteration_proxy::end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1823,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1831,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1834
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    functionName: nlohmann::detail::iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(IteratorType it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1737
    functionName: '& operator*()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1758
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:1763,1
    - Dst: m_object::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1765,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1772,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (anchor.m_object != nullptr)
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 1786
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1786
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    - m_object::type
    - key
    - assert
    linkageType: ''
    returnType: std::string
    signature: std::string & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::iteration_proxy_value::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1792
    functionName: nlohmann::detail::iteration_proxy_value::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1805
    functionName: nlohmann::detail::iteration_proxy::iteration_proxy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    - Dst: nlohmann::detail::iteration_proxy::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1811
    functionName: nlohmann::detail::iteration_proxy::begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - iteration_proxy_value<IteratorType>
    - nlohmann::detail::iteration_proxy::begin
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    - Dst: nlohmann::detail::iteration_proxy::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1817
    functionName: nlohmann::detail::iteration_proxy::end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1823,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1831,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1834
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    functionName: nlohmann::detail::iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(IteratorType it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1737
    functionName: '& operator*()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1758
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:1763,1
    - Dst: m_object::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:1765,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:1772,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (anchor.m_object != nullptr)
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 1786
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1786
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    - m_object::type
    - key
    - assert
    linkageType: ''
    returnType: std::string
    signature: std::string & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::iteration_proxy_value::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1792
    functionName: nlohmann::detail::iteration_proxy_value::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1805
    functionName: nlohmann::detail::iteration_proxy::iteration_proxy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    - Dst: nlohmann::detail::iteration_proxy::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1811
    functionName: nlohmann::detail::iteration_proxy::begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - iteration_proxy_value<IteratorType>
    - nlohmann::detail::iteration_proxy::begin
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    - Dst: nlohmann::detail::iteration_proxy::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1817
    functionName: nlohmann::detail::iteration_proxy::end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1823,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1831,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1834
    functionName: nlohmann::detail::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1904
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1910,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1912
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1920,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1922
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template create<typename BasicJsonType::string_t>
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1934
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1958
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1970
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1976,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1990
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - template create<typename BasicJsonType::array_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: m_value::array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2000,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2003
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::size
    - m_value::array::push_back
    - assert_invariant
    - m_value::array::reserve
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2014
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - begin
    - std::copy
    - nlohmann::detail::size
    - end
    - m_value::array::resize
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2026
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2032,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2034
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - template create<typename BasicJsonType::object_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2058
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2078
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_float_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2085
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    - Dst: static_cast<underlying_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2100
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<underlying_type>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2106
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2119
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2126
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2132
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2155
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2161
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<Args...>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    - key
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2175
    functionName: nlohmann::detail::to_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::to_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2181
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::tuple<Args...>& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2190
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - to_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1904
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1910,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1912
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1920,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1922
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - template create<typename BasicJsonType::string_t>
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1934
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1958
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1970
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1976,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1990
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - begin
    - template create<typename BasicJsonType::array_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: m_value::array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2000,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2003
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - nlohmann::detail::size
    - m_value::array::push_back
    - assert_invariant
    - m_value::array::reserve
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2014
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - m_value::array::begin
    - begin
    - std::copy
    - nlohmann::detail::size
    - end
    - m_value::array::resize
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2026
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2032,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2034
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - begin
    - template create<typename BasicJsonType::object_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2058
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2078
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_float_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2085
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    - Dst: static_cast<underlying_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2100
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<underlying_type>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2106
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2119
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2126
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2132
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2155
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2161
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<Args...>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    - key
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2175
    functionName: nlohmann::detail::to_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::to_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2181
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::tuple<Args...>& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2190
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - to_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1904
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1910,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1912
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1920,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1922
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - template create<typename BasicJsonType::string_t>
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1934
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1958
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1970
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1976,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1990
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - begin
    - template create<typename BasicJsonType::array_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: m_value::array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2000,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2003
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - nlohmann::detail::size
    - m_value::array::push_back
    - assert_invariant
    - m_value::array::reserve
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2014
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - m_value::array::begin
    - begin
    - std::copy
    - nlohmann::detail::size
    - end
    - m_value::array::resize
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2026
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2032,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2034
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 28
    functionsReached:
    - begin
    - template create<typename BasicJsonType::object_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2058
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2078
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_float_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2085
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    - Dst: static_cast<underlying_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2100
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<underlying_type>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2106
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2119
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2126
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2132
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2155
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2161
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<Args...>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    - key
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2175
    functionName: nlohmann::detail::to_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::to_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2181
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::tuple<Args...>& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2190
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - to_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1904
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1910,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1912
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1920,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1922
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - template create<typename BasicJsonType::string_t>
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1934
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1958
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1970
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:1976,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:1988,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1990
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - begin
    - template create<typename BasicJsonType::array_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::reserve
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:1997,1
    - Dst: m_value::array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2000,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2003
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - nlohmann::detail::size
    - m_value::array::push_back
    - assert_invariant
    - m_value::array::reserve
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2011,1
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2012,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2014
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - m_value::array::begin
    - begin
    - std::copy
    - nlohmann::detail::size
    - end
    - m_value::array::resize
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2026
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2032,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2034
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - std::move
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2044,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: nlohmann::detail::construct
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 42
    functionsReached:
    - begin
    - template create<typename BasicJsonType::object_t>
    - end
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2058
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2065
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2078
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_float_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2085
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2092
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    - Dst: static_cast<underlying_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2100
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<underlying_type>
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2106
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2119
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2126
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2132
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2155
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2161
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<Args...>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - value
    - key
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2175
    functionName: nlohmann::detail::to_json_tuple_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::to_json_tuple_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2181
    functionName: nlohmann::detail::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::tuple<Args...>& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2186,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2187,1
    - Dst: to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    - Dst: std::forward<T>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2190
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - to_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2220,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2220,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2222,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2223
    functionName: nlohmann::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::forward<BasicJsonType>
    - nlohmann::from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType&& j, ValueType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2237,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2237,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2239,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2240
    functionName: nlohmann::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::to_json
    - std::forward<ValueType>
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, ValueType&& val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<ValueType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<ValueType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2219,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2220,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2220,1
    - Dst: nlohmann::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2222,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2223
    functionName: nlohmann::from_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::forward<BasicJsonType>
    - nlohmann::from_json
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType&& j, ValueType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2236,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2237,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2237,1
    - Dst: nlohmann::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:2239,1
    - Dst: std::forward<ValueType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2240
    functionName: nlohmann::to_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::to_json
    - std::forward<ValueType>
    - noexcept
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, ValueType&& val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<ValueType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<ValueType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2316
    functionName: ~input_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2331
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f)  noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2335
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2336
    functionName: '& operator=(const file_input_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2337
    functionName: '& operator=(file_input_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2338
    functionName: ~file_input_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~file_input_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2343
    functionName: nlohmann::detail::file_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    functionName: ~input_stream_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/sleuthkit/tools/logicalimager/json.h:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2372
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2375
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2377
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2385,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2392
    functionName: nlohmann::detail::input_stream_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    - sbumpc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2406
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const char* b, const std::size_t l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2409
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2410
    functionName: '& operator=(input_buffer_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2411
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: '& operator=(input_buffer_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: ~input_buffer_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_buffer_adapter() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2417,1
    - Dst: std::char_traits<char>::to_int_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:2419,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: nlohmann::detail::input_buffer_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::char_traits<char>::to_int_type
    - JSON_LIKELY
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2444,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2446,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2452,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2457,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2462,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2463,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2468,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2469,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2470,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2475,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2476,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2477,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2478,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2488
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2503,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2505,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2511,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2516,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2521,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2522,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2527,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2528,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2529,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2534,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2536,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2538,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2539,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2540,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2541,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2553
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - WideStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2562
    functionName: nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(const WideStringType& w) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::wide_string_input_adapter::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2569,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2571,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2572,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2576,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index == 0)
      pos:
        line_end: 2571
        line_start: 2571
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index < utf8_bytes_filled)
      pos:
        line_end: 2576
        line_start: 2576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2579
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2579
    functionName: nlohmann::detail::wide_string_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::wide_string_input_adapter::fill_buffer
    - assert
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2586
    functionName: nlohmann::detail::wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_input_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2608
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<file_input_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2611
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2615
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream&& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::wstring>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2618
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::wstring>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::wstring& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u16string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u16string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2621
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u16string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u16string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u32string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u32string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2624
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u32string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u32string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2634
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_buffer_adapter>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2646,1
    - Dst: std::strlen
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2647
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2659,1
    - Dst: std::pair<bool, int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2660,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: std::addressof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2666,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: std::distance
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2675,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts:
    - condition: (is_contiguous)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2685
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2685
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::pair<bool, int>
    - reinterpret_cast<const char*>
    - assert
    - std::accumulate
    - std::distance
    - JSON_LIKELY
    - static_cast<size_t>
    - std::make_shared<input_buffer_adapter>
    - std::addressof
    - std::next
    linkageType: ''
    returnType: void
    signature: void input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2690
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(T (&array)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - ContiguousContainer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2698
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(const ContiguousContainer& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2703
    functionName: operator input_adapter_t()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator input_adapter_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2316
    functionName: ~input_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2331
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f)  noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2335
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2336
    functionName: '& operator=(const file_input_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2337
    functionName: '& operator=(file_input_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2338
    functionName: ~file_input_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~file_input_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2343
    functionName: nlohmann::detail::file_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    functionName: ~input_stream_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/sleuthkit/tools/logicalimager/json.h:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2372
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2375
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2377
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2385,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2392
    functionName: nlohmann::detail::input_stream_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    - sbumpc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2406
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const char* b, const std::size_t l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2409
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2410
    functionName: '& operator=(input_buffer_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2411
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: '& operator=(input_buffer_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: ~input_buffer_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_buffer_adapter() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2417,1
    - Dst: std::char_traits<char>::to_int_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:2419,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: nlohmann::detail::input_buffer_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::char_traits<char>::to_int_type
    - JSON_LIKELY
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2444,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2446,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2452,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2457,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2462,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2463,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2468,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2469,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2470,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2475,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2476,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2477,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2478,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2488
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2503,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2505,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2511,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2516,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2521,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2522,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2527,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2528,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2529,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2534,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2536,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2538,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2539,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2540,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2541,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2553
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - WideStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2562
    functionName: nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(const WideStringType& w) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::wide_string_input_adapter::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2569,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2571,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2572,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2576,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index == 0)
      pos:
        line_end: 2571
        line_start: 2571
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index < utf8_bytes_filled)
      pos:
        line_end: 2576
        line_start: 2576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2579
      start: 2564
    functionDepth: 3
    functionLinenumber: 2564
    functionLinenumberEnd: 2579
    functionName: nlohmann::detail::wide_string_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::wide_string_input_adapter::fill_buffer
    - assert
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2586
    functionName: nlohmann::detail::wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_input_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2608
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<file_input_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2611
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2615
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream&& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::wstring>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2618
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::wstring>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::wstring& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u16string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u16string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2621
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u16string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u16string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u32string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u32string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2624
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u32string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u32string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2634
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_buffer_adapter>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2646,1
    - Dst: std::strlen
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2647
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2659,1
    - Dst: std::pair<bool, int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2660,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: std::addressof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2666,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: std::distance
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2675,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts:
    - condition: (is_contiguous)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2685
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2685
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::pair<bool, int>
    - reinterpret_cast<const char*>
    - assert
    - std::accumulate
    - std::distance
    - JSON_LIKELY
    - static_cast<size_t>
    - std::make_shared<input_buffer_adapter>
    - std::addressof
    - std::next
    linkageType: ''
    returnType: void
    signature: void input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2690
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(T (&array)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - ContiguousContainer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2698
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(const ContiguousContainer& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2703
    functionName: operator input_adapter_t()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator input_adapter_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2316
    functionName: ~input_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2331
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f)  noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2335
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2336
    functionName: '& operator=(const file_input_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2337
    functionName: '& operator=(file_input_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2338
    functionName: ~file_input_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~file_input_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2343
    functionName: nlohmann::detail::file_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    functionName: ~input_stream_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/sleuthkit/tools/logicalimager/json.h:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2372
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2375
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2377
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2385,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2392
    functionName: nlohmann::detail::input_stream_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    - sbumpc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2406
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const char* b, const std::size_t l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2409
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2410
    functionName: '& operator=(input_buffer_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2411
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: '& operator=(input_buffer_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: ~input_buffer_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_buffer_adapter() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2417,1
    - Dst: std::char_traits<char>::to_int_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:2419,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: nlohmann::detail::input_buffer_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::char_traits<char>::to_int_type
    - JSON_LIKELY
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2444,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2446,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2452,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2457,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2462,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2463,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2468,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2469,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2470,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2475,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2476,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2477,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2478,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2488
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2503,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2505,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2511,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2516,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2521,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2522,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2527,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2528,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2529,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2534,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2536,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2538,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2539,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2540,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2541,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2553
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - WideStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2562
    functionName: nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(const WideStringType& w) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::wide_string_input_adapter::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2569,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2571,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2572,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2576,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index == 0)
      pos:
        line_end: 2571
        line_start: 2571
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index < utf8_bytes_filled)
      pos:
        line_end: 2576
        line_start: 2576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2579
      start: 2564
    functionDepth: 3
    functionLinenumber: 2564
    functionLinenumberEnd: 2579
    functionName: nlohmann::detail::wide_string_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::wide_string_input_adapter::fill_buffer
    - assert
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2586
    functionName: nlohmann::detail::wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_input_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2608
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<file_input_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2611
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2615
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream&& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::wstring>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2618
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::wstring>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::wstring& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u16string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u16string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2621
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u16string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u16string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u32string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u32string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2624
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u32string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u32string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2634
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_buffer_adapter>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2646,1
    - Dst: std::strlen
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2647
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2659,1
    - Dst: std::pair<bool, int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2660,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: std::addressof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2666,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: std::distance
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2675,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts:
    - condition: (is_contiguous)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2685
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2685
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::pair<bool, int>
    - reinterpret_cast<const char*>
    - assert
    - std::accumulate
    - std::distance
    - JSON_LIKELY
    - static_cast<size_t>
    - std::make_shared<input_buffer_adapter>
    - std::addressof
    - std::next
    linkageType: ''
    returnType: void
    signature: void input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2690
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(T (&array)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - ContiguousContainer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2698
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(const ContiguousContainer& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2703
    functionName: operator input_adapter_t()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator input_adapter_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2316
    functionName: ~input_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2331
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f)  noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2335
    functionName: nlohmann::detail::file_input_adapter::file_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2336
    functionName: '& operator=(const file_input_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2337
    functionName: '& operator=(file_input_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter & operator=(file_input_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2338
    functionName: ~file_input_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~file_input_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2343
    functionName: nlohmann::detail::file_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    functionName: ~input_stream_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/sleuthkit/tools/logicalimager/json.h:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2372
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2375
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2377
    functionName: nlohmann::detail::input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/sleuthkit/tools/logicalimager/json.h:2385,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    - Dst: rdstate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2392
    functionName: nlohmann::detail::input_stream_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    - sbumpc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2406
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const char* b, const std::size_t l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2409
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(const input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2410
    functionName: '& operator=(input_buffer_adapter&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2411
    functionName: nlohmann::detail::input_buffer_adapter::input_buffer_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_buffer_adapter(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: '& operator=(input_buffer_adapter&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_buffer_adapter
    signature: input_buffer_adapter & operator=(input_buffer_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: ~input_buffer_adapter() override
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~input_buffer_adapter() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2417,1
    - Dst: std::char_traits<char>::to_int_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:2419,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: nlohmann::detail::input_buffer_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::char_traits<char>::to_int_type
    - JSON_LIKELY
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2444,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2446,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2452,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2457,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2462,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2463,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2468,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2469,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2470,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2475,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2476,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2477,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2478,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2488
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2503,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2505,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2511,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2516,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2521,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2522,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2527,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2528,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2529,1
    - Dst: nlohmann::detail::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:2534,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2536,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2538,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2539,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2540,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2541,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - ' str'
    - ' current_wchar'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - WideStringType
    - size_t
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2553
    functionName: nlohmann::detail::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::size
    - static_cast<std::char_traits<char>::int_type>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(const WideStringType& str,\n                            size_t&
      current_wchar,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - WideStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2562
    functionName: nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(const WideStringType& w) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::wide_string_input_adapter::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2569,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2571,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2572,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2576,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_filled > 0)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index == 0)
      pos:
        line_end: 2571
        line_start: 2571
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (utf8_bytes_index < utf8_bytes_filled)
      pos:
        line_end: 2576
        line_start: 2576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2579
      start: 2564
    functionDepth: 3
    functionLinenumber: 2564
    functionLinenumberEnd: 2579
    functionName: nlohmann::detail::wide_string_input_adapter::get_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::wide_string_input_adapter::fill_buffer
    - assert
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::fill_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2586
    functionName: nlohmann::detail::wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_input_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2608
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<file_input_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2611
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_stream_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2615
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_stream_adapter>
    linkageType: ''
    returnType: void
    signature: void input_adapter(std::istream&& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::wstring>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2618
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::wstring>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::wstring& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u16string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u16string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2621
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u16string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u16string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wide_string_input_adapter<std::u32string>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ws'
    argTypes:
    - std::u32string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2624
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<wide_string_input_adapter<std::u32string>>
    linkageType: ''
    returnType: void
    signature: void input_adapter(const std::u32string& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2634
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<input_buffer_adapter>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2646,1
    - Dst: std::strlen
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2647
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void input_adapter(CharT b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:2659,1
    - Dst: std::pair<bool, int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2660,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: std::addressof
      Src: /src/sleuthkit/tools/logicalimager/json.h:2663,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2666,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: std::distance
      Src: /src/sleuthkit/tools/logicalimager/json.h:2674,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2675,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2678,1
    - Dst: std::make_shared<input_buffer_adapter>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts:
    - condition: (is_contiguous)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2685
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2685
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::pair<bool, int>
    - reinterpret_cast<const char*>
    - assert
    - std::accumulate
    - std::distance
    - JSON_LIKELY
    - static_cast<size_t>
    - std::make_shared<input_buffer_adapter>
    - std::addressof
    - std::next
    linkageType: ''
    returnType: void
    signature: void input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2690
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(T (&array)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - ContiguousContainer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2698
    functionName: nlohmann::detail::input_adapter::input_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void input_adapter(const ContiguousContainer& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2703
    functionName: operator input_adapter_t()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator input_adapter_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2839
    functionName: ~json_sax()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2874
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2877
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2878
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2879
    functionName: '& operator=(const json_sax_dom_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2880
    functionName: '& operator=(json_sax_dom_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2881
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 1
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: nlohmann::detail::json_sax_dom_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2889
    functionDepth: 1
    functionLinenumber: 2889
    functionLinenumberEnd: 2893
    functionName: nlohmann::detail::json_sax_dom_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2895
    functionDepth: 1
    functionLinenumber: 2895
    functionLinenumberEnd: 2899
    functionName: nlohmann::detail::json_sax_dom_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2905
    functionName: nlohmann::detail::json_sax_dom_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2907
    functionDepth: 1
    functionLinenumber: 2907
    functionLinenumberEnd: 2911
    functionName: nlohmann::detail::json_sax_dom_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: nlohmann::detail::json_sax_dom_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 3
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: nlohmann::detail::json_sax_dom_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2937
    functionName: nlohmann::detail::json_sax_dom_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2943
    functionName: nlohmann::detail::json_sax_dom_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2945
    functionDepth: 3
    functionLinenumber: 2945
    functionLinenumberEnd: 2956
    functionName: nlohmann::detail::json_sax_dom_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: nlohmann::detail::json_sax_dom_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2990
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2990
    functionName: nlohmann::detail::json_sax_dom_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: nlohmann::detail::json_sax_dom_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3007,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3015,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: array::emplace_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3022,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3021
        line_start: 3021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3025
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3025
    functionName: nlohmann::detail::json_sax_dom_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - empty
    - array::emplace_back
    - back
    - assert
    - array::back
    - BasicJsonType
    - std::forward<Value>
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType * handle_value(Value&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - cb
    argTypes:
    - BasicJsonType
    - parser_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3056
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const
      parser_callback_t cb,\n                                 const bool allow_exceptions_
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3059
    functionDepth: 0
    functionLinenumber: 3059
    functionLinenumberEnd: 3059
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3060
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3061
    functionDepth: 0
    functionLinenumber: 3061
    functionLinenumberEnd: 3061
    functionName: '& operator=(const json_sax_dom_callback_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3062
    functionDepth: 0
    functionLinenumber: 3062
    functionLinenumberEnd: 3062
    functionName: '& operator=(json_sax_dom_callback_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3063
    functionDepth: 0
    functionLinenumber: 3063
    functionLinenumberEnd: 3063
    functionName: ~json_sax_dom_callback_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_callback_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3065
    functionDepth: 1
    functionLinenumber: 3065
    functionLinenumberEnd: 3069
    functionName: nlohmann::detail::json_sax_dom_callback_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3071
    functionDepth: 1
    functionLinenumber: 3071
    functionLinenumberEnd: 3075
    functionName: nlohmann::detail::json_sax_dom_callback_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3077
    functionDepth: 1
    functionLinenumber: 3077
    functionLinenumberEnd: 3081
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3083
    functionDepth: 1
    functionLinenumber: 3083
    functionLinenumberEnd: 3087
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3089
    functionDepth: 1
    functionLinenumber: 3089
    functionLinenumberEnd: 3093
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3095
    functionDepth: 1
    functionLinenumber: 3095
    functionLinenumberEnd: 3099
    functionName: nlohmann::detail::json_sax_dom_callback_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3105,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3107,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3108,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3101
    functionDepth: 3
    functionLinenumber: 3101
    functionLinenumberEnd: 3117
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3121,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3125,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3128,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3119
    functionDepth: 1
    functionLinenumber: 3119
    functionLinenumberEnd: 3134
    functionName: nlohmann::detail::json_sax_dom_callback_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - back
    - push_back
    - BasicJsonType
    - static_cast<int>
    - object
    - callback
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3141,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3146,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3147,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: auto::is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:3154,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3144
        line_start: 3144
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3143
        line_start: 3143
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3163
      start: 3136
    functionDepth: 1
    functionLinenumber: 3136
    functionLinenumberEnd: 3163
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - pop_back
    - static_cast<int>
    - auto::is_discarded
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3168,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3170,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3171,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3165
    functionDepth: 3
    functionLinenumber: 3165
    functionLinenumberEnd: 3180
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3186,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3198,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3199,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    - Dst: array::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3195
        line_start: 3195
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3196
        line_start: 3196
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3208
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3208
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::pop_back
    - pop_back
    - static_cast<int>
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3230
        line_start: 3230
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3236
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3236
    functionName: nlohmann::detail::json_sax_dom_callback_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3241
    functionName: nlohmann::detail::json_sax_dom_callback_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3266,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3283,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3285,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3291,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3300,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3310,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3311,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3318,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not key_keep_stack.empty())
      pos:
        line_end: 3308
        line_start: 3308
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3261
        line_start: 3261
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3296
        line_start: 3296
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3321
      start: 3260
    functionDepth: 1
    functionLinenumber: 3260
    functionLinenumberEnd: 3321
    functionName: nlohmann::detail::json_sax_dom_callback_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::back
    - pop_back
    - BasicJsonType
    - static_cast<int>
    - std::move
    - callback
    - array::push_back
    - std::forward<Value>
    linkageType: ''
    returnType: std::pair<bool, BasicJsonType*>
    signature: std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool
      skip_callback = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3355
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3355
    functionName: nlohmann::detail::json_sax_acceptor::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3357
    functionDepth: 0
    functionLinenumber: 3357
    functionLinenumberEnd: 3360
    functionName: nlohmann::detail::json_sax_acceptor::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3365
    functionName: nlohmann::detail::json_sax_acceptor::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3370
    functionName: nlohmann::detail::json_sax_acceptor::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3375
    functionName: nlohmann::detail::json_sax_acceptor::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    functionName: nlohmann::detail::json_sax_acceptor::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    functionName: nlohmann::detail::json_sax_acceptor::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    functionName: nlohmann::detail::json_sax_acceptor::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3392
    functionDepth: 0
    functionLinenumber: 3392
    functionLinenumberEnd: 3395
    functionName: nlohmann::detail::json_sax_acceptor::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3400
    functionName: nlohmann::detail::json_sax_acceptor::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3402
    functionDepth: 0
    functionLinenumber: 3402
    functionLinenumberEnd: 3405
    functionName: nlohmann::detail::json_sax_acceptor::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3407
    functionDepth: 0
    functionLinenumber: 3407
    functionLinenumberEnd: 3410
    functionName: nlohmann::detail::json_sax_acceptor::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
      const detail::exception& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2874
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2877
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2878
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2879
    functionName: '& operator=(const json_sax_dom_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2880
    functionName: '& operator=(json_sax_dom_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2881
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 2
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: nlohmann::detail::json_sax_dom_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2889
    functionDepth: 2
    functionLinenumber: 2889
    functionLinenumberEnd: 2893
    functionName: nlohmann::detail::json_sax_dom_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2899
    functionName: nlohmann::detail::json_sax_dom_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2905
    functionName: nlohmann::detail::json_sax_dom_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2907
    functionDepth: 2
    functionLinenumber: 2907
    functionLinenumberEnd: 2911
    functionName: nlohmann::detail::json_sax_dom_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 2
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: nlohmann::detail::json_sax_dom_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 3
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: nlohmann::detail::json_sax_dom_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2937
    functionName: nlohmann::detail::json_sax_dom_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2943
    functionName: nlohmann::detail::json_sax_dom_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2945
    functionDepth: 3
    functionLinenumber: 2945
    functionLinenumberEnd: 2956
    functionName: nlohmann::detail::json_sax_dom_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: nlohmann::detail::json_sax_dom_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2990
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2990
    functionName: nlohmann::detail::json_sax_dom_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: nlohmann::detail::json_sax_dom_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3007,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3015,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: array::emplace_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3022,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3021
        line_start: 3021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3025
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3025
    functionName: nlohmann::detail::json_sax_dom_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - empty
    - array::emplace_back
    - back
    - assert
    - array::back
    - BasicJsonType
    - std::forward<Value>
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType * handle_value(Value&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - cb
    argTypes:
    - BasicJsonType
    - parser_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3056
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const
      parser_callback_t cb,\n                                 const bool allow_exceptions_
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3059
    functionDepth: 0
    functionLinenumber: 3059
    functionLinenumberEnd: 3059
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3060
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3061
    functionDepth: 0
    functionLinenumber: 3061
    functionLinenumberEnd: 3061
    functionName: '& operator=(const json_sax_dom_callback_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3062
    functionDepth: 0
    functionLinenumber: 3062
    functionLinenumberEnd: 3062
    functionName: '& operator=(json_sax_dom_callback_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3063
    functionDepth: 0
    functionLinenumber: 3063
    functionLinenumberEnd: 3063
    functionName: ~json_sax_dom_callback_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_callback_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3065
    functionDepth: 2
    functionLinenumber: 3065
    functionLinenumberEnd: 3069
    functionName: nlohmann::detail::json_sax_dom_callback_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3071
    functionDepth: 2
    functionLinenumber: 3071
    functionLinenumberEnd: 3075
    functionName: nlohmann::detail::json_sax_dom_callback_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3077
    functionDepth: 2
    functionLinenumber: 3077
    functionLinenumberEnd: 3081
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3083
    functionDepth: 2
    functionLinenumber: 3083
    functionLinenumberEnd: 3087
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3089
    functionDepth: 2
    functionLinenumber: 3089
    functionLinenumberEnd: 3093
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3095
    functionDepth: 2
    functionLinenumber: 3095
    functionLinenumberEnd: 3099
    functionName: nlohmann::detail::json_sax_dom_callback_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3105,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3107,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3108,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3101
    functionDepth: 3
    functionLinenumber: 3101
    functionLinenumberEnd: 3117
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3121,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3125,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3128,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3119
    functionDepth: 1
    functionLinenumber: 3119
    functionLinenumberEnd: 3134
    functionName: nlohmann::detail::json_sax_dom_callback_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - back
    - push_back
    - BasicJsonType
    - static_cast<int>
    - object
    - callback
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3141,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3146,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3147,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: auto::is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:3154,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3144
        line_start: 3144
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3143
        line_start: 3143
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3163
      start: 3136
    functionDepth: 1
    functionLinenumber: 3136
    functionLinenumberEnd: 3163
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - pop_back
    - static_cast<int>
    - auto::is_discarded
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3168,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3170,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3171,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3165
    functionDepth: 3
    functionLinenumber: 3165
    functionLinenumberEnd: 3180
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3186,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3198,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3199,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    - Dst: array::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3195
        line_start: 3195
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3196
        line_start: 3196
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3208
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3208
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::pop_back
    - pop_back
    - static_cast<int>
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3230
        line_start: 3230
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3236
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3236
    functionName: nlohmann::detail::json_sax_dom_callback_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3241
    functionName: nlohmann::detail::json_sax_dom_callback_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3266,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3283,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3285,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3291,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3300,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3310,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3311,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3318,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not key_keep_stack.empty())
      pos:
        line_end: 3308
        line_start: 3308
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3261
        line_start: 3261
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3296
        line_start: 3296
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3321
      start: 3260
    functionDepth: 1
    functionLinenumber: 3260
    functionLinenumberEnd: 3321
    functionName: nlohmann::detail::json_sax_dom_callback_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::back
    - pop_back
    - BasicJsonType
    - static_cast<int>
    - std::move
    - callback
    - array::push_back
    - std::forward<Value>
    linkageType: ''
    returnType: std::pair<bool, BasicJsonType*>
    signature: std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool
      skip_callback = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3355
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3355
    functionName: nlohmann::detail::json_sax_acceptor::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3357
    functionDepth: 0
    functionLinenumber: 3357
    functionLinenumberEnd: 3360
    functionName: nlohmann::detail::json_sax_acceptor::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3365
    functionName: nlohmann::detail::json_sax_acceptor::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3370
    functionName: nlohmann::detail::json_sax_acceptor::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3375
    functionName: nlohmann::detail::json_sax_acceptor::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    functionName: nlohmann::detail::json_sax_acceptor::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    functionName: nlohmann::detail::json_sax_acceptor::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    functionName: nlohmann::detail::json_sax_acceptor::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3392
    functionDepth: 0
    functionLinenumber: 3392
    functionLinenumberEnd: 3395
    functionName: nlohmann::detail::json_sax_acceptor::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3400
    functionName: nlohmann::detail::json_sax_acceptor::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3402
    functionDepth: 0
    functionLinenumber: 3402
    functionLinenumberEnd: 3405
    functionName: nlohmann::detail::json_sax_acceptor::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3407
    functionDepth: 0
    functionLinenumber: 3407
    functionLinenumberEnd: 3410
    functionName: nlohmann::detail::json_sax_acceptor::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
      const detail::exception& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2839
    functionName: ~json_sax()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2874
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2877
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2878
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2879
    functionName: '& operator=(const json_sax_dom_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2880
    functionName: '& operator=(json_sax_dom_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2881
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 2
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: nlohmann::detail::json_sax_dom_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2889
    functionDepth: 2
    functionLinenumber: 2889
    functionLinenumberEnd: 2893
    functionName: nlohmann::detail::json_sax_dom_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2899
    functionName: nlohmann::detail::json_sax_dom_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2905
    functionName: nlohmann::detail::json_sax_dom_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2907
    functionDepth: 2
    functionLinenumber: 2907
    functionLinenumberEnd: 2911
    functionName: nlohmann::detail::json_sax_dom_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 2
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: nlohmann::detail::json_sax_dom_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 3
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: nlohmann::detail::json_sax_dom_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2937
    functionName: nlohmann::detail::json_sax_dom_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2943
    functionName: nlohmann::detail::json_sax_dom_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2945
    functionDepth: 3
    functionLinenumber: 2945
    functionLinenumberEnd: 2956
    functionName: nlohmann::detail::json_sax_dom_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: nlohmann::detail::json_sax_dom_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2990
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2990
    functionName: nlohmann::detail::json_sax_dom_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: nlohmann::detail::json_sax_dom_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3007,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3015,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: array::emplace_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3022,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3021
        line_start: 3021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3025
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3025
    functionName: nlohmann::detail::json_sax_dom_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 24
    functionsReached:
    - empty
    - array::emplace_back
    - back
    - assert
    - array::back
    - BasicJsonType
    - std::forward<Value>
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType * handle_value(Value&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - cb
    argTypes:
    - BasicJsonType
    - parser_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3056
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const
      parser_callback_t cb,\n                                 const bool allow_exceptions_
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3059
    functionDepth: 0
    functionLinenumber: 3059
    functionLinenumberEnd: 3059
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3060
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3061
    functionDepth: 0
    functionLinenumber: 3061
    functionLinenumberEnd: 3061
    functionName: '& operator=(const json_sax_dom_callback_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3062
    functionDepth: 0
    functionLinenumber: 3062
    functionLinenumberEnd: 3062
    functionName: '& operator=(json_sax_dom_callback_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3063
    functionDepth: 0
    functionLinenumber: 3063
    functionLinenumberEnd: 3063
    functionName: ~json_sax_dom_callback_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_callback_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3065
    functionDepth: 2
    functionLinenumber: 3065
    functionLinenumberEnd: 3069
    functionName: nlohmann::detail::json_sax_dom_callback_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3071
    functionDepth: 2
    functionLinenumber: 3071
    functionLinenumberEnd: 3075
    functionName: nlohmann::detail::json_sax_dom_callback_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3077
    functionDepth: 2
    functionLinenumber: 3077
    functionLinenumberEnd: 3081
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3083
    functionDepth: 2
    functionLinenumber: 3083
    functionLinenumberEnd: 3087
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3089
    functionDepth: 2
    functionLinenumber: 3089
    functionLinenumberEnd: 3093
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3095
    functionDepth: 2
    functionLinenumber: 3095
    functionLinenumberEnd: 3099
    functionName: nlohmann::detail::json_sax_dom_callback_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3105,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3107,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3108,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3101
    functionDepth: 3
    functionLinenumber: 3101
    functionLinenumberEnd: 3117
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3121,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3125,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3128,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3119
    functionDepth: 1
    functionLinenumber: 3119
    functionLinenumberEnd: 3134
    functionName: nlohmann::detail::json_sax_dom_callback_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - back
    - push_back
    - BasicJsonType
    - static_cast<int>
    - object
    - callback
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3141,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3146,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3147,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: auto::is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:3154,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3144
        line_start: 3144
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3143
        line_start: 3143
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3163
      start: 3136
    functionDepth: 1
    functionLinenumber: 3136
    functionLinenumberEnd: 3163
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - pop_back
    - static_cast<int>
    - auto::is_discarded
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3168,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3170,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3171,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3165
    functionDepth: 3
    functionLinenumber: 3165
    functionLinenumberEnd: 3180
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3186,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3198,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3199,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    - Dst: array::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3195
        line_start: 3195
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3196
        line_start: 3196
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3208
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3208
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::pop_back
    - pop_back
    - static_cast<int>
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3230
        line_start: 3230
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3236
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3236
    functionName: nlohmann::detail::json_sax_dom_callback_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3241
    functionName: nlohmann::detail::json_sax_dom_callback_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3266,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3283,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3285,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3291,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3300,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3310,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3311,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3318,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not key_keep_stack.empty())
      pos:
        line_end: 3308
        line_start: 3308
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3261
        line_start: 3261
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3296
        line_start: 3296
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3321
      start: 3260
    functionDepth: 1
    functionLinenumber: 3260
    functionLinenumberEnd: 3321
    functionName: nlohmann::detail::json_sax_dom_callback_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 24
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::back
    - pop_back
    - BasicJsonType
    - static_cast<int>
    - std::move
    - callback
    - array::push_back
    - std::forward<Value>
    linkageType: ''
    returnType: std::pair<bool, BasicJsonType*>
    signature: std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool
      skip_callback = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3355
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3355
    functionName: nlohmann::detail::json_sax_acceptor::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3357
    functionDepth: 0
    functionLinenumber: 3357
    functionLinenumberEnd: 3360
    functionName: nlohmann::detail::json_sax_acceptor::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3365
    functionName: nlohmann::detail::json_sax_acceptor::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3370
    functionName: nlohmann::detail::json_sax_acceptor::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3375
    functionName: nlohmann::detail::json_sax_acceptor::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    functionName: nlohmann::detail::json_sax_acceptor::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    functionName: nlohmann::detail::json_sax_acceptor::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    functionName: nlohmann::detail::json_sax_acceptor::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3392
    functionDepth: 0
    functionLinenumber: 3392
    functionLinenumberEnd: 3395
    functionName: nlohmann::detail::json_sax_acceptor::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3400
    functionName: nlohmann::detail::json_sax_acceptor::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3402
    functionDepth: 0
    functionLinenumber: 3402
    functionLinenumberEnd: 3405
    functionName: nlohmann::detail::json_sax_acceptor::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3407
    functionDepth: 0
    functionLinenumber: 3407
    functionLinenumberEnd: 3410
    functionName: nlohmann::detail::json_sax_acceptor::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
      const detail::exception& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2874
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2877
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2878
    functionName: nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2879
    functionName: '& operator=(const json_sax_dom_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2880
    functionName: '& operator=(json_sax_dom_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_parser
    signature: json_sax_dom_parser & operator=(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2881
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 2
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: nlohmann::detail::json_sax_dom_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2889
    functionDepth: 2
    functionLinenumber: 2889
    functionLinenumberEnd: 2893
    functionName: nlohmann::detail::json_sax_dom_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2899
    functionName: nlohmann::detail::json_sax_dom_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2905
    functionName: nlohmann::detail::json_sax_dom_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2907
    functionDepth: 2
    functionLinenumber: 2907
    functionLinenumberEnd: 2911
    functionName: nlohmann::detail::json_sax_dom_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 2
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: nlohmann::detail::json_sax_dom_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2921,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2923,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2925,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 3
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: nlohmann::detail::json_sax_dom_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2937
    functionName: nlohmann::detail::json_sax_dom_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2939
    functionDepth: 0
    functionLinenumber: 2939
    functionLinenumberEnd: 2943
    functionName: nlohmann::detail::json_sax_dom_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: nlohmann::detail::json_sax_dom_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:2947,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2949,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:2951,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2945
    functionDepth: 3
    functionLinenumber: 2945
    functionLinenumberEnd: 2956
    functionName: nlohmann::detail::json_sax_dom_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::json_sax_dom_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: nlohmann::detail::json_sax_dom_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2974,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2976,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2979,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2981,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:2983,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:2985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 2990
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2990
    functionName: nlohmann::detail::json_sax_dom_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: nlohmann::detail::json_sax_dom_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3007,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3009,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3013,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3015,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: array::emplace_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3017,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3018,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3021,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3022,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3021
        line_start: 3021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3025
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3025
    functionName: nlohmann::detail::json_sax_dom_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 32
    functionsReached:
    - empty
    - array::emplace_back
    - back
    - assert
    - array::back
    - BasicJsonType
    - std::forward<Value>
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType * handle_value(Value&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - cb
    argTypes:
    - BasicJsonType
    - parser_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3056
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const
      parser_callback_t cb,\n                                 const bool allow_exceptions_
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3059
    functionDepth: 0
    functionLinenumber: 3059
    functionLinenumberEnd: 3059
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3060
    functionName: nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3061
    functionDepth: 0
    functionLinenumber: 3061
    functionLinenumberEnd: 3061
    functionName: '& operator=(const json_sax_dom_callback_parser&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3062
    functionDepth: 0
    functionLinenumber: 3062
    functionLinenumberEnd: 3062
    functionName: '& operator=(json_sax_dom_callback_parser&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3063
    functionDepth: 0
    functionLinenumber: 3063
    functionLinenumberEnd: 3063
    functionName: ~json_sax_dom_callback_parser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_callback_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3065
    functionDepth: 2
    functionLinenumber: 3065
    functionLinenumberEnd: 3069
    functionName: nlohmann::detail::json_sax_dom_callback_parser::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3071
    functionDepth: 2
    functionLinenumber: 3071
    functionLinenumberEnd: 3075
    functionName: nlohmann::detail::json_sax_dom_callback_parser::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3077
    functionDepth: 2
    functionLinenumber: 3077
    functionLinenumberEnd: 3081
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3083
    functionDepth: 2
    functionLinenumber: 3083
    functionLinenumberEnd: 3087
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3089
    functionDepth: 2
    functionLinenumber: 3089
    functionLinenumberEnd: 3093
    functionName: nlohmann::detail::json_sax_dom_callback_parser::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3095
    functionDepth: 2
    functionLinenumber: 3095
    functionLinenumberEnd: 3099
    functionName: nlohmann::detail::json_sax_dom_callback_parser::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3104,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3105,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3107,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3108,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3111,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3101
    functionDepth: 3
    functionLinenumber: 3101
    functionLinenumberEnd: 3117
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3121,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3124,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3125,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3128,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3119
    functionDepth: 1
    functionLinenumber: 3119
    functionLinenumberEnd: 3134
    functionName: nlohmann::detail::json_sax_dom_callback_parser::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - back
    - push_back
    - BasicJsonType
    - static_cast<int>
    - object
    - callback
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3138,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3141,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3144,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3145,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3146,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3147,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3149,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3152,1
    - Dst: auto::is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:3154,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3144
        line_start: 3144
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3143
        line_start: 3143
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3163
      start: 3136
    functionDepth: 1
    functionLinenumber: 3136
    functionLinenumberEnd: 3163
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - pop_back
    - static_cast<int>
    - auto::is_discarded
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3167,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3168,1
    - Dst: nlohmann::detail::json_sax_dom_callback_parser::handle_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:3170,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3171,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3174,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3165
    functionDepth: 3
    functionLinenumber: 3165
    functionLinenumberEnd: 3180
    functionName: nlohmann::detail::json_sax_dom_callback_parser::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::json_sax_dom_callback_parser::handle_value
    - back
    - nlohmann::detail::out_of_range::create
    - std::size_t
    - push_back
    - to_string
    - static_cast<int>
    - JSON_THROW
    - JSON_UNLIKELY
    - callback
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3186,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3188,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3196,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3197,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3198,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3199,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3202,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    - Dst: array::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not ref_stack.empty())
      pos:
        line_end: 3195
        line_start: 3195
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3196
        line_start: 3196
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3208
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3208
    functionName: nlohmann::detail::json_sax_dom_callback_parser::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::pop_back
    - pop_back
    - static_cast<int>
    - callback
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: static_cast<const detail::parse_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3220,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: static_cast<const detail::out_of_range*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3222,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: static_cast<const detail::invalid_iterator*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3225,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: static_cast<const detail::type_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3227,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: static_cast<const detail::other_error*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3229,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - detail::exception
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3230
        line_start: 3230
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3236
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3236
    functionName: nlohmann::detail::json_sax_dom_callback_parser::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<const detail::out_of_range*>
    - static_cast<const detail::other_error*>
    - assert
    - static_cast<const detail::type_error*>
    - static_cast<const detail::parse_error*>
    - JSON_THROW
    - static_cast<const detail::invalid_iterator*>
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const detail::exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3241
    functionName: nlohmann::detail::json_sax_dom_callback_parser::is_errored
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3262,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3266,1
    - Dst: BasicJsonType
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: std::forward<Value>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3272,1
    - Dst: callback
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3275,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3283,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3285,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3291,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3297,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3300,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3302,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3303,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:3309,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3310,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:3311,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3318,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts:
    - condition: (ref_stack.back()->is_object())
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not key_keep_stack.empty())
      pos:
        line_end: 3308
        line_start: 3308
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not keep_stack.empty())
      pos:
        line_end: 3261
        line_start: 3261
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ref_stack.back()->is_array() or ref_stack.back()->is_object())
      pos:
        line_end: 3296
        line_start: 3296
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object_element)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3321
      start: 3260
    functionDepth: 1
    functionLinenumber: 3260
    functionLinenumberEnd: 3321
    functionName: nlohmann::detail::json_sax_dom_callback_parser::handle_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 32
    functionsReached:
    - empty
    - size
    - assert
    - back
    - array::back
    - pop_back
    - BasicJsonType
    - static_cast<int>
    - std::move
    - callback
    - array::push_back
    - std::forward<Value>
    linkageType: ''
    returnType: std::pair<bool, BasicJsonType*>
    signature: std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool
      skip_callback = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3355
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3355
    functionName: nlohmann::detail::json_sax_acceptor::null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3357
    functionDepth: 0
    functionLinenumber: 3357
    functionLinenumberEnd: 3360
    functionName: nlohmann::detail::json_sax_acceptor::boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3365
    functionName: nlohmann::detail::json_sax_acceptor::number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3370
    functionName: nlohmann::detail::json_sax_acceptor::number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3375
    functionName: nlohmann::detail::json_sax_acceptor::number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    functionName: nlohmann::detail::json_sax_acceptor::string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    functionName: nlohmann::detail::json_sax_acceptor::start_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    functionName: nlohmann::detail::json_sax_acceptor::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3392
    functionDepth: 0
    functionLinenumber: 3392
    functionLinenumberEnd: 3395
    functionName: nlohmann::detail::json_sax_acceptor::end_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3400
    functionName: nlohmann::detail::json_sax_acceptor::start_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::size_t
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t  /*unused*/ = std::size_t(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3402
    functionDepth: 0
    functionLinenumber: 3402
    functionLinenumberEnd: 3405
    functionName: nlohmann::detail::json_sax_acceptor::end_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3407
    functionDepth: 0
    functionLinenumber: 3407
    functionLinenumberEnd: 3410
    functionName: nlohmann::detail::json_sax_acceptor::parse_error
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
      const detail::exception& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3593,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - input_adapter_t
    assertStmts:
    - condition: (ia)
      pos:
        line_end: 3595
        line_start: 3595
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3597
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3597
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_reader(input_adapter_t adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3600
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3601
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3602
    functionName: '& operator=(const binary_reader&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3603
    functionName: '& operator=(binary_reader&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3604
    functionDepth: 0
    functionLinenumber: 3604
    functionLinenumberEnd: 3604
    functionName: ~binary_reader()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~binary_reader()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3623,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3627,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3631,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3635,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3639,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:3647,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3651,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - format
    - sax_
    argTypes:
    - input_format_t
    - json_sax_t*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3638
        line_start: 3638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3662
      start: 3613
    functionDepth: 3
    functionLinenumber: 3613
    functionLinenumberEnd: 3662
    functionName: nlohmann::detail::binary_reader::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - assert
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::parse_bson_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(const input_format_t format,\n                   json_sax_t*
      sax_,\n                   const bool strict = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3674
    functionName: nlohmann::detail::binary_reader::little_endianess
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: bool
    signature: bool little_endianess(int num = 1) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3688,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3701
    functionName: nlohmann::detail::binary_reader::parse_bson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::size_t
    - nlohmann::detail::binary_reader::get_number
    - start_object
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:3712,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3715,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3710
    functionDepth: 1
    functionLinenumber: 3710
    functionLinenumberEnd: 3728
    functionName: nlohmann::detail::binary_reader::get_bson_cstr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool get_bson_cstr(string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3744,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3746,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: static_cast<NumberType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3742
    functionDepth: 3
    functionLinenumber: 3742
    functionLinenumberEnd: 3751
    functionName: nlohmann::detail::binary_reader::get_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<NumberType>
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - to_string
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_bson_string(const NumberType len, string_t& result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::get_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3783,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3788,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:3798,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - element_type
    - element_type_parse_position
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3763
    functionDepth: 4
    functionLinenumber: 3763
    functionLinenumberEnd: 3820
    functionName: nlohmann::detail::binary_reader::parse_bson_element_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - 'null'
    - string
    - nlohmann::detail::binary_reader::get_bson_string
    - nlohmann::detail::binary_reader::parse_bson_array
    - nlohmann::detail::binary_reader::get
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_number
    - std::array::size
    - static_cast<unsigned char>
    - std::array::data
    - parse_error
    - std::string
    - nlohmann::detail::parse_error::create
    - number_float
    - nlohmann::detail::binary_reader::parse_bson_internal
    - boolean
    - number_integer
    linkageType: ''
    returnType: bool
    signature: "bool parse_bson_element_internal(const int element_type,\n                                     const
      std::size_t element_type_parse_position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3837,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: nlohmann::detail::binary_reader::get_bson_cstr
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:3850,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - is_array
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3834
    functionDepth: 5
    functionLinenumber: 3834
    functionLinenumberEnd: 3865
    functionName: nlohmann::detail::binary_reader::parse_bson_element_list
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get_bson_cstr
    - key
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - string_t::clear
    - nlohmann::detail::binary_reader::parse_bson_element_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_element_list(const bool is_array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3874,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3871
    functionDepth: 6
    functionLinenumber: 3871
    functionLinenumberEnd: 3887
    functionName: nlohmann::detail::binary_reader::parse_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - end_array
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_array()
  - BBCount: 157
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3902,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3905,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3906,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4008,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4155,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4158,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4161,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4165,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4170,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4176,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4177,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4187,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4193,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4197,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/sleuthkit/tools/logicalimager/json.h:4200,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/sleuthkit/tools/logicalimager/json.h:4201,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4203,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4206,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4207,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4208,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4225,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 <= exp and exp <= 32)
      pos:
        line_end: 4191
        line_start: 4191
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0 <= mant and mant <= 1024)
      pos:
        line_end: 4192
        line_start: 4192
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 4229
      start: 3900
    functionDepth: 3
    functionLinenumber: 3900
    functionLinenumberEnd: 4229
    functionName: nlohmann::detail::binary_reader::parse_cbor_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - 'null'
    - number_unsigned
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - static_cast<number_integer_t>
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_token_string
    - std::numeric_limits<double>::quiet_NaN
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_cbor_object
    - static_cast<std::int8_t>
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned char>
    - static_cast<std::size_t>
    - boolean
    - std::numeric_limits<double>::infinity
    - string
    - static_cast<number_float_t>
    - number_float
    - nlohmann::detail::binary_reader::get_cbor_array
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: bool parse_cbor_internal(const bool get_char = true)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4306,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4309,1
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:4313,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4320,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4242
    functionDepth: 3
    functionLinenumber: 4242
    functionLinenumberEnd: 4324
    functionName: nlohmann::detail::binary_reader::get_cbor_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - append
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_string(string_t& result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4338,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4350,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4331
    functionDepth: 4
    functionLinenumber: 4331
    functionLinenumberEnd: 4360
    functionName: nlohmann::detail::binary_reader::get_cbor_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_array(const std::size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4375,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4379,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4389,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4394,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4405,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4367
    functionDepth: 4
    functionLinenumber: 4367
    functionLinenumberEnd: 4410
    functionName: nlohmann::detail::binary_reader::get_cbor_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - key
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - start_object
    - nlohmann::detail::binary_reader::get_cbor_string
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_object(const std::size_t len)
  - BBCount: 247
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4421,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4424,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4425,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4635,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4638,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4641,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4772,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 291
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4419
    functionDepth: 3
    functionLinenumber: 4419
    functionLinenumberEnd: 4776
    functionName: nlohmann::detail::binary_reader::parse_msgpack_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_msgpack_string
    - nlohmann::detail::binary_reader::get_token_string
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - static_cast<std::int8_t>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<std::size_t>
    - boolean
    - string
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_msgpack_object
    - nlohmann::detail::binary_reader::get_msgpack_array
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool parse_msgpack_internal()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4854,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4858
      start: 4788
    functionDepth: 3
    functionLinenumber: 4788
    functionLinenumberEnd: 4858
    functionName: nlohmann::detail::binary_reader::get_msgpack_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_string(string_t& result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4864
    functionDepth: 4
    functionLinenumber: 4864
    functionLinenumberEnd: 4880
    functionName: nlohmann::detail::binary_reader::get_msgpack_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - JSON_UNLIKELY
    - start_array
    - end_array
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_array(const std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4896,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4906,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4886
    functionDepth: 4
    functionLinenumber: 4886
    functionLinenumberEnd: 4910
    functionName: nlohmann::detail::binary_reader::get_msgpack_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - key
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - nlohmann::detail::binary_reader::get_msgpack_string
    - start_object
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_object(const std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4923
    functionDepth: 1
    functionLinenumber: 4923
    functionLinenumberEnd: 4926
    functionName: nlohmann::detail::binary_reader::parse_ubjson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_value
    - nlohmann::detail::binary_reader::get_ignore_noop
    linkageType: ''
    returnType: bool
    signature: bool parse_ubjson_internal(const bool get_char = true)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4946,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4987,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4942
    functionDepth: 3
    functionLinenumber: 4942
    functionLinenumberEnd: 4990
    functionName: nlohmann::detail::binary_reader::get_ubjson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_string(string_t& result, const bool get_char = true)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4998,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5007,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5018,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5029,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5040,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5051,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5057,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 4996
    functionDepth: 3
    functionLinenumber: 4996
    functionLinenumberEnd: 5061
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - static_cast<std::size_t>
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_value(std::size_t& result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5078,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5082,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5088,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5089,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5095,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5099,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::pair<std::size_t, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5073
    functionDepth: 4
    functionLinenumber: 5073
    functionLinenumberEnd: 5108
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_size_value
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_type(std::pair<std::size_t, int>& result)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5118,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5119,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5122,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5124,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:5127,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5173,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5178,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5180,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5183,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5184,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5194,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5197,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5201,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5114
    functionDepth: 4
    functionLinenumber: 5114
    functionLinenumberEnd: 5205
    functionName: nlohmann::detail::binary_reader::get_ubjson_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_ubjson_array
    - nlohmann::detail::binary_reader::get_ubjson_object
    - nlohmann::detail::binary_reader::unexpect_eof
    - boolean
    - static_cast<char>
    - string
    - static_cast<number_float_t>
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_value(const int prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5262,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5267
      start: 5210
    functionDepth: 5
    functionLinenumber: 5210
    functionLinenumberEnd: 5267
    functionName: nlohmann::detail::binary_reader::get_ubjson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::get_ubjson_value
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_array()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5300,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5315,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5336,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5337,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5272
    functionDepth: 5
    functionLinenumber: 5272
    functionLinenumberEnd: 5342
    functionName: nlohmann::detail::binary_reader::get_ubjson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - key
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - string_t::clear
    - nlohmann::detail::binary_reader::get_ignore_noop
    - start_object
    - nlohmann::detail::binary_reader::get_ubjson_value
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:5360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5357
    functionDepth: 0
    functionLinenumber: 5357
    functionLinenumberEnd: 5361
    functionName: nlohmann::detail::binary_reader::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 14
    functionsReached:
    - get_character
    linkageType: ''
    returnType: int
    signature: int get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5375
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5375
    functionName: nlohmann::detail::binary_reader::get_ignore_noop
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::binary_reader::get
    linkageType: ''
    returnType: int
    signature: int get_ignore_noop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5397,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5406,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5410,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5391
    functionDepth: 1
    functionLinenumber: 5391
    functionLinenumberEnd: 5417
    functionName: nlohmann::detail::binary_reader::get_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - std::memcpy
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::array::data
    - static_cast<std::uint8_t>
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_number(const input_format_t format, NumberType& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5441,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5449
      start: 5434
    functionDepth: 1
    functionLinenumber: 5434
    functionLinenumberEnd: 5449
    functionName: nlohmann::detail::binary_reader::get_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::generate_n
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: "bool get_string(const input_format_t format,\n                    const
      NumberType len,\n                    string_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5460,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - context
    argTypes:
    - input_format_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5456
    functionDepth: 3
    functionLinenumber: 5456
    functionLinenumberEnd: 5464
    functionName: nlohmann::detail::binary_reader::unexpect_eof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 26
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool unexpect_eof(const input_format_t format, const char* context)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5469
    functionDepth: 1
    functionLinenumber: 5469
    functionLinenumberEnd: 5474
    functionName: nlohmann::detail::binary_reader::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - format
    - ' detail'
    - ' context'
    argTypes:
    - input_format_t
    - std::string
    - std::string
    assertStmts:
    - condition: (false)
      pos:
        line_end: 5506
        line_start: 5506
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5511
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5511
    functionName: nlohmann::detail::binary_reader::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::string
    signature: "std::string exception_message(const input_format_t format,\n                                  const
      std::string& detail,\n                                  const std::string& context)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3593,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - input_adapter_t
    assertStmts:
    - condition: (ia)
      pos:
        line_end: 3595
        line_start: 3595
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3597
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3597
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_reader(input_adapter_t adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3600
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3601
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3602
    functionName: '& operator=(const binary_reader&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3603
    functionName: '& operator=(binary_reader&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3604
    functionDepth: 0
    functionLinenumber: 3604
    functionLinenumberEnd: 3604
    functionName: ~binary_reader()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~binary_reader()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3623,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3627,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3631,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3635,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3639,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:3647,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3651,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - format
    - sax_
    argTypes:
    - input_format_t
    - json_sax_t*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3638
        line_start: 3638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3662
      start: 3613
    functionDepth: 4
    functionLinenumber: 3613
    functionLinenumberEnd: 3662
    functionName: nlohmann::detail::binary_reader::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - assert
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::parse_bson_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(const input_format_t format,\n                   json_sax_t*
      sax_,\n                   const bool strict = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3674
    functionName: nlohmann::detail::binary_reader::little_endianess
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: bool
    signature: bool little_endianess(int num = 1) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3688,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3685
    functionDepth: 6
    functionLinenumber: 3685
    functionLinenumberEnd: 3701
    functionName: nlohmann::detail::binary_reader::parse_bson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::size_t
    - nlohmann::detail::binary_reader::get_number
    - start_object
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:3712,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3715,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3710
    functionDepth: 4
    functionLinenumber: 3710
    functionLinenumberEnd: 3728
    functionName: nlohmann::detail::binary_reader::get_bson_cstr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool get_bson_cstr(string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3744,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3746,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: static_cast<NumberType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3742
    functionDepth: 4
    functionLinenumber: 3742
    functionLinenumberEnd: 3751
    functionName: nlohmann::detail::binary_reader::get_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<NumberType>
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - to_string
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_bson_string(const NumberType len, string_t& result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::get_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3783,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3788,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:3798,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - element_type
    - element_type_parse_position
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3763
    functionDepth: 7
    functionLinenumber: 3763
    functionLinenumberEnd: 3820
    functionName: nlohmann::detail::binary_reader::parse_bson_element_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - 'null'
    - string
    - nlohmann::detail::binary_reader::get_bson_string
    - nlohmann::detail::binary_reader::parse_bson_array
    - nlohmann::detail::binary_reader::get
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_number
    - std::array::size
    - static_cast<unsigned char>
    - std::array::data
    - parse_error
    - std::string
    - nlohmann::detail::parse_error::create
    - number_float
    - nlohmann::detail::binary_reader::parse_bson_internal
    - boolean
    - number_integer
    linkageType: ''
    returnType: bool
    signature: "bool parse_bson_element_internal(const int element_type,\n                                     const
      std::size_t element_type_parse_position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3837,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: nlohmann::detail::binary_reader::get_bson_cstr
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:3850,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - is_array
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3834
    functionDepth: 5
    functionLinenumber: 3834
    functionLinenumberEnd: 3865
    functionName: nlohmann::detail::binary_reader::parse_bson_element_list
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::get_bson_cstr
    - key
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - string_t::clear
    - nlohmann::detail::binary_reader::parse_bson_element_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_element_list(const bool is_array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3874,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3871
    functionDepth: 6
    functionLinenumber: 3871
    functionLinenumberEnd: 3887
    functionName: nlohmann::detail::binary_reader::parse_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - end_array
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_array()
  - BBCount: 157
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3902,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3905,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3906,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4008,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4155,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4158,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4161,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4165,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4170,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4176,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4177,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4187,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4193,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4197,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/sleuthkit/tools/logicalimager/json.h:4200,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/sleuthkit/tools/logicalimager/json.h:4201,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4203,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4206,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4207,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4208,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4225,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 <= exp and exp <= 32)
      pos:
        line_end: 4191
        line_start: 4191
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0 <= mant and mant <= 1024)
      pos:
        line_end: 4192
        line_start: 4192
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 4229
      start: 3900
    functionDepth: 5
    functionLinenumber: 3900
    functionLinenumberEnd: 4229
    functionName: nlohmann::detail::binary_reader::parse_cbor_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - 'null'
    - number_unsigned
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - static_cast<number_integer_t>
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_token_string
    - std::numeric_limits<double>::quiet_NaN
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_cbor_object
    - static_cast<std::int8_t>
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned char>
    - static_cast<std::size_t>
    - boolean
    - std::numeric_limits<double>::infinity
    - string
    - static_cast<number_float_t>
    - number_float
    - nlohmann::detail::binary_reader::get_cbor_array
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: bool parse_cbor_internal(const bool get_char = true)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4306,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4309,1
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:4313,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4320,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4242
    functionDepth: 4
    functionLinenumber: 4242
    functionLinenumberEnd: 4324
    functionName: nlohmann::detail::binary_reader::get_cbor_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - append
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_string(string_t& result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4338,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4350,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4331
    functionDepth: 4
    functionLinenumber: 4331
    functionLinenumberEnd: 4360
    functionName: nlohmann::detail::binary_reader::get_cbor_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_array(const std::size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4375,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4379,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4389,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4394,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4405,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4367
    functionDepth: 4
    functionLinenumber: 4367
    functionLinenumberEnd: 4410
    functionName: nlohmann::detail::binary_reader::get_cbor_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - key
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - start_object
    - nlohmann::detail::binary_reader::get_cbor_string
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_object(const std::size_t len)
  - BBCount: 247
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4421,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4424,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4425,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4635,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4638,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4641,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4772,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 291
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4419
    functionDepth: 5
    functionLinenumber: 4419
    functionLinenumberEnd: 4776
    functionName: nlohmann::detail::binary_reader::parse_msgpack_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_msgpack_string
    - nlohmann::detail::binary_reader::get_token_string
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - static_cast<std::int8_t>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<std::size_t>
    - boolean
    - string
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_msgpack_object
    - nlohmann::detail::binary_reader::get_msgpack_array
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool parse_msgpack_internal()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4854,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4858
      start: 4788
    functionDepth: 4
    functionLinenumber: 4788
    functionLinenumberEnd: 4858
    functionName: nlohmann::detail::binary_reader::get_msgpack_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_string(string_t& result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4864
    functionDepth: 4
    functionLinenumber: 4864
    functionLinenumberEnd: 4880
    functionName: nlohmann::detail::binary_reader::get_msgpack_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - JSON_UNLIKELY
    - start_array
    - end_array
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_array(const std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4896,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4906,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4886
    functionDepth: 4
    functionLinenumber: 4886
    functionLinenumberEnd: 4910
    functionName: nlohmann::detail::binary_reader::get_msgpack_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - key
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - nlohmann::detail::binary_reader::get_msgpack_string
    - start_object
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_object(const std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4923
    functionDepth: 5
    functionLinenumber: 4923
    functionLinenumberEnd: 4926
    functionName: nlohmann::detail::binary_reader::parse_ubjson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_value
    - nlohmann::detail::binary_reader::get_ignore_noop
    linkageType: ''
    returnType: bool
    signature: bool parse_ubjson_internal(const bool get_char = true)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4946,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4987,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4942
    functionDepth: 4
    functionLinenumber: 4942
    functionLinenumberEnd: 4990
    functionName: nlohmann::detail::binary_reader::get_ubjson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_string(string_t& result, const bool get_char = true)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4998,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5007,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5018,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5029,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5040,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5051,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5057,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 4996
    functionDepth: 3
    functionLinenumber: 4996
    functionLinenumberEnd: 5061
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - static_cast<std::size_t>
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_value(std::size_t& result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5078,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5082,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5088,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5089,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5095,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5099,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::pair<std::size_t, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5073
    functionDepth: 4
    functionLinenumber: 5073
    functionLinenumberEnd: 5108
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_size_value
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_type(std::pair<std::size_t, int>& result)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5118,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5119,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5122,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5124,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:5127,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5173,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5178,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5180,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5183,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5184,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5194,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5197,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5201,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5114
    functionDepth: 6
    functionLinenumber: 5114
    functionLinenumberEnd: 5205
    functionName: nlohmann::detail::binary_reader::get_ubjson_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_ubjson_array
    - nlohmann::detail::binary_reader::get_ubjson_object
    - nlohmann::detail::binary_reader::unexpect_eof
    - boolean
    - static_cast<char>
    - string
    - static_cast<number_float_t>
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_value(const int prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5262,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5267
      start: 5210
    functionDepth: 5
    functionLinenumber: 5210
    functionLinenumberEnd: 5267
    functionName: nlohmann::detail::binary_reader::get_ubjson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::get_ubjson_value
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_array()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5300,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5315,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5336,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5337,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5272
    functionDepth: 5
    functionLinenumber: 5272
    functionLinenumberEnd: 5342
    functionName: nlohmann::detail::binary_reader::get_ubjson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - key
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - string_t::clear
    - nlohmann::detail::binary_reader::get_ignore_noop
    - start_object
    - nlohmann::detail::binary_reader::get_ubjson_value
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:5360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5357
    functionDepth: 0
    functionLinenumber: 5357
    functionLinenumberEnd: 5361
    functionName: nlohmann::detail::binary_reader::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 31
    functionsReached:
    - get_character
    linkageType: ''
    returnType: int
    signature: int get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5375
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5375
    functionName: nlohmann::detail::binary_reader::get_ignore_noop
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - nlohmann::detail::binary_reader::get
    linkageType: ''
    returnType: int
    signature: int get_ignore_noop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5397,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5406,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5410,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5391
    functionDepth: 4
    functionLinenumber: 5391
    functionLinenumberEnd: 5417
    functionName: nlohmann::detail::binary_reader::get_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 20
    functionsReached:
    - std::memcpy
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::array::data
    - static_cast<std::uint8_t>
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_number(const input_format_t format, NumberType& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5441,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5449
      start: 5434
    functionDepth: 4
    functionLinenumber: 5434
    functionLinenumberEnd: 5449
    functionName: nlohmann::detail::binary_reader::get_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - std::generate_n
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: "bool get_string(const input_format_t format,\n                    const
      NumberType len,\n                    string_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5460,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - context
    argTypes:
    - input_format_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5456
    functionDepth: 3
    functionLinenumber: 5456
    functionLinenumberEnd: 5464
    functionName: nlohmann::detail::binary_reader::unexpect_eof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 40
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool unexpect_eof(const input_format_t format, const char* context)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5469
    functionDepth: 1
    functionLinenumber: 5469
    functionLinenumberEnd: 5474
    functionName: nlohmann::detail::binary_reader::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 20
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - format
    - ' detail'
    - ' context'
    argTypes:
    - input_format_t
    - std::string
    - std::string
    assertStmts:
    - condition: (false)
      pos:
        line_end: 5506
        line_start: 5506
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5511
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5511
    functionName: nlohmann::detail::binary_reader::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 22
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::string
    signature: "std::string exception_message(const input_format_t format,\n                                  const
      std::string& detail,\n                                  const std::string& context)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3593,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - input_adapter_t
    assertStmts:
    - condition: (ia)
      pos:
        line_end: 3595
        line_start: 3595
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3597
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3597
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_reader(input_adapter_t adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3600
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3601
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3602
    functionName: '& operator=(const binary_reader&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3603
    functionName: '& operator=(binary_reader&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3604
    functionDepth: 0
    functionLinenumber: 3604
    functionLinenumberEnd: 3604
    functionName: ~binary_reader()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~binary_reader()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3623,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3627,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3631,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3635,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3639,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:3647,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3651,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - format
    - sax_
    argTypes:
    - input_format_t
    - json_sax_t*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3638
        line_start: 3638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3662
      start: 3613
    functionDepth: 4
    functionLinenumber: 3613
    functionLinenumberEnd: 3662
    functionName: nlohmann::detail::binary_reader::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - assert
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::parse_bson_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(const input_format_t format,\n                   json_sax_t*
      sax_,\n                   const bool strict = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3674
    functionName: nlohmann::detail::binary_reader::little_endianess
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: bool
    signature: bool little_endianess(int num = 1) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3688,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3685
    functionDepth: 6
    functionLinenumber: 3685
    functionLinenumberEnd: 3701
    functionName: nlohmann::detail::binary_reader::parse_bson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::size_t
    - nlohmann::detail::binary_reader::get_number
    - start_object
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:3712,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3715,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3710
    functionDepth: 4
    functionLinenumber: 3710
    functionLinenumberEnd: 3728
    functionName: nlohmann::detail::binary_reader::get_bson_cstr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool get_bson_cstr(string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3744,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3746,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: static_cast<NumberType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3742
    functionDepth: 4
    functionLinenumber: 3742
    functionLinenumberEnd: 3751
    functionName: nlohmann::detail::binary_reader::get_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<NumberType>
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - to_string
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_bson_string(const NumberType len, string_t& result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::get_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3783,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3788,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:3798,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - element_type
    - element_type_parse_position
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3763
    functionDepth: 7
    functionLinenumber: 3763
    functionLinenumberEnd: 3820
    functionName: nlohmann::detail::binary_reader::parse_bson_element_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - 'null'
    - string
    - nlohmann::detail::binary_reader::get_bson_string
    - nlohmann::detail::binary_reader::parse_bson_array
    - nlohmann::detail::binary_reader::get
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_number
    - std::array::size
    - static_cast<unsigned char>
    - std::array::data
    - parse_error
    - std::string
    - nlohmann::detail::parse_error::create
    - number_float
    - nlohmann::detail::binary_reader::parse_bson_internal
    - boolean
    - number_integer
    linkageType: ''
    returnType: bool
    signature: "bool parse_bson_element_internal(const int element_type,\n                                     const
      std::size_t element_type_parse_position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3837,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: nlohmann::detail::binary_reader::get_bson_cstr
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:3850,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - is_array
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3834
    functionDepth: 5
    functionLinenumber: 3834
    functionLinenumberEnd: 3865
    functionName: nlohmann::detail::binary_reader::parse_bson_element_list
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::binary_reader::get_bson_cstr
    - key
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - string_t::clear
    - nlohmann::detail::binary_reader::parse_bson_element_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_element_list(const bool is_array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3874,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3871
    functionDepth: 6
    functionLinenumber: 3871
    functionLinenumberEnd: 3887
    functionName: nlohmann::detail::binary_reader::parse_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - end_array
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_array()
  - BBCount: 157
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3902,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3905,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3906,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4008,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4155,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4158,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4161,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4165,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4170,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4176,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4177,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4187,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4193,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4197,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/sleuthkit/tools/logicalimager/json.h:4200,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/sleuthkit/tools/logicalimager/json.h:4201,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4203,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4206,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4207,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4208,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4225,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 <= exp and exp <= 32)
      pos:
        line_end: 4191
        line_start: 4191
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0 <= mant and mant <= 1024)
      pos:
        line_end: 4192
        line_start: 4192
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 4229
      start: 3900
    functionDepth: 5
    functionLinenumber: 3900
    functionLinenumberEnd: 4229
    functionName: nlohmann::detail::binary_reader::parse_cbor_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - 'null'
    - number_unsigned
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - static_cast<number_integer_t>
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_token_string
    - std::numeric_limits<double>::quiet_NaN
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_cbor_object
    - static_cast<std::int8_t>
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned char>
    - static_cast<std::size_t>
    - boolean
    - std::numeric_limits<double>::infinity
    - string
    - static_cast<number_float_t>
    - number_float
    - nlohmann::detail::binary_reader::get_cbor_array
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: bool parse_cbor_internal(const bool get_char = true)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4306,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4309,1
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:4313,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4320,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4242
    functionDepth: 4
    functionLinenumber: 4242
    functionLinenumberEnd: 4324
    functionName: nlohmann::detail::binary_reader::get_cbor_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - append
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_string(string_t& result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4338,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4350,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4331
    functionDepth: 4
    functionLinenumber: 4331
    functionLinenumberEnd: 4360
    functionName: nlohmann::detail::binary_reader::get_cbor_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_array(const std::size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4375,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4379,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4389,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4394,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4405,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4367
    functionDepth: 4
    functionLinenumber: 4367
    functionLinenumberEnd: 4410
    functionName: nlohmann::detail::binary_reader::get_cbor_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - key
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - start_object
    - nlohmann::detail::binary_reader::get_cbor_string
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_object(const std::size_t len)
  - BBCount: 247
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4421,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4424,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4425,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4635,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4638,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4641,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4772,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 291
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4419
    functionDepth: 5
    functionLinenumber: 4419
    functionLinenumberEnd: 4776
    functionName: nlohmann::detail::binary_reader::parse_msgpack_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_msgpack_string
    - nlohmann::detail::binary_reader::get_token_string
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - static_cast<std::int8_t>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<std::size_t>
    - boolean
    - string
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_msgpack_object
    - nlohmann::detail::binary_reader::get_msgpack_array
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool parse_msgpack_internal()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4854,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4858
      start: 4788
    functionDepth: 4
    functionLinenumber: 4788
    functionLinenumberEnd: 4858
    functionName: nlohmann::detail::binary_reader::get_msgpack_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_string(string_t& result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4864
    functionDepth: 4
    functionLinenumber: 4864
    functionLinenumberEnd: 4880
    functionName: nlohmann::detail::binary_reader::get_msgpack_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - JSON_UNLIKELY
    - start_array
    - end_array
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_array(const std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4896,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4906,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4886
    functionDepth: 4
    functionLinenumber: 4886
    functionLinenumberEnd: 4910
    functionName: nlohmann::detail::binary_reader::get_msgpack_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - key
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - nlohmann::detail::binary_reader::get_msgpack_string
    - start_object
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_object(const std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4923
    functionDepth: 5
    functionLinenumber: 4923
    functionLinenumberEnd: 4926
    functionName: nlohmann::detail::binary_reader::parse_ubjson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_value
    - nlohmann::detail::binary_reader::get_ignore_noop
    linkageType: ''
    returnType: bool
    signature: bool parse_ubjson_internal(const bool get_char = true)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4946,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4987,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4942
    functionDepth: 4
    functionLinenumber: 4942
    functionLinenumberEnd: 4990
    functionName: nlohmann::detail::binary_reader::get_ubjson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_string(string_t& result, const bool get_char = true)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4998,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5007,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5018,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5029,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5040,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5051,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5057,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 4996
    functionDepth: 3
    functionLinenumber: 4996
    functionLinenumberEnd: 5061
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - static_cast<std::size_t>
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_value(std::size_t& result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5078,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5082,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5088,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5089,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5095,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5099,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::pair<std::size_t, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5073
    functionDepth: 4
    functionLinenumber: 5073
    functionLinenumberEnd: 5108
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_size_value
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_type(std::pair<std::size_t, int>& result)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5118,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5119,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5122,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5124,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:5127,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5173,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5178,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5180,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5183,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5184,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5194,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5197,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5201,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5114
    functionDepth: 6
    functionLinenumber: 5114
    functionLinenumberEnd: 5205
    functionName: nlohmann::detail::binary_reader::get_ubjson_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_ubjson_array
    - nlohmann::detail::binary_reader::get_ubjson_object
    - nlohmann::detail::binary_reader::unexpect_eof
    - boolean
    - static_cast<char>
    - string
    - static_cast<number_float_t>
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_value(const int prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5262,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5267
      start: 5210
    functionDepth: 5
    functionLinenumber: 5210
    functionLinenumberEnd: 5267
    functionName: nlohmann::detail::binary_reader::get_ubjson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::get_ubjson_value
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_array()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5300,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5315,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5336,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5337,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5272
    functionDepth: 5
    functionLinenumber: 5272
    functionLinenumberEnd: 5342
    functionName: nlohmann::detail::binary_reader::get_ubjson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - key
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - string_t::clear
    - nlohmann::detail::binary_reader::get_ignore_noop
    - start_object
    - nlohmann::detail::binary_reader::get_ubjson_value
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:5360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5357
    functionDepth: 0
    functionLinenumber: 5357
    functionLinenumberEnd: 5361
    functionName: nlohmann::detail::binary_reader::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 48
    functionsReached:
    - get_character
    linkageType: ''
    returnType: int
    signature: int get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5375
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5375
    functionName: nlohmann::detail::binary_reader::get_ignore_noop
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 18
    functionsReached:
    - nlohmann::detail::binary_reader::get
    linkageType: ''
    returnType: int
    signature: int get_ignore_noop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5397,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5406,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5410,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5391
    functionDepth: 4
    functionLinenumber: 5391
    functionLinenumberEnd: 5417
    functionName: nlohmann::detail::binary_reader::get_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 30
    functionsReached:
    - std::memcpy
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::array::data
    - static_cast<std::uint8_t>
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_number(const input_format_t format, NumberType& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5441,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5449
      start: 5434
    functionDepth: 4
    functionLinenumber: 5434
    functionLinenumberEnd: 5449
    functionName: nlohmann::detail::binary_reader::get_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - std::generate_n
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: "bool get_string(const input_format_t format,\n                    const
      NumberType len,\n                    string_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5460,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - context
    argTypes:
    - input_format_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5456
    functionDepth: 3
    functionLinenumber: 5456
    functionLinenumberEnd: 5464
    functionName: nlohmann::detail::binary_reader::unexpect_eof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 54
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool unexpect_eof(const input_format_t format, const char* context)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5469
    functionDepth: 1
    functionLinenumber: 5469
    functionLinenumberEnd: 5474
    functionName: nlohmann::detail::binary_reader::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 30
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - format
    - ' detail'
    - ' context'
    argTypes:
    - input_format_t
    - std::string
    - std::string
    assertStmts:
    - condition: (false)
      pos:
        line_end: 5506
        line_start: 5506
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5511
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5511
    functionName: nlohmann::detail::binary_reader::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 33
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::string
    signature: "std::string exception_message(const input_format_t format,\n                                  const
      std::string& detail,\n                                  const std::string& context)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:3593,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - input_adapter_t
    assertStmts:
    - condition: (ia)
      pos:
        line_end: 3595
        line_start: 3595
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3597
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3597
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_reader(input_adapter_t adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3600
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3601
    functionName: nlohmann::detail::binary_reader::binary_reader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3602
    functionName: '& operator=(const binary_reader&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3603
    functionName: '& operator=(binary_reader&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3604
    functionDepth: 0
    functionLinenumber: 3604
    functionLinenumberEnd: 3604
    functionName: ~binary_reader()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~binary_reader()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3623,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3627,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3631,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3635,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:3639,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:3647,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3651,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3654,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3656,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - format
    - sax_
    argTypes:
    - input_format_t
    - json_sax_t*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3638
        line_start: 3638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 3662
      start: 3613
    functionDepth: 4
    functionLinenumber: 3613
    functionLinenumberEnd: 3662
    functionName: nlohmann::detail::binary_reader::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - assert
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::parse_bson_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(const input_format_t format,\n                   json_sax_t*
      sax_,\n                   const bool strict = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3674
    functionName: nlohmann::detail::binary_reader::little_endianess
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: bool
    signature: bool little_endianess(int num = 1) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3688,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3690,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3695,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3685
    functionDepth: 6
    functionLinenumber: 3685
    functionLinenumberEnd: 3701
    functionName: nlohmann::detail::binary_reader::parse_bson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::size_t
    - nlohmann::detail::binary_reader::get_number
    - start_object
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:3712,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3715,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3716,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3710
    functionDepth: 4
    functionLinenumber: 3710
    functionLinenumberEnd: 3728
    functionName: nlohmann::detail::binary_reader::get_bson_cstr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool get_bson_cstr(string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3744,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3746,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3747,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: static_cast<NumberType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3742
    functionDepth: 4
    functionLinenumber: 3742
    functionLinenumberEnd: 3751
    functionName: nlohmann::detail::binary_reader::get_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<NumberType>
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - to_string
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_bson_string(const NumberType len, string_t& result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3771,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::get_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3778,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3783,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3788,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3793,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:3798,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3804,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3810,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3816,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:3817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - element_type
    - element_type_parse_position
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3763
    functionDepth: 7
    functionLinenumber: 3763
    functionLinenumberEnd: 3820
    functionName: nlohmann::detail::binary_reader::parse_bson_element_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - 'null'
    - string
    - nlohmann::detail::binary_reader::get_bson_string
    - nlohmann::detail::binary_reader::parse_bson_array
    - nlohmann::detail::binary_reader::get
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_number
    - std::array::size
    - static_cast<unsigned char>
    - std::array::data
    - parse_error
    - std::string
    - nlohmann::detail::parse_error::create
    - number_float
    - nlohmann::detail::binary_reader::parse_bson_internal
    - boolean
    - number_integer
    linkageType: ''
    returnType: bool
    signature: "bool parse_bson_element_internal(const int element_type,\n                                     const
      std::size_t element_type_parse_position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3837,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3839,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: nlohmann::detail::binary_reader::get_bson_cstr
      Src: /src/sleuthkit/tools/logicalimager/json.h:3845,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:3850,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:3855,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - is_array
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3834
    functionDepth: 5
    functionLinenumber: 3834
    functionLinenumberEnd: 3865
    functionName: nlohmann::detail::binary_reader::parse_bson_element_list
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_reader::get_bson_cstr
    - key
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - string_t::clear
    - nlohmann::detail::binary_reader::parse_bson_element_internal
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_element_list(const bool is_array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3874,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:3876,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: nlohmann::detail::binary_reader::parse_bson_element_list
      Src: /src/sleuthkit/tools/logicalimager/json.h:3881,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:3886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3871
    functionDepth: 6
    functionLinenumber: 3871
    functionLinenumberEnd: 3887
    functionName: nlohmann::detail::binary_reader::parse_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - end_array
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::parse_bson_element_list
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_array()
  - BBCount: 157
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:3902,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3905,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:3906,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3933,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3938,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3944,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3950,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:3956,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3984,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3989,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:3995,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4001,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4007,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4008,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4043,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4071,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4076,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4082,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4088,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4094,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4098,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4125,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4130,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4136,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4142,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4148,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4152,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4155,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4158,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4161,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4165,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4166,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4170,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4171,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4176,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4177,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4187,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4192,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:4193,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4197,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/sleuthkit/tools/logicalimager/json.h:4200,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/sleuthkit/tools/logicalimager/json.h:4201,1
    - Dst: std::ldexp
      Src: /src/sleuthkit/tools/logicalimager/json.h:4203,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4206,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4207,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4208,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4214,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4220,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4225,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 <= exp and exp <= 32)
      pos:
        line_end: 4191
        line_start: 4191
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0 <= mant and mant <= 1024)
      pos:
        line_end: 4192
        line_start: 4192
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 4229
      start: 3900
    functionDepth: 5
    functionLinenumber: 3900
    functionLinenumberEnd: 4229
    functionName: nlohmann::detail::binary_reader::parse_cbor_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - 'null'
    - number_unsigned
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - static_cast<number_integer_t>
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_token_string
    - std::numeric_limits<double>::quiet_NaN
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_cbor_object
    - static_cast<std::int8_t>
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned char>
    - static_cast<std::size_t>
    - boolean
    - std::numeric_limits<double>::infinity
    - string
    - static_cast<number_float_t>
    - number_float
    - nlohmann::detail::binary_reader::get_cbor_array
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: bool parse_cbor_internal(const bool get_char = true)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4244,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4277,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4283,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4289,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4295,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4301,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4306,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4309,1
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:4313,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4320,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4242
    functionDepth: 4
    functionLinenumber: 4242
    functionLinenumberEnd: 4324
    functionName: nlohmann::detail::binary_reader::get_cbor_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 11
    functionsReached:
    - append
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - nlohmann::detail::binary_reader::get_cbor_string
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_string(string_t& result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4333,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4338,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4342,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4350,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4352,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4331
    functionDepth: 4
    functionLinenumber: 4331
    functionLinenumberEnd: 4360
    functionName: nlohmann::detail::binary_reader::get_cbor_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_array(const std::size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4369,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:4375,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4379,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4380,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4385,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4389,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4394,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: nlohmann::detail::binary_reader::get_cbor_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4396,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: nlohmann::detail::binary_reader::parse_cbor_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4401,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4405,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4367
    functionDepth: 4
    functionLinenumber: 4367
    functionLinenumberEnd: 4410
    functionName: nlohmann::detail::binary_reader::get_cbor_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - key
    - std::size_t
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - start_object
    - nlohmann::detail::binary_reader::get_cbor_string
    - nlohmann::detail::binary_reader::parse_cbor_internal
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_object(const std::size_t len)
  - BBCount: 247
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4421,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4424,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4425,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4556,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4575,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4594,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4631,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:4635,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4638,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:4641,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4646,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4652,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4658,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4664,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4670,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:4676,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4682,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4688,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4694,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4700,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4708,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4714,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4720,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4726,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4732,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4768,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4772,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 291
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4419
    functionDepth: 5
    functionLinenumber: 4419
    functionLinenumberEnd: 4776
    functionName: nlohmann::detail::binary_reader::parse_msgpack_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_msgpack_string
    - nlohmann::detail::binary_reader::get_token_string
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - static_cast<number_unsigned_t>
    - nlohmann::detail::parse_error::create
    - static_cast<std::int8_t>
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<std::size_t>
    - boolean
    - string
    - static_cast<number_float_t>
    - nlohmann::detail::binary_reader::get_msgpack_object
    - nlohmann::detail::binary_reader::get_msgpack_array
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool parse_msgpack_internal()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4790,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:4831,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4837,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4843,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4849,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4854,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4858
      start: 4788
    functionDepth: 4
    functionLinenumber: 4788
    functionLinenumberEnd: 4858
    functionName: nlohmann::detail::binary_reader::get_msgpack_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_string
    - static_cast<unsigned int>
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_string(string_t& result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4866,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4873,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:4879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4864
    functionDepth: 4
    functionLinenumber: 4864
    functionLinenumberEnd: 4880
    functionName: nlohmann::detail::binary_reader::get_msgpack_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - JSON_UNLIKELY
    - start_array
    - end_array
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_array(const std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4888,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4896,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: nlohmann::detail::binary_reader::get_msgpack_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:4897,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: nlohmann::detail::binary_reader::parse_msgpack_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:4902,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:4906,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:4909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4886
    functionDepth: 4
    functionLinenumber: 4886
    functionLinenumberEnd: 4910
    functionName: nlohmann::detail::binary_reader::get_msgpack_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - key
    - nlohmann::detail::binary_reader::parse_msgpack_internal
    - nlohmann::detail::binary_reader::get
    - string_t::clear
    - nlohmann::detail::binary_reader::get_msgpack_string
    - start_object
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_object(const std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4923
    functionDepth: 5
    functionLinenumber: 4923
    functionLinenumberEnd: 4926
    functionName: nlohmann::detail::binary_reader::parse_ubjson_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_value
    - nlohmann::detail::binary_reader::get_ignore_noop
    linkageType: ''
    returnType: bool
    signature: bool parse_ubjson_internal(const bool get_char = true)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:4946,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:4949,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4959,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4965,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4971,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4977,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4983,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:4987,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:4988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4942
    functionDepth: 4
    functionLinenumber: 4942
    functionLinenumberEnd: 4990
    functionName: nlohmann::detail::binary_reader::get_ubjson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_string
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_string(string_t& result, const bool get_char = true)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:4998,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5003,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5007,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5014,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5018,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5025,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5029,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5036,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5040,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5047,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5051,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5057,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5061
      start: 4996
    functionDepth: 3
    functionLinenumber: 4996
    functionLinenumberEnd: 5061
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - static_cast<std::size_t>
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_value(std::size_t& result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5078,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5082,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5083,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5088,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5089,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5091,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5095,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5096,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5099,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::pair<std::size_t, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5073
    functionDepth: 4
    functionLinenumber: 5073
    functionLinenumberEnd: 5108
    functionName: nlohmann::detail::binary_reader::get_ubjson_size_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_size_value
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::binary_reader::get_token_string
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_type(std::pair<std::size_t, int>& result)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5118,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5119,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5122,1
    - Dst: boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:5124,1
    - Dst: 'null'
      Src: /src/sleuthkit/tools/logicalimager/json.h:5127,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:5132,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5138,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5144,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5150,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:5156,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5162,1
    - Dst: nlohmann::detail::binary_reader::get_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5168,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5173,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5174,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5178,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5180,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5181,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5183,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5184,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5190,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5194,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5197,1
    - Dst: nlohmann::detail::binary_reader::get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5201,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5114
    functionDepth: 6
    functionLinenumber: 5114
    functionLinenumberEnd: 5205
    functionName: nlohmann::detail::binary_reader::get_ubjson_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - 'null'
    - number_unsigned
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::get_number
    - nlohmann::detail::binary_reader::get_token_string
    - JSON_UNLIKELY
    - number_integer
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - nlohmann::detail::binary_reader::get_ubjson_array
    - nlohmann::detail::binary_reader::get_ubjson_object
    - nlohmann::detail::binary_reader::unexpect_eof
    - boolean
    - static_cast<char>
    - string
    - static_cast<number_float_t>
    - number_float
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_value(const int prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5213,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5220,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5231,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5251,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5258,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5262,1
    - Dst: end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:5266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5267
      start: 5210
    functionDepth: 5
    functionLinenumber: 5210
    functionLinenumberEnd: 5267
    functionName: nlohmann::detail::binary_reader::get_ubjson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - start_array
    - nlohmann::detail::binary_reader::get_ignore_noop
    - nlohmann::detail::binary_reader::get_ubjson_value
    - end_array
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_array()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_size_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:5275,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5283,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5292,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:5296,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5300,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5311,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5315,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:5321,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: nlohmann::detail::binary_reader::get_ubjson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: key
      Src: /src/sleuthkit/tools/logicalimager/json.h:5328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::parse_ubjson_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:5332,1
    - Dst: nlohmann::detail::binary_reader::get_ignore_noop
      Src: /src/sleuthkit/tools/logicalimager/json.h:5336,1
    - Dst: string_t::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:5337,1
    - Dst: end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:5341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5272
    functionDepth: 5
    functionLinenumber: 5272
    functionLinenumberEnd: 5342
    functionName: nlohmann::detail::binary_reader::get_ubjson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_reader::get_ubjson_string
    - nlohmann::detail::binary_reader::parse_ubjson_internal
    - key
    - nlohmann::detail::binary_reader::get_ubjson_size_type
    - std::size_t
    - string_t::clear
    - nlohmann::detail::binary_reader::get_ignore_noop
    - start_object
    - nlohmann::detail::binary_reader::get_ubjson_value
    - JSON_UNLIKELY
    - end_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:5360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5357
    functionDepth: 0
    functionLinenumber: 5357
    functionLinenumberEnd: 5361
    functionName: nlohmann::detail::binary_reader::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 65
    functionsReached:
    - get_character
    linkageType: ''
    returnType: int
    signature: int get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5375
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5375
    functionName: nlohmann::detail::binary_reader::get_ignore_noop
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 24
    functionsReached:
    - nlohmann::detail::binary_reader::get
    linkageType: ''
    returnType: int
    signature: int get_ignore_noop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5397,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5398,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5406,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5410,1
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5391
    functionDepth: 4
    functionLinenumber: 5391
    functionLinenumberEnd: 5417
    functionName: nlohmann::detail::binary_reader::get_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 40
    functionsReached:
    - std::memcpy
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - std::array::data
    - static_cast<std::uint8_t>
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool get_number(const input_format_t format, NumberType& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:5439,1
    - Dst: nlohmann::detail::binary_reader::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5441,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5442,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5449
      start: 5434
    functionDepth: 4
    functionLinenumber: 5434
    functionLinenumberEnd: 5449
    functionName: nlohmann::detail::binary_reader::get_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - std::generate_n
    - nlohmann::detail::binary_reader::get
    - nlohmann::detail::binary_reader::unexpect_eof
    - JSON_UNLIKELY
    - std::back_inserter
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: "bool get_string(const input_format_t format,\n                    const
      NumberType len,\n                    string_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5458,1
    - Dst: parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:5460,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    - Dst: nlohmann::detail::binary_reader::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:5461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - context
    argTypes:
    - input_format_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5456
    functionDepth: 3
    functionLinenumber: 5456
    functionLinenumberEnd: 5464
    functionName: nlohmann::detail::binary_reader::unexpect_eof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 68
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_reader::exception_message
    - parse_error
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    linkageType: ''
    returnType: bool
    signature: bool unexpect_eof(const input_format_t format, const char* context)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5472,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5469
    functionDepth: 1
    functionLinenumber: 5469
    functionLinenumberEnd: 5474
    functionName: nlohmann::detail::binary_reader::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 40
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - format
    - ' detail'
    - ' context'
    argTypes:
    - input_format_t
    - std::string
    - std::string
    assertStmts:
    - condition: (false)
      pos:
        line_end: 5506
        line_start: 5506
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5511
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5511
    functionName: nlohmann::detail::binary_reader::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 44
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::string
    signature: "std::string exception_message(const input_format_t format,\n                                  const
      std::string& detail,\n                                  const std::string& context)
      const"
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - token_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5599
    functionDepth: 0
    functionLinenumber: 5599
    functionLinenumberEnd: 5640
    functionName: nlohmann::detail::lexer::token_type_name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * token_type_name(const token_type t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    - Dst: nlohmann::detail::lexer::get_decimal_point
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5643
      start: 5642
    functionDepth: 1
    functionLinenumber: 5642
    functionLinenumberEnd: 5643
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::lexer::get_decimal_point
    linkageType: ''
    returnType: void
    signature: void lexer(detail::input_adapter_t&& adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5646
    functionDepth: 0
    functionLinenumber: 5646
    functionLinenumberEnd: 5646
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(const lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5647
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5648
    functionDepth: 0
    functionLinenumber: 5648
    functionLinenumberEnd: 5648
    functionName: '& operator=(lexer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5649
    functionDepth: 0
    functionLinenumber: 5649
    functionLinenumberEnd: 5649
    functionName: '& operator=(lexer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5650
    functionName: ~lexer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~lexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:5660,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (loc != nullptr)
      pos:
        line_end: 5660
        line_start: 5660
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5663
      start: 5658
    functionDepth: 0
    functionLinenumber: 5658
    functionLinenumberEnd: 5663
    functionName: nlohmann::detail::lexer::get_decimal_point
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - localeconv
    - assert
    linkageType: ''
    returnType: char
    signature: char get_decimal_point() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5687,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5693,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == 'u')
      pos:
        line_end: 5686
        line_start: 5686
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x0000 <= codepoint and codepoint <= 0xFFFF)
      pos:
        line_end: 5712
        line_start: 5712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5715
      start: 5684
    functionDepth: 0
    functionLinenumber: 5684
    functionLinenumberEnd: 5715
    functionName: nlohmann::detail::lexer::get_codepoint
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - static_cast<unsigned int>
    - assert
    linkageType: ''
    returnType: int
    signature: int get_codepoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5735,1
    - Dst: std::initializer_list<int>::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: std::initializer_list<int>::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5739,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5740,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - std::initializer_list<int>
    assertStmts:
    - condition: (ranges.size() == 2 or ranges.size() == 4 or ranges.size() == 6)
      pos:
        line_end: 5733
        line_start: 5733
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5752
      start: 5732
    functionDepth: 1
    functionLinenumber: 5732
    functionLinenumberEnd: 5752
    functionName: nlohmann::detail::lexer::next_byte_in_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::initializer_list<int>::end
    - std::initializer_list<int>::begin
    - assert
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - std::initializer_list<int>::size
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: bool
    signature: bool next_byte_in_range(std::initializer_list<int> ranges)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:5772,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5775,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5780,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5783,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5798,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5802,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5806,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5810,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5814,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5818,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5822,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5826,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5830,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5836,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5839,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5851,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5853,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5860,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5863,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5865,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5867,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5887,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5895,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5901,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6226,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 408
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == '\"')
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x00 <= codepoint and codepoint <= 0x10FFFF)
      pos:
        line_end: 5894
        line_start: 5894
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6353
      start: 5769
    functionDepth: 4
    functionLinenumber: 5769
    functionLinenumberEnd: 6353
    functionName: nlohmann::detail::lexer::scan_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::get_codepoint
    - assert
    - JSON_UNLIKELY
    - nlohmann::detail::lexer::reset
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - nlohmann::detail::lexer::add
    - nlohmann::detail::lexer::next_byte_in_range
    linkageType: ''
    returnType: token_type
    signature: token_type scan_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - float
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6358
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::lexer::strtof
    linkageType: ''
    returnType: void
    signature: void strtof(float& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/sleuthkit/tools/logicalimager/json.h:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6363
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: void
    signature: void strtof(double& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtold
      Src: /src/sleuthkit/tools/logicalimager/json.h:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - long double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6365
    functionDepth: 0
    functionLinenumber: 6365
    functionLinenumberEnd: 6368
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::strtold
    linkageType: ''
    returnType: void
    signature: void strtof(long double& f, const char* str, char** endptr) noexcept
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:6413,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6424,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6430,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6444,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6450,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6456,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6460,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6474,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6487,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6491,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6498,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6508,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6521,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6527,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6534,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6545,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6558,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6571,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6584,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6591,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6602,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6607,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6622,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6636,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6649,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6662,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6675,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6686,1
    - Dst: std::strtoull
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6701,1
    - Dst: std::strtoll
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6717,1
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 253
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6696
        line_start: 6696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6712
        line_start: 6712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 6449
        line_start: 6449
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6729
        line_start: 6729
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6733
      start: 6410
    functionDepth: 2
    functionLinenumber: 6410
    functionLinenumberEnd: 6733
    functionName: nlohmann::detail::lexer::scan_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - assert
    - std::strtoull
    - nlohmann::detail::lexer::strtof
    - nlohmann::detail::lexer::reset
    - static_cast<number_integer_t>
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    - std::strtoll
    - data
    - static_cast<number_unsigned_t>
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: token_type
    signature: token_type scan_number()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6743,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - literal_text
    - length
    - return_type
    argTypes:
    - char*
    - std::size_t
    - token_type
    assertStmts:
    - condition: (current == literal_text[0])
      pos:
        line_end: 6742
        line_start: 6742
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6753
      start: 6740
    functionDepth: 1
    functionLinenumber: 6740
    functionLinenumberEnd: 6753
    functionName: nlohmann::detail::lexer::scan_literal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::get
    - JSON_UNLIKELY
    - assert
    linkageType: ''
    returnType: token_type
    signature: "token_type scan_literal(const char* literal_text, const std::size_t
      length,\n                            token_type return_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6762,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6763,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6765
      start: 6760
    functionDepth: 1
    functionLinenumber: 6760
    functionLinenumberEnd: 6765
    functionName: nlohmann::detail::lexer::reset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - clear
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:6789,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6804
      start: 6777
    functionDepth: 4
    functionLinenumber: 6777
    functionLinenumberEnd: 6804
    functionName: nlohmann::detail::lexer::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_writer::to_char_type
    - push_back
    - JSON_LIKELY
    - get_character
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not token_string.empty())
      pos:
        line_end: 6834
        line_start: 6834
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6838
      start: 6814
    functionDepth: 4
    functionLinenumber: 6814
    functionLinenumberEnd: 6838
    functionName: nlohmann::detail::lexer::unget
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - empty
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - pop_back
    - JSON_LIKELY
    linkageType: ''
    returnType: void
    signature: void unget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6844
      start: 6841
    functionDepth: 1
    functionLinenumber: 6841
    functionLinenumberEnd: 6844
    functionName: nlohmann::detail::lexer::add
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void add(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6852
    functionDepth: 0
    functionLinenumber: 6852
    functionLinenumberEnd: 6855
    functionName: nlohmann::detail::lexer::get_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t get_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6858
    functionDepth: 0
    functionLinenumber: 6858
    functionLinenumberEnd: 6861
    functionName: nlohmann::detail::lexer::get_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t get_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6864
    functionDepth: 0
    functionLinenumber: 6864
    functionLinenumberEnd: 6867
    functionName: nlohmann::detail::lexer::get_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t get_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6873
      start: 6870
    functionDepth: 0
    functionLinenumber: 6870
    functionLinenumberEnd: 6873
    functionName: '& get_string()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string_t
    signature: string_t & get_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6880
    functionDepth: 0
    functionLinenumber: 6880
    functionLinenumberEnd: 6883
    functionName: nlohmann::detail::lexer::get_position
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: position_t
    signature: position_t get_position() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6899,1
    - Dst: std::string::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6909
    functionName: nlohmann::detail::lexer::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6915
    functionName: nlohmann::detail::lexer::get_error_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_error_message() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6927,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6925
    functionDepth: 5
    functionLinenumber: 6925
    functionLinenumberEnd: 6937
    functionName: nlohmann::detail::lexer::skip_bom
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    linkageType: ''
    returnType: bool
    signature: bool skip_bom()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::skip_bom
      Src: /src/sleuthkit/tools/logicalimager/json.h:6942,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6951,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6973,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6975,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6977,1
    - Dst: nlohmann::detail::lexer::scan_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:6981,1
    - Dst: nlohmann::detail::lexer::scan_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:6995,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:7000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7008
      start: 6939
    functionDepth: 6
    functionLinenumber: 6939
    functionLinenumberEnd: 7008
    functionName: nlohmann::detail::lexer::scan
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::scan_number
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::scan_string
    - nlohmann::detail::lexer::skip_bom
    - nlohmann::detail::lexer::scan_literal
    linkageType: ''
    returnType: token_type
    signature: token_type scan()
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - token_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5599
    functionDepth: 0
    functionLinenumber: 5599
    functionLinenumberEnd: 5640
    functionName: nlohmann::detail::lexer::token_type_name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * token_type_name(const token_type t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    - Dst: nlohmann::detail::lexer::get_decimal_point
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5643
      start: 5642
    functionDepth: 1
    functionLinenumber: 5642
    functionLinenumberEnd: 5643
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::lexer::get_decimal_point
    linkageType: ''
    returnType: void
    signature: void lexer(detail::input_adapter_t&& adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5646
    functionDepth: 0
    functionLinenumber: 5646
    functionLinenumberEnd: 5646
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(const lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5647
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5648
    functionDepth: 0
    functionLinenumber: 5648
    functionLinenumberEnd: 5648
    functionName: '& operator=(lexer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5649
    functionDepth: 0
    functionLinenumber: 5649
    functionLinenumberEnd: 5649
    functionName: '& operator=(lexer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5650
    functionName: ~lexer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~lexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:5660,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (loc != nullptr)
      pos:
        line_end: 5660
        line_start: 5660
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5663
      start: 5658
    functionDepth: 0
    functionLinenumber: 5658
    functionLinenumberEnd: 5663
    functionName: nlohmann::detail::lexer::get_decimal_point
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - localeconv
    - assert
    linkageType: ''
    returnType: char
    signature: char get_decimal_point() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5687,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5693,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == 'u')
      pos:
        line_end: 5686
        line_start: 5686
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x0000 <= codepoint and codepoint <= 0xFFFF)
      pos:
        line_end: 5712
        line_start: 5712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5715
      start: 5684
    functionDepth: 0
    functionLinenumber: 5684
    functionLinenumberEnd: 5715
    functionName: nlohmann::detail::lexer::get_codepoint
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - static_cast<unsigned int>
    - assert
    linkageType: ''
    returnType: int
    signature: int get_codepoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5735,1
    - Dst: std::initializer_list<int>::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: std::initializer_list<int>::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5739,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5740,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - std::initializer_list<int>
    assertStmts:
    - condition: (ranges.size() == 2 or ranges.size() == 4 or ranges.size() == 6)
      pos:
        line_end: 5733
        line_start: 5733
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5752
      start: 5732
    functionDepth: 2
    functionLinenumber: 5732
    functionLinenumberEnd: 5752
    functionName: nlohmann::detail::lexer::next_byte_in_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::initializer_list<int>::end
    - std::initializer_list<int>::begin
    - assert
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - std::initializer_list<int>::size
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: bool
    signature: bool next_byte_in_range(std::initializer_list<int> ranges)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:5772,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5775,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5780,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5783,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5798,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5802,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5806,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5810,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5814,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5818,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5822,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5826,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5830,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5836,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5839,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5851,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5853,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5860,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5863,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5865,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5867,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5887,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5895,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5901,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6226,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 408
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == '\"')
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x00 <= codepoint and codepoint <= 0x10FFFF)
      pos:
        line_end: 5894
        line_start: 5894
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6353
      start: 5769
    functionDepth: 4
    functionLinenumber: 5769
    functionLinenumberEnd: 6353
    functionName: nlohmann::detail::lexer::scan_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::lexer::get_codepoint
    - assert
    - JSON_UNLIKELY
    - nlohmann::detail::lexer::reset
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - nlohmann::detail::lexer::add
    - nlohmann::detail::lexer::next_byte_in_range
    linkageType: ''
    returnType: token_type
    signature: token_type scan_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - float
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6358
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::lexer::strtof
    linkageType: ''
    returnType: void
    signature: void strtof(float& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/sleuthkit/tools/logicalimager/json.h:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6363
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: void
    signature: void strtof(double& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtold
      Src: /src/sleuthkit/tools/logicalimager/json.h:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - long double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6365
    functionDepth: 0
    functionLinenumber: 6365
    functionLinenumberEnd: 6368
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::strtold
    linkageType: ''
    returnType: void
    signature: void strtof(long double& f, const char* str, char** endptr) noexcept
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:6413,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6424,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6430,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6444,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6450,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6456,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6460,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6474,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6487,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6491,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6498,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6508,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6521,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6527,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6534,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6545,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6558,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6571,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6584,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6591,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6602,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6607,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6622,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6636,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6649,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6662,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6675,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6686,1
    - Dst: std::strtoull
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6701,1
    - Dst: std::strtoll
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6717,1
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 253
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6696
        line_start: 6696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6712
        line_start: 6712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 6449
        line_start: 6449
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6729
        line_start: 6729
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6733
      start: 6410
    functionDepth: 5
    functionLinenumber: 6410
    functionLinenumberEnd: 6733
    functionName: nlohmann::detail::lexer::scan_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - size
    - assert
    - std::strtoull
    - nlohmann::detail::lexer::strtof
    - nlohmann::detail::lexer::reset
    - static_cast<number_integer_t>
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    - std::strtoll
    - data
    - static_cast<number_unsigned_t>
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: token_type
    signature: token_type scan_number()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6743,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - literal_text
    - length
    - return_type
    argTypes:
    - char*
    - std::size_t
    - token_type
    assertStmts:
    - condition: (current == literal_text[0])
      pos:
        line_end: 6742
        line_start: 6742
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6753
      start: 6740
    functionDepth: 1
    functionLinenumber: 6740
    functionLinenumberEnd: 6753
    functionName: nlohmann::detail::lexer::scan_literal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::lexer::get
    - JSON_UNLIKELY
    - assert
    linkageType: ''
    returnType: token_type
    signature: "token_type scan_literal(const char* literal_text, const std::size_t
      length,\n                            token_type return_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6762,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6763,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6765
      start: 6760
    functionDepth: 1
    functionLinenumber: 6760
    functionLinenumberEnd: 6765
    functionName: nlohmann::detail::lexer::reset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - clear
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:6789,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6804
      start: 6777
    functionDepth: 4
    functionLinenumber: 6777
    functionLinenumberEnd: 6804
    functionName: nlohmann::detail::lexer::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_writer::to_char_type
    - push_back
    - JSON_LIKELY
    - get_character
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not token_string.empty())
      pos:
        line_end: 6834
        line_start: 6834
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6838
      start: 6814
    functionDepth: 4
    functionLinenumber: 6814
    functionLinenumberEnd: 6838
    functionName: nlohmann::detail::lexer::unget
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - empty
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - pop_back
    - JSON_LIKELY
    linkageType: ''
    returnType: void
    signature: void unget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6844
      start: 6841
    functionDepth: 1
    functionLinenumber: 6841
    functionLinenumberEnd: 6844
    functionName: nlohmann::detail::lexer::add
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void add(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6852
    functionDepth: 0
    functionLinenumber: 6852
    functionLinenumberEnd: 6855
    functionName: nlohmann::detail::lexer::get_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t get_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6858
    functionDepth: 0
    functionLinenumber: 6858
    functionLinenumberEnd: 6861
    functionName: nlohmann::detail::lexer::get_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t get_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6864
    functionDepth: 0
    functionLinenumber: 6864
    functionLinenumberEnd: 6867
    functionName: nlohmann::detail::lexer::get_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t get_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6873
      start: 6870
    functionDepth: 0
    functionLinenumber: 6870
    functionLinenumberEnd: 6873
    functionName: '& get_string()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string_t
    signature: string_t & get_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6880
    functionDepth: 0
    functionLinenumber: 6880
    functionLinenumberEnd: 6883
    functionName: nlohmann::detail::lexer::get_position
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: position_t
    signature: position_t get_position() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6899,1
    - Dst: std::string::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6909
    functionName: nlohmann::detail::lexer::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6915
    functionName: nlohmann::detail::lexer::get_error_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_error_message() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6927,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6925
    functionDepth: 5
    functionLinenumber: 6925
    functionLinenumberEnd: 6937
    functionName: nlohmann::detail::lexer::skip_bom
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    linkageType: ''
    returnType: bool
    signature: bool skip_bom()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::skip_bom
      Src: /src/sleuthkit/tools/logicalimager/json.h:6942,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6951,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6973,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6975,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6977,1
    - Dst: nlohmann::detail::lexer::scan_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:6981,1
    - Dst: nlohmann::detail::lexer::scan_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:6995,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:7000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7008
      start: 6939
    functionDepth: 6
    functionLinenumber: 6939
    functionLinenumberEnd: 7008
    functionName: nlohmann::detail::lexer::scan
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::scan_number
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::scan_string
    - nlohmann::detail::lexer::skip_bom
    - nlohmann::detail::lexer::scan_literal
    linkageType: ''
    returnType: token_type
    signature: token_type scan()
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - token_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5599
    functionDepth: 0
    functionLinenumber: 5599
    functionLinenumberEnd: 5640
    functionName: nlohmann::detail::lexer::token_type_name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * token_type_name(const token_type t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    - Dst: nlohmann::detail::lexer::get_decimal_point
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5643
      start: 5642
    functionDepth: 1
    functionLinenumber: 5642
    functionLinenumberEnd: 5643
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::lexer::get_decimal_point
    linkageType: ''
    returnType: void
    signature: void lexer(detail::input_adapter_t&& adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5646
    functionDepth: 0
    functionLinenumber: 5646
    functionLinenumberEnd: 5646
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(const lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5647
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5648
    functionDepth: 0
    functionLinenumber: 5648
    functionLinenumberEnd: 5648
    functionName: '& operator=(lexer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5649
    functionDepth: 0
    functionLinenumber: 5649
    functionLinenumberEnd: 5649
    functionName: '& operator=(lexer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5650
    functionName: ~lexer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~lexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:5660,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (loc != nullptr)
      pos:
        line_end: 5660
        line_start: 5660
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5663
      start: 5658
    functionDepth: 0
    functionLinenumber: 5658
    functionLinenumberEnd: 5663
    functionName: nlohmann::detail::lexer::get_decimal_point
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - localeconv
    - assert
    linkageType: ''
    returnType: char
    signature: char get_decimal_point() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5687,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5693,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == 'u')
      pos:
        line_end: 5686
        line_start: 5686
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x0000 <= codepoint and codepoint <= 0xFFFF)
      pos:
        line_end: 5712
        line_start: 5712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5715
      start: 5684
    functionDepth: 0
    functionLinenumber: 5684
    functionLinenumberEnd: 5715
    functionName: nlohmann::detail::lexer::get_codepoint
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - static_cast<unsigned int>
    - assert
    linkageType: ''
    returnType: int
    signature: int get_codepoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5735,1
    - Dst: std::initializer_list<int>::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: std::initializer_list<int>::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5739,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5740,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - std::initializer_list<int>
    assertStmts:
    - condition: (ranges.size() == 2 or ranges.size() == 4 or ranges.size() == 6)
      pos:
        line_end: 5733
        line_start: 5733
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5752
      start: 5732
    functionDepth: 2
    functionLinenumber: 5732
    functionLinenumberEnd: 5752
    functionName: nlohmann::detail::lexer::next_byte_in_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::initializer_list<int>::end
    - std::initializer_list<int>::begin
    - assert
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - std::initializer_list<int>::size
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: bool
    signature: bool next_byte_in_range(std::initializer_list<int> ranges)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:5772,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5775,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5780,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5783,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5798,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5802,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5806,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5810,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5814,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5818,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5822,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5826,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5830,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5836,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5839,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5851,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5853,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5860,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5863,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5865,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5867,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5887,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5895,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5901,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6226,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 408
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == '\"')
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x00 <= codepoint and codepoint <= 0x10FFFF)
      pos:
        line_end: 5894
        line_start: 5894
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6353
      start: 5769
    functionDepth: 4
    functionLinenumber: 5769
    functionLinenumberEnd: 6353
    functionName: nlohmann::detail::lexer::scan_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::lexer::get_codepoint
    - assert
    - JSON_UNLIKELY
    - nlohmann::detail::lexer::reset
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - nlohmann::detail::lexer::add
    - nlohmann::detail::lexer::next_byte_in_range
    linkageType: ''
    returnType: token_type
    signature: token_type scan_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - float
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6358
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::lexer::strtof
    linkageType: ''
    returnType: void
    signature: void strtof(float& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/sleuthkit/tools/logicalimager/json.h:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6363
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: void
    signature: void strtof(double& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtold
      Src: /src/sleuthkit/tools/logicalimager/json.h:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - long double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6365
    functionDepth: 0
    functionLinenumber: 6365
    functionLinenumberEnd: 6368
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::strtold
    linkageType: ''
    returnType: void
    signature: void strtof(long double& f, const char* str, char** endptr) noexcept
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:6413,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6424,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6430,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6444,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6450,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6456,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6460,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6474,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6487,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6491,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6498,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6508,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6521,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6527,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6534,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6545,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6558,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6571,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6584,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6591,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6602,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6607,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6622,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6636,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6649,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6662,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6675,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6686,1
    - Dst: std::strtoull
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6701,1
    - Dst: std::strtoll
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6717,1
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 253
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6696
        line_start: 6696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6712
        line_start: 6712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 6449
        line_start: 6449
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6729
        line_start: 6729
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6733
      start: 6410
    functionDepth: 5
    functionLinenumber: 6410
    functionLinenumberEnd: 6733
    functionName: nlohmann::detail::lexer::scan_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - size
    - assert
    - std::strtoull
    - nlohmann::detail::lexer::strtof
    - nlohmann::detail::lexer::reset
    - static_cast<number_integer_t>
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    - std::strtoll
    - data
    - static_cast<number_unsigned_t>
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: token_type
    signature: token_type scan_number()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6743,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - literal_text
    - length
    - return_type
    argTypes:
    - char*
    - std::size_t
    - token_type
    assertStmts:
    - condition: (current == literal_text[0])
      pos:
        line_end: 6742
        line_start: 6742
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6753
      start: 6740
    functionDepth: 1
    functionLinenumber: 6740
    functionLinenumberEnd: 6753
    functionName: nlohmann::detail::lexer::scan_literal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::lexer::get
    - JSON_UNLIKELY
    - assert
    linkageType: ''
    returnType: token_type
    signature: "token_type scan_literal(const char* literal_text, const std::size_t
      length,\n                            token_type return_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6762,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6763,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6765
      start: 6760
    functionDepth: 1
    functionLinenumber: 6760
    functionLinenumberEnd: 6765
    functionName: nlohmann::detail::lexer::reset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - clear
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:6789,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6804
      start: 6777
    functionDepth: 4
    functionLinenumber: 6777
    functionLinenumberEnd: 6804
    functionName: nlohmann::detail::lexer::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 19
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_writer::to_char_type
    - push_back
    - JSON_LIKELY
    - get_character
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not token_string.empty())
      pos:
        line_end: 6834
        line_start: 6834
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6838
      start: 6814
    functionDepth: 4
    functionLinenumber: 6814
    functionLinenumberEnd: 6838
    functionName: nlohmann::detail::lexer::unget
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - empty
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - pop_back
    - JSON_LIKELY
    linkageType: ''
    returnType: void
    signature: void unget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6844
      start: 6841
    functionDepth: 1
    functionLinenumber: 6841
    functionLinenumberEnd: 6844
    functionName: nlohmann::detail::lexer::add
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 9
    functionsReached:
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void add(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6852
    functionDepth: 0
    functionLinenumber: 6852
    functionLinenumberEnd: 6855
    functionName: nlohmann::detail::lexer::get_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t get_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6858
    functionDepth: 0
    functionLinenumber: 6858
    functionLinenumberEnd: 6861
    functionName: nlohmann::detail::lexer::get_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t get_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6864
    functionDepth: 0
    functionLinenumber: 6864
    functionLinenumberEnd: 6867
    functionName: nlohmann::detail::lexer::get_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t get_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6873
      start: 6870
    functionDepth: 0
    functionLinenumber: 6870
    functionLinenumberEnd: 6873
    functionName: '& get_string()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string_t
    signature: string_t & get_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6880
    functionDepth: 0
    functionLinenumber: 6880
    functionLinenumberEnd: 6883
    functionName: nlohmann::detail::lexer::get_position
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: position_t
    signature: position_t get_position() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6899,1
    - Dst: std::string::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6909
    functionName: nlohmann::detail::lexer::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6915
    functionName: nlohmann::detail::lexer::get_error_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_error_message() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6927,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6925
    functionDepth: 5
    functionLinenumber: 6925
    functionLinenumberEnd: 6937
    functionName: nlohmann::detail::lexer::skip_bom
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    linkageType: ''
    returnType: bool
    signature: bool skip_bom()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::skip_bom
      Src: /src/sleuthkit/tools/logicalimager/json.h:6942,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6951,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6973,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6975,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6977,1
    - Dst: nlohmann::detail::lexer::scan_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:6981,1
    - Dst: nlohmann::detail::lexer::scan_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:6995,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:7000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7008
      start: 6939
    functionDepth: 6
    functionLinenumber: 6939
    functionLinenumberEnd: 7008
    functionName: nlohmann::detail::lexer::scan
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::scan_number
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::scan_string
    - nlohmann::detail::lexer::skip_bom
    - nlohmann::detail::lexer::scan_literal
    linkageType: ''
    returnType: token_type
    signature: token_type scan()
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - token_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5599
    functionDepth: 0
    functionLinenumber: 5599
    functionLinenumberEnd: 5640
    functionName: nlohmann::detail::lexer::token_type_name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * token_type_name(const token_type t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    - Dst: nlohmann::detail::lexer::get_decimal_point
      Src: /src/sleuthkit/tools/logicalimager/json.h:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5643
      start: 5642
    functionDepth: 1
    functionLinenumber: 5642
    functionLinenumberEnd: 5643
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::lexer::get_decimal_point
    linkageType: ''
    returnType: void
    signature: void lexer(detail::input_adapter_t&& adapter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5646
    functionDepth: 0
    functionLinenumber: 5646
    functionLinenumberEnd: 5646
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(const lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5647
    functionName: nlohmann::detail::lexer::lexer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5648
    functionDepth: 0
    functionLinenumber: 5648
    functionLinenumberEnd: 5648
    functionName: '& operator=(lexer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5649
    functionDepth: 0
    functionLinenumber: 5649
    functionLinenumberEnd: 5649
    functionName: '& operator=(lexer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5650
    functionName: ~lexer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~lexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:5660,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (loc != nullptr)
      pos:
        line_end: 5660
        line_start: 5660
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5663
      start: 5658
    functionDepth: 0
    functionLinenumber: 5658
    functionLinenumberEnd: 5663
    functionName: nlohmann::detail::lexer::get_decimal_point
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - localeconv
    - assert
    linkageType: ''
    returnType: char
    signature: char get_decimal_point() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5687,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5693,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5697,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5701,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5705,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == 'u')
      pos:
        line_end: 5686
        line_start: 5686
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x0000 <= codepoint and codepoint <= 0xFFFF)
      pos:
        line_end: 5712
        line_start: 5712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5715
      start: 5684
    functionDepth: 0
    functionLinenumber: 5684
    functionLinenumberEnd: 5715
    functionName: nlohmann::detail::lexer::get_codepoint
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - static_cast<unsigned int>
    - assert
    linkageType: ''
    returnType: int
    signature: int get_codepoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: std::initializer_list<int>::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:5734,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5735,1
    - Dst: std::initializer_list<int>::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: std::initializer_list<int>::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:5737,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5739,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5740,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - std::initializer_list<int>
    assertStmts:
    - condition: (ranges.size() == 2 or ranges.size() == 4 or ranges.size() == 6)
      pos:
        line_end: 5733
        line_start: 5733
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 5752
      start: 5732
    functionDepth: 2
    functionLinenumber: 5732
    functionLinenumberEnd: 5752
    functionName: nlohmann::detail::lexer::next_byte_in_range
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::initializer_list<int>::end
    - std::initializer_list<int>::begin
    - assert
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - std::initializer_list<int>::size
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: bool
    signature: bool next_byte_in_range(std::initializer_list<int> ranges)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:5772,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5775,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5780,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:5783,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5798,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5802,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5806,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5810,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5814,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5818,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5822,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5826,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5830,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5836,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5839,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:5849,1
    - Dst: nlohmann::detail::lexer::get_codepoint
      Src: /src/sleuthkit/tools/logicalimager/json.h:5851,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5853,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5860,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5863,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5865,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5867,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:5887,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:5895,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5901,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5906,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5907,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5912,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5913,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5914,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5919,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5920,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5921,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:5922,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6226,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6262,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6272,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6296,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6306,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6328,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    - Dst: nlohmann::detail::lexer::next_byte_in_range
      Src: /src/sleuthkit/tools/logicalimager/json.h:6338,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 408
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current == '\"')
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (0x00 <= codepoint and codepoint <= 0x10FFFF)
      pos:
        line_end: 5894
        line_start: 5894
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6353
      start: 5769
    functionDepth: 4
    functionLinenumber: 5769
    functionLinenumberEnd: 6353
    functionName: nlohmann::detail::lexer::scan_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::lexer::get_codepoint
    - assert
    - JSON_UNLIKELY
    - nlohmann::detail::lexer::reset
    - nlohmann::detail::binary_reader::unexpect_eof
    - static_cast<unsigned int>
    - JSON_LIKELY
    - nlohmann::detail::lexer::get
    - static_cast<int>
    - nlohmann::detail::lexer::add
    - nlohmann::detail::lexer::next_byte_in_range
    linkageType: ''
    returnType: token_type
    signature: token_type scan_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - float
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6358
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::lexer::strtof
    linkageType: ''
    returnType: void
    signature: void strtof(float& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/sleuthkit/tools/logicalimager/json.h:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6363
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: void
    signature: void strtof(double& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtold
      Src: /src/sleuthkit/tools/logicalimager/json.h:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - long double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6365
    functionDepth: 0
    functionLinenumber: 6365
    functionLinenumberEnd: 6368
    functionName: nlohmann::detail::lexer::strtof
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::strtold
    linkageType: ''
    returnType: void
    signature: void strtof(long double& f, const char* str, char** endptr) noexcept
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::reset
      Src: /src/sleuthkit/tools/logicalimager/json.h:6413,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6424,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6430,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6444,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6450,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6456,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6460,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6474,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6487,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6491,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6498,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6508,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6521,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6527,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6534,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6545,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6558,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6571,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6584,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6591,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6602,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6607,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6622,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6636,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6649,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6662,1
    - Dst: nlohmann::detail::lexer::add
      Src: /src/sleuthkit/tools/logicalimager/json.h:6675,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6686,1
    - Dst: std::strtoull
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6694,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6697,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6701,1
    - Dst: std::strtoll
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6710,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6713,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6717,1
    - Dst: nlohmann::detail::lexer::strtof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6727,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6730,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 253
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6696
        line_start: 6696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6712
        line_start: 6712
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 6449
        line_start: 6449
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (endptr == token_buffer.data() + token_buffer.size())
      pos:
        line_end: 6729
        line_start: 6729
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6733
      start: 6410
    functionDepth: 5
    functionLinenumber: 6410
    functionLinenumberEnd: 6733
    functionName: nlohmann::detail::lexer::scan_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - size
    - assert
    - std::strtoull
    - nlohmann::detail::lexer::strtof
    - nlohmann::detail::lexer::reset
    - static_cast<number_integer_t>
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    - std::strtoll
    - data
    - static_cast<number_unsigned_t>
    - nlohmann::detail::lexer::add
    linkageType: ''
    returnType: token_type
    signature: token_type scan_number()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6743,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - literal_text
    - length
    - return_type
    argTypes:
    - char*
    - std::size_t
    - token_type
    assertStmts:
    - condition: (current == literal_text[0])
      pos:
        line_end: 6742
        line_start: 6742
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6753
      start: 6740
    functionDepth: 1
    functionLinenumber: 6740
    functionLinenumberEnd: 6753
    functionName: nlohmann::detail::lexer::scan_literal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::lexer::get
    - JSON_UNLIKELY
    - assert
    linkageType: ''
    returnType: token_type
    signature: "token_type scan_literal(const char* literal_text, const std::size_t
      length,\n                            token_type return_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6762,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:6763,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6765
      start: 6760
    functionDepth: 1
    functionLinenumber: 6760
    functionLinenumberEnd: 6765
    functionName: nlohmann::detail::lexer::reset
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - clear
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:6789,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6792,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6804
      start: 6777
    functionDepth: 4
    functionLinenumber: 6777
    functionLinenumberEnd: 6804
    functionName: nlohmann::detail::lexer::get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 26
    functionsReached:
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::binary_writer::to_char_type
    - push_back
    - JSON_LIKELY
    - get_character
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:6833,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:6835,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (not token_string.empty())
      pos:
        line_end: 6834
        line_start: 6834
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 6838
      start: 6814
    functionDepth: 4
    functionLinenumber: 6814
    functionLinenumberEnd: 6838
    functionName: nlohmann::detail::lexer::unget
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - empty
    - assert
    - nlohmann::detail::binary_reader::unexpect_eof
    - pop_back
    - JSON_LIKELY
    linkageType: ''
    returnType: void
    signature: void unget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:6843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6844
      start: 6841
    functionDepth: 1
    functionLinenumber: 6841
    functionLinenumberEnd: 6844
    functionName: nlohmann::detail::lexer::add
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - push_back
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: void
    signature: void add(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6852
    functionDepth: 0
    functionLinenumber: 6852
    functionLinenumberEnd: 6855
    functionName: nlohmann::detail::lexer::get_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t get_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6858
    functionDepth: 0
    functionLinenumber: 6858
    functionLinenumberEnd: 6861
    functionName: nlohmann::detail::lexer::get_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t get_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6864
    functionDepth: 0
    functionLinenumber: 6864
    functionLinenumberEnd: 6867
    functionName: nlohmann::detail::lexer::get_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t get_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6873
      start: 6870
    functionDepth: 0
    functionLinenumber: 6870
    functionLinenumberEnd: 6873
    functionName: '& get_string()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: string_t
    signature: string_t & get_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6880
    functionDepth: 0
    functionLinenumber: 6880
    functionLinenumberEnd: 6883
    functionName: nlohmann::detail::lexer::get_position
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: position_t
    signature: position_t get_position() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: static_cast<unsigned char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:6898,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:6899,1
    - Dst: std::string::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6909
    functionName: nlohmann::detail::lexer::get_token_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::size
    - static_cast<unsigned char>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6915
    functionName: nlohmann::detail::lexer::get_error_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_error_message() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6927,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6930,1
    - Dst: nlohmann::detail::lexer::unget
      Src: /src/sleuthkit/tools/logicalimager/json.h:6935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6925
    functionDepth: 5
    functionLinenumber: 6925
    functionLinenumberEnd: 6937
    functionName: nlohmann::detail::lexer::skip_bom
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::unget
    linkageType: ''
    returnType: bool
    signature: bool skip_bom()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::lexer::skip_bom
      Src: /src/sleuthkit/tools/logicalimager/json.h:6942,1
    - Dst: nlohmann::detail::lexer::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:6951,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6973,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6975,1
    - Dst: nlohmann::detail::lexer::scan_literal
      Src: /src/sleuthkit/tools/logicalimager/json.h:6977,1
    - Dst: nlohmann::detail::lexer::scan_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:6981,1
    - Dst: nlohmann::detail::lexer::scan_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:6995,1
    - Dst: nlohmann::detail::binary_reader::unexpect_eof
      Src: /src/sleuthkit/tools/logicalimager/json.h:7000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7008
      start: 6939
    functionDepth: 6
    functionLinenumber: 6939
    functionLinenumberEnd: 7008
    functionName: nlohmann::detail::lexer::scan
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::lexer::scan_number
    - nlohmann::detail::binary_reader::unexpect_eof
    - nlohmann::detail::lexer::get
    - nlohmann::detail::lexer::scan_string
    - nlohmann::detail::lexer::skip_bom
    - nlohmann::detail::lexer::scan_literal
    linkageType: ''
    returnType: token_type
    signature: token_type scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:7116,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7120
      start: 7113
    functionDepth: 1
    functionLinenumber: 7113
    functionLinenumberEnd: 7120
    functionName: nlohmann::detail::parser::parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::parser::get_token
    linkageType: ''
    returnType: void
    signature: "void parser(detail::input_adapter_t&& adapter,\n                    const
      parser_callback_t cb = nullptr,\n                    const bool allow_exceptions_
      = true)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7137,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7138,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7141,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7144,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7146,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7150,1
    - Dst: is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:7158,1
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7166,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7167,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7170,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7173,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7175,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - strict
    - ' result'
    argTypes:
    - bool
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7132
    functionDepth: 3
    functionLinenumber: 7132
    functionLinenumberEnd: 7185
    functionName: nlohmann::detail::parser::parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_position
    - json_sax_dom_callback_parser::is_errored
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - is_discarded
    - nlohmann::detail::parser::exception_message
    - json_sax_dom_parser::parse_error
    - nlohmann::detail::parse_error::create
    - json_sax_dom_parser::is_errored
    - json_sax_dom_callback_parser::parse_error
    - get_token_string
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void parse(const bool strict, BasicJsonType& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/json.h:7196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7197
      start: 7193
    functionDepth: 1
    functionLinenumber: 7193
    functionLinenumberEnd: 7197
    functionName: nlohmann::detail::parser::accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parser::sax_parse
    linkageType: ''
    returnType: bool
    signature: bool accept(const bool strict = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7203,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7206,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7209,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7200
    functionDepth: 3
    functionLinenumber: 7200
    functionLinenumberEnd: 7215
    functionName: nlohmann::detail::parser::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - get_position
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - nlohmann::detail::parser::exception_message
    - nlohmann::detail::parse_error::create
    - SAX*::parse_error
    - get_token_string
    linkageType: ''
    returnType: bool
    signature: bool sax_parse(SAX* sax, const bool strict = true)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: SAX*::start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7252,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7255,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7257,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7268,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7270,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7274,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7277,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: SAX*::start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7289,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7299,1
    - Dst: get_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7312,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: SAX*::number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: SAX*::null
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: SAX*::number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: get_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: SAX*::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: get_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7382,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7384,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7390,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7392,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7402,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7408,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7411,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7414,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7419,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7431,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7437,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7439,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7444,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7450,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7452,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7464,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7466,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7470,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7475,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7487,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7493,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7495,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts:
    - condition: (not states.empty())
      pos:
        line_end: 7485
        line_start: 7485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not states.empty())
      pos:
        line_end: 7429
        line_start: 7429
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7498
      start: 7219
    functionDepth: 3
    functionLinenumber: 7219
    functionLinenumberEnd: 7498
    functionName: nlohmann::detail::parser::sax_parse_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::vector::pop_back
    - std::isfinite
    - get_number_float
    - std::size_t
    - JSON_UNLIKELY
    - SAX*::number_integer
    - get_token_string
    - get_position
    - JSON_LIKELY
    - SAX*::end_object
    - nlohmann::detail::parse_error::create
    - SAX*::start_array
    - SAX*::end_array
    - std::vector::empty
    - SAX*::key
    - assert
    - SAX*::number_unsigned
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::exception_message
    - SAX*::parse_error
    - SAX*::start_object
    - std::vector::push_back
    - SAX*::null
    - SAX*::boolean
    - nlohmann::detail::out_of_range::create
    - SAX*::string
    - get_string
    - get_number_integer
    - get_number_unsigned
    - SAX*::number_float
    - std::vector::back
    linkageType: ''
    returnType: bool
    signature: bool sax_parse_internal(SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/sleuthkit/tools/logicalimager/json.h:7503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7501
    functionDepth: 0
    functionLinenumber: 7501
    functionLinenumberEnd: 7504
    functionName: nlohmann::detail::parser::get_token
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - scan
    linkageType: ''
    returnType: token_type
    signature: token_type get_token()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7510,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_error_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7520,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - ' context'
    argTypes:
    - token_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7506
    functionDepth: 1
    functionLinenumber: 7506
    functionLinenumberEnd: 7533
    functionName: nlohmann::detail::parser::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - empty
    - nlohmann::detail::lexer::token_type_name
    - get_error_message
    - std::string
    - get_token_string
    linkageType: ''
    returnType: std::string
    signature: std::string exception_message(const token_type expected, const std::string&
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:7116,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7120
      start: 7113
    functionDepth: 1
    functionLinenumber: 7113
    functionLinenumberEnd: 7120
    functionName: nlohmann::detail::parser::parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::parser::get_token
    linkageType: ''
    returnType: void
    signature: "void parser(detail::input_adapter_t&& adapter,\n                    const
      parser_callback_t cb = nullptr,\n                    const bool allow_exceptions_
      = true)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7137,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7138,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7141,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7144,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7146,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7150,1
    - Dst: is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:7158,1
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7166,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7167,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7170,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7173,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7175,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - strict
    - ' result'
    argTypes:
    - bool
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7132
    functionDepth: 4
    functionLinenumber: 7132
    functionLinenumberEnd: 7185
    functionName: nlohmann::detail::parser::parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_position
    - json_sax_dom_callback_parser::is_errored
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - is_discarded
    - nlohmann::detail::parser::exception_message
    - json_sax_dom_parser::parse_error
    - nlohmann::detail::parse_error::create
    - json_sax_dom_parser::is_errored
    - json_sax_dom_callback_parser::parse_error
    - get_token_string
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void parse(const bool strict, BasicJsonType& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/json.h:7196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7197
      start: 7193
    functionDepth: 4
    functionLinenumber: 7193
    functionLinenumberEnd: 7197
    functionName: nlohmann::detail::parser::accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parser::sax_parse
    linkageType: ''
    returnType: bool
    signature: bool accept(const bool strict = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7203,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7206,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7209,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7200
    functionDepth: 4
    functionLinenumber: 7200
    functionLinenumberEnd: 7215
    functionName: nlohmann::detail::parser::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - get_position
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - nlohmann::detail::parser::exception_message
    - nlohmann::detail::parse_error::create
    - SAX*::parse_error
    - get_token_string
    linkageType: ''
    returnType: bool
    signature: bool sax_parse(SAX* sax, const bool strict = true)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: SAX*::start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7252,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7255,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7257,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7268,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7270,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7274,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7277,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: SAX*::start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7289,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7299,1
    - Dst: get_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7312,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: SAX*::number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: SAX*::null
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: SAX*::number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: get_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: SAX*::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: get_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7382,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7384,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7390,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7392,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7402,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7408,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7411,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7414,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7419,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7431,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7437,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7439,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7444,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7450,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7452,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7464,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7466,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7470,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7475,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7487,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7493,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7495,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts:
    - condition: (not states.empty())
      pos:
        line_end: 7485
        line_start: 7485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not states.empty())
      pos:
        line_end: 7429
        line_start: 7429
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7498
      start: 7219
    functionDepth: 3
    functionLinenumber: 7219
    functionLinenumberEnd: 7498
    functionName: nlohmann::detail::parser::sax_parse_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::vector::pop_back
    - std::isfinite
    - get_number_float
    - std::size_t
    - JSON_UNLIKELY
    - SAX*::number_integer
    - get_token_string
    - get_position
    - JSON_LIKELY
    - SAX*::end_object
    - nlohmann::detail::parse_error::create
    - SAX*::start_array
    - SAX*::end_array
    - std::vector::empty
    - SAX*::key
    - assert
    - SAX*::number_unsigned
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::exception_message
    - SAX*::parse_error
    - SAX*::start_object
    - std::vector::push_back
    - SAX*::null
    - SAX*::boolean
    - nlohmann::detail::out_of_range::create
    - SAX*::string
    - get_string
    - get_number_integer
    - get_number_unsigned
    - SAX*::number_float
    - std::vector::back
    linkageType: ''
    returnType: bool
    signature: bool sax_parse_internal(SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/sleuthkit/tools/logicalimager/json.h:7503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7501
    functionDepth: 0
    functionLinenumber: 7501
    functionLinenumberEnd: 7504
    functionName: nlohmann::detail::parser::get_token
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - scan
    linkageType: ''
    returnType: token_type
    signature: token_type get_token()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7510,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_error_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7520,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - ' context'
    argTypes:
    - token_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7506
    functionDepth: 1
    functionLinenumber: 7506
    functionLinenumberEnd: 7533
    functionName: nlohmann::detail::parser::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - empty
    - nlohmann::detail::lexer::token_type_name
    - get_error_message
    - std::string
    - get_token_string
    linkageType: ''
    returnType: std::string
    signature: std::string exception_message(const token_type expected, const std::string&
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:7116,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7120
      start: 7113
    functionDepth: 1
    functionLinenumber: 7113
    functionLinenumberEnd: 7120
    functionName: nlohmann::detail::parser::parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::parser::get_token
    linkageType: ''
    returnType: void
    signature: "void parser(detail::input_adapter_t&& adapter,\n                    const
      parser_callback_t cb = nullptr,\n                    const bool allow_exceptions_
      = true)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7137,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7138,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7141,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7144,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7146,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7150,1
    - Dst: is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:7158,1
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7166,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7167,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7170,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7173,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7175,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - strict
    - ' result'
    argTypes:
    - bool
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7132
    functionDepth: 4
    functionLinenumber: 7132
    functionLinenumberEnd: 7185
    functionName: nlohmann::detail::parser::parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_position
    - json_sax_dom_callback_parser::is_errored
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - is_discarded
    - nlohmann::detail::parser::exception_message
    - json_sax_dom_parser::parse_error
    - nlohmann::detail::parse_error::create
    - json_sax_dom_parser::is_errored
    - json_sax_dom_callback_parser::parse_error
    - get_token_string
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void parse(const bool strict, BasicJsonType& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/json.h:7196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7197
      start: 7193
    functionDepth: 4
    functionLinenumber: 7193
    functionLinenumberEnd: 7197
    functionName: nlohmann::detail::parser::accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parser::sax_parse
    linkageType: ''
    returnType: bool
    signature: bool accept(const bool strict = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7203,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7206,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7209,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7200
    functionDepth: 4
    functionLinenumber: 7200
    functionLinenumberEnd: 7215
    functionName: nlohmann::detail::parser::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - get_position
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - nlohmann::detail::parser::exception_message
    - nlohmann::detail::parse_error::create
    - SAX*::parse_error
    - get_token_string
    linkageType: ''
    returnType: bool
    signature: bool sax_parse(SAX* sax, const bool strict = true)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: SAX*::start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7252,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7255,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7257,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7268,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7270,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7274,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7277,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: SAX*::start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7289,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7299,1
    - Dst: get_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7312,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: SAX*::number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: SAX*::null
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: SAX*::number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: get_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: SAX*::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: get_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7382,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7384,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7390,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7392,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7402,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7408,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7411,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7414,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7419,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7431,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7437,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7439,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7444,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7450,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7452,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7464,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7466,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7470,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7475,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7487,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7493,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7495,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts:
    - condition: (not states.empty())
      pos:
        line_end: 7485
        line_start: 7485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not states.empty())
      pos:
        line_end: 7429
        line_start: 7429
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7498
      start: 7219
    functionDepth: 3
    functionLinenumber: 7219
    functionLinenumberEnd: 7498
    functionName: nlohmann::detail::parser::sax_parse_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - std::vector::pop_back
    - std::isfinite
    - get_number_float
    - std::size_t
    - JSON_UNLIKELY
    - SAX*::number_integer
    - get_token_string
    - get_position
    - JSON_LIKELY
    - SAX*::end_object
    - nlohmann::detail::parse_error::create
    - SAX*::start_array
    - SAX*::end_array
    - std::vector::empty
    - SAX*::key
    - assert
    - SAX*::number_unsigned
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::exception_message
    - SAX*::parse_error
    - SAX*::start_object
    - std::vector::push_back
    - SAX*::null
    - SAX*::boolean
    - nlohmann::detail::out_of_range::create
    - SAX*::string
    - get_string
    - get_number_integer
    - get_number_unsigned
    - SAX*::number_float
    - std::vector::back
    linkageType: ''
    returnType: bool
    signature: bool sax_parse_internal(SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/sleuthkit/tools/logicalimager/json.h:7503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7501
    functionDepth: 0
    functionLinenumber: 7501
    functionLinenumberEnd: 7504
    functionName: nlohmann::detail::parser::get_token
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - scan
    linkageType: ''
    returnType: token_type
    signature: token_type get_token()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7510,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_error_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7520,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - ' context'
    argTypes:
    - token_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7506
    functionDepth: 1
    functionLinenumber: 7506
    functionLinenumberEnd: 7533
    functionName: nlohmann::detail::parser::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 9
    functionsReached:
    - empty
    - nlohmann::detail::lexer::token_type_name
    - get_error_message
    - std::string
    - get_token_string
    linkageType: ''
    returnType: std::string
    signature: std::string exception_message(const token_type expected, const std::string&
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:7116,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - detail::input_adapter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7120
      start: 7113
    functionDepth: 1
    functionLinenumber: 7113
    functionLinenumberEnd: 7120
    functionName: nlohmann::detail::parser::parser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - nlohmann::detail::parser::get_token
    linkageType: ''
    returnType: void
    signature: "void parser(detail::input_adapter_t&& adapter,\n                    const
      parser_callback_t cb = nullptr,\n                    const bool allow_exceptions_
      = true)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7137,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7138,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7141,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7143,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7144,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7145,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7146,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7150,1
    - Dst: is_discarded
      Src: /src/sleuthkit/tools/logicalimager/json.h:7158,1
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7166,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:7167,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7170,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7172,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7173,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7174,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7175,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/sleuthkit/tools/logicalimager/json.h:7179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - strict
    - ' result'
    argTypes:
    - bool
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7132
    functionDepth: 4
    functionLinenumber: 7132
    functionLinenumberEnd: 7185
    functionName: nlohmann::detail::parser::parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_position
    - json_sax_dom_callback_parser::is_errored
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - is_discarded
    - nlohmann::detail::parser::exception_message
    - json_sax_dom_parser::parse_error
    - nlohmann::detail::parse_error::create
    - json_sax_dom_parser::is_errored
    - json_sax_dom_callback_parser::parse_error
    - get_token_string
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void parse(const bool strict, BasicJsonType& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/json.h:7196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7197
      start: 7193
    functionDepth: 4
    functionLinenumber: 7193
    functionLinenumberEnd: 7197
    functionName: nlohmann::detail::parser::accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::parser::sax_parse
    linkageType: ''
    returnType: bool
    signature: bool accept(const bool strict = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::parser::sax_parse_internal
      Src: /src/sleuthkit/tools/logicalimager/json.h:7203,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7206,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7208,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7209,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7210,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7200
    functionDepth: 4
    functionLinenumber: 7200
    functionLinenumberEnd: 7215
    functionName: nlohmann::detail::parser::sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - get_position
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::sax_parse_internal
    - nlohmann::detail::parser::exception_message
    - nlohmann::detail::parse_error::create
    - SAX*::parse_error
    - get_token_string
    linkageType: ''
    returnType: bool
    signature: bool sax_parse(SAX* sax, const bool strict = true)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: SAX*::start_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7236,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7242,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7244,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7252,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7254,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7255,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7256,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7257,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7259,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7265,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7267,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7268,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7269,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7270,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7274,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7277,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: SAX*::start_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: std::size_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7283,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7289,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7291,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7299,1
    - Dst: get_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7307,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:7309,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7311,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7312,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7313,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: SAX*::number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7316,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7326,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: SAX*::null
      Src: /src/sleuthkit/tools/logicalimager/json.h:7335,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: SAX*::boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:7344,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: SAX*::number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: get_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:7353,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: SAX*::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7362,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: get_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:7371,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7381,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7382,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7383,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7384,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7389,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7390,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7391,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7392,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7402,1
    - Dst: std::vector::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7408,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7411,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7414,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7419,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: SAX*::end_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:7421,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7430,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7431,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7436,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7437,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7438,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7439,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7444,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7447,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7449,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7450,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7451,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7452,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: SAX*::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: get_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7455,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7461,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7463,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7464,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7465,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7466,1
    - Dst: nlohmann::detail::parser::get_token
      Src: /src/sleuthkit/tools/logicalimager/json.h:7470,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7475,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: SAX*::end_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:7477,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7486,1
    - Dst: std::vector::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:7487,1
    - Dst: SAX*::parse_error
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7492,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7493,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: get_position
      Src: /src/sleuthkit/tools/logicalimager/json.h:7494,1
    - Dst: nlohmann::detail::parser::exception_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7495,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts:
    - condition: (not states.empty())
      pos:
        line_end: 7485
        line_start: 7485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not states.empty())
      pos:
        line_end: 7429
        line_start: 7429
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7498
      start: 7219
    functionDepth: 3
    functionLinenumber: 7219
    functionLinenumberEnd: 7498
    functionName: nlohmann::detail::parser::sax_parse_internal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - std::vector::pop_back
    - std::isfinite
    - get_number_float
    - std::size_t
    - JSON_UNLIKELY
    - SAX*::number_integer
    - get_token_string
    - get_position
    - JSON_LIKELY
    - SAX*::end_object
    - nlohmann::detail::parse_error::create
    - SAX*::start_array
    - SAX*::end_array
    - std::vector::empty
    - SAX*::key
    - assert
    - SAX*::number_unsigned
    - nlohmann::detail::parser::get_token
    - nlohmann::detail::parser::exception_message
    - SAX*::parse_error
    - SAX*::start_object
    - std::vector::push_back
    - SAX*::null
    - SAX*::boolean
    - nlohmann::detail::out_of_range::create
    - SAX*::string
    - get_string
    - get_number_integer
    - get_number_unsigned
    - SAX*::number_float
    - std::vector::back
    linkageType: ''
    returnType: bool
    signature: bool sax_parse_internal(SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/sleuthkit/tools/logicalimager/json.h:7503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7501
    functionDepth: 0
    functionLinenumber: 7501
    functionLinenumberEnd: 7504
    functionName: nlohmann::detail::parser::get_token
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - scan
    linkageType: ''
    returnType: token_type
    signature: token_type get_token()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:7510,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_error_message
      Src: /src/sleuthkit/tools/logicalimager/json.h:7519,1
    - Dst: get_token_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7520,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7524,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    - Dst: nlohmann::detail::lexer::token_type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:7529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - ' context'
    argTypes:
    - token_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7506
    functionDepth: 1
    functionLinenumber: 7506
    functionLinenumberEnd: 7533
    functionName: nlohmann::detail::parser::exception_message
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - empty
    - nlohmann::detail::lexer::token_type_name
    - get_error_message
    - std::string
    - get_token_string
    linkageType: ''
    returnType: std::string
    signature: std::string exception_message(const token_type expected, const std::string&
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7584
      start: 7581
    functionDepth: 0
    functionLinenumber: 7581
    functionLinenumberEnd: 7584
    functionName: nlohmann::detail::primitive_iterator_t::get_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7590
      start: 7587
    functionDepth: 0
    functionLinenumber: 7587
    functionLinenumberEnd: 7590
    functionName: nlohmann::detail::primitive_iterator_t::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7593
    functionDepth: 0
    functionLinenumber: 7593
    functionLinenumberEnd: 7596
    functionName: nlohmann::detail::primitive_iterator_t::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7602
      start: 7599
    functionDepth: 0
    functionLinenumber: 7599
    functionLinenumberEnd: 7602
    functionName: nlohmann::detail::primitive_iterator_t::is_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7608
      start: 7605
    functionDepth: 0
    functionLinenumber: 7605
    functionLinenumberEnd: 7608
    functionName: nlohmann::detail::primitive_iterator_t::is_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7613
      start: 7610
    functionDepth: 0
    functionLinenumber: 7610
    functionLinenumberEnd: 7613
    functionName: operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7615
    functionDepth: 0
    functionLinenumber: 7615
    functionLinenumberEnd: 7618
    functionName: operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7625
    functionName: operator+(difference_type n) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator+(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7630
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7630
    functionName: operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7632
    functionDepth: 0
    functionLinenumber: 7632
    functionLinenumberEnd: 7636
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7643
      start: 7638
    functionDepth: 0
    functionLinenumber: 7638
    functionLinenumberEnd: 7643
    functionName: operator++(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7645
    functionDepth: 0
    functionLinenumber: 7645
    functionLinenumberEnd: 7649
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7656
      start: 7651
    functionDepth: 0
    functionLinenumber: 7651
    functionLinenumberEnd: 7656
    functionName: operator--(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7658
    functionDepth: 0
    functionLinenumber: 7658
    functionLinenumberEnd: 7662
    functionName: '& operator+=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator+=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7668
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7668
    functionName: '& operator-=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator-=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7584
      start: 7581
    functionDepth: 0
    functionLinenumber: 7581
    functionLinenumberEnd: 7584
    functionName: nlohmann::detail::primitive_iterator_t::get_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7590
      start: 7587
    functionDepth: 0
    functionLinenumber: 7587
    functionLinenumberEnd: 7590
    functionName: nlohmann::detail::primitive_iterator_t::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7593
    functionDepth: 0
    functionLinenumber: 7593
    functionLinenumberEnd: 7596
    functionName: nlohmann::detail::primitive_iterator_t::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7602
      start: 7599
    functionDepth: 0
    functionLinenumber: 7599
    functionLinenumberEnd: 7602
    functionName: nlohmann::detail::primitive_iterator_t::is_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7608
      start: 7605
    functionDepth: 0
    functionLinenumber: 7605
    functionLinenumberEnd: 7608
    functionName: nlohmann::detail::primitive_iterator_t::is_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7613
      start: 7610
    functionDepth: 0
    functionLinenumber: 7610
    functionLinenumberEnd: 7613
    functionName: operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7615
    functionDepth: 0
    functionLinenumber: 7615
    functionLinenumberEnd: 7618
    functionName: operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7625
    functionName: operator+(difference_type n) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator+(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7630
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7630
    functionName: operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7632
    functionDepth: 0
    functionLinenumber: 7632
    functionLinenumberEnd: 7636
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7643
      start: 7638
    functionDepth: 0
    functionLinenumber: 7638
    functionLinenumberEnd: 7643
    functionName: operator++(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7645
    functionDepth: 0
    functionLinenumber: 7645
    functionLinenumberEnd: 7649
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7656
      start: 7651
    functionDepth: 0
    functionLinenumber: 7651
    functionLinenumberEnd: 7656
    functionName: operator--(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7658
    functionDepth: 0
    functionLinenumber: 7658
    functionLinenumberEnd: 7662
    functionName: '& operator+=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator+=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7668
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7668
    functionName: '& operator-=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator-=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7584
      start: 7581
    functionDepth: 0
    functionLinenumber: 7581
    functionLinenumberEnd: 7584
    functionName: nlohmann::detail::primitive_iterator_t::get_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7590
      start: 7587
    functionDepth: 0
    functionLinenumber: 7587
    functionLinenumberEnd: 7590
    functionName: nlohmann::detail::primitive_iterator_t::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7593
    functionDepth: 0
    functionLinenumber: 7593
    functionLinenumberEnd: 7596
    functionName: nlohmann::detail::primitive_iterator_t::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7602
      start: 7599
    functionDepth: 0
    functionLinenumber: 7599
    functionLinenumberEnd: 7602
    functionName: nlohmann::detail::primitive_iterator_t::is_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7608
      start: 7605
    functionDepth: 0
    functionLinenumber: 7605
    functionLinenumberEnd: 7608
    functionName: nlohmann::detail::primitive_iterator_t::is_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7613
      start: 7610
    functionDepth: 0
    functionLinenumber: 7610
    functionLinenumberEnd: 7613
    functionName: operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7615
    functionDepth: 0
    functionLinenumber: 7615
    functionLinenumberEnd: 7618
    functionName: operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7625
    functionName: operator+(difference_type n) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator+(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7630
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7630
    functionName: operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7632
    functionDepth: 0
    functionLinenumber: 7632
    functionLinenumberEnd: 7636
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7643
      start: 7638
    functionDepth: 0
    functionLinenumber: 7638
    functionLinenumberEnd: 7643
    functionName: operator++(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7645
    functionDepth: 0
    functionLinenumber: 7645
    functionLinenumberEnd: 7649
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7656
      start: 7651
    functionDepth: 0
    functionLinenumber: 7651
    functionLinenumberEnd: 7656
    functionName: operator--(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7658
    functionDepth: 0
    functionLinenumber: 7658
    functionLinenumberEnd: 7662
    functionName: '& operator+=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator+=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7668
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7668
    functionName: '& operator-=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator-=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7584
      start: 7581
    functionDepth: 0
    functionLinenumber: 7581
    functionLinenumberEnd: 7584
    functionName: nlohmann::detail::primitive_iterator_t::get_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7590
      start: 7587
    functionDepth: 0
    functionLinenumber: 7587
    functionLinenumberEnd: 7590
    functionName: nlohmann::detail::primitive_iterator_t::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7593
    functionDepth: 0
    functionLinenumber: 7593
    functionLinenumberEnd: 7596
    functionName: nlohmann::detail::primitive_iterator_t::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7602
      start: 7599
    functionDepth: 0
    functionLinenumber: 7599
    functionLinenumberEnd: 7602
    functionName: nlohmann::detail::primitive_iterator_t::is_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7608
      start: 7605
    functionDepth: 0
    functionLinenumber: 7605
    functionLinenumberEnd: 7608
    functionName: nlohmann::detail::primitive_iterator_t::is_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7613
      start: 7610
    functionDepth: 0
    functionLinenumber: 7610
    functionLinenumberEnd: 7613
    functionName: operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7615
    functionDepth: 0
    functionLinenumber: 7615
    functionLinenumberEnd: 7618
    functionName: operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7625
    functionName: operator+(difference_type n) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator+(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7630
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7630
    functionName: operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7632
    functionDepth: 0
    functionLinenumber: 7632
    functionLinenumberEnd: 7636
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7643
      start: 7638
    functionDepth: 0
    functionLinenumber: 7638
    functionLinenumberEnd: 7643
    functionName: operator++(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7645
    functionDepth: 0
    functionLinenumber: 7645
    functionLinenumberEnd: 7649
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7656
      start: 7651
    functionDepth: 0
    functionLinenumber: 7651
    functionLinenumberEnd: 7656
    functionName: operator--(int) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7658
    functionDepth: 0
    functionLinenumber: 7658
    functionLinenumberEnd: 7662
    functionName: '& operator+=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator+=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7668
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7668
    functionName: '& operator-=(difference_type n) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator-=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7781
      start: 7781
    functionDepth: 0
    functionLinenumber: 7781
    functionLinenumberEnd: 7781
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7791,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7797,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7803,1
    - Dst: primitive_iterator_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - pointer
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7790
        line_start: 7790
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7813
      start: 7789
    functionDepth: 1
    functionLinenumber: 7789
    functionLinenumberEnd: 7813
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator_t
    - assert
    - APFSJObjTree::iterator::iterator
    linkageType: ''
    returnType: void
    signature: void iter_impl(pointer object) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7829
    functionDepth: 0
    functionLinenumber: 7829
    functionLinenumberEnd: 7830
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7838
    functionDepth: 0
    functionLinenumber: 7838
    functionLinenumberEnd: 7843
    functionName: '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7852,1
    - Dst: m_value::object::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7858,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7864,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7871,1
    - Dst: primitive_iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7851
        line_start: 7851
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7881
      start: 7850
    functionDepth: 1
    functionLinenumber: 7850
    functionLinenumberEnd: 7881
    functionName: nlohmann::detail::iter_impl::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - assert
    - m_value::object::begin
    - primitive_iterator::set_end
    - primitive_iterator::set_begin
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7889,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7895,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7901,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7888
        line_start: 7888
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7911
      start: 7887
    functionDepth: 1
    functionLinenumber: 7887
    functionLinenumberEnd: 7911
    functionName: nlohmann::detail::iter_impl::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - m_value::array::end
    - assert
    - primitive_iterator::set_end
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7920,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7919
        line_start: 7919
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7925
        line_start: 7925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7931
        line_start: 7931
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7949
      start: 7918
    functionDepth: 3
    functionLinenumber: 7918
    functionLinenumberEnd: 7949
    functionName: operator*() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7957,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7956
        line_start: 7956
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7968
        line_start: 7968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7962
        line_start: 7962
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7983
      start: 7955
    functionDepth: 3
    functionLinenumber: 7955
    functionLinenumberEnd: 7983
    functionName: operator->() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7994
      start: 7989
    functionDepth: 0
    functionLinenumber: 7989
    functionLinenumberEnd: 7994
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator++(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8002,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8008,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8001
        line_start: 8001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8026
      start: 8000
    functionDepth: 0
    functionLinenumber: 8000
    functionLinenumberEnd: 8026
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8037
      start: 8032
    functionDepth: 0
    functionLinenumber: 8032
    functionLinenumberEnd: 8037
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator--(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8045,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8051,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8044
        line_start: 8044
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8069
      start: 8043
    functionDepth: 0
    functionLinenumber: 8043
    functionLinenumberEnd: 8069
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator--()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8078,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8082
        line_start: 8082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8096
      start: 8075
    functionDepth: 3
    functionLinenumber: 8075
    functionLinenumberEnd: 8096
    functionName: operator==(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8105
    functionName: operator!=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iter_impl& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8114,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8119,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8118
        line_start: 8118
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8132
      start: 8111
    functionDepth: 3
    functionLinenumber: 8111
    functionLinenumberEnd: 8132
    functionName: operator<(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator<(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other
      Src: /src/sleuthkit/tools/logicalimager/json.h:8140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8141
      start: 8138
    functionDepth: 0
    functionLinenumber: 8138
    functionLinenumberEnd: 8141
    functionName: operator<=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - other
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8150
      start: 8147
    functionDepth: 0
    functionLinenumber: 8147
    functionLinenumberEnd: 8150
    functionName: operator>(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8159
      start: 8156
    functionDepth: 0
    functionLinenumber: 8156
    functionLinenumberEnd: 8159
    functionName: operator>=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const iter_impl& other) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8167,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8166
        line_start: 8166
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8188
      start: 8165
    functionDepth: 3
    functionLinenumber: 8165
    functionLinenumberEnd: 8188
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8197
      start: 8194
    functionDepth: 0
    functionLinenumber: 8194
    functionLinenumberEnd: 8197
    functionName: '& operator-=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator-=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8208
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8208
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - ' it'
    argTypes:
    - difference_type
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8219
      start: 8214
    functionDepth: 0
    functionLinenumber: 8214
    functionLinenumberEnd: 8219
    functionName: operator+(difference_type i, const iter_impl& it)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i, const iter_impl& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8230
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8230
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator-(difference_type i) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8238,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8251
      start: 8236
    functionDepth: 3
    functionLinenumber: 8236
    functionLinenumberEnd: 8251
    functionName: operator-(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const iter_impl& other) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8259,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:8267,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: primitive_iterator::get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8258
        line_start: 8258
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8282
      start: 8257
    functionDepth: 3
    functionLinenumber: 8257
    functionLinenumberEnd: 8282
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - JSON_LIKELY
    - primitive_iterator::get_value
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    - std::next
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8290,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8289
        line_start: 8289
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8298
      start: 8288
    functionDepth: 3
    functionLinenumber: 8288
    functionLinenumberEnd: 8298
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - is_object
    - JSON_LIKELY
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: typename object_t::key_type
    signature: typename object_t::key_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8307
      start: 8304
    functionDepth: 0
    functionLinenumber: 8304
    functionLinenumberEnd: 8307
    functionName: nlohmann::detail::iter_impl::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7781
      start: 7781
    functionDepth: 0
    functionLinenumber: 7781
    functionLinenumberEnd: 7781
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7791,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7797,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7803,1
    - Dst: primitive_iterator_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - pointer
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7790
        line_start: 7790
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7813
      start: 7789
    functionDepth: 1
    functionLinenumber: 7789
    functionLinenumberEnd: 7813
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator_t
    - assert
    - APFSJObjTree::iterator::iterator
    linkageType: ''
    returnType: void
    signature: void iter_impl(pointer object) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7829
    functionDepth: 0
    functionLinenumber: 7829
    functionLinenumberEnd: 7830
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7838
    functionDepth: 0
    functionLinenumber: 7838
    functionLinenumberEnd: 7843
    functionName: '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7852,1
    - Dst: m_value::object::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7858,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7864,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7871,1
    - Dst: primitive_iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7851
        line_start: 7851
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7881
      start: 7850
    functionDepth: 1
    functionLinenumber: 7850
    functionLinenumberEnd: 7881
    functionName: nlohmann::detail::iter_impl::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - assert
    - m_value::object::begin
    - primitive_iterator::set_end
    - primitive_iterator::set_begin
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7889,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7895,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7901,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7888
        line_start: 7888
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7911
      start: 7887
    functionDepth: 1
    functionLinenumber: 7887
    functionLinenumberEnd: 7911
    functionName: nlohmann::detail::iter_impl::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - m_value::array::end
    - assert
    - primitive_iterator::set_end
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7920,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7919
        line_start: 7919
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7925
        line_start: 7925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7931
        line_start: 7931
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7949
      start: 7918
    functionDepth: 3
    functionLinenumber: 7918
    functionLinenumberEnd: 7949
    functionName: operator*() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7957,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7956
        line_start: 7956
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7968
        line_start: 7968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7962
        line_start: 7962
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7983
      start: 7955
    functionDepth: 3
    functionLinenumber: 7955
    functionLinenumberEnd: 7983
    functionName: operator->() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7994
      start: 7989
    functionDepth: 0
    functionLinenumber: 7989
    functionLinenumberEnd: 7994
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator++(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8002,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8008,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8001
        line_start: 8001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8026
      start: 8000
    functionDepth: 0
    functionLinenumber: 8000
    functionLinenumberEnd: 8026
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8037
      start: 8032
    functionDepth: 0
    functionLinenumber: 8032
    functionLinenumberEnd: 8037
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator--(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8045,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8051,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8044
        line_start: 8044
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8069
      start: 8043
    functionDepth: 0
    functionLinenumber: 8043
    functionLinenumberEnd: 8069
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator--()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8078,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8082
        line_start: 8082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8096
      start: 8075
    functionDepth: 3
    functionLinenumber: 8075
    functionLinenumberEnd: 8096
    functionName: operator==(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8105
    functionName: operator!=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iter_impl& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8114,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8119,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8118
        line_start: 8118
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8132
      start: 8111
    functionDepth: 3
    functionLinenumber: 8111
    functionLinenumberEnd: 8132
    functionName: operator<(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator<(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other
      Src: /src/sleuthkit/tools/logicalimager/json.h:8140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8141
      start: 8138
    functionDepth: 0
    functionLinenumber: 8138
    functionLinenumberEnd: 8141
    functionName: operator<=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - other
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8150
      start: 8147
    functionDepth: 0
    functionLinenumber: 8147
    functionLinenumberEnd: 8150
    functionName: operator>(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8159
      start: 8156
    functionDepth: 0
    functionLinenumber: 8156
    functionLinenumberEnd: 8159
    functionName: operator>=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const iter_impl& other) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8167,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8166
        line_start: 8166
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8188
      start: 8165
    functionDepth: 3
    functionLinenumber: 8165
    functionLinenumberEnd: 8188
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8197
      start: 8194
    functionDepth: 0
    functionLinenumber: 8194
    functionLinenumberEnd: 8197
    functionName: '& operator-=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator-=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8208
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8208
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - ' it'
    argTypes:
    - difference_type
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8219
      start: 8214
    functionDepth: 0
    functionLinenumber: 8214
    functionLinenumberEnd: 8219
    functionName: operator+(difference_type i, const iter_impl& it)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i, const iter_impl& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8230
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8230
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator-(difference_type i) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8238,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8251
      start: 8236
    functionDepth: 3
    functionLinenumber: 8236
    functionLinenumberEnd: 8251
    functionName: operator-(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const iter_impl& other) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8259,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:8267,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: primitive_iterator::get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8258
        line_start: 8258
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8282
      start: 8257
    functionDepth: 3
    functionLinenumber: 8257
    functionLinenumberEnd: 8282
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - JSON_LIKELY
    - primitive_iterator::get_value
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    - std::next
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8290,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: nlohmann::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8289
        line_start: 8289
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8298
      start: 8288
    functionDepth: 3
    functionLinenumber: 8288
    functionLinenumberEnd: 8298
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - nlohmann::is_object
    - JSON_LIKELY
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: typename object_t::key_type
    signature: typename object_t::key_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8307
      start: 8304
    functionDepth: 0
    functionLinenumber: 8304
    functionLinenumberEnd: 8307
    functionName: nlohmann::detail::iter_impl::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7781
      start: 7781
    functionDepth: 0
    functionLinenumber: 7781
    functionLinenumberEnd: 7781
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7791,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7797,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7803,1
    - Dst: primitive_iterator_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - pointer
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7790
        line_start: 7790
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7813
      start: 7789
    functionDepth: 1
    functionLinenumber: 7789
    functionLinenumberEnd: 7813
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator_t
    - assert
    - APFSJObjTree::iterator::iterator
    linkageType: ''
    returnType: void
    signature: void iter_impl(pointer object) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7829
    functionDepth: 0
    functionLinenumber: 7829
    functionLinenumberEnd: 7830
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7838
    functionDepth: 0
    functionLinenumber: 7838
    functionLinenumberEnd: 7843
    functionName: '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7852,1
    - Dst: m_value::object::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7858,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7864,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7871,1
    - Dst: primitive_iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7851
        line_start: 7851
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7881
      start: 7850
    functionDepth: 1
    functionLinenumber: 7850
    functionLinenumberEnd: 7881
    functionName: nlohmann::detail::iter_impl::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - assert
    - m_value::object::begin
    - primitive_iterator::set_end
    - primitive_iterator::set_begin
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7889,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7895,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7901,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7888
        line_start: 7888
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7911
      start: 7887
    functionDepth: 1
    functionLinenumber: 7887
    functionLinenumberEnd: 7911
    functionName: nlohmann::detail::iter_impl::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - m_value::array::end
    - assert
    - primitive_iterator::set_end
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7920,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7919
        line_start: 7919
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7925
        line_start: 7925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7931
        line_start: 7931
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7949
      start: 7918
    functionDepth: 3
    functionLinenumber: 7918
    functionLinenumberEnd: 7949
    functionName: operator*() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7957,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7956
        line_start: 7956
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7968
        line_start: 7968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7962
        line_start: 7962
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7983
      start: 7955
    functionDepth: 3
    functionLinenumber: 7955
    functionLinenumberEnd: 7983
    functionName: operator->() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7994
      start: 7989
    functionDepth: 0
    functionLinenumber: 7989
    functionLinenumberEnd: 7994
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator++(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8002,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8008,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8001
        line_start: 8001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8026
      start: 8000
    functionDepth: 0
    functionLinenumber: 8000
    functionLinenumberEnd: 8026
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8037
      start: 8032
    functionDepth: 0
    functionLinenumber: 8032
    functionLinenumberEnd: 8037
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator--(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8045,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8051,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8044
        line_start: 8044
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8069
      start: 8043
    functionDepth: 0
    functionLinenumber: 8043
    functionLinenumberEnd: 8069
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator--()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8078,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8082
        line_start: 8082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8096
      start: 8075
    functionDepth: 3
    functionLinenumber: 8075
    functionLinenumberEnd: 8096
    functionName: operator==(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8105
    functionName: operator!=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iter_impl& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8114,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8119,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8118
        line_start: 8118
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8132
      start: 8111
    functionDepth: 3
    functionLinenumber: 8111
    functionLinenumberEnd: 8132
    functionName: operator<(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator<(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other
      Src: /src/sleuthkit/tools/logicalimager/json.h:8140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8141
      start: 8138
    functionDepth: 0
    functionLinenumber: 8138
    functionLinenumberEnd: 8141
    functionName: operator<=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - other
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8150
      start: 8147
    functionDepth: 0
    functionLinenumber: 8147
    functionLinenumberEnd: 8150
    functionName: operator>(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8159
      start: 8156
    functionDepth: 0
    functionLinenumber: 8156
    functionLinenumberEnd: 8159
    functionName: operator>=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const iter_impl& other) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8167,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8166
        line_start: 8166
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8188
      start: 8165
    functionDepth: 3
    functionLinenumber: 8165
    functionLinenumberEnd: 8188
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8197
      start: 8194
    functionDepth: 0
    functionLinenumber: 8194
    functionLinenumberEnd: 8197
    functionName: '& operator-=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator-=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8208
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8208
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - ' it'
    argTypes:
    - difference_type
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8219
      start: 8214
    functionDepth: 0
    functionLinenumber: 8214
    functionLinenumberEnd: 8219
    functionName: operator+(difference_type i, const iter_impl& it)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i, const iter_impl& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8230
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8230
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator-(difference_type i) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8238,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8251
      start: 8236
    functionDepth: 3
    functionLinenumber: 8236
    functionLinenumberEnd: 8251
    functionName: operator-(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const iter_impl& other) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8259,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:8267,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: primitive_iterator::get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8258
        line_start: 8258
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8282
      start: 8257
    functionDepth: 3
    functionLinenumber: 8257
    functionLinenumberEnd: 8282
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - JSON_LIKELY
    - primitive_iterator::get_value
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    - std::next
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8290,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8289
        line_start: 8289
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8298
      start: 8288
    functionDepth: 3
    functionLinenumber: 8288
    functionLinenumberEnd: 8298
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - is_object
    - JSON_LIKELY
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: typename object_t::key_type
    signature: typename object_t::key_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8307
      start: 8304
    functionDepth: 0
    functionLinenumber: 8304
    functionLinenumberEnd: 8307
    functionName: nlohmann::detail::iter_impl::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7781
      start: 7781
    functionDepth: 0
    functionLinenumber: 7781
    functionLinenumberEnd: 7781
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7791,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7797,1
    - Dst: APFSJObjTree::iterator::iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:7803,1
    - Dst: primitive_iterator_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:7809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - pointer
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7790
        line_start: 7790
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7813
      start: 7789
    functionDepth: 1
    functionLinenumber: 7789
    functionLinenumberEnd: 7813
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator_t
    - assert
    - APFSJObjTree::iterator::iterator
    linkageType: ''
    returnType: void
    signature: void iter_impl(pointer object) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7829
    functionDepth: 0
    functionLinenumber: 7829
    functionLinenumberEnd: 7830
    functionName: nlohmann::detail::iter_impl::iter_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7838
    functionDepth: 0
    functionLinenumber: 7838
    functionLinenumberEnd: 7843
    functionName: '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7852,1
    - Dst: m_value::object::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7858,1
    - Dst: m_value::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7864,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7871,1
    - Dst: primitive_iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7851
        line_start: 7851
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7881
      start: 7850
    functionDepth: 1
    functionLinenumber: 7850
    functionLinenumberEnd: 7881
    functionName: nlohmann::detail::iter_impl::set_begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::array::begin
    - assert
    - m_value::object::begin
    - primitive_iterator::set_end
    - primitive_iterator::set_begin
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7889,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7895,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7901,1
    - Dst: primitive_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7888
        line_start: 7888
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7911
      start: 7887
    functionDepth: 1
    functionLinenumber: 7887
    functionLinenumberEnd: 7911
    functionName: nlohmann::detail::iter_impl::set_end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - m_value::array::end
    - assert
    - primitive_iterator::set_end
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7920,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7926,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7932,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7937,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7941,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7919
        line_start: 7919
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7925
        line_start: 7925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7931
        line_start: 7931
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7949
      start: 7918
    functionDepth: 3
    functionLinenumber: 7918
    functionLinenumberEnd: 7949
    functionName: operator*() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: reference
    signature: reference operator*() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7957,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7963,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: m_value::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:7969,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:7975,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:7980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 7956
        line_start: 7956
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.array_iterator != m_object->m_value.array->end())
      pos:
        line_end: 7968
        line_start: 7968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_it.object_iterator != m_object->m_value.object->end())
      pos:
        line_end: 7962
        line_start: 7962
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 7983
      start: 7955
    functionDepth: 3
    functionLinenumber: 7955
    functionLinenumberEnd: 7983
    functionName: operator->() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - primitive_iterator::is_begin
    - m_value::object::end
    - assert
    - JSON_LIKELY
    - m_value::array::end
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7994
      start: 7989
    functionDepth: 0
    functionLinenumber: 7989
    functionLinenumberEnd: 7994
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator++(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8002,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8008,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8001
        line_start: 8001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8026
      start: 8000
    functionDepth: 0
    functionLinenumber: 8000
    functionLinenumberEnd: 8026
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8037
      start: 8032
    functionDepth: 0
    functionLinenumber: 8032
    functionLinenumberEnd: 8037
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator--(int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8045,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8051,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8044
        line_start: 8044
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8069
      start: 8043
    functionDepth: 0
    functionLinenumber: 8043
    functionLinenumberEnd: 8069
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - assert
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator--()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8078,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8080,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8082
        line_start: 8082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8096
      start: 8075
    functionDepth: 3
    functionLinenumber: 8075
    functionLinenumberEnd: 8096
    functionName: operator==(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8105
    functionName: operator!=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iter_impl& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8114,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8116,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8119,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8118
        line_start: 8118
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8132
      start: 8111
    functionDepth: 3
    functionLinenumber: 8111
    functionLinenumberEnd: 8132
    functionName: operator<(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: bool operator<(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other
      Src: /src/sleuthkit/tools/logicalimager/json.h:8140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8141
      start: 8138
    functionDepth: 0
    functionLinenumber: 8138
    functionLinenumberEnd: 8141
    functionName: operator<=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - other
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8150
      start: 8147
    functionDepth: 0
    functionLinenumber: 8147
    functionLinenumberEnd: 8150
    functionName: operator>(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8159
      start: 8156
    functionDepth: 0
    functionLinenumber: 8156
    functionLinenumberEnd: 8159
    functionName: operator>=(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const iter_impl& other) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8167,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8172,1
    - Dst: std::advance
      Src: /src/sleuthkit/tools/logicalimager/json.h:8176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8166
        line_start: 8166
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8188
      start: 8165
    functionDepth: 3
    functionLinenumber: 8165
    functionLinenumberEnd: 8188
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::advance
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8197
      start: 8194
    functionDepth: 0
    functionLinenumber: 8194
    functionLinenumberEnd: 8197
    functionName: '& operator-=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator-=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8208
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8208
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - ' it'
    argTypes:
    - difference_type
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8219
      start: 8214
    functionDepth: 0
    functionLinenumber: 8214
    functionLinenumberEnd: 8219
    functionName: operator+(difference_type i, const iter_impl& it)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i, const iter_impl& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8230
      start: 8225
    functionDepth: 0
    functionLinenumber: 8225
    functionLinenumberEnd: 8230
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator-(difference_type i) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8238,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8237
        line_start: 8237
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8251
      start: 8236
    functionDepth: 3
    functionLinenumber: 8236
    functionLinenumberEnd: 8251
    functionName: operator-(const iter_impl& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::invalid_iterator::create
    - assert
    - JSON_THROW
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const iter_impl& other) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8259,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8264,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:8267,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8270,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: primitive_iterator::get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:8274,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8258
        line_start: 8258
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8282
      start: 8257
    functionDepth: 3
    functionLinenumber: 8257
    functionLinenumberEnd: 8282
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - JSON_LIKELY
    - primitive_iterator::get_value
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    - std::next
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8290,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:8292,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_object != nullptr)
      pos:
        line_end: 8289
        line_start: 8289
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 8298
      start: 8288
    functionDepth: 3
    functionLinenumber: 8288
    functionLinenumberEnd: 8298
    functionName: '& key() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - is_object
    - JSON_LIKELY
    - JSON_THROW
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: typename object_t::key_type
    signature: typename object_t::key_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8307
      start: 8304
    functionDepth: 0
    functionLinenumber: 8304
    functionLinenumberEnd: 8307
    functionName: nlohmann::detail::iter_impl::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - typename base_iterator::iterator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8365
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8365
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const typename base_iterator::iterator_type&
      it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - base_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8368
    functionDepth: 0
    functionLinenumber: 8368
    functionLinenumberEnd: 8368
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const base_iterator& it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8374
      start: 8371
    functionDepth: 0
    functionLinenumber: 8371
    functionLinenumberEnd: 8374
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8380
      start: 8377
    functionDepth: 0
    functionLinenumber: 8377
    functionLinenumberEnd: 8380
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator++
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8386
      start: 8383
    functionDepth: 0
    functionLinenumber: 8383
    functionLinenumberEnd: 8386
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator--(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8392
      start: 8389
    functionDepth: 0
    functionLinenumber: 8389
    functionLinenumberEnd: 8392
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    - Dst: base_iterator::operator+=
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8395
    functionDepth: 0
    functionLinenumber: 8395
    functionLinenumberEnd: 8398
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator+=
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    - Dst: base_iterator::operator+
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8401
    functionDepth: 0
    functionLinenumber: 8401
    functionLinenumberEnd: 8404
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator+
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    - Dst: base_iterator::operator-
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8407
    functionDepth: 0
    functionLinenumber: 8407
    functionLinenumberEnd: 8410
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator-
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator-(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - json_reverse_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8416
      start: 8413
    functionDepth: 0
    functionLinenumber: 8413
    functionLinenumberEnd: 8416
    functionName: operator-(const json_reverse_iterator& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const json_reverse_iterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 0
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<Base>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8425,1
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8427,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:8428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8429
      start: 8425
    functionDepth: 0
    functionLinenumber: 8425
    functionLinenumberEnd: 8429
    functionName: nlohmann::detail::json_reverse_iterator::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<Base>
    - auto::key
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: auto
    signature: auto key() const -> decltype(std::declval<Base>().key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8434,1
    - Dst: it
      Src: /src/sleuthkit/tools/logicalimager/json.h:8435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8436
      start: 8432
    functionDepth: 0
    functionLinenumber: 8432
    functionLinenumberEnd: 8436
    functionName: nlohmann::detail::json_reverse_iterator::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - it
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - typename base_iterator::iterator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8365
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8365
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const typename base_iterator::iterator_type&
      it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - base_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8368
    functionDepth: 0
    functionLinenumber: 8368
    functionLinenumberEnd: 8368
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const base_iterator& it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8374
      start: 8371
    functionDepth: 0
    functionLinenumber: 8371
    functionLinenumberEnd: 8374
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8380
      start: 8377
    functionDepth: 0
    functionLinenumber: 8377
    functionLinenumberEnd: 8380
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator++
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8386
      start: 8383
    functionDepth: 0
    functionLinenumber: 8383
    functionLinenumberEnd: 8386
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator--(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8392
      start: 8389
    functionDepth: 0
    functionLinenumber: 8389
    functionLinenumberEnd: 8392
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    - Dst: base_iterator::operator+=
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8395
    functionDepth: 0
    functionLinenumber: 8395
    functionLinenumberEnd: 8398
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator+=
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    - Dst: base_iterator::operator+
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8401
    functionDepth: 0
    functionLinenumber: 8401
    functionLinenumberEnd: 8404
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator+
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    - Dst: base_iterator::operator-
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8407
    functionDepth: 0
    functionLinenumber: 8407
    functionLinenumberEnd: 8410
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator-
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator-(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - json_reverse_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8416
      start: 8413
    functionDepth: 0
    functionLinenumber: 8413
    functionLinenumberEnd: 8416
    functionName: operator-(const json_reverse_iterator& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const json_reverse_iterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 0
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<Base>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8425,1
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8427,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:8428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8429
      start: 8425
    functionDepth: 0
    functionLinenumber: 8425
    functionLinenumberEnd: 8429
    functionName: nlohmann::detail::json_reverse_iterator::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<Base>
    - auto::key
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: auto
    signature: auto key() const -> decltype(std::declval<Base>().key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8434,1
    - Dst: it
      Src: /src/sleuthkit/tools/logicalimager/json.h:8435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8436
      start: 8432
    functionDepth: 0
    functionLinenumber: 8432
    functionLinenumberEnd: 8436
    functionName: nlohmann::detail::json_reverse_iterator::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - it
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - typename base_iterator::iterator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8365
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8365
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const typename base_iterator::iterator_type&
      it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - base_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8368
    functionDepth: 0
    functionLinenumber: 8368
    functionLinenumberEnd: 8368
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const base_iterator& it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8374
      start: 8371
    functionDepth: 0
    functionLinenumber: 8371
    functionLinenumberEnd: 8374
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8380
      start: 8377
    functionDepth: 0
    functionLinenumber: 8377
    functionLinenumberEnd: 8380
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator++
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8386
      start: 8383
    functionDepth: 0
    functionLinenumber: 8383
    functionLinenumberEnd: 8386
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator--(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8392
      start: 8389
    functionDepth: 0
    functionLinenumber: 8389
    functionLinenumberEnd: 8392
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    - Dst: base_iterator::operator+=
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8395
    functionDepth: 0
    functionLinenumber: 8395
    functionLinenumberEnd: 8398
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator+=
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    - Dst: base_iterator::operator+
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8401
    functionDepth: 0
    functionLinenumber: 8401
    functionLinenumberEnd: 8404
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator+
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    - Dst: base_iterator::operator-
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8407
    functionDepth: 0
    functionLinenumber: 8407
    functionLinenumberEnd: 8410
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator-
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator-(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - json_reverse_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8416
      start: 8413
    functionDepth: 0
    functionLinenumber: 8413
    functionLinenumberEnd: 8416
    functionName: operator-(const json_reverse_iterator& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const json_reverse_iterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 0
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<Base>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8425,1
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8427,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:8428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8429
      start: 8425
    functionDepth: 0
    functionLinenumber: 8425
    functionLinenumberEnd: 8429
    functionName: nlohmann::detail::json_reverse_iterator::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<Base>
    - auto::key
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: auto
    signature: auto key() const -> decltype(std::declval<Base>().key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8434,1
    - Dst: it
      Src: /src/sleuthkit/tools/logicalimager/json.h:8435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8436
      start: 8432
    functionDepth: 0
    functionLinenumber: 8432
    functionLinenumberEnd: 8436
    functionName: nlohmann::detail::json_reverse_iterator::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - it
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - typename base_iterator::iterator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8365
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8365
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const typename base_iterator::iterator_type&
      it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - base_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8368
    functionDepth: 0
    functionLinenumber: 8368
    functionLinenumberEnd: 8368
    functionName: nlohmann::detail::json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const base_iterator& it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8374
      start: 8371
    functionDepth: 0
    functionLinenumber: 8371
    functionLinenumberEnd: 8374
    functionName: operator++(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    - Dst: base_iterator::operator++
      Src: /src/sleuthkit/tools/logicalimager/json.h:8379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8380
      start: 8377
    functionDepth: 0
    functionLinenumber: 8377
    functionLinenumberEnd: 8380
    functionName: '& operator++()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator++
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8386
      start: 8383
    functionDepth: 0
    functionLinenumber: 8383
    functionLinenumberEnd: 8386
    functionName: operator--(int)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator--(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    - Dst: base_iterator::operator--
      Src: /src/sleuthkit/tools/logicalimager/json.h:8391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8392
      start: 8389
    functionDepth: 0
    functionLinenumber: 8389
    functionLinenumberEnd: 8392
    functionName: '& operator--()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    - Dst: base_iterator::operator+=
      Src: /src/sleuthkit/tools/logicalimager/json.h:8397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8395
    functionDepth: 0
    functionLinenumber: 8395
    functionLinenumberEnd: 8398
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator::operator+=
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    - Dst: base_iterator::operator+
      Src: /src/sleuthkit/tools/logicalimager/json.h:8403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8401
    functionDepth: 0
    functionLinenumber: 8401
    functionLinenumberEnd: 8404
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator+
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    - Dst: base_iterator::operator-
      Src: /src/sleuthkit/tools/logicalimager/json.h:8409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8407
    functionDepth: 0
    functionLinenumber: 8407
    functionLinenumberEnd: 8410
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator-
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator-(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    - Dst: base_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:8415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - json_reverse_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8416
      start: 8413
    functionDepth: 0
    functionLinenumber: 8413
    functionLinenumberEnd: 8416
    functionName: operator-(const json_reverse_iterator& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - base_iterator
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const json_reverse_iterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 0
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<Base>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8425,1
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8427,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:8428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8429
      start: 8425
    functionDepth: 0
    functionLinenumber: 8425
    functionLinenumberEnd: 8429
    functionName: nlohmann::detail::json_reverse_iterator::key
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<Base>
    - auto::key
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: auto
    signature: auto key() const -> decltype(std::declval<Base>().key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::json_reverse_iterator::base
      Src: /src/sleuthkit/tools/logicalimager/json.h:8434,1
    - Dst: it
      Src: /src/sleuthkit/tools/logicalimager/json.h:8435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8436
      start: 8432
    functionDepth: 0
    functionLinenumber: 8432
    functionLinenumberEnd: 8436
    functionName: nlohmann::detail::json_reverse_iterator::value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - it
    - nlohmann::detail::json_reverse_iterator::base
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/sleuthkit/tools/logicalimager/json.h:8492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8493
      start: 8491
    functionDepth: 1
    functionLinenumber: 8491
    functionLinenumberEnd: 8493
    functionName: nlohmann::json_pointer::json_pointer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - split
    linkageType: ''
    returnType: void
    signature: void json_pointer(const std::string& s = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: escape
      Src: /src/sleuthkit/tools/logicalimager/json.h:8515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8517
      start: 8509
    functionDepth: 1
    functionLinenumber: 8509
    functionLinenumberEnd: 8517
    functionName: nlohmann::json_pointer::to_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::accumulate
    - begin
    - end
    - escape
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:8522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8523
      start: 8520
    functionDepth: 1
    functionLinenumber: 8520
    functionLinenumberEnd: 8523
    functionName: operator std::string() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void operator std::string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8543,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8543,1
    - Dst: reference_tokens::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:8544,1
    - Dst: reference_tokens::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8547
      start: 8541
    functionDepth: 1
    functionLinenumber: 8541
    functionLinenumberEnd: 8547
    functionName: '& operator/=(const json_pointer& ptr)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reference_tokens::end
    - end
    - insert
    - reference_tokens::begin
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8567,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - token
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8569
      start: 8565
    functionDepth: 1
    functionLinenumber: 8565
    functionLinenumberEnd: 8569
    functionName: '& operator/=(std::string token)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(std::string token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:8589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8590
      start: 8587
    functionDepth: 1
    functionLinenumber: 8587
    functionLinenumberEnd: 8590
    functionName: '& operator/=(std::size_t array_index)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(std::size_t array_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8611
      start: 8607
    functionDepth: 0
    functionLinenumber: 8607
    functionLinenumberEnd: 8611
    functionName: "operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: "json_pointer operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8630,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - token
    argTypes:
    - json_pointer
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8631
      start: 8628
    functionDepth: 0
    functionLinenumber: 8628
    functionLinenumberEnd: 8631
    functionName: operator/(const json_pointer& ptr, std::string token)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer operator/(const json_pointer& ptr, std::string token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - array_index
    argTypes:
    - json_pointer
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: operator/(const json_pointer& ptr, std::size_t array_index)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer operator/(const json_pointer& ptr, std::size_t array_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8668,1
    - Dst: json_pointer::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8666
    functionDepth: 1
    functionLinenumber: 8666
    functionLinenumberEnd: 8676
    functionName: nlohmann::json_pointer::parent_pointer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::json_pointer::empty
    - json_pointer::pop_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer parent_pointer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8693,1
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8693,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8695,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8695,1
    - Dst: nlohmann::json_pointer::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8699
      start: 8691
    functionDepth: 3
    functionLinenumber: 8691
    functionLinenumberEnd: 8699
    functionName: nlohmann::json_pointer::pop_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::json_pointer::empty
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::json_pointer::pop_back
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8717,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8717,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8719,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8719,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8715
    functionDepth: 3
    functionLinenumber: 8715
    functionLinenumberEnd: 8723
    functionName: '& back()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - back
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::string
    signature: std::string & back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8740
      start: 8737
    functionDepth: 1
    functionLinenumber: 8737
    functionLinenumberEnd: 8740
    functionName: nlohmann::json_pointer::push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::json_pointer::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(const std::string& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8745,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8746
      start: 8743
    functionDepth: 1
    functionLinenumber: 8743
    functionLinenumberEnd: 8746
    functionName: nlohmann::json_pointer::push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::move
    - nlohmann::json_pointer::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(std::string&& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8765
      start: 8762
    functionDepth: 1
    functionLinenumber: 8762
    functionLinenumberEnd: 8765
    functionName: nlohmann::json_pointer::empty
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::json_pointer::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoi
      Src: /src/sleuthkit/tools/logicalimager/json.h:8778,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8781,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8781,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8783,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8787
      start: 8775
    functionDepth: 3
    functionLinenumber: 8775
    functionLinenumberEnd: 8787
    functionName: nlohmann::json_pointer::array_index
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - std::stoi
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: int
    signature: int array_index(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8791,1
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8791,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8793,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8799
      start: 8789
    functionDepth: 3
    functionLinenumber: 8789
    functionLinenumberEnd: 8799
    functionName: nlohmann::json_pointer::top
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::json_pointer::empty
    - JSON_UNLIKELY
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer top() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8825,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8830,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8838,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: JSON_CATCH
      Src: /src/sleuthkit/tools/logicalimager/json.h:8849,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8851,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8851,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8863,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8863,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8864
      start: 8809
    functionDepth: 3
    functionLinenumber: 8809
    functionLinenumberEnd: 8864
    functionName: '& get_and_create(BasicJsonType& j) const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - array_index
    - result
    - JSON_CATCH
    - nlohmann::detail::type_error::create
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_and_create(BasicJsonType& j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/sleuthkit/tools/logicalimager/json.h:8492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8493
      start: 8491
    functionDepth: 1
    functionLinenumber: 8491
    functionLinenumberEnd: 8493
    functionName: nlohmann::json_pointer::json_pointer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - split
    linkageType: ''
    returnType: void
    signature: void json_pointer(const std::string& s = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8511,1
    - Dst: escape
      Src: /src/sleuthkit/tools/logicalimager/json.h:8515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8517
      start: 8509
    functionDepth: 1
    functionLinenumber: 8509
    functionLinenumberEnd: 8517
    functionName: nlohmann::json_pointer::to_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::accumulate
    - begin
    - end
    - escape
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:8522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8523
      start: 8520
    functionDepth: 1
    functionLinenumber: 8520
    functionLinenumberEnd: 8523
    functionName: operator std::string() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void operator std::string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:8543,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8543,1
    - Dst: reference_tokens::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:8544,1
    - Dst: reference_tokens::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8547
      start: 8541
    functionDepth: 1
    functionLinenumber: 8541
    functionLinenumberEnd: 8547
    functionName: '& operator/=(const json_pointer& ptr)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - reference_tokens::end
    - end
    - insert
    - reference_tokens::begin
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8567,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - token
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8569
      start: 8565
    functionDepth: 1
    functionLinenumber: 8565
    functionLinenumberEnd: 8569
    functionName: '& operator/=(std::string token)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(std::string token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:8589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8590
      start: 8587
    functionDepth: 1
    functionLinenumber: 8587
    functionLinenumberEnd: 8590
    functionName: '& operator/=(std::size_t array_index)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(std::size_t array_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8611
      start: 8607
    functionDepth: 0
    functionLinenumber: 8607
    functionLinenumberEnd: 8611
    functionName: "operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: "json_pointer operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8630,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - token
    argTypes:
    - json_pointer
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8631
      start: 8628
    functionDepth: 0
    functionLinenumber: 8628
    functionLinenumberEnd: 8631
    functionName: operator/(const json_pointer& ptr, std::string token)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer operator/(const json_pointer& ptr, std::string token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - array_index
    argTypes:
    - json_pointer
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: operator/(const json_pointer& ptr, std::size_t array_index)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer operator/(const json_pointer& ptr, std::size_t array_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8668,1
    - Dst: json_pointer::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8666
    functionDepth: 2
    functionLinenumber: 8666
    functionLinenumberEnd: 8676
    functionName: nlohmann::json_pointer::parent_pointer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::json_pointer::empty
    - json_pointer::pop_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer parent_pointer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8693,1
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8693,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8695,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8695,1
    - Dst: nlohmann::json_pointer::pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8699
      start: 8691
    functionDepth: 3
    functionLinenumber: 8691
    functionLinenumberEnd: 8699
    functionName: nlohmann::json_pointer::pop_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::json_pointer::empty
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::json_pointer::pop_back
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8717,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8717,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8719,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8719,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8715
    functionDepth: 3
    functionLinenumber: 8715
    functionLinenumberEnd: 8723
    functionName: '& back()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - back
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::string
    signature: std::string & back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8740
      start: 8737
    functionDepth: 1
    functionLinenumber: 8737
    functionLinenumberEnd: 8740
    functionName: nlohmann::json_pointer::push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::json_pointer::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(const std::string& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:8745,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:8745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8746
      start: 8743
    functionDepth: 1
    functionLinenumber: 8743
    functionLinenumberEnd: 8746
    functionName: nlohmann::json_pointer::push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::move
    - nlohmann::json_pointer::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(std::string&& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8765
      start: 8762
    functionDepth: 1
    functionLinenumber: 8762
    functionLinenumberEnd: 8765
    functionName: nlohmann::json_pointer::empty
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::json_pointer::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoi
      Src: /src/sleuthkit/tools/logicalimager/json.h:8778,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8781,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8781,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8783,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8787
      start: 8775
    functionDepth: 3
    functionLinenumber: 8775
    functionLinenumberEnd: 8787
    functionName: nlohmann::json_pointer::array_index
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - std::stoi
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: int
    signature: int array_index(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8791,1
    - Dst: nlohmann::json_pointer::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:8791,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8793,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8799
      start: 8789
    functionDepth: 3
    functionLinenumber: 8789
    functionLinenumberEnd: 8799
    functionName: nlohmann::json_pointer::top
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::json_pointer::empty
    - JSON_UNLIKELY
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer top() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8825,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8830,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8838,1
    - Dst: result
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:8847,1
    - Dst: JSON_CATCH
      Src: /src/sleuthkit/tools/logicalimager/json.h:8849,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8851,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8851,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8863,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8863,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8864
      start: 8809
    functionDepth: 3
    functionLinenumber: 8809
    functionLinenumberEnd: 8864
    functionName: '& get_and_create(BasicJsonType& j) const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - array_index
    - result
    - JSON_CATCH
    - nlohmann::detail::type_error::create
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_and_create(BasicJsonType& j) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:8899,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:8899,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:8899,1
    - Dst: ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:8916,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8923,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8923,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8925,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8925,1
    - Dst: ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:8933,1
    - Dst: BasicJsonType*::m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8933,1
    - Dst: ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:8940,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:8941,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:8941,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8945,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8945,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8952,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8952,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8954
      start: 8889
    functionDepth: 3
    functionLinenumber: 8889
    functionLinenumberEnd: 8954
    functionName: get_unchecked
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - size
    - nlohmann::detail::out_of_range::create
    - begin
    - std::all_of
    - array_index
    - end
    - ptr
    - JSON_THROW
    - nlohmann::detail::parse_error::create
    - JSON_UNLIKELY
    - BasicJsonType*::m_value::array::size
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_unchecked(BasicJsonType* ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8945,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8946
      start: 8943
    functionDepth: 3
    functionLinenumber: 8943
    functionLinenumberEnd: 8946
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH(std::invalid_argument&)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:8975,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8981,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8984,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8984,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:8985,1
    - Dst: BasicJsonType*::m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8985,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:8990,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:8990,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:8992,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:8992,1
    - Dst: BasicJsonType*::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:9000,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9000,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:9000,1
    - Dst: JSON_CATCH
      Src: /src/sleuthkit/tools/logicalimager/json.h:9002,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9004,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9004,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9010,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9010,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9011
      start: 8965
    functionDepth: 3
    functionLinenumber: 8965
    functionLinenumberEnd: 9011
    functionName: get_checked
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - size
    - nlohmann::detail::out_of_range::create
    - BasicJsonType*::at
    - array_index
    - to_string
    - JSON_CATCH
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    - JSON_UNLIKELY
    - BasicJsonType*::m_value::array::size
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_checked(BasicJsonType* ptr) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:9040,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9046,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9049,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9049,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9050,1
    - Dst: BasicJsonType*::m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9050,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9055,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9055,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9057,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9057,1
    - Dst: ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:9065,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9066,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:9066,1
    - Dst: JSON_CATCH
      Src: /src/sleuthkit/tools/logicalimager/json.h:9068,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9070,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9070,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9076,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9076,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9077
      start: 9030
    functionDepth: 3
    functionLinenumber: 9030
    functionLinenumberEnd: 9077
    functionName: get_unchecked
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - size
    - nlohmann::detail::out_of_range::create
    - array_index
    - to_string
    - JSON_CATCH
    - nlohmann::detail::parse_error::create
    - ptr
    - JSON_THROW
    - JSON_UNLIKELY
    - BasicJsonType*::m_value::array::size
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_unchecked(const BasicJsonType* ptr) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:9099,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9105,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9108,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9108,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9109,1
    - Dst: BasicJsonType*::m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9109,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9114,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9114,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9116,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9116,1
    - Dst: BasicJsonType*::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:9124,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9124,1
    - Dst: array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:9124,1
    - Dst: JSON_CATCH
      Src: /src/sleuthkit/tools/logicalimager/json.h:9126,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9128,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9128,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9134,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9135
      start: 9089
    functionDepth: 3
    functionLinenumber: 9089
    functionLinenumberEnd: 9135
    functionName: get_checked
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    - size
    - nlohmann::detail::out_of_range::create
    - BasicJsonType*::at
    - array_index
    - to_string
    - JSON_CATCH
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    - JSON_UNLIKELY
    - BasicJsonType*::m_value::array::size
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_checked(const BasicJsonType* ptr) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:9155,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9161,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9163,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9163,1
    - Dst: find_first_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:9173,1
    - Dst: find_first_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:9182,1
    - Dst: substr
      Src: /src/sleuthkit/tools/logicalimager/json.h:9186,1
    - Dst: auto::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:9189,1
    - Dst: auto::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:9191,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9193,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9196,1
    - Dst: auto::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9196,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9200,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9200,1
    - Dst: unescape
      Src: /src/sleuthkit/tools/logicalimager/json.h:9205,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' reference_string'
    argTypes:
    - std::string
    assertStmts:
    - condition: (reference_token[pos] == '~')
      pos:
        line_end: 9192
        line_start: 9192
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9210
      start: 9150
    functionDepth: 3
    functionLinenumber: 9150
    functionLinenumberEnd: 9210
    functionName: split
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - substr
    - empty
    - find_first_of
    - assert
    - unescape
    - auto::find_first_of
    - auto::size
    - nlohmann::detail::parse_error::create
    - JSON_THROW
    - JSON_UNLIKELY
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split(const std::string& reference_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9228,1
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:9228,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:9229,1
    - Dst: replace
      Src: /src/sleuthkit/tools/logicalimager/json.h:9231,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9231,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:9232,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' s'
    - ' f'
    - ' t'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts:
    - condition: (not f.empty())
      pos:
        line_end: 9227
        line_start: 9227
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9234
      start: 9225
    functionDepth: 1
    functionLinenumber: 9225
    functionLinenumberEnd: 9234
    functionName: replace_substring
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - empty
    - size
    - assert
    - find
    - replace
    linkageType: ''
    returnType: void
    signature: "void replace_substring(std::string& s, const std::string& f,\n                                  const
      std::string& t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_substring
      Src: /src/sleuthkit/tools/logicalimager/json.h:9239,1
    - Dst: replace_substring
      Src: /src/sleuthkit/tools/logicalimager/json.h:9240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9242
      start: 9237
    functionDepth: 2
    functionLinenumber: 9237
    functionLinenumberEnd: 9242
    functionName: escape
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - replace_substring
    linkageType: ''
    returnType: std::string
    signature: std::string escape(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_substring
      Src: /src/sleuthkit/tools/logicalimager/json.h:9247,1
    - Dst: replace_substring
      Src: /src/sleuthkit/tools/logicalimager/json.h:9248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9249
      start: 9245
    functionDepth: 2
    functionLinenumber: 9245
    functionLinenumberEnd: 9249
    functionName: unescape
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - replace_substring
    linkageType: ''
    returnType: void
    signature: void unescape(std::string& s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:9266,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9274,1
    - Dst: flatten
      Src: /src/sleuthkit/tools/logicalimager/json.h:9276,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9276,1
    - Dst: m_value::array
      Src: /src/sleuthkit/tools/logicalimager/json.h:9277,1
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:9285,1
    - Dst: flatten
      Src: /src/sleuthkit/tools/logicalimager/json.h:9295,1
    - Dst: escape
      Src: /src/sleuthkit/tools/logicalimager/json.h:9295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ' reference_string'
    - ' value'
    - ' result'
    argTypes:
    - std::string
    - BasicJsonType
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9308
      start: 9258
    functionDepth: 3
    functionLinenumber: 9258
    functionLinenumberEnd: 9308
    functionName: flatten
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - m_value::array::empty
    - to_string
    - m_value::array
    - flatten
    - m_value::object::empty
    - m_value::array::size
    - escape
    linkageType: ''
    returnType: void
    signature: "void flatten(const std::string& reference_string,\n                        const
      BasicJsonType& value,\n                        BasicJsonType& result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9323,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:9323,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9325,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9325,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:9333,1
    - Dst: second::is_primitive
      Src: /src/sleuthkit/tools/logicalimager/json.h:9333,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9335,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9335,1
    - Dst: json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:9342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9346
      start: 9320
    functionDepth: 3
    functionLinenumber: 9320
    functionLinenumberEnd: 9346
    functionName: unflatten
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - second::is_primitive
    - is_object
    - nlohmann::detail::type_error::create
    - json_pointer
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType unflatten(const BasicJsonType& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9363
      start: 9359
    functionDepth: 0
    functionLinenumber: 9359
    functionLinenumberEnd: 9363
    functionName: "operator==(json_pointer const& lhs,\n                           json_pointer
      const& rhs) noexcept"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: "friend operator==(json_pointer const& lhs,\n                           json_pointer
      const& rhs) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9380
      start: 9376
    functionDepth: 0
    functionLinenumber: 9376
    functionLinenumberEnd: 9380
    functionName: "operator!=(json_pointer const& lhs,\n                           json_pointer
      const& rhs) noexcept"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: "friend operator!=(json_pointer const& lhs,\n                           json_pointer
      const& rhs) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9408
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9408
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_ref(value_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<value_type*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9412
      start: 9410
    functionDepth: 0
    functionLinenumber: 9410
    functionLinenumberEnd: 9412
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - const_cast<value_type*>
    linkageType: ''
    returnType: void
    signature: void json_ref(const value_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<json_ref>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9416
      start: 9414
    functionDepth: 0
    functionLinenumber: 9414
    functionLinenumberEnd: 9416
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(std::initializer_list<json_ref> init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9421
    functionDepth: 0
    functionLinenumber: 9421
    functionLinenumberEnd: 9423
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void json_ref(Args && ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9426
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9427
      start: 9427
    functionDepth: 0
    functionLinenumber: 9427
    functionLinenumberEnd: 9427
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9428
    functionDepth: 0
    functionLinenumber: 9428
    functionLinenumberEnd: 9428
    functionName: '& operator=(const json_ref&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9429
      start: 9429
    functionDepth: 0
    functionLinenumber: 9429
    functionLinenumberEnd: 9429
    functionName: '& operator=(json_ref&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9430
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9430
    functionName: ~json_ref()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_ref()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9439
      start: 9432
    functionDepth: 0
    functionLinenumber: 9432
    functionLinenumberEnd: 9439
    functionName: nlohmann::detail::json_ref::moved_or_copied
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: value_type
    signature: value_type moved_or_copied() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9444
      start: 9441
    functionDepth: 0
    functionLinenumber: 9441
    functionLinenumberEnd: 9444
    functionName: '& operator*() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9449
      start: 9446
    functionDepth: 0
    functionLinenumber: 9446
    functionLinenumberEnd: 9449
    functionName: '* operator->() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9408
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9408
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_ref(value_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<value_type*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9412
      start: 9410
    functionDepth: 0
    functionLinenumber: 9410
    functionLinenumberEnd: 9412
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - const_cast<value_type*>
    linkageType: ''
    returnType: void
    signature: void json_ref(const value_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<json_ref>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9416
      start: 9414
    functionDepth: 0
    functionLinenumber: 9414
    functionLinenumberEnd: 9416
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(std::initializer_list<json_ref> init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9421
    functionDepth: 0
    functionLinenumber: 9421
    functionLinenumberEnd: 9423
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void json_ref(Args && ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9426
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9427
      start: 9427
    functionDepth: 0
    functionLinenumber: 9427
    functionLinenumberEnd: 9427
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9428
    functionDepth: 0
    functionLinenumber: 9428
    functionLinenumberEnd: 9428
    functionName: '& operator=(const json_ref&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9429
      start: 9429
    functionDepth: 0
    functionLinenumber: 9429
    functionLinenumberEnd: 9429
    functionName: '& operator=(json_ref&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9430
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9430
    functionName: ~json_ref()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_ref()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9439
      start: 9432
    functionDepth: 0
    functionLinenumber: 9432
    functionLinenumberEnd: 9439
    functionName: nlohmann::detail::json_ref::moved_or_copied
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: value_type
    signature: value_type moved_or_copied() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9444
      start: 9441
    functionDepth: 0
    functionLinenumber: 9441
    functionLinenumberEnd: 9444
    functionName: '& operator*() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9449
      start: 9446
    functionDepth: 0
    functionLinenumber: 9446
    functionLinenumberEnd: 9449
    functionName: '* operator->() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9408
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9408
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_ref(value_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<value_type*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9412
      start: 9410
    functionDepth: 0
    functionLinenumber: 9410
    functionLinenumberEnd: 9412
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - const_cast<value_type*>
    linkageType: ''
    returnType: void
    signature: void json_ref(const value_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<json_ref>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9416
      start: 9414
    functionDepth: 0
    functionLinenumber: 9414
    functionLinenumberEnd: 9416
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(std::initializer_list<json_ref> init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9421
    functionDepth: 0
    functionLinenumber: 9421
    functionLinenumberEnd: 9423
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void json_ref(Args && ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9426
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9427
      start: 9427
    functionDepth: 0
    functionLinenumber: 9427
    functionLinenumberEnd: 9427
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9428
    functionDepth: 0
    functionLinenumber: 9428
    functionLinenumberEnd: 9428
    functionName: '& operator=(const json_ref&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9429
      start: 9429
    functionDepth: 0
    functionLinenumber: 9429
    functionLinenumberEnd: 9429
    functionName: '& operator=(json_ref&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9430
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9430
    functionName: ~json_ref()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_ref()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9439
      start: 9432
    functionDepth: 0
    functionLinenumber: 9432
    functionLinenumberEnd: 9439
    functionName: nlohmann::detail::json_ref::moved_or_copied
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: value_type
    signature: value_type moved_or_copied() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9444
      start: 9441
    functionDepth: 0
    functionLinenumber: 9441
    functionLinenumberEnd: 9444
    functionName: '& operator*() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9449
      start: 9446
    functionDepth: 0
    functionLinenumber: 9446
    functionLinenumberEnd: 9449
    functionName: '* operator->() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9408
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9408
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_ref(value_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<value_type*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9412
      start: 9410
    functionDepth: 0
    functionLinenumber: 9410
    functionLinenumberEnd: 9412
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - const_cast<value_type*>
    linkageType: ''
    returnType: void
    signature: void json_ref(const value_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<json_ref>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9416
      start: 9414
    functionDepth: 0
    functionLinenumber: 9414
    functionLinenumberEnd: 9416
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(std::initializer_list<json_ref> init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9421
    functionDepth: 0
    functionLinenumber: 9421
    functionLinenumberEnd: 9423
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void json_ref(Args && ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9426
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9427
      start: 9427
    functionDepth: 0
    functionLinenumber: 9427
    functionLinenumberEnd: 9427
    functionName: nlohmann::detail::json_ref::json_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9428
    functionDepth: 0
    functionLinenumber: 9428
    functionLinenumberEnd: 9428
    functionName: '& operator=(const json_ref&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9429
      start: 9429
    functionDepth: 0
    functionLinenumber: 9429
    functionLinenumberEnd: 9429
    functionName: '& operator=(json_ref&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9430
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9430
    functionName: ~json_ref()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_ref()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:9436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9439
      start: 9432
    functionDepth: 0
    functionLinenumber: 9432
    functionLinenumberEnd: 9439
    functionName: nlohmann::detail::json_ref::moved_or_copied
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: value_type
    signature: value_type moved_or_copied() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9444
      start: 9441
    functionDepth: 0
    functionLinenumber: 9441
    functionLinenumberEnd: 9444
    functionName: '& operator*() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type const*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9449
      start: 9446
    functionDepth: 0
    functionLinenumber: 9446
    functionLinenumberEnd: 9449
    functionName: '* operator->() const'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type const*>
    linkageType: ''
    returnType: value_type
    signature: value_type * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9498
      start: 9498
    functionDepth: 0
    functionLinenumber: 9498
    functionLinenumberEnd: 9498
    functionName: ~output_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9512
      start: 9510
    functionDepth: 0
    functionLinenumber: 9510
    functionLinenumberEnd: 9512
    functionName: nlohmann::detail::output_vector_adapter::output_vector_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_vector_adapter(std::vector<CharType>& vec) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9517
      start: 9514
    functionDepth: 1
    functionLinenumber: 9514
    functionLinenumberEnd: 9517
    functionName: nlohmann::detail::output_vector_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9519
    functionDepth: 0
    functionLinenumber: 9519
    functionLinenumberEnd: 9522
    functionName: nlohmann::detail::output_vector_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9533
    functionDepth: 0
    functionLinenumber: 9533
    functionLinenumberEnd: 9535
    functionName: nlohmann::detail::output_stream_adapter::output_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/sleuthkit/tools/logicalimager/json.h:9539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9540
      start: 9537
    functionDepth: 0
    functionLinenumber: 9537
    functionLinenumberEnd: 9540
    functionName: nlohmann::detail::output_stream_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    - Dst: static_cast<std::streamsize>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9545
      start: 9542
    functionDepth: 0
    functionLinenumber: 9542
    functionLinenumberEnd: 9545
    functionName: nlohmann::detail::output_stream_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9558
    functionName: nlohmann::detail::output_string_adapter::output_string_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_string_adapter(StringType& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9560
    functionDepth: 1
    functionLinenumber: 9560
    functionLinenumberEnd: 9563
    functionName: nlohmann::detail::output_string_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:9567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9568
    functionName: nlohmann::detail::output_string_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_vector_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9579
      start: 9578
    functionDepth: 0
    functionLinenumber: 9578
    functionLinenumberEnd: 9579
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::vector<CharType>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9582
      start: 9581
    functionDepth: 0
    functionLinenumber: 9581
    functionLinenumberEnd: 9582
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_stream_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::basic_ostream<CharType>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9585
      start: 9584
    functionDepth: 0
    functionLinenumber: 9584
    functionLinenumberEnd: 9585
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_string_adapter<CharType, StringType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9590
      start: 9587
    functionDepth: 0
    functionLinenumber: 9587
    functionLinenumberEnd: 9590
    functionName: operator output_adapter_t<CharType>()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator output_adapter_t<CharType>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9498
      start: 9498
    functionDepth: 0
    functionLinenumber: 9498
    functionLinenumberEnd: 9498
    functionName: ~output_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9512
      start: 9510
    functionDepth: 0
    functionLinenumber: 9510
    functionLinenumberEnd: 9512
    functionName: nlohmann::detail::output_vector_adapter::output_vector_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_vector_adapter(std::vector<CharType>& vec) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9517
      start: 9514
    functionDepth: 1
    functionLinenumber: 9514
    functionLinenumberEnd: 9517
    functionName: nlohmann::detail::output_vector_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9519
    functionDepth: 0
    functionLinenumber: 9519
    functionLinenumberEnd: 9522
    functionName: nlohmann::detail::output_vector_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9533
    functionDepth: 0
    functionLinenumber: 9533
    functionLinenumberEnd: 9535
    functionName: nlohmann::detail::output_stream_adapter::output_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/sleuthkit/tools/logicalimager/json.h:9539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9540
      start: 9537
    functionDepth: 0
    functionLinenumber: 9537
    functionLinenumberEnd: 9540
    functionName: nlohmann::detail::output_stream_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    - Dst: static_cast<std::streamsize>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9545
      start: 9542
    functionDepth: 0
    functionLinenumber: 9542
    functionLinenumberEnd: 9545
    functionName: nlohmann::detail::output_stream_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9558
    functionName: nlohmann::detail::output_string_adapter::output_string_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_string_adapter(StringType& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9560
    functionDepth: 1
    functionLinenumber: 9560
    functionLinenumberEnd: 9563
    functionName: nlohmann::detail::output_string_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:9567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9568
    functionName: nlohmann::detail::output_string_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_vector_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9579
      start: 9578
    functionDepth: 0
    functionLinenumber: 9578
    functionLinenumberEnd: 9579
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::vector<CharType>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9582
      start: 9581
    functionDepth: 0
    functionLinenumber: 9581
    functionLinenumberEnd: 9582
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_stream_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::basic_ostream<CharType>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9585
      start: 9584
    functionDepth: 0
    functionLinenumber: 9584
    functionLinenumberEnd: 9585
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_string_adapter<CharType, StringType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9590
      start: 9587
    functionDepth: 0
    functionLinenumber: 9587
    functionLinenumberEnd: 9590
    functionName: operator output_adapter_t<CharType>()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator output_adapter_t<CharType>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9498
      start: 9498
    functionDepth: 0
    functionLinenumber: 9498
    functionLinenumberEnd: 9498
    functionName: ~output_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9512
      start: 9510
    functionDepth: 0
    functionLinenumber: 9510
    functionLinenumberEnd: 9512
    functionName: nlohmann::detail::output_vector_adapter::output_vector_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_vector_adapter(std::vector<CharType>& vec) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9517
      start: 9514
    functionDepth: 1
    functionLinenumber: 9514
    functionLinenumberEnd: 9517
    functionName: nlohmann::detail::output_vector_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9519
    functionDepth: 0
    functionLinenumber: 9519
    functionLinenumberEnd: 9522
    functionName: nlohmann::detail::output_vector_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9533
    functionDepth: 0
    functionLinenumber: 9533
    functionLinenumberEnd: 9535
    functionName: nlohmann::detail::output_stream_adapter::output_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/sleuthkit/tools/logicalimager/json.h:9539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9540
      start: 9537
    functionDepth: 0
    functionLinenumber: 9537
    functionLinenumberEnd: 9540
    functionName: nlohmann::detail::output_stream_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    - Dst: static_cast<std::streamsize>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9545
      start: 9542
    functionDepth: 0
    functionLinenumber: 9542
    functionLinenumberEnd: 9545
    functionName: nlohmann::detail::output_stream_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9558
    functionName: nlohmann::detail::output_string_adapter::output_string_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_string_adapter(StringType& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9560
    functionDepth: 1
    functionLinenumber: 9560
    functionLinenumberEnd: 9563
    functionName: nlohmann::detail::output_string_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:9567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9568
    functionName: nlohmann::detail::output_string_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_vector_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9579
      start: 9578
    functionDepth: 0
    functionLinenumber: 9578
    functionLinenumberEnd: 9579
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::vector<CharType>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9582
      start: 9581
    functionDepth: 0
    functionLinenumber: 9581
    functionLinenumberEnd: 9582
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_stream_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::basic_ostream<CharType>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9585
      start: 9584
    functionDepth: 0
    functionLinenumber: 9584
    functionLinenumberEnd: 9585
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_string_adapter<CharType, StringType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9590
      start: 9587
    functionDepth: 0
    functionLinenumber: 9587
    functionLinenumberEnd: 9590
    functionName: operator output_adapter_t<CharType>()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator output_adapter_t<CharType>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9498
      start: 9498
    functionDepth: 0
    functionLinenumber: 9498
    functionLinenumberEnd: 9498
    functionName: ~output_adapter_protocol()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9512
      start: 9510
    functionDepth: 0
    functionLinenumber: 9510
    functionLinenumberEnd: 9512
    functionName: nlohmann::detail::output_vector_adapter::output_vector_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_vector_adapter(std::vector<CharType>& vec) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9517
      start: 9514
    functionDepth: 1
    functionLinenumber: 9514
    functionLinenumberEnd: 9517
    functionName: nlohmann::detail::output_vector_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    - Dst: std::back_inserter
      Src: /src/sleuthkit/tools/logicalimager/json.h:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9519
    functionDepth: 0
    functionLinenumber: 9519
    functionLinenumberEnd: 9522
    functionName: nlohmann::detail::output_vector_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9533
    functionDepth: 0
    functionLinenumber: 9533
    functionLinenumberEnd: 9535
    functionName: nlohmann::detail::output_stream_adapter::output_stream_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/sleuthkit/tools/logicalimager/json.h:9539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9540
      start: 9537
    functionDepth: 0
    functionLinenumber: 9537
    functionLinenumberEnd: 9540
    functionName: nlohmann::detail::output_stream_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    - Dst: static_cast<std::streamsize>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9545
      start: 9542
    functionDepth: 0
    functionLinenumber: 9542
    functionLinenumberEnd: 9545
    functionName: nlohmann::detail::output_stream_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9558
    functionName: nlohmann::detail::output_string_adapter::output_string_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_string_adapter(StringType& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9560
    functionDepth: 1
    functionLinenumber: 9560
    functionLinenumberEnd: 9563
    functionName: nlohmann::detail::output_string_adapter::write_character
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sleuthkit/tools/logicalimager/json.h:9567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9568
    functionName: nlohmann::detail::output_string_adapter::write_characters
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: void write_characters(const CharType* s, std::size_t length) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_vector_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9579
      start: 9578
    functionDepth: 0
    functionLinenumber: 9578
    functionLinenumberEnd: 9579
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::vector<CharType>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9582
      start: 9581
    functionDepth: 0
    functionLinenumber: 9581
    functionLinenumberEnd: 9582
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_stream_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::basic_ostream<CharType>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9585
      start: 9584
    functionDepth: 0
    functionLinenumber: 9584
    functionLinenumberEnd: 9585
    functionName: nlohmann::detail::output_adapter::output_adapter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::make_shared<output_string_adapter<CharType, StringType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9590
      start: 9587
    functionDepth: 0
    functionLinenumber: 9587
    functionLinenumberEnd: 9590
    functionName: operator output_adapter_t<CharType>()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator output_adapter_t<CharType>()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - output_adapter_t<CharType>
    assertStmts:
    - condition: (oa)
      pos:
        line_end: 9622
        line_start: 9622
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9624
      start: 9621
    functionDepth: 0
    functionLinenumber: 9621
    functionLinenumberEnd: 9624
    functionName: nlohmann::detail::binary_writer::binary_writer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_writer(output_adapter_t<CharType> adapter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9632,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:9636,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9645
      start: 9630
    functionDepth: 3
    functionLinenumber: 9630
    functionLinenumberEnd: 9645
    functionName: nlohmann::detail::binary_writer::write_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_object
    - type
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void write_bson(const BasicJsonType& j)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9652,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9662,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9663,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9664,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::get_cbor_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9765,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9772,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:9801,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9803,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9810,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9841,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9849,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9880,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9881,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 153
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9889
      start: 9650
    functionDepth: 1
    functionLinenumber: 9650
    functionLinenumberEnd: 9889
    functionName: nlohmann::detail::binary_writer::write_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - static_cast<std::uint32_t>
    - reinterpret_cast<const CharType*>
    - write_character
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_cbor_float_prefix
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - type
    - nlohmann::detail::binary_writer::write_number
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_cbor
    - static_cast<std::uint8_t>
    - m_value::array::size
    - static_cast<std::uint16_t>
    - m_value::object::size
    linkageType: ''
    returnType: void
    signature: void write_cbor(const BasicJsonType& j)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9896,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9906,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9907,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9908,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::get_msgpack_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10025,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10032,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10058,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10060,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10067,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10089,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10097,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10119,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10120,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 136
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10128
      start: 9894
    functionDepth: 1
    functionLinenumber: 9894
    functionLinenumberEnd: 10128
    functionName: nlohmann::detail::binary_writer::write_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_msgpack_float_prefix
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - m_value::array::size
    - m_value::object::size
    - static_cast<std::uint32_t>
    - static_cast<std::int8_t>
    - write_character
    - reinterpret_cast<const CharType*>
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_msgpack
    - type
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_msgpack(const BasicJsonType& j)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10139,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10154,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10155,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10156,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10163,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10169,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10175,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10186,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10188,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10200,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10202,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10207,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10214,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10226,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10245,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10247,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10259,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10272,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10274,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10275,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 3
    argNames:
    - ' j'
    - use_count
    - use_type
    argTypes:
    - BasicJsonType
    - bool
    - bool
    assertStmts:
    - condition: (use_count)
      pos:
        line_end: 10201
        line_start: 10201
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (use_count)
      pos:
        line_end: 10246
        line_start: 10246
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10289
      start: 10136
    functionDepth: 1
    functionLinenumber: 10136
    functionLinenumberEnd: 10289
    functionName: nlohmann::detail::binary_writer::write_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - begin
    - std::all_of
    - m_value::object::empty
    - nlohmann::detail::binary_writer::write_ubjson
    - m_value::array::size
    - m_value::object::size
    - reinterpret_cast<const CharType*>
    - write_character
    - assert
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - m_value::array::empty
    - first::size
    - first::c_str
    - end
    - nlohmann::detail::binary_writer::ubjson_prefix
    - front
    - type
    - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    linkageType: ''
    returnType: void
    signature: "void write_ubjson(const BasicJsonType& j, const bool use_count,\n
      \                     const bool use_type, const bool add_prefix = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:10303,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10306,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10310
      start: 10300
    functionDepth: 3
    functionLinenumber: 10300
    functionLinenumberEnd: 10310
    functionName: nlohmann::detail::binary_writer::calc_bson_entry_header_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    - nlohmann::detail::out_of_range::create
    - find
    - to_string
    - static_cast<typename string_t::value_type>
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_entry_header_size(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10319,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - element_type
    argTypes:
    - string_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10322
      start: 10315
    functionDepth: 1
    functionLinenumber: 10315
    functionLinenumberEnd: 10322
    functionName: nlohmann::detail::binary_writer::write_bson_entry_header
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - write_character
    - nlohmann::detail::binary_writer::to_char_type
    - c_str
    linkageType: ''
    returnType: void
    signature: "void write_bson_entry_header(const string_t& name,\n                                 const
      std::uint8_t element_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10330,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10332
      start: 10327
    functionDepth: 2
    functionLinenumber: 10327
    functionLinenumberEnd: 10332
    functionName: nlohmann::detail::binary_writer::write_bson_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::to_char_type
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_bson_boolean(const string_t& name,\n                            const
      bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10340,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10337
    functionDepth: 2
    functionLinenumber: 10337
    functionLinenumberEnd: 10342
    functionName: nlohmann::detail::binary_writer::write_bson_double
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_double(const string_t& name,\n                           const
      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10350
      start: 10347
    functionDepth: 1
    functionLinenumber: 10347
    functionLinenumberEnd: 10350
    functionName: nlohmann::detail::binary_writer::calc_bson_string_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_string_size(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10358,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10361,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10364
      start: 10355
    functionDepth: 2
    functionLinenumber: 10355
    functionLinenumberEnd: 10364
    functionName: nlohmann::detail::binary_writer::write_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - nlohmann::detail::binary_writer::write_number
    - c_str
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_string(const string_t& name,\n                           const
      string_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10372
      start: 10369
    functionDepth: 2
    functionLinenumber: 10369
    functionLinenumberEnd: 10372
    functionName: nlohmann::detail::binary_writer::write_bson_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    linkageType: ''
    returnType: void
    signature: void write_bson_null(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10382
      start: 10377
    functionDepth: 0
    functionLinenumber: 10377
    functionLinenumberEnd: 10382
    functionName: nlohmann::detail::binary_writer::calc_bson_integer_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_integer_size(const std::int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10392,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10397,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10400
      start: 10387
    functionDepth: 2
    functionLinenumber: 10387
    functionLinenumberEnd: 10400
    functionName: nlohmann::detail::binary_writer::write_bson_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_integer(const string_t& name,\n                            const
      std::int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10405
    functionDepth: 0
    functionLinenumber: 10405
    functionLinenumberEnd: 10410
    functionName: nlohmann::detail::binary_writer::calc_bson_unsigned_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10418,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10420,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10423,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10425,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10432
      start: 10415
    functionDepth: 3
    functionLinenumber: 10415
    functionLinenumberEnd: 10432
    functionName: nlohmann::detail::binary_writer::write_bson_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - static_cast<std::uint64_t>
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - JSON_THROW
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_unsigned(const string_t& name,\n                             const
      std::uint64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10440,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:10441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10442
      start: 10437
    functionDepth: 2
    functionLinenumber: 10437
    functionLinenumberEnd: 10442
    functionName: nlohmann::detail::binary_writer::write_bson_object_entry
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_bson_object
    linkageType: ''
    returnType: void
    signature: "void write_bson_object_entry(const string_t& name,\n                                 const
      typename BasicJsonType::object_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10458
      start: 10447
    functionDepth: 1
    functionLinenumber: 10447
    functionLinenumberEnd: 10458
    functionName: nlohmann::detail::binary_writer::calc_bson_array_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - to_string
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_array_size(const typename BasicJsonType::array_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10466,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10477
      start: 10463
    functionDepth: 2
    functionLinenumber: 10463
    functionLinenumberEnd: 10477
    functionName: nlohmann::detail::binary_writer::write_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_array(const string_t& name,\n                          const
      typename BasicJsonType::array_t& value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_entry_header_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10486,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10487,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10490,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10493,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_integer_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10502,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_unsigned_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10505,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_string_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10508,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10514
        line_start: 10514
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10519
      start: 10483
    functionDepth: 4
    functionLinenumber: 10483
    functionLinenumberEnd: 10519
    functionName: nlohmann::detail::binary_writer::calc_bson_element_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_string_size
    - assert
    - nlohmann::detail::binary_writer::calc_bson_integer_size
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - type
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - nlohmann::detail::binary_writer::calc_bson_unsigned_size
    - nlohmann::detail::binary_writer::calc_bson_entry_header_size
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t calc_bson_element_size(const string_t& name,\n            const
      BasicJsonType& j)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10531,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object_entry
      Src: /src/sleuthkit/tools/logicalimager/json.h:10534,1
    - Dst: nlohmann::detail::binary_writer::write_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:10537,1
    - Dst: nlohmann::detail::binary_writer::write_bson_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:10540,1
    - Dst: nlohmann::detail::binary_writer::write_bson_double
      Src: /src/sleuthkit/tools/logicalimager/json.h:10543,1
    - Dst: nlohmann::detail::binary_writer::write_bson_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:10546,1
    - Dst: nlohmann::detail::binary_writer::write_bson_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:10549,1
    - Dst: nlohmann::detail::binary_writer::write_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10552,1
    - Dst: nlohmann::detail::binary_writer::write_bson_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:10555,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10558
        line_start: 10558
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10563
      start: 10528
    functionDepth: 4
    functionLinenumber: 10528
    functionLinenumberEnd: 10563
    functionName: nlohmann::detail::binary_writer::write_bson_element
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_integer
    - nlohmann::detail::binary_writer::write_bson_unsigned
    - assert
    - nlohmann::detail::binary_writer::write_bson_boolean
    - type
    - nlohmann::detail::binary_writer::write_bson_string
    - nlohmann::detail::binary_writer::write_bson_object_entry
    - nlohmann::detail::binary_writer::write_bson_double
    - nlohmann::detail::binary_writer::write_bson_null
    - nlohmann::detail::binary_writer::write_bson_array
    linkageType: ''
    returnType: void
    signature: "void write_bson_element(const string_t& name,\n                            const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10580
      start: 10571
    functionDepth: 5
    functionLinenumber: 10571
    functionLinenumberEnd: 10580
    functionName: nlohmann::detail::binary_writer::calc_bson_object_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::accumulate
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - begin
    - end
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_object_size(const typename BasicJsonType::object_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10592,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10596
      start: 10586
    functionDepth: 6
    functionLinenumber: 10586
    functionLinenumberEnd: 10596
    functionName: nlohmann::detail::binary_writer::write_bson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_bson_object(const typename BasicJsonType::object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10605
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10605
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10610
      start: 10607
    functionDepth: 1
    functionLinenumber: 10607
    functionLinenumberEnd: 10610
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(double /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10619
      start: 10616
    functionDepth: 1
    functionLinenumber: 10616
    functionLinenumberEnd: 10619
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10621
    functionDepth: 1
    functionLinenumber: 10621
    functionLinenumberEnd: 10624
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10641
      start: 10633
    functionDepth: 1
    functionLinenumber: 10633
    functionLinenumberEnd: 10641
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - nlohmann::detail::binary_writer::write_number
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10649,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10665,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10673,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10681,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10693
      start: 10646
    functionDepth: 3
    functionLinenumber: 10646
    functionLinenumberEnd: 10693
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - write_character
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10748
      start: 10699
    functionDepth: 3
    functionLinenumber: 10699
    functionLinenumberEnd: 10748
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::int64_t>
    - static_cast<std::int8_t>
    - write_character
    - nlohmann::detail::out_of_range::create
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10761,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10814,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10759
    functionDepth: 1
    functionLinenumber: 10759
    functionLinenumberEnd: 10828
    functionName: nlohmann::detail::binary_writer::ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - type
    linkageType: ''
    returnType: CharType
    signature: CharType ubjson_prefix(const BasicJsonType& j) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10833
      start: 10830
    functionDepth: 0
    functionLinenumber: 10830
    functionLinenumberEnd: 10833
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10838
      start: 10835
    functionDepth: 0
    functionLinenumber: 10835
    functionLinenumberEnd: 10838
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::reverse
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10870
      start: 10856
    functionDepth: 1
    functionLinenumber: 10856
    functionLinenumberEnd: 10870
    functionName: nlohmann::detail::binary_writer::write_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 11
    functionsReached:
    - write_characters
    - std::memcpy
    - std::reverse
    - std::array::begin
    - std::array::data
    - std::array::end
    linkageType: ''
    returnType: void
    signature: void write_number(const NumberType n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10882
      start: 10879
    functionDepth: 0
    functionLinenumber: 10879
    functionLinenumberEnd: 10882
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 25
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10893
      start: 10886
    functionDepth: 0
    functionLinenumber: 10886
    functionLinenumberEnd: 10893
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 25
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10900
      start: 10897
    functionDepth: 0
    functionLinenumber: 10897
    functionLinenumberEnd: 10900
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - InputCharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10911
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10911
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(InputCharType x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - output_adapter_t<CharType>
    assertStmts:
    - condition: (oa)
      pos:
        line_end: 9622
        line_start: 9622
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9624
      start: 9621
    functionDepth: 0
    functionLinenumber: 9621
    functionLinenumberEnd: 9624
    functionName: nlohmann::detail::binary_writer::binary_writer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_writer(output_adapter_t<CharType> adapter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9632,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:9636,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9645
      start: 9630
    functionDepth: 7
    functionLinenumber: 9630
    functionLinenumberEnd: 9645
    functionName: nlohmann::detail::binary_writer::write_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_object
    - type
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void write_bson(const BasicJsonType& j)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9652,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9662,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9663,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9664,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::get_cbor_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9765,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9772,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:9801,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9803,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9810,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9841,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9849,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9880,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9881,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 153
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9889
      start: 9650
    functionDepth: 2
    functionLinenumber: 9650
    functionLinenumberEnd: 9889
    functionName: nlohmann::detail::binary_writer::write_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - static_cast<std::uint32_t>
    - reinterpret_cast<const CharType*>
    - write_character
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_cbor_float_prefix
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - type
    - nlohmann::detail::binary_writer::write_number
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_cbor
    - static_cast<std::uint8_t>
    - m_value::array::size
    - static_cast<std::uint16_t>
    - m_value::object::size
    linkageType: ''
    returnType: void
    signature: void write_cbor(const BasicJsonType& j)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9896,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9906,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9907,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9908,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::get_msgpack_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10025,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10032,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10058,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10060,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10067,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10089,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10097,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10119,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10120,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 136
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10128
      start: 9894
    functionDepth: 2
    functionLinenumber: 9894
    functionLinenumberEnd: 10128
    functionName: nlohmann::detail::binary_writer::write_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_msgpack_float_prefix
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - m_value::array::size
    - m_value::object::size
    - static_cast<std::uint32_t>
    - static_cast<std::int8_t>
    - write_character
    - reinterpret_cast<const CharType*>
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_msgpack
    - type
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_msgpack(const BasicJsonType& j)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10139,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10154,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10155,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10156,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10163,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10169,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10175,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10186,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10188,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10200,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10202,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10207,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10214,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10226,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10245,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10247,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10259,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10272,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10274,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10275,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 3
    argNames:
    - ' j'
    - use_count
    - use_type
    argTypes:
    - BasicJsonType
    - bool
    - bool
    assertStmts:
    - condition: (use_count)
      pos:
        line_end: 10201
        line_start: 10201
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (use_count)
      pos:
        line_end: 10246
        line_start: 10246
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10289
      start: 10136
    functionDepth: 2
    functionLinenumber: 10136
    functionLinenumberEnd: 10289
    functionName: nlohmann::detail::binary_writer::write_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - begin
    - std::all_of
    - m_value::object::empty
    - nlohmann::detail::binary_writer::write_ubjson
    - m_value::array::size
    - m_value::object::size
    - reinterpret_cast<const CharType*>
    - write_character
    - assert
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - m_value::array::empty
    - first::size
    - first::c_str
    - end
    - nlohmann::detail::binary_writer::ubjson_prefix
    - front
    - type
    - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    linkageType: ''
    returnType: void
    signature: "void write_ubjson(const BasicJsonType& j, const bool use_count,\n
      \                     const bool use_type, const bool add_prefix = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:10303,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10306,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10310
      start: 10300
    functionDepth: 3
    functionLinenumber: 10300
    functionLinenumberEnd: 10310
    functionName: nlohmann::detail::binary_writer::calc_bson_entry_header_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - size
    - nlohmann::detail::out_of_range::create
    - find
    - to_string
    - static_cast<typename string_t::value_type>
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_entry_header_size(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10319,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - element_type
    argTypes:
    - string_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10322
      start: 10315
    functionDepth: 1
    functionLinenumber: 10315
    functionLinenumberEnd: 10322
    functionName: nlohmann::detail::binary_writer::write_bson_entry_header
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - write_character
    - nlohmann::detail::binary_writer::to_char_type
    - c_str
    linkageType: ''
    returnType: void
    signature: "void write_bson_entry_header(const string_t& name,\n                                 const
      std::uint8_t element_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10330,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10332
      start: 10327
    functionDepth: 2
    functionLinenumber: 10327
    functionLinenumberEnd: 10332
    functionName: nlohmann::detail::binary_writer::write_bson_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::to_char_type
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_bson_boolean(const string_t& name,\n                            const
      bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10340,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10337
    functionDepth: 2
    functionLinenumber: 10337
    functionLinenumberEnd: 10342
    functionName: nlohmann::detail::binary_writer::write_bson_double
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_double(const string_t& name,\n                           const
      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10350
      start: 10347
    functionDepth: 1
    functionLinenumber: 10347
    functionLinenumberEnd: 10350
    functionName: nlohmann::detail::binary_writer::calc_bson_string_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_string_size(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10358,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10361,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10364
      start: 10355
    functionDepth: 2
    functionLinenumber: 10355
    functionLinenumberEnd: 10364
    functionName: nlohmann::detail::binary_writer::write_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - nlohmann::detail::binary_writer::write_number
    - c_str
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_string(const string_t& name,\n                           const
      string_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10372
      start: 10369
    functionDepth: 2
    functionLinenumber: 10369
    functionLinenumberEnd: 10372
    functionName: nlohmann::detail::binary_writer::write_bson_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    linkageType: ''
    returnType: void
    signature: void write_bson_null(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10382
      start: 10377
    functionDepth: 0
    functionLinenumber: 10377
    functionLinenumberEnd: 10382
    functionName: nlohmann::detail::binary_writer::calc_bson_integer_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_integer_size(const std::int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10392,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10397,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10400
      start: 10387
    functionDepth: 2
    functionLinenumber: 10387
    functionLinenumberEnd: 10400
    functionName: nlohmann::detail::binary_writer::write_bson_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_integer(const string_t& name,\n                            const
      std::int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10405
    functionDepth: 0
    functionLinenumber: 10405
    functionLinenumberEnd: 10410
    functionName: nlohmann::detail::binary_writer::calc_bson_unsigned_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10418,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10420,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10423,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10425,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10432
      start: 10415
    functionDepth: 3
    functionLinenumber: 10415
    functionLinenumberEnd: 10432
    functionName: nlohmann::detail::binary_writer::write_bson_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - static_cast<std::uint64_t>
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - JSON_THROW
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_unsigned(const string_t& name,\n                             const
      std::uint64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10440,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:10441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10442
      start: 10437
    functionDepth: 7
    functionLinenumber: 10437
    functionLinenumberEnd: 10442
    functionName: nlohmann::detail::binary_writer::write_bson_object_entry
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_bson_object
    linkageType: ''
    returnType: void
    signature: "void write_bson_object_entry(const string_t& name,\n                                 const
      typename BasicJsonType::object_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10458
      start: 10447
    functionDepth: 5
    functionLinenumber: 10447
    functionLinenumberEnd: 10458
    functionName: nlohmann::detail::binary_writer::calc_bson_array_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - to_string
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_array_size(const typename BasicJsonType::array_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10466,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10477
      start: 10463
    functionDepth: 5
    functionLinenumber: 10463
    functionLinenumberEnd: 10477
    functionName: nlohmann::detail::binary_writer::write_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_array(const string_t& name,\n                          const
      typename BasicJsonType::array_t& value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_entry_header_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10486,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10487,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10490,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10493,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_integer_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10502,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_unsigned_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10505,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_string_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10508,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10514
        line_start: 10514
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10519
      start: 10483
    functionDepth: 6
    functionLinenumber: 10483
    functionLinenumberEnd: 10519
    functionName: nlohmann::detail::binary_writer::calc_bson_element_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_string_size
    - assert
    - nlohmann::detail::binary_writer::calc_bson_integer_size
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - type
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - nlohmann::detail::binary_writer::calc_bson_unsigned_size
    - nlohmann::detail::binary_writer::calc_bson_entry_header_size
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t calc_bson_element_size(const string_t& name,\n            const
      BasicJsonType& j)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10531,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object_entry
      Src: /src/sleuthkit/tools/logicalimager/json.h:10534,1
    - Dst: nlohmann::detail::binary_writer::write_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:10537,1
    - Dst: nlohmann::detail::binary_writer::write_bson_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:10540,1
    - Dst: nlohmann::detail::binary_writer::write_bson_double
      Src: /src/sleuthkit/tools/logicalimager/json.h:10543,1
    - Dst: nlohmann::detail::binary_writer::write_bson_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:10546,1
    - Dst: nlohmann::detail::binary_writer::write_bson_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:10549,1
    - Dst: nlohmann::detail::binary_writer::write_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10552,1
    - Dst: nlohmann::detail::binary_writer::write_bson_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:10555,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10558
        line_start: 10558
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10563
      start: 10528
    functionDepth: 4
    functionLinenumber: 10528
    functionLinenumberEnd: 10563
    functionName: nlohmann::detail::binary_writer::write_bson_element
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_integer
    - nlohmann::detail::binary_writer::write_bson_unsigned
    - assert
    - nlohmann::detail::binary_writer::write_bson_boolean
    - type
    - nlohmann::detail::binary_writer::write_bson_string
    - nlohmann::detail::binary_writer::write_bson_object_entry
    - nlohmann::detail::binary_writer::write_bson_double
    - nlohmann::detail::binary_writer::write_bson_null
    - nlohmann::detail::binary_writer::write_bson_array
    linkageType: ''
    returnType: void
    signature: "void write_bson_element(const string_t& name,\n                            const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10580
      start: 10571
    functionDepth: 5
    functionLinenumber: 10571
    functionLinenumberEnd: 10580
    functionName: nlohmann::detail::binary_writer::calc_bson_object_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::accumulate
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - begin
    - end
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_object_size(const typename BasicJsonType::object_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10592,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10596
      start: 10586
    functionDepth: 6
    functionLinenumber: 10586
    functionLinenumberEnd: 10596
    functionName: nlohmann::detail::binary_writer::write_bson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_bson_object(const typename BasicJsonType::object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10605
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10605
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10610
      start: 10607
    functionDepth: 1
    functionLinenumber: 10607
    functionLinenumberEnd: 10610
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(double /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10619
      start: 10616
    functionDepth: 1
    functionLinenumber: 10616
    functionLinenumberEnd: 10619
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10621
    functionDepth: 1
    functionLinenumber: 10621
    functionLinenumberEnd: 10624
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10641
      start: 10633
    functionDepth: 2
    functionLinenumber: 10633
    functionLinenumberEnd: 10641
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - nlohmann::detail::binary_writer::write_number
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10649,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10665,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10673,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10681,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10693
      start: 10646
    functionDepth: 3
    functionLinenumber: 10646
    functionLinenumberEnd: 10693
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - write_character
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10748
      start: 10699
    functionDepth: 3
    functionLinenumber: 10699
    functionLinenumberEnd: 10748
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::int64_t>
    - static_cast<std::int8_t>
    - write_character
    - nlohmann::detail::out_of_range::create
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10761,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10814,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10759
    functionDepth: 1
    functionLinenumber: 10759
    functionLinenumberEnd: 10828
    functionName: nlohmann::detail::binary_writer::ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - type
    linkageType: ''
    returnType: CharType
    signature: CharType ubjson_prefix(const BasicJsonType& j) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10833
      start: 10830
    functionDepth: 0
    functionLinenumber: 10830
    functionLinenumberEnd: 10833
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10838
      start: 10835
    functionDepth: 0
    functionLinenumber: 10835
    functionLinenumberEnd: 10838
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::reverse
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10870
      start: 10856
    functionDepth: 1
    functionLinenumber: 10856
    functionLinenumberEnd: 10870
    functionName: nlohmann::detail::binary_writer::write_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 22
    functionsReached:
    - write_characters
    - std::memcpy
    - std::reverse
    - std::array::begin
    - std::array::data
    - std::array::end
    linkageType: ''
    returnType: void
    signature: void write_number(const NumberType n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10882
      start: 10879
    functionDepth: 0
    functionLinenumber: 10879
    functionLinenumberEnd: 10882
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 38
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10893
      start: 10886
    functionDepth: 0
    functionLinenumber: 10886
    functionLinenumberEnd: 10893
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 38
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10900
      start: 10897
    functionDepth: 0
    functionLinenumber: 10897
    functionLinenumberEnd: 10900
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - InputCharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10911
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10911
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(InputCharType x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - output_adapter_t<CharType>
    assertStmts:
    - condition: (oa)
      pos:
        line_end: 9622
        line_start: 9622
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9624
      start: 9621
    functionDepth: 0
    functionLinenumber: 9621
    functionLinenumberEnd: 9624
    functionName: nlohmann::detail::binary_writer::binary_writer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_writer(output_adapter_t<CharType> adapter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9632,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:9636,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9645
      start: 9630
    functionDepth: 7
    functionLinenumber: 9630
    functionLinenumberEnd: 9645
    functionName: nlohmann::detail::binary_writer::write_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_object
    - type
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void write_bson(const BasicJsonType& j)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9652,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9662,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9663,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9664,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::get_cbor_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9765,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9772,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:9801,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9803,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9810,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9841,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9849,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9880,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9881,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 153
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9889
      start: 9650
    functionDepth: 2
    functionLinenumber: 9650
    functionLinenumberEnd: 9889
    functionName: nlohmann::detail::binary_writer::write_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - static_cast<std::uint32_t>
    - reinterpret_cast<const CharType*>
    - write_character
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_cbor_float_prefix
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - type
    - nlohmann::detail::binary_writer::write_number
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_cbor
    - static_cast<std::uint8_t>
    - m_value::array::size
    - static_cast<std::uint16_t>
    - m_value::object::size
    linkageType: ''
    returnType: void
    signature: void write_cbor(const BasicJsonType& j)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9896,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9906,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9907,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9908,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::get_msgpack_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10025,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10032,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10058,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10060,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10067,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10089,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10097,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10119,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10120,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 136
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10128
      start: 9894
    functionDepth: 2
    functionLinenumber: 9894
    functionLinenumberEnd: 10128
    functionName: nlohmann::detail::binary_writer::write_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_msgpack_float_prefix
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - m_value::array::size
    - m_value::object::size
    - static_cast<std::uint32_t>
    - static_cast<std::int8_t>
    - write_character
    - reinterpret_cast<const CharType*>
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_msgpack
    - type
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_msgpack(const BasicJsonType& j)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10139,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10154,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10155,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10156,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10163,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10169,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10175,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10186,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10188,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10200,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10202,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10207,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10214,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10226,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10245,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10247,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10259,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10272,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10274,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10275,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 3
    argNames:
    - ' j'
    - use_count
    - use_type
    argTypes:
    - BasicJsonType
    - bool
    - bool
    assertStmts:
    - condition: (use_count)
      pos:
        line_end: 10201
        line_start: 10201
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (use_count)
      pos:
        line_end: 10246
        line_start: 10246
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10289
      start: 10136
    functionDepth: 2
    functionLinenumber: 10136
    functionLinenumberEnd: 10289
    functionName: nlohmann::detail::binary_writer::write_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - begin
    - std::all_of
    - m_value::object::empty
    - nlohmann::detail::binary_writer::write_ubjson
    - m_value::array::size
    - m_value::object::size
    - reinterpret_cast<const CharType*>
    - write_character
    - assert
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - m_value::array::empty
    - first::size
    - first::c_str
    - end
    - nlohmann::detail::binary_writer::ubjson_prefix
    - front
    - type
    - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    linkageType: ''
    returnType: void
    signature: "void write_ubjson(const BasicJsonType& j, const bool use_count,\n
      \                     const bool use_type, const bool add_prefix = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:10303,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10306,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10310
      start: 10300
    functionDepth: 3
    functionLinenumber: 10300
    functionLinenumberEnd: 10310
    functionName: nlohmann::detail::binary_writer::calc_bson_entry_header_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - size
    - nlohmann::detail::out_of_range::create
    - find
    - to_string
    - static_cast<typename string_t::value_type>
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_entry_header_size(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10319,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - element_type
    argTypes:
    - string_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10322
      start: 10315
    functionDepth: 1
    functionLinenumber: 10315
    functionLinenumberEnd: 10322
    functionName: nlohmann::detail::binary_writer::write_bson_entry_header
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - write_character
    - nlohmann::detail::binary_writer::to_char_type
    - c_str
    linkageType: ''
    returnType: void
    signature: "void write_bson_entry_header(const string_t& name,\n                                 const
      std::uint8_t element_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10330,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10332
      start: 10327
    functionDepth: 2
    functionLinenumber: 10327
    functionLinenumberEnd: 10332
    functionName: nlohmann::detail::binary_writer::write_bson_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::to_char_type
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_bson_boolean(const string_t& name,\n                            const
      bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10340,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10337
    functionDepth: 2
    functionLinenumber: 10337
    functionLinenumberEnd: 10342
    functionName: nlohmann::detail::binary_writer::write_bson_double
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_double(const string_t& name,\n                           const
      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10350
      start: 10347
    functionDepth: 1
    functionLinenumber: 10347
    functionLinenumberEnd: 10350
    functionName: nlohmann::detail::binary_writer::calc_bson_string_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_string_size(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10358,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10361,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10364
      start: 10355
    functionDepth: 2
    functionLinenumber: 10355
    functionLinenumberEnd: 10364
    functionName: nlohmann::detail::binary_writer::write_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - nlohmann::detail::binary_writer::write_number
    - c_str
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_string(const string_t& name,\n                           const
      string_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10372
      start: 10369
    functionDepth: 2
    functionLinenumber: 10369
    functionLinenumberEnd: 10372
    functionName: nlohmann::detail::binary_writer::write_bson_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    linkageType: ''
    returnType: void
    signature: void write_bson_null(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10382
      start: 10377
    functionDepth: 0
    functionLinenumber: 10377
    functionLinenumberEnd: 10382
    functionName: nlohmann::detail::binary_writer::calc_bson_integer_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_integer_size(const std::int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10392,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10397,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10400
      start: 10387
    functionDepth: 2
    functionLinenumber: 10387
    functionLinenumberEnd: 10400
    functionName: nlohmann::detail::binary_writer::write_bson_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_integer(const string_t& name,\n                            const
      std::int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10405
    functionDepth: 0
    functionLinenumber: 10405
    functionLinenumberEnd: 10410
    functionName: nlohmann::detail::binary_writer::calc_bson_unsigned_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10418,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10420,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10423,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10425,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10432
      start: 10415
    functionDepth: 3
    functionLinenumber: 10415
    functionLinenumberEnd: 10432
    functionName: nlohmann::detail::binary_writer::write_bson_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - static_cast<std::uint64_t>
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - JSON_THROW
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_unsigned(const string_t& name,\n                             const
      std::uint64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10440,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:10441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10442
      start: 10437
    functionDepth: 7
    functionLinenumber: 10437
    functionLinenumberEnd: 10442
    functionName: nlohmann::detail::binary_writer::write_bson_object_entry
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_bson_object
    linkageType: ''
    returnType: void
    signature: "void write_bson_object_entry(const string_t& name,\n                                 const
      typename BasicJsonType::object_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10458
      start: 10447
    functionDepth: 5
    functionLinenumber: 10447
    functionLinenumberEnd: 10458
    functionName: nlohmann::detail::binary_writer::calc_bson_array_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - to_string
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_array_size(const typename BasicJsonType::array_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10466,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10477
      start: 10463
    functionDepth: 5
    functionLinenumber: 10463
    functionLinenumberEnd: 10477
    functionName: nlohmann::detail::binary_writer::write_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_array(const string_t& name,\n                          const
      typename BasicJsonType::array_t& value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_entry_header_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10486,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10487,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10490,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10493,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_integer_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10502,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_unsigned_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10505,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_string_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10508,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10514
        line_start: 10514
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10519
      start: 10483
    functionDepth: 6
    functionLinenumber: 10483
    functionLinenumberEnd: 10519
    functionName: nlohmann::detail::binary_writer::calc_bson_element_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_string_size
    - assert
    - nlohmann::detail::binary_writer::calc_bson_integer_size
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - type
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - nlohmann::detail::binary_writer::calc_bson_unsigned_size
    - nlohmann::detail::binary_writer::calc_bson_entry_header_size
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t calc_bson_element_size(const string_t& name,\n            const
      BasicJsonType& j)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10531,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object_entry
      Src: /src/sleuthkit/tools/logicalimager/json.h:10534,1
    - Dst: nlohmann::detail::binary_writer::write_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:10537,1
    - Dst: nlohmann::detail::binary_writer::write_bson_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:10540,1
    - Dst: nlohmann::detail::binary_writer::write_bson_double
      Src: /src/sleuthkit/tools/logicalimager/json.h:10543,1
    - Dst: nlohmann::detail::binary_writer::write_bson_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:10546,1
    - Dst: nlohmann::detail::binary_writer::write_bson_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:10549,1
    - Dst: nlohmann::detail::binary_writer::write_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10552,1
    - Dst: nlohmann::detail::binary_writer::write_bson_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:10555,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10558
        line_start: 10558
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10563
      start: 10528
    functionDepth: 4
    functionLinenumber: 10528
    functionLinenumberEnd: 10563
    functionName: nlohmann::detail::binary_writer::write_bson_element
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_integer
    - nlohmann::detail::binary_writer::write_bson_unsigned
    - assert
    - nlohmann::detail::binary_writer::write_bson_boolean
    - type
    - nlohmann::detail::binary_writer::write_bson_string
    - nlohmann::detail::binary_writer::write_bson_object_entry
    - nlohmann::detail::binary_writer::write_bson_double
    - nlohmann::detail::binary_writer::write_bson_null
    - nlohmann::detail::binary_writer::write_bson_array
    linkageType: ''
    returnType: void
    signature: "void write_bson_element(const string_t& name,\n                            const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10580
      start: 10571
    functionDepth: 5
    functionLinenumber: 10571
    functionLinenumberEnd: 10580
    functionName: nlohmann::detail::binary_writer::calc_bson_object_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::accumulate
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - begin
    - end
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_object_size(const typename BasicJsonType::object_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10592,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10596
      start: 10586
    functionDepth: 6
    functionLinenumber: 10586
    functionLinenumberEnd: 10596
    functionName: nlohmann::detail::binary_writer::write_bson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_bson_object(const typename BasicJsonType::object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10605
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10605
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10610
      start: 10607
    functionDepth: 1
    functionLinenumber: 10607
    functionLinenumberEnd: 10610
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(double /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10619
      start: 10616
    functionDepth: 1
    functionLinenumber: 10616
    functionLinenumberEnd: 10619
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10621
    functionDepth: 1
    functionLinenumber: 10621
    functionLinenumberEnd: 10624
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10641
      start: 10633
    functionDepth: 2
    functionLinenumber: 10633
    functionLinenumberEnd: 10641
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - nlohmann::detail::binary_writer::write_number
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10649,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10665,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10673,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10681,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10693
      start: 10646
    functionDepth: 3
    functionLinenumber: 10646
    functionLinenumberEnd: 10693
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - write_character
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10748
      start: 10699
    functionDepth: 3
    functionLinenumber: 10699
    functionLinenumberEnd: 10748
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::int64_t>
    - static_cast<std::int8_t>
    - write_character
    - nlohmann::detail::out_of_range::create
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10761,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10814,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10759
    functionDepth: 1
    functionLinenumber: 10759
    functionLinenumberEnd: 10828
    functionName: nlohmann::detail::binary_writer::ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - type
    linkageType: ''
    returnType: CharType
    signature: CharType ubjson_prefix(const BasicJsonType& j) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10833
      start: 10830
    functionDepth: 0
    functionLinenumber: 10830
    functionLinenumberEnd: 10833
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10838
      start: 10835
    functionDepth: 0
    functionLinenumber: 10835
    functionLinenumberEnd: 10838
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::reverse
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10870
      start: 10856
    functionDepth: 1
    functionLinenumber: 10856
    functionLinenumberEnd: 10870
    functionName: nlohmann::detail::binary_writer::write_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 33
    functionsReached:
    - write_characters
    - std::memcpy
    - std::reverse
    - std::array::begin
    - std::array::data
    - std::array::end
    linkageType: ''
    returnType: void
    signature: void write_number(const NumberType n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10882
      start: 10879
    functionDepth: 0
    functionLinenumber: 10879
    functionLinenumberEnd: 10882
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 51
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10893
      start: 10886
    functionDepth: 0
    functionLinenumber: 10886
    functionLinenumberEnd: 10893
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 51
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10900
      start: 10897
    functionDepth: 0
    functionLinenumber: 10897
    functionLinenumberEnd: 10900
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - InputCharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10911
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10911
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(InputCharType x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - output_adapter_t<CharType>
    assertStmts:
    - condition: (oa)
      pos:
        line_end: 9622
        line_start: 9622
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 9624
      start: 9621
    functionDepth: 0
    functionLinenumber: 9621
    functionLinenumberEnd: 9624
    functionName: nlohmann::detail::binary_writer::binary_writer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void binary_writer(output_adapter_t<CharType> adapter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9632,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:9636,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:9642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9645
      start: 9630
    functionDepth: 7
    functionLinenumber: 9630
    functionLinenumberEnd: 9645
    functionName: nlohmann::detail::binary_writer::write_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_object
    - type
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void write_bson(const BasicJsonType& j)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9652,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9656,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9662,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9663,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9664,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9677,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9681,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9682,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9686,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9687,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9691,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9692,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9696,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9697,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9707,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9711,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9712,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9716,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9717,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9721,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9722,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9726,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9727,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9737,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9741,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9742,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9746,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9747,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9751,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9752,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9756,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9757,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::get_cbor_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:9764,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9765,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9772,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9775,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9779,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9780,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9784,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9785,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9789,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9790,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9795,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9796,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:9801,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:9802,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9803,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9810,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9813,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9817,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9818,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9822,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9823,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9827,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9828,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9833,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9834,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9841,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:9849,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9852,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9856,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9857,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9861,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9862,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9866,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9867,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9872,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9873,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9880,1
    - Dst: nlohmann::detail::binary_writer::write_cbor
      Src: /src/sleuthkit/tools/logicalimager/json.h:9881,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 153
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9889
      start: 9650
    functionDepth: 2
    functionLinenumber: 9650
    functionLinenumberEnd: 9889
    functionName: nlohmann::detail::binary_writer::write_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - static_cast<std::uint32_t>
    - reinterpret_cast<const CharType*>
    - write_character
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_cbor_float_prefix
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - type
    - nlohmann::detail::binary_writer::write_number
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_cbor
    - static_cast<std::uint8_t>
    - m_value::array::size
    - static_cast<std::uint16_t>
    - m_value::object::size
    linkageType: ''
    returnType: void
    signature: void write_cbor(const BasicJsonType& j)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9896,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9900,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9906,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9907,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9908,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9922,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9927,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9928,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9933,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9934,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9939,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9940,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9945,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9946,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9954,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9960,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9961,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9967,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9968,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9974,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9975,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9981,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9982,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9993,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:9998,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:9999,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10004,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10005,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10010,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10011,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10016,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10017,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::get_msgpack_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10024,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10025,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10032,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10036,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10041,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10042,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10047,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10048,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10053,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10054,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10058,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10059,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10060,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10067,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10071,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10076,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10077,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10082,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10083,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10089,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10097,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10101,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10106,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10107,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10112,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10113,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10119,1
    - Dst: nlohmann::detail::binary_writer::write_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:10120,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 136
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10128
      start: 9894
    functionDepth: 2
    functionLinenumber: 9894
    functionLinenumberEnd: 10128
    functionName: nlohmann::detail::binary_writer::write_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - nlohmann::detail::binary_writer::get_msgpack_float_prefix
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - m_value::array::size
    - m_value::object::size
    - static_cast<std::uint32_t>
    - static_cast<std::int8_t>
    - write_character
    - reinterpret_cast<const CharType*>
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - nlohmann::detail::binary_writer::write_msgpack
    - type
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_msgpack(const BasicJsonType& j)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10139,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10145,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10154,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10155,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10156,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10163,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10169,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10175,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10183,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10185,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10186,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10187,1
    - Dst: m_value::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10188,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10196,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10200,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10202,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10203,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10204,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10207,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10213,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10214,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10220,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: m_value::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10221,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10226,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10231,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10241,1
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:10245,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10247,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: front
      Src: /src/sleuthkit/tools/logicalimager/json.h:10248,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10249,1
    - Dst: nlohmann::detail::binary_writer::ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10258,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10259,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10265,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10266,1
    - Dst: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10271,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10272,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10273,1
    - Dst: first::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10274,1
    - Dst: nlohmann::detail::binary_writer::write_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:10275,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10280,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 3
    argNames:
    - ' j'
    - use_count
    - use_type
    argTypes:
    - BasicJsonType
    - bool
    - bool
    assertStmts:
    - condition: (use_count)
      pos:
        line_end: 10201
        line_start: 10201
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (use_count)
      pos:
        line_end: 10246
        line_start: 10246
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10289
      start: 10136
    functionDepth: 2
    functionLinenumber: 10136
    functionLinenumberEnd: 10289
    functionName: nlohmann::detail::binary_writer::write_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - m_value::string::c_str
    - begin
    - std::all_of
    - m_value::object::empty
    - nlohmann::detail::binary_writer::write_ubjson
    - m_value::array::size
    - m_value::object::size
    - reinterpret_cast<const CharType*>
    - write_character
    - assert
    - nlohmann::detail::binary_writer::to_char_type
    - m_value::string::size
    - m_value::array::empty
    - first::size
    - first::c_str
    - end
    - nlohmann::detail::binary_writer::ubjson_prefix
    - front
    - type
    - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    linkageType: ''
    returnType: void
    signature: "void write_ubjson(const BasicJsonType& j, const bool use_count,\n
      \                     const bool use_type, const bool add_prefix = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10302,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:10303,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10305,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10306,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10310
      start: 10300
    functionDepth: 3
    functionLinenumber: 10300
    functionLinenumberEnd: 10310
    functionName: nlohmann::detail::binary_writer::calc_bson_entry_header_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - size
    - nlohmann::detail::out_of_range::create
    - find
    - to_string
    - static_cast<typename string_t::value_type>
    - JSON_THROW
    - JSON_UNLIKELY
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_entry_header_size(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10318,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10319,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10320,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - element_type
    argTypes:
    - string_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10322
      start: 10315
    functionDepth: 1
    functionLinenumber: 10315
    functionLinenumberEnd: 10322
    functionName: nlohmann::detail::binary_writer::write_bson_entry_header
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 24
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - write_character
    - nlohmann::detail::binary_writer::to_char_type
    - c_str
    linkageType: ''
    returnType: void
    signature: "void write_bson_entry_header(const string_t& name,\n                                 const
      std::uint8_t element_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10330,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10332
      start: 10327
    functionDepth: 2
    functionLinenumber: 10327
    functionLinenumberEnd: 10332
    functionName: nlohmann::detail::binary_writer::write_bson_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::to_char_type
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_bson_boolean(const string_t& name,\n                            const
      bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10340,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10337
    functionDepth: 2
    functionLinenumber: 10337
    functionLinenumberEnd: 10342
    functionName: nlohmann::detail::binary_writer::write_bson_double
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_double(const string_t& name,\n                           const
      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10350
      start: 10347
    functionDepth: 1
    functionLinenumber: 10347
    functionLinenumberEnd: 10350
    functionName: nlohmann::detail::binary_writer::calc_bson_string_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_string_size(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10358,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10360,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10361,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:10362,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10364
      start: 10355
    functionDepth: 2
    functionLinenumber: 10355
    functionLinenumberEnd: 10364
    functionName: nlohmann::detail::binary_writer::write_bson_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - size
    - reinterpret_cast<const CharType*>
    - nlohmann::detail::binary_writer::write_number
    - c_str
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_string(const string_t& name,\n                           const
      string_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10372
      start: 10369
    functionDepth: 2
    functionLinenumber: 10369
    functionLinenumberEnd: 10372
    functionName: nlohmann::detail::binary_writer::write_bson_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    linkageType: ''
    returnType: void
    signature: void write_bson_null(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10382
      start: 10377
    functionDepth: 0
    functionLinenumber: 10377
    functionLinenumberEnd: 10382
    functionName: nlohmann::detail::binary_writer::calc_bson_integer_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_integer_size(const std::int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10392,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10393,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10397,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10400
      start: 10387
    functionDepth: 2
    functionLinenumber: 10387
    functionLinenumberEnd: 10400
    functionName: nlohmann::detail::binary_writer::write_bson_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    - static_cast<std::int64_t>
    - nlohmann::detail::binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_integer(const string_t& name,\n                            const
      std::int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10405
    functionDepth: 0
    functionLinenumber: 10405
    functionLinenumberEnd: 10410
    functionName: nlohmann::detail::binary_writer::calc_bson_unsigned_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10418,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10420,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10421,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10423,1
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10425,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10426,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10432
      start: 10415
    functionDepth: 3
    functionLinenumber: 10415
    functionLinenumberEnd: 10432
    functionName: nlohmann::detail::binary_writer::write_bson_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - static_cast<std::uint64_t>
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - JSON_THROW
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_unsigned(const string_t& name,\n                             const
      std::uint64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10440,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:10441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10442
      start: 10437
    functionDepth: 7
    functionLinenumber: 10437
    functionLinenumberEnd: 10442
    functionName: nlohmann::detail::binary_writer::write_bson_object_entry
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - nlohmann::detail::binary_writer::write_bson_object
    linkageType: ''
    returnType: void
    signature: "void write_bson_object_entry(const string_t& name,\n                                 const
      typename BasicJsonType::object_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10458
      start: 10447
    functionDepth: 5
    functionLinenumber: 10447
    functionLinenumberEnd: 10458
    functionName: nlohmann::detail::binary_writer::calc_bson_array_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - to_string
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_array_size(const typename BasicJsonType::array_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_bson_entry_header
      Src: /src/sleuthkit/tools/logicalimager/json.h:10466,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10467,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10473,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10477
      start: 10463
    functionDepth: 5
    functionLinenumber: 10463
    functionLinenumberEnd: 10477
    functionName: nlohmann::detail::binary_writer::write_bson_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_array(const string_t& name,\n                          const
      typename BasicJsonType::array_t& value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::calc_bson_entry_header_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10486,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10487,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10490,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_array_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10493,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_integer_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10502,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_unsigned_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10505,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_string_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10508,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10514
        line_start: 10514
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10519
      start: 10483
    functionDepth: 6
    functionLinenumber: 10483
    functionLinenumberEnd: 10519
    functionName: nlohmann::detail::binary_writer::calc_bson_element_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_writer::calc_bson_string_size
    - assert
    - nlohmann::detail::binary_writer::calc_bson_integer_size
    - nlohmann::detail::binary_writer::calc_bson_array_size
    - type
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - nlohmann::detail::binary_writer::calc_bson_unsigned_size
    - nlohmann::detail::binary_writer::calc_bson_entry_header_size
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t calc_bson_element_size(const string_t& name,\n            const
      BasicJsonType& j)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10531,1
    - Dst: nlohmann::detail::binary_writer::write_bson_object_entry
      Src: /src/sleuthkit/tools/logicalimager/json.h:10534,1
    - Dst: nlohmann::detail::binary_writer::write_bson_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:10537,1
    - Dst: nlohmann::detail::binary_writer::write_bson_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:10540,1
    - Dst: nlohmann::detail::binary_writer::write_bson_double
      Src: /src/sleuthkit/tools/logicalimager/json.h:10543,1
    - Dst: nlohmann::detail::binary_writer::write_bson_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:10546,1
    - Dst: nlohmann::detail::binary_writer::write_bson_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:10549,1
    - Dst: nlohmann::detail::binary_writer::write_bson_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10552,1
    - Dst: nlohmann::detail::binary_writer::write_bson_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:10555,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:10559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 10558
        line_start: 10558
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 10563
      start: 10528
    functionDepth: 4
    functionLinenumber: 10528
    functionLinenumberEnd: 10563
    functionName: nlohmann::detail::binary_writer::write_bson_element
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::binary_writer::write_bson_integer
    - nlohmann::detail::binary_writer::write_bson_unsigned
    - assert
    - nlohmann::detail::binary_writer::write_bson_boolean
    - type
    - nlohmann::detail::binary_writer::write_bson_string
    - nlohmann::detail::binary_writer::write_bson_object_entry
    - nlohmann::detail::binary_writer::write_bson_double
    - nlohmann::detail::binary_writer::write_bson_null
    - nlohmann::detail::binary_writer::write_bson_array
    linkageType: ''
    returnType: void
    signature: "void write_bson_element(const string_t& name,\n                            const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10573,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_element_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10580
      start: 10571
    functionDepth: 5
    functionLinenumber: 10571
    functionLinenumberEnd: 10580
    functionName: nlohmann::detail::binary_writer::calc_bson_object_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::accumulate
    - nlohmann::detail::binary_writer::calc_bson_element_size
    - begin
    - end
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_object_size(const typename BasicJsonType::object_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::calc_bson_object_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:10588,1
    - Dst: nlohmann::detail::binary_writer::write_bson_element
      Src: /src/sleuthkit/tools/logicalimager/json.h:10592,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10596
      start: 10586
    functionDepth: 6
    functionLinenumber: 10586
    functionLinenumberEnd: 10596
    functionName: nlohmann::detail::binary_writer::write_bson_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - write_character
    - nlohmann::detail::binary_writer::write_bson_element
    - nlohmann::detail::binary_writer::to_char_type
    - nlohmann::detail::binary_writer::write_number
    - nlohmann::detail::binary_writer::calc_bson_object_size
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: void write_bson_object(const typename BasicJsonType::object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10605
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10605
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10610
      start: 10607
    functionDepth: 1
    functionLinenumber: 10607
    functionLinenumberEnd: 10610
    functionName: nlohmann::detail::binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(double /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10619
      start: 10616
    functionDepth: 1
    functionLinenumber: 10616
    functionLinenumberEnd: 10619
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10621
    functionDepth: 1
    functionLinenumber: 10621
    functionLinenumberEnd: 10624
    functionName: nlohmann::detail::binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10638,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10641
      start: 10633
    functionDepth: 2
    functionLinenumber: 10633
    functionLinenumberEnd: 10641
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - nlohmann::detail::binary_writer::write_number
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10649,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10653,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10655,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10661,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10663,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10665,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10669,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10671,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10673,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10677,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10679,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10681,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10685,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10687,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10693
      start: 10646
    functionDepth: 3
    functionLinenumber: 10646
    functionLinenumberEnd: 10693
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - static_cast<std::int64_t>
    - nlohmann::detail::out_of_range::create
    - write_character
    - static_cast<std::uint64_t>
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10706,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10708,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10710,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10714,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10716,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10722,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: static_cast<std::int16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10724,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10730,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10732,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10738,1
    - Dst: nlohmann::detail::binary_writer::write_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: static_cast<std::int64_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10740,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:10745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - n
    - add_prefix
    argTypes:
    - NumberType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10748
      start: 10699
    functionDepth: 3
    functionLinenumber: 10699
    functionLinenumberEnd: 10748
    functionName: nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - static_cast<std::int64_t>
    - static_cast<std::int8_t>
    - write_character
    - nlohmann::detail::out_of_range::create
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - nlohmann::detail::binary_writer::write_number
    - static_cast<std::int16_t>
    - static_cast<std::uint8_t>
    - JSON_THROW
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:10761,1
    - Dst: nlohmann::detail::binary_writer::get_ubjson_float_prefix
      Src: /src/sleuthkit/tools/logicalimager/json.h:10814,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10759
    functionDepth: 1
    functionLinenumber: 10759
    functionLinenumberEnd: 10828
    functionName: nlohmann::detail::binary_writer::ubjson_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::binary_writer::get_ubjson_float_prefix
    - type
    linkageType: ''
    returnType: CharType
    signature: CharType ubjson_prefix(const BasicJsonType& j) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10833
      start: 10830
    functionDepth: 0
    functionLinenumber: 10830
    functionLinenumberEnd: 10833
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10838
      start: 10835
    functionDepth: 0
    functionLinenumber: 10835
    functionLinenumberEnd: 10838
    functionName: nlohmann::detail::binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10860,1
    - Dst: std::reverse
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: std::array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:10866,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    - Dst: std::array::data
      Src: /src/sleuthkit/tools/logicalimager/json.h:10869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10870
      start: 10856
    functionDepth: 1
    functionLinenumber: 10856
    functionLinenumberEnd: 10870
    functionName: nlohmann::detail::binary_writer::write_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 44
    functionsReached:
    - write_characters
    - std::memcpy
    - std::reverse
    - std::array::begin
    - std::array::data
    - std::array::end
    linkageType: ''
    returnType: void
    signature: void write_number(const NumberType n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/sleuthkit/tools/logicalimager/json.h:10881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10882
      start: 10879
    functionDepth: 0
    functionLinenumber: 10879
    functionLinenumberEnd: 10882
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 64
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10893
      start: 10886
    functionDepth: 0
    functionLinenumber: 10886
    functionLinenumberEnd: 10893
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 64
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10900
      start: 10897
    functionDepth: 0
    functionLinenumber: 10897
    functionLinenumberEnd: 10900
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - InputCharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10911
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10911
    functionName: nlohmann::detail::binary_writer::to_char_type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(InputCharType x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11995,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::signbit
      Src: /src/sleuthkit/tools/logicalimager/json.h:11999,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12014,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:12022,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12024,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12031,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12032,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12033,1
    - Dst: nlohmann::detail::dtoa_impl::format_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - first
    - last
    - value
    argTypes:
    - char*
    - char*
    - FloatType
    assertStmts:
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12013
        line_start: 12013
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::isfinite(value))
      pos:
        line_end: 11995
        line_start: 11995
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len <= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12023
        line_start: 12023
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= kMaxExp + 2)
      pos:
        line_end: 12030
        line_start: 12030
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12031
        line_start: 12031
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10 + 6)
      pos:
        line_end: 12032
        line_start: 12032
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12036
      start: 11993
    functionDepth: 3
    functionLinenumber: 11993
    functionLinenumberEnd: 12036
    functionName: nlohmann::detail::to_chars
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::isfinite
    - static_cast<void>
    - assert
    - nlohmann::detail::dtoa_impl::format_buffer
    - std::signbit
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: char
    signature: char * to_chars(char* first, const char* last, FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11995,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::signbit
      Src: /src/sleuthkit/tools/logicalimager/json.h:11999,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12014,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:12022,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12024,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12031,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12032,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12033,1
    - Dst: nlohmann::detail::dtoa_impl::format_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - first
    - last
    - value
    argTypes:
    - char*
    - char*
    - FloatType
    assertStmts:
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12013
        line_start: 12013
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::isfinite(value))
      pos:
        line_end: 11995
        line_start: 11995
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len <= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12023
        line_start: 12023
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= kMaxExp + 2)
      pos:
        line_end: 12030
        line_start: 12030
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12031
        line_start: 12031
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10 + 6)
      pos:
        line_end: 12032
        line_start: 12032
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12036
      start: 11993
    functionDepth: 3
    functionLinenumber: 11993
    functionLinenumberEnd: 12036
    functionName: nlohmann::detail::to_chars
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::isfinite
    - static_cast<void>
    - assert
    - nlohmann::detail::dtoa_impl::format_buffer
    - std::signbit
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: char
    signature: char * to_chars(char* first, const char* last, FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11995,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::signbit
      Src: /src/sleuthkit/tools/logicalimager/json.h:11999,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12014,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:12022,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12024,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12031,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12032,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12033,1
    - Dst: nlohmann::detail::dtoa_impl::format_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - first
    - last
    - value
    argTypes:
    - char*
    - char*
    - FloatType
    assertStmts:
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12013
        line_start: 12013
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::isfinite(value))
      pos:
        line_end: 11995
        line_start: 11995
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len <= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12023
        line_start: 12023
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= kMaxExp + 2)
      pos:
        line_end: 12030
        line_start: 12030
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12031
        line_start: 12031
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10 + 6)
      pos:
        line_end: 12032
        line_start: 12032
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12036
      start: 11993
    functionDepth: 3
    functionLinenumber: 11993
    functionLinenumberEnd: 12036
    functionName: nlohmann::detail::to_chars
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::isfinite
    - static_cast<void>
    - assert
    - nlohmann::detail::dtoa_impl::format_buffer
    - std::signbit
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: char
    signature: char * to_chars(char* first, const char* last, FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 9
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/sleuthkit/tools/logicalimager/json.h:10987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10989
      start: 10982
    functionDepth: 0
    functionLinenumber: 10982
    functionLinenumberEnd: 10989
    functionName: nlohmann::detail::dtoa_impl::reinterpret_bits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10998
      start: 10998
    functionDepth: 0
    functionLinenumber: 10998
    functionLinenumberEnd: 10998
    functionName: nlohmann::detail::dtoa_impl::diyfp
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11006,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts:
    - condition: (x.e == y.e)
      pos:
        line_end: 11005
        line_start: 11005
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (x.f >= y.f)
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11010
      start: 11004
    functionDepth: 0
    functionLinenumber: 11004
    functionLinenumberEnd: 11010
    functionName: nlohmann::detail::dtoa_impl::sub
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11075
      start: 11016
    functionDepth: 0
    functionLinenumber: 11016
    functionLinenumberEnd: 11075
    functionName: nlohmann::detail::dtoa_impl::mul
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts:
    - condition: (x.f != 0)
      pos:
        line_end: 11082
        line_start: 11082
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11092
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11092
    functionName: nlohmann::detail::dtoa_impl::normalize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11102,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts:
    - condition: (delta >= 0)
      pos:
        line_end: 11101
        line_start: 11101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (((x.f << delta) >> delta) == x.f)
      pos:
        line_end: 11102
        line_start: 11102
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11106
      start: 11098
    functionDepth: 0
    functionLinenumber: 11098
    functionLinenumberEnd: 11106
    functionName: nlohmann::detail::dtoa_impl::normalize_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11125,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11126,1
    - Dst: nlohmann::detail::dtoa_impl::reinterpret_bits
      Src: /src/sleuthkit/tools/logicalimager/json.h:11145,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11151,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11152,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11176,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11178,1
    - Dst: nlohmann::detail::dtoa_impl::diyfp
      Src: /src/sleuthkit/tools/logicalimager/json.h:11179,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11182,1
    - Dst: nlohmann::detail::dtoa_impl::normalize_to
      Src: /src/sleuthkit/tools/logicalimager/json.h:11185,1
    - Dst: nlohmann::detail::dtoa_impl::normalize
      Src: /src/sleuthkit/tools/logicalimager/json.h:11187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11124
        line_start: 11124
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11188
      start: 11123
    functionDepth: 1
    functionLinenumber: 11123
    functionLinenumberEnd: 11188
    functionName: nlohmann::detail::dtoa_impl::compute_boundaries
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - nlohmann::detail::dtoa_impl::reinterpret_bits
    - std::isfinite
    - assert
    - nlohmann::detail::dtoa_impl::normalize
    - nlohmann::detail::dtoa_impl::normalize_to
    - static_cast<int>
    - nlohmann::detail::dtoa_impl::diyfp
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11406,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11407,1
    - Dst: static_cast<int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11409,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11412,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: std::array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:11413,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11415,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11416,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts:
    - condition: (e >= -1500)
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <=  1500)
      pos:
        line_end: 11406
        line_start: 11406
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (static_cast<std::size_t>(index) < kCachedPowers.size())
      pos:
        line_end: 11412
        line_start: 11412
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (index >= 0)
      pos:
        line_end: 11411
        line_start: 11411
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kAlpha <= cached.e + e + 64)
      pos:
        line_end: 11415
        line_start: 11415
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (kGamma >= cached.e + e + 64)
      pos:
        line_end: 11416
        line_start: 11416
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11420
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11420
    functionName: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - static_cast<int>
    - assert
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11480
      start: 11426
    functionDepth: 0
    functionLinenumber: 11426
    functionLinenumberEnd: 11480
    functionName: nlohmann::detail::dtoa_impl::find_largest_pow10
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11485,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11486,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11487,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11488,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 11484
        line_start: 11484
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (dist <= delta)
      pos:
        line_end: 11485
        line_start: 11485
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (buf[len - 1] != '0')
      pos:
        line_end: 11512
        line_start: 11512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (ten_k > 0)
      pos:
        line_end: 11487
        line_start: 11487
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (rest <= delta)
      pos:
        line_end: 11486
        line_start: 11486
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11517
      start: 11482
    functionDepth: 0
    functionLinenumber: 11482
    functionLinenumberEnd: 11517
    functionName: nlohmann::detail::dtoa_impl::grisu2_round
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11541,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11542,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11544,1
    - Dst: nlohmann::detail::dtoa_impl::sub
      Src: /src/sleuthkit/tools/logicalimager/json.h:11545,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11556,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11563,1
    - Dst: nlohmann::detail::dtoa_impl::find_largest_pow10
      Src: /src/sleuthkit/tools/logicalimager/json.h:11566,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11599,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11600,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11636,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11686,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11697,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11706,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11707,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_round
      Src: /src/sleuthkit/tools/logicalimager/json.h:11741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (M_plus.e >= kAlpha)
      pos:
        line_end: 11540
        line_start: 11540
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (M_plus.e <= kGamma)
      pos:
        line_end: 11541
        line_start: 11541
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p1 > 0)
      pos:
        line_end: 11562
        line_start: 11562
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10)
      pos:
        line_end: 11696
        line_start: 11696
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (p2 > delta)
      pos:
        line_end: 11685
        line_start: 11685
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (d <= 9)
      pos:
        line_end: 11705
        line_start: 11705
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11756
      start: 11523
    functionDepth: 1
    functionLinenumber: 11523
    functionLinenumberEnd: 11756
    functionName: nlohmann::detail::dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - nlohmann::detail::dtoa_impl::sub
    - nlohmann::detail::dtoa_impl::find_largest_pow10
    - nlohmann::detail::dtoa_impl::grisu2_round
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11766,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11767,1
    - Dst: nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11778,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11783,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11784,1
    - Dst: nlohmann::detail::dtoa_impl::mul
      Src: /src/sleuthkit/tools/logicalimager/json.h:11785,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2_digit_gen
      Src: /src/sleuthkit/tools/logicalimager/json.h:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts:
    - condition: (m_plus.e == m_minus.e)
      pos:
        line_end: 11765
        line_start: 11765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_plus.e == v.e)
      pos:
        line_end: 11766
        line_start: 11766
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11814
      start: 11763
    functionDepth: 2
    functionLinenumber: 11763
    functionLinenumberEnd: 11814
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
    - nlohmann::detail::dtoa_impl::mul
    - assert
    - nlohmann::detail::dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11827,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11828,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: static_cast<double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11847,1
    - Dst: nlohmann::detail::dtoa_impl::compute_boundaries
      Src: /src/sleuthkit/tools/logicalimager/json.h:11849,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:11852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts:
    - condition: (std::isfinite(value))
      pos:
        line_end: 11826
        line_start: 11826
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (value > 0)
      pos:
        line_end: 11827
        line_start: 11827
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11853
      start: 11822
    functionDepth: 2
    functionLinenumber: 11822
    functionLinenumberEnd: 11853
    functionName: nlohmann::detail::dtoa_impl::grisu2
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 11
    functionsReached:
    - std::isfinite
    - static_cast<double>
    - assert
    - nlohmann::detail::dtoa_impl::compute_boundaries
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: void
    signature: void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11862,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11863,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11875,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11881,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11885,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11887,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11891,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11893,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (e > -1000)
      pos:
        line_end: 11861
        line_start: 11861
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (e <  1000)
      pos:
        line_end: 11862
        line_start: 11862
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11899
      start: 11860
    functionDepth: 0
    functionLinenumber: 11860
    functionLinenumberEnd: 11899
    functionName: nlohmann::detail::dtoa_impl::append_exponent
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - static_cast<std::uint32_t>
    - assert
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11913,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11914,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11928,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11940,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11942,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11952,1
    - Dst: std::memset
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11955,1
    - Dst: std::memmove
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11971,1
    - Dst: nlohmann::detail::dtoa_impl::append_exponent
      Src: /src/sleuthkit/tools/logicalimager/json.h:11977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (min_exp < 0)
      pos:
        line_end: 11912
        line_start: 11912
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (max_exp > 0)
      pos:
        line_end: 11913
        line_start: 11913
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (k > n)
      pos:
        line_end: 11939
        line_start: 11939
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 11978
      start: 11910
    functionDepth: 1
    functionLinenumber: 11910
    functionLinenumberEnd: 11978
    functionName: nlohmann::detail::dtoa_impl::format_buffer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - assert
    - nlohmann::detail::dtoa_impl::append_exponent
    - std::memmove
    - static_cast<size_t>
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/sleuthkit/tools/logicalimager/json.h:11995,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:11996,1
    - Dst: std::signbit
      Src: /src/sleuthkit/tools/logicalimager/json.h:11999,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12014,1
    - Dst: nlohmann::detail::dtoa_impl::grisu2
      Src: /src/sleuthkit/tools/logicalimager/json.h:12022,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12024,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12031,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12032,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12033,1
    - Dst: nlohmann::detail::dtoa_impl::format_buffer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - first
    - last
    - value
    argTypes:
    - char*
    - char*
    - FloatType
    assertStmts:
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12013
        line_start: 12013
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::isfinite(value))
      pos:
        line_end: 11995
        line_start: 11995
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len <= std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12023
        line_start: 12023
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= kMaxExp + 2)
      pos:
        line_end: 12030
        line_start: 12030
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10)
      pos:
        line_end: 12031
        line_start: 12031
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last - first >= std::numeric_limits<FloatType>::max_digits10 + 6)
      pos:
        line_end: 12032
        line_start: 12032
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12036
      start: 11993
    functionDepth: 3
    functionLinenumber: 11993
    functionLinenumberEnd: 12036
    functionName: nlohmann::detail::to_chars
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::isfinite
    - static_cast<void>
    - assert
    - nlohmann::detail::dtoa_impl::format_buffer
    - std::signbit
    - nlohmann::detail::dtoa_impl::grisu2
    linkageType: ''
    returnType: char
    signature: char * to_chars(char* first, const char* last, FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:12088,1
    - Dst: std::localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:12089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ichar
    argTypes:
    - output_adapter_t<char>
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12095
      start: 12086
    functionDepth: 0
    functionLinenumber: 12086
    functionLinenumberEnd: 12095
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::localeconv
    linkageType: ''
    returnType: void
    signature: "void serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t
      error_handler_ = error_handler_t::strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12098
      start: 12098
    functionDepth: 0
    functionLinenumber: 12098
    functionLinenumberEnd: 12098
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12099
      start: 12099
    functionDepth: 0
    functionLinenumber: 12099
    functionLinenumberEnd: 12099
    functionName: '& operator=(const serializer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12100
      start: 12100
    functionDepth: 0
    functionLinenumber: 12100
    functionLinenumberEnd: 12100
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12101
    functionDepth: 0
    functionLinenumber: 12101
    functionLinenumberEnd: 12101
    functionName: '& operator=(serializer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12102
      start: 12102
    functionDepth: 0
    functionLinenumber: 12102
    functionLinenumberEnd: 12102
    functionName: ~serializer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~serializer()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12130,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12132,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12138,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12148,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12149,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12152,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12153,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12154,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12155,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12156,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12163,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12164,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12165,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12166,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12168,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12170,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12174,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12177,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12178,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12180,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12181,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12182,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12183,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12184,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12190,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12191,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12192,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12193,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12195,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12203,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12205,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12211,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12221,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12222,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12225,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12226,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12234,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12236,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12240,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12243,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12244,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12246,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12247,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12254,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12262,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12263,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12264,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12272,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12276,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12283,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12289,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12295,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12301,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 119
    argCount: 4
    argNames:
    - ' val'
    - pretty_print
    - ensure_ascii
    - indent_step
    argTypes:
    - BasicJsonType
    - bool
    - bool
    - unsigned int
    assertStmts:
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12229
        line_start: 12229
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12250
        line_start: 12250
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12160
        line_start: 12160
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12188
        line_start: 12188
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12311
        line_start: 12311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12159
        line_start: 12159
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12187
        line_start: 12187
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12314
      start: 12121
    functionDepth: 1
    functionLinenumber: 12121
    functionLinenumberEnd: 12314
    functionName: nlohmann::detail::serializer::dump
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - m_value::object::cbegin
    - m_value::array::cbegin
    - m_value::array::back
    - JSON_UNLIKELY
    - m_value::object::cend
    - resize
    - m_value::object::empty
    - m_value::array::cend
    - nlohmann::detail::serializer::dump_float
    - std::next
    - m_value::object::size
    - assert
    - write_character
    - m_value::array::empty
    - c_str
    - nlohmann::detail::serializer::dump_escaped
    - size
    - nlohmann::detail::serializer::dump
    - nlohmann::detail::serializer::dump_integer
    linkageType: ''
    returnType: void
    signature: "void dump(const BasicJsonType& val, const bool pretty_print,\n              const
      bool ensure_ascii,\n              const unsigned int indent_step,\n              const
      unsigned int current_indent = 0)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12341,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12343,1
    - Dst: nlohmann::detail::serializer::decode
      Src: /src/sleuthkit/tools/logicalimager/json.h:12345,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12409,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12414,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12415,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12416,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12433,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12452,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12486,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12487,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12488,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12494,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12511,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12530,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12564,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12568,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12574,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 139
    argCount: 2
    argNames:
    - ' s'
    - ensure_ascii
    argTypes:
    - string_t
    - bool
    assertStmts:
    - condition: (false)
      pos:
        line_end: 12510
        line_start: 12510
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12573
        line_start: 12573
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12577
      start: 12331
    functionDepth: 3
    functionLinenumber: 12331
    functionLinenumberEnd: 12577
    functionName: nlohmann::detail::serializer::dump_escaped
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - size
    - assert
    - back
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - JSON_LIKELY
    - static_cast<uint8_t>
    - nlohmann::detail::serializer::decode
    - nlohmann::detail::type_error::create
    - static_cast<std::uint8_t>
    - data
    - JSON_THROW
    - static_cast<std::uint16_t>
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dump_escaped(const string_t& s, const bool ensure_ascii)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12611
      start: 12587
    functionDepth: 0
    functionLinenumber: 12587
    functionLinenumberEnd: 12611
    functionName: nlohmann::detail::serializer::count_digits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count_digits(number_unsigned_t x) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12647,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12652,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: std::abs
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: static_cast<std::intmax_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12665,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12669,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12670,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12684,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12692,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12698,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts:
    - condition: (n_chars < number_buffer.size() - 1)
      pos:
        line_end: 12673
        line_start: 12673
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12702
      start: 12626
    functionDepth: 1
    functionLinenumber: 12626
    functionLinenumberEnd: 12702
    functionName: nlohmann::detail::serializer::dump_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - write_characters
    - static_cast<std::intmax_t>
    - assert
    - write_character
    - size
    - begin
    - std::abs
    - nlohmann::detail::serializer::count_digits
    - static_cast<number_unsigned_t>
    - data
    - static_cast<unsigned>
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void dump_integer(NumberType x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:12715,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12717,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    - Dst: std::integral_constant<bool, is_ieee_single_or_double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12731
      start: 12712
    functionDepth: 1
    functionLinenumber: 12712
    functionLinenumberEnd: 12731
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - std::isfinite
    - nlohmann::detail::serializer::dump_float
    - std::integral_constant<bool, is_ieee_single_or_double>
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12735,1
    - Dst: nlohmann::detail::to_chars
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12739
      start: 12733
    functionDepth: 4
    functionLinenumber: 12733
    functionLinenumberEnd: 12739
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - size
    - nlohmann::detail::to_chars
    - static_cast<size_t>
    - data
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12750,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12758,1
    - Dst: std::fill
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12761,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12768,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: std::none_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts:
    - condition: (static_cast<std::size_t>(len) < number_buffer.size())
      pos:
        line_end: 12751
        line_start: 12751
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len > 0)
      pos:
        line_end: 12749
        line_start: 12749
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: ((end - number_buffer.begin()) <= len)
      pos:
        line_end: 12759
        line_start: 12759
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12788
      start: 12741
    functionDepth: 1
    functionLinenumber: 12741
    functionLinenumberEnd: 12788
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - std::fill
    - size
    - assert
    - std::none_of
    - begin
    - find
    - std::remove
    - data
    - static_cast<std::size_t>
    - end
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - ' codep'
    - byte
    argTypes:
    - std::uint8_t
    - std::uint32_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12841
      start: 12811
    functionDepth: 0
    functionLinenumber: 12811
    functionLinenumberEnd: 12841
    functionName: nlohmann::detail::serializer::decode
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const
      std::uint8_t byte) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:12088,1
    - Dst: std::localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:12089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ichar
    argTypes:
    - output_adapter_t<char>
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12095
      start: 12086
    functionDepth: 0
    functionLinenumber: 12086
    functionLinenumberEnd: 12095
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::localeconv
    linkageType: ''
    returnType: void
    signature: "void serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t
      error_handler_ = error_handler_t::strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12098
      start: 12098
    functionDepth: 0
    functionLinenumber: 12098
    functionLinenumberEnd: 12098
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12099
      start: 12099
    functionDepth: 0
    functionLinenumber: 12099
    functionLinenumberEnd: 12099
    functionName: '& operator=(const serializer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12100
      start: 12100
    functionDepth: 0
    functionLinenumber: 12100
    functionLinenumberEnd: 12100
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12101
    functionDepth: 0
    functionLinenumber: 12101
    functionLinenumberEnd: 12101
    functionName: '& operator=(serializer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12102
      start: 12102
    functionDepth: 0
    functionLinenumber: 12102
    functionLinenumberEnd: 12102
    functionName: ~serializer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~serializer()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12130,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12132,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12138,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12148,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12149,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12152,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12153,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12154,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12155,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12156,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12163,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12164,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12165,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12166,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12168,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12170,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12174,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12177,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12178,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12180,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12181,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12182,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12183,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12184,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12190,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12191,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12192,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12193,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12195,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12203,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12205,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12211,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12221,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12222,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12225,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12226,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12234,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12236,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12240,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12243,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12244,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12246,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12247,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12254,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12262,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12263,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12264,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12272,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12276,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12283,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12289,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12295,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12301,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 119
    argCount: 4
    argNames:
    - ' val'
    - pretty_print
    - ensure_ascii
    - indent_step
    argTypes:
    - BasicJsonType
    - bool
    - bool
    - unsigned int
    assertStmts:
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12229
        line_start: 12229
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12250
        line_start: 12250
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12160
        line_start: 12160
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12188
        line_start: 12188
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12311
        line_start: 12311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12159
        line_start: 12159
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12187
        line_start: 12187
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12314
      start: 12121
    functionDepth: 4
    functionLinenumber: 12121
    functionLinenumberEnd: 12314
    functionName: nlohmann::detail::serializer::dump
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - m_value::object::cbegin
    - m_value::array::cbegin
    - m_value::array::back
    - JSON_UNLIKELY
    - m_value::object::cend
    - resize
    - m_value::object::empty
    - m_value::array::cend
    - nlohmann::detail::serializer::dump_float
    - std::next
    - m_value::object::size
    - assert
    - write_character
    - m_value::array::empty
    - c_str
    - nlohmann::detail::serializer::dump_escaped
    - size
    - nlohmann::detail::serializer::dump
    - nlohmann::detail::serializer::dump_integer
    linkageType: ''
    returnType: void
    signature: "void dump(const BasicJsonType& val, const bool pretty_print,\n              const
      bool ensure_ascii,\n              const unsigned int indent_step,\n              const
      unsigned int current_indent = 0)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12341,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12343,1
    - Dst: nlohmann::detail::serializer::decode
      Src: /src/sleuthkit/tools/logicalimager/json.h:12345,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12409,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12414,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12415,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12416,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12433,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12452,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12486,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12487,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12488,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12494,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12511,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12530,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12564,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12568,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12574,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 139
    argCount: 2
    argNames:
    - ' s'
    - ensure_ascii
    argTypes:
    - string_t
    - bool
    assertStmts:
    - condition: (false)
      pos:
        line_end: 12510
        line_start: 12510
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12573
        line_start: 12573
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12577
      start: 12331
    functionDepth: 3
    functionLinenumber: 12331
    functionLinenumberEnd: 12577
    functionName: nlohmann::detail::serializer::dump_escaped
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - size
    - assert
    - back
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - JSON_LIKELY
    - static_cast<uint8_t>
    - nlohmann::detail::serializer::decode
    - nlohmann::detail::type_error::create
    - static_cast<std::uint8_t>
    - data
    - JSON_THROW
    - static_cast<std::uint16_t>
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dump_escaped(const string_t& s, const bool ensure_ascii)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12611
      start: 12587
    functionDepth: 0
    functionLinenumber: 12587
    functionLinenumberEnd: 12611
    functionName: nlohmann::detail::serializer::count_digits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count_digits(number_unsigned_t x) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12647,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12652,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: std::abs
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: static_cast<std::intmax_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12665,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12669,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12670,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12684,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12692,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12698,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts:
    - condition: (n_chars < number_buffer.size() - 1)
      pos:
        line_end: 12673
        line_start: 12673
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12702
      start: 12626
    functionDepth: 1
    functionLinenumber: 12626
    functionLinenumberEnd: 12702
    functionName: nlohmann::detail::serializer::dump_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - write_characters
    - static_cast<std::intmax_t>
    - assert
    - write_character
    - size
    - begin
    - std::abs
    - nlohmann::detail::serializer::count_digits
    - static_cast<number_unsigned_t>
    - data
    - static_cast<unsigned>
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void dump_integer(NumberType x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:12715,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12717,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    - Dst: std::integral_constant<bool, is_ieee_single_or_double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12731
      start: 12712
    functionDepth: 1
    functionLinenumber: 12712
    functionLinenumberEnd: 12731
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - std::isfinite
    - nlohmann::detail::serializer::dump_float
    - std::integral_constant<bool, is_ieee_single_or_double>
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12735,1
    - Dst: nlohmann::detail::to_chars
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12739
      start: 12733
    functionDepth: 4
    functionLinenumber: 12733
    functionLinenumberEnd: 12739
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - size
    - nlohmann::detail::to_chars
    - static_cast<size_t>
    - data
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12750,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12758,1
    - Dst: std::fill
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12761,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12768,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: std::none_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts:
    - condition: (static_cast<std::size_t>(len) < number_buffer.size())
      pos:
        line_end: 12751
        line_start: 12751
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len > 0)
      pos:
        line_end: 12749
        line_start: 12749
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: ((end - number_buffer.begin()) <= len)
      pos:
        line_end: 12759
        line_start: 12759
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12788
      start: 12741
    functionDepth: 1
    functionLinenumber: 12741
    functionLinenumberEnd: 12788
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - std::fill
    - size
    - assert
    - std::none_of
    - begin
    - find
    - std::remove
    - data
    - static_cast<std::size_t>
    - end
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - ' codep'
    - byte
    argTypes:
    - std::uint8_t
    - std::uint32_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12841
      start: 12811
    functionDepth: 0
    functionLinenumber: 12811
    functionLinenumberEnd: 12841
    functionName: nlohmann::detail::serializer::decode
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const
      std::uint8_t byte) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:12088,1
    - Dst: std::localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:12089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ichar
    argTypes:
    - output_adapter_t<char>
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12095
      start: 12086
    functionDepth: 0
    functionLinenumber: 12086
    functionLinenumberEnd: 12095
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::localeconv
    linkageType: ''
    returnType: void
    signature: "void serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t
      error_handler_ = error_handler_t::strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12098
      start: 12098
    functionDepth: 0
    functionLinenumber: 12098
    functionLinenumberEnd: 12098
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12099
      start: 12099
    functionDepth: 0
    functionLinenumber: 12099
    functionLinenumberEnd: 12099
    functionName: '& operator=(const serializer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12100
      start: 12100
    functionDepth: 0
    functionLinenumber: 12100
    functionLinenumberEnd: 12100
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12101
    functionDepth: 0
    functionLinenumber: 12101
    functionLinenumberEnd: 12101
    functionName: '& operator=(serializer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12102
      start: 12102
    functionDepth: 0
    functionLinenumber: 12102
    functionLinenumberEnd: 12102
    functionName: ~serializer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~serializer()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12130,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12132,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12138,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12148,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12149,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12152,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12153,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12154,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12155,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12156,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12163,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12164,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12165,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12166,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12168,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12170,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12174,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12177,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12178,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12180,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12181,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12182,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12183,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12184,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12190,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12191,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12192,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12193,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12195,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12203,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12205,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12211,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12221,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12222,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12225,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12226,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12234,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12236,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12240,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12243,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12244,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12246,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12247,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12254,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12262,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12263,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12264,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12272,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12276,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12283,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12289,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12295,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12301,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 119
    argCount: 4
    argNames:
    - ' val'
    - pretty_print
    - ensure_ascii
    - indent_step
    argTypes:
    - BasicJsonType
    - bool
    - bool
    - unsigned int
    assertStmts:
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12229
        line_start: 12229
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12250
        line_start: 12250
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12160
        line_start: 12160
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12188
        line_start: 12188
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12311
        line_start: 12311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12159
        line_start: 12159
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12187
        line_start: 12187
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12314
      start: 12121
    functionDepth: 4
    functionLinenumber: 12121
    functionLinenumberEnd: 12314
    functionName: nlohmann::detail::serializer::dump
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - m_value::object::cbegin
    - m_value::array::cbegin
    - m_value::array::back
    - JSON_UNLIKELY
    - m_value::object::cend
    - resize
    - m_value::object::empty
    - m_value::array::cend
    - nlohmann::detail::serializer::dump_float
    - std::next
    - m_value::object::size
    - assert
    - write_character
    - m_value::array::empty
    - c_str
    - nlohmann::detail::serializer::dump_escaped
    - size
    - nlohmann::detail::serializer::dump
    - nlohmann::detail::serializer::dump_integer
    linkageType: ''
    returnType: void
    signature: "void dump(const BasicJsonType& val, const bool pretty_print,\n              const
      bool ensure_ascii,\n              const unsigned int indent_step,\n              const
      unsigned int current_indent = 0)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12341,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12343,1
    - Dst: nlohmann::detail::serializer::decode
      Src: /src/sleuthkit/tools/logicalimager/json.h:12345,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12409,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12414,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12415,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12416,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12433,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12452,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12486,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12487,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12488,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12494,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12511,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12530,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12564,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12568,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12574,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 139
    argCount: 2
    argNames:
    - ' s'
    - ensure_ascii
    argTypes:
    - string_t
    - bool
    assertStmts:
    - condition: (false)
      pos:
        line_end: 12510
        line_start: 12510
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12573
        line_start: 12573
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12577
      start: 12331
    functionDepth: 3
    functionLinenumber: 12331
    functionLinenumberEnd: 12577
    functionName: nlohmann::detail::serializer::dump_escaped
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - size
    - assert
    - back
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - JSON_LIKELY
    - static_cast<uint8_t>
    - nlohmann::detail::serializer::decode
    - nlohmann::detail::type_error::create
    - static_cast<std::uint8_t>
    - data
    - JSON_THROW
    - static_cast<std::uint16_t>
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dump_escaped(const string_t& s, const bool ensure_ascii)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12611
      start: 12587
    functionDepth: 0
    functionLinenumber: 12587
    functionLinenumberEnd: 12611
    functionName: nlohmann::detail::serializer::count_digits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count_digits(number_unsigned_t x) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12647,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12652,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: std::abs
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: static_cast<std::intmax_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12665,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12669,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12670,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12684,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12692,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12698,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts:
    - condition: (n_chars < number_buffer.size() - 1)
      pos:
        line_end: 12673
        line_start: 12673
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12702
      start: 12626
    functionDepth: 1
    functionLinenumber: 12626
    functionLinenumberEnd: 12702
    functionName: nlohmann::detail::serializer::dump_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - write_characters
    - static_cast<std::intmax_t>
    - assert
    - write_character
    - size
    - begin
    - std::abs
    - nlohmann::detail::serializer::count_digits
    - static_cast<number_unsigned_t>
    - data
    - static_cast<unsigned>
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void dump_integer(NumberType x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:12715,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12717,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    - Dst: std::integral_constant<bool, is_ieee_single_or_double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12731
      start: 12712
    functionDepth: 1
    functionLinenumber: 12712
    functionLinenumberEnd: 12731
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - write_characters
    - std::isfinite
    - nlohmann::detail::serializer::dump_float
    - std::integral_constant<bool, is_ieee_single_or_double>
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12735,1
    - Dst: nlohmann::detail::to_chars
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12739
      start: 12733
    functionDepth: 4
    functionLinenumber: 12733
    functionLinenumberEnd: 12739
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - write_characters
    - size
    - nlohmann::detail::to_chars
    - static_cast<size_t>
    - data
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12750,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12758,1
    - Dst: std::fill
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12761,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12768,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: std::none_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts:
    - condition: (static_cast<std::size_t>(len) < number_buffer.size())
      pos:
        line_end: 12751
        line_start: 12751
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len > 0)
      pos:
        line_end: 12749
        line_start: 12749
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: ((end - number_buffer.begin()) <= len)
      pos:
        line_end: 12759
        line_start: 12759
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12788
      start: 12741
    functionDepth: 1
    functionLinenumber: 12741
    functionLinenumberEnd: 12788
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - write_characters
    - std::fill
    - size
    - assert
    - std::none_of
    - begin
    - find
    - std::remove
    - data
    - static_cast<std::size_t>
    - end
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - ' codep'
    - byte
    argTypes:
    - std::uint8_t
    - std::uint32_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12841
      start: 12811
    functionDepth: 0
    functionLinenumber: 12811
    functionLinenumberEnd: 12841
    functionName: nlohmann::detail::serializer::decode
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const
      std::uint8_t byte) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:12088,1
    - Dst: std::localeconv
      Src: /src/sleuthkit/tools/logicalimager/json.h:12089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ichar
    argTypes:
    - output_adapter_t<char>
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12095
      start: 12086
    functionDepth: 0
    functionLinenumber: 12086
    functionLinenumberEnd: 12095
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::localeconv
    linkageType: ''
    returnType: void
    signature: "void serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t
      error_handler_ = error_handler_t::strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12098
      start: 12098
    functionDepth: 0
    functionLinenumber: 12098
    functionLinenumberEnd: 12098
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12099
      start: 12099
    functionDepth: 0
    functionLinenumber: 12099
    functionLinenumberEnd: 12099
    functionName: '& operator=(const serializer&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12100
      start: 12100
    functionDepth: 0
    functionLinenumber: 12100
    functionLinenumberEnd: 12100
    functionName: nlohmann::detail::serializer::serializer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12101
      start: 12101
    functionDepth: 0
    functionLinenumber: 12101
    functionLinenumberEnd: 12101
    functionName: '& operator=(serializer&&)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12102
      start: 12102
    functionDepth: 0
    functionLinenumber: 12102
    functionLinenumberEnd: 12102
    functionName: ~serializer()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~serializer()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: m_value::object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12130,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12132,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12138,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12142,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12144,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12148,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12149,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12151,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12152,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12153,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12154,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12155,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12156,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12160,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12161,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12162,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12163,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12164,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12165,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12166,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12168,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12169,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12170,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12174,1
    - Dst: m_value::object::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12177,1
    - Dst: m_value::object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12178,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12180,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12181,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12182,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12183,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12184,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12188,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: std::next
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: m_value::object::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12189,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12190,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12191,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12192,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12193,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12195,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12203,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12205,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12211,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12215,1
    - Dst: resize
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12217,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12221,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12222,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12224,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12225,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12226,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12230,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12231,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12232,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12234,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/json.h:12235,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12236,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12240,1
    - Dst: m_value::array::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12243,1
    - Dst: m_value::array::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:12244,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12246,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12247,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: m_value::array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:12251,1
    - Dst: nlohmann::detail::serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: m_value::array::back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12252,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12254,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12262,1
    - Dst: nlohmann::detail::serializer::dump_escaped
      Src: /src/sleuthkit/tools/logicalimager/json.h:12263,1
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12264,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12272,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12276,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12283,1
    - Dst: nlohmann::detail::serializer::dump_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:12289,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12295,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12301,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12307,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 119
    argCount: 4
    argNames:
    - ' val'
    - pretty_print
    - ensure_ascii
    - indent_step
    argTypes:
    - BasicJsonType
    - bool
    - bool
    - unsigned int
    assertStmts:
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12229
        line_start: 12229
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (not val.m_value.array->empty())
      pos:
        line_end: 12250
        line_start: 12250
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12160
        line_start: 12160
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (std::next(i) == val.m_value.object->cend())
      pos:
        line_end: 12188
        line_start: 12188
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12311
        line_start: 12311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12159
        line_start: 12159
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (i != val.m_value.object->cend())
      pos:
        line_end: 12187
        line_start: 12187
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12314
      start: 12121
    functionDepth: 4
    functionLinenumber: 12121
    functionLinenumberEnd: 12314
    functionName: nlohmann::detail::serializer::dump
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - m_value::object::cbegin
    - m_value::array::cbegin
    - m_value::array::back
    - JSON_UNLIKELY
    - m_value::object::cend
    - resize
    - m_value::object::empty
    - m_value::array::cend
    - nlohmann::detail::serializer::dump_float
    - std::next
    - m_value::object::size
    - assert
    - write_character
    - m_value::array::empty
    - c_str
    - nlohmann::detail::serializer::dump_escaped
    - size
    - nlohmann::detail::serializer::dump
    - nlohmann::detail::serializer::dump_integer
    linkageType: ''
    returnType: void
    signature: "void dump(const BasicJsonType& val, const bool pretty_print,\n              const
      bool ensure_ascii,\n              const unsigned int indent_step,\n              const
      unsigned int current_indent = 0)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12341,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12343,1
    - Dst: nlohmann::detail::serializer::decode
      Src: /src/sleuthkit/tools/logicalimager/json.h:12345,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12409,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12414,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12415,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12416,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12433,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12435,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12452,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:12453,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12486,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12487,1
    - Dst: nlohmann::detail::binary_writer::to_char_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:12488,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12494,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12496,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12511,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:12530,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12535,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:12546,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:12547,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12553,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12560,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12564,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12568,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12574,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 139
    argCount: 2
    argNames:
    - ' s'
    - ensure_ascii
    argTypes:
    - string_t
    - bool
    assertStmts:
    - condition: (false)
      pos:
        line_end: 12510
        line_start: 12510
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 12573
        line_start: 12573
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12577
      start: 12331
    functionDepth: 3
    functionLinenumber: 12331
    functionLinenumberEnd: 12577
    functionName: nlohmann::detail::serializer::dump_escaped
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - size
    - assert
    - back
    - nlohmann::detail::binary_writer::to_char_type
    - to_string
    - JSON_LIKELY
    - static_cast<uint8_t>
    - nlohmann::detail::serializer::decode
    - nlohmann::detail::type_error::create
    - static_cast<std::uint8_t>
    - data
    - JSON_THROW
    - static_cast<std::uint16_t>
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dump_escaped(const string_t& s, const bool ensure_ascii)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12611
      start: 12587
    functionDepth: 0
    functionLinenumber: 12587
    functionLinenumberEnd: 12611
    functionName: nlohmann::detail::serializer::count_digits
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count_digits(number_unsigned_t x) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/sleuthkit/tools/logicalimager/json.h:12647,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12652,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: std::abs
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: static_cast<std::intmax_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12662,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12665,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12669,1
    - Dst: nlohmann::detail::serializer::count_digits
      Src: /src/sleuthkit/tools/logicalimager/json.h:12670,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12674,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12684,1
    - Dst: static_cast<unsigned>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12692,1
    - Dst: static_cast<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12698,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts:
    - condition: (n_chars < number_buffer.size() - 1)
      pos:
        line_end: 12673
        line_start: 12673
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12702
      start: 12626
    functionDepth: 1
    functionLinenumber: 12626
    functionLinenumberEnd: 12702
    functionName: nlohmann::detail::serializer::dump_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - write_characters
    - static_cast<std::intmax_t>
    - assert
    - write_character
    - size
    - begin
    - std::abs
    - nlohmann::detail::serializer::count_digits
    - static_cast<number_unsigned_t>
    - data
    - static_cast<unsigned>
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void dump_integer(NumberType x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/sleuthkit/tools/logicalimager/json.h:12715,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12717,1
    - Dst: nlohmann::detail::serializer::dump_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    - Dst: std::integral_constant<bool, is_ieee_single_or_double>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12731
      start: 12712
    functionDepth: 1
    functionLinenumber: 12712
    functionLinenumberEnd: 12731
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - write_characters
    - std::isfinite
    - nlohmann::detail::serializer::dump_float
    - std::integral_constant<bool, is_ieee_single_or_double>
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12735,1
    - Dst: nlohmann::detail::to_chars
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12736,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    - Dst: static_cast<size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12739
      start: 12733
    functionDepth: 4
    functionLinenumber: 12733
    functionLinenumberEnd: 12739
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - write_characters
    - size
    - nlohmann::detail::to_chars
    - static_cast<size_t>
    - data
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12747,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12750,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:12752,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12757,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12758,1
    - Dst: std::fill
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12759,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12760,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12761,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12767,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:12768,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: data
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: static_cast<std::size_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:12774,1
    - Dst: std::none_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:12778,1
    - Dst: write_characters
      Src: /src/sleuthkit/tools/logicalimager/json.h:12786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts:
    - condition: (static_cast<std::size_t>(len) < number_buffer.size())
      pos:
        line_end: 12751
        line_start: 12751
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (len > 0)
      pos:
        line_end: 12749
        line_start: 12749
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: ((end - number_buffer.begin()) <= len)
      pos:
        line_end: 12759
        line_start: 12759
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 12788
      start: 12741
    functionDepth: 1
    functionLinenumber: 12741
    functionLinenumberEnd: 12788
    functionName: nlohmann::detail::serializer::dump_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - write_characters
    - std::fill
    - size
    - assert
    - std::none_of
    - begin
    - find
    - std::remove
    - data
    - static_cast<std::size_t>
    - end
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' state'
    - ' codep'
    - byte
    argTypes:
    - std::uint8_t
    - std::uint32_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12841
      start: 12811
    functionDepth: 0
    functionLinenumber: 12811
    functionLinenumberEnd: 12841
    functionName: nlohmann::detail::serializer::decode
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const
      std::uint8_t byte) noexcept
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: allocator_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:13094,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13132,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13133,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13134,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13172,1
    - Dst: AllocatorTraits::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13635,1
    - Dst: AllocatorTraits::allocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13637,1
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13639,1
    - Dst: std::unique_ptr::release
      Src: /src/sleuthkit/tools/logicalimager/json.h:13640,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13705,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13711,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13717,1
    - Dst: boolean_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13723,1
    - Dst: number_integer_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13729,1
    - Dst: number_unsigned_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13735,1
    - Dst: number_float_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13741,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:13754,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::detail::other_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13766,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13778,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13790,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13806,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13807,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13814,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13815,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13822,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13823,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13846,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13847,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13848,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13965,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13989,1
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:14053,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14055,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14058,1
    - Dst: nlohmann::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:14100,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: template get<other_boolean_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: template get<other_number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: template get<other_number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: template get<other_number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: template get_ref<const other_string_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: template get_ref<const other_object_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: template get_ref<const other_array_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14130,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14132,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14231,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: std::for_each
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14245,1
    - Dst: object::emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:14246,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14247,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14248,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14258,1
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14301,1
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14345,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14373,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14374,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14437,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14438,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14441,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: m_it::primitive_iterator::is_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14459,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14504,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14511,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: m_object::type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14521,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14531,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14563,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14613,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14643,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14644,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14647,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14653,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14687,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14690,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14691,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14693,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14714,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:14715,1
    - Dst: s
      Src: /src/sleuthkit/tools/logicalimager/json.h:14776,1
    - Dst: detail::output_adapter<char, string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14776,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:14780,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14780,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:14784,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 305
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_type != value_t::array or m_value.array != nullptr)
      pos:
        line_end: 13846
        line_start: 13846
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::object or m_value.object != nullptr)
      pos:
        line_end: 13845
        line_start: 13845
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 14129
        line_start: 14129
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (first.m_object != nullptr)
      pos:
        line_end: 14436
        line_start: 14436
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::string or m_value.string != nullptr)
      pos:
        line_end: 13847
        line_start: 13847
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last.m_object != nullptr)
      pos:
        line_end: 14437
        line_start: 14437
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object != nullptr)
      pos:
        line_end: 13638
        line_start: 13638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14788
      start: 12965
    functionDepth: 3
    functionLinenumber: 12965
    functionLinenumberEnd: 14788
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - boolean_t
    - AllocatorTraits::allocate
    - template get<other_number_unsigned_t>
    - begin
    - to_string
    - static_cast<unsigned int>
    - std::allocator_traits<decltype(alloc)>::deallocate
    - nlohmann::detail::other_error::create
    - std::string
    - std::unique_ptr::release
    - s
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::type
    - number_integer_t
    - std::declval<basic_json_t&>
    - nlohmann::is_string
    - std::all_of
    - nlohmann::detail::type_error::create
    - allocator_type
    - std::forward<Args>
    - template get<other_boolean_t>
    - std::unique_ptr::get
    - AllocatorTraits::deallocate
    - moved_or_copied
    - assert
    - template get<other_number_integer_t>
    - template get_ref<const other_string_t&>
    - nlohmann::detail::construct
    - number_unsigned_t
    - nlohmann::detail::to_json
    - template get_ref<const other_object_t&>
    - std::for_each
    - object::emplace
    - nlohmann::destroy
    - end
    - nlohmann::is_array
    - m_it::primitive_iterator::is_end
    - std::move
    - m_object::type_name
    - nlohmann::detail::invalid_iterator::create
    - number_float_t
    - template get<other_number_float_t>
    - dump
    - size
    - nlohmann::create
    - std::forward<CompatibleType>
    - swap
    - nlohmann::basic_json
    - nlohmann::assert_invariant
    - template get_ref<const other_array_t&>
    - detail::output_adapter<char, string_t>
    - m_it::primitive_iterator::is_begin
    - noexcept
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: NLOHMANN_BASIC_JSON_TPL_DECLARATION basic_json
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocator_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:13094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13095
      start: 13092
    functionDepth: 0
    functionLinenumber: 13092
    functionLinenumberEnd: 13095
    functionName: nlohmann::get_allocator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - allocator_type
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13132,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13133,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13134,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13177
      start: 13123
    functionDepth: 1
    functionLinenumber: 13123
    functionLinenumberEnd: 13177
    functionName: nlohmann::meta
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD meta()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AllocatorTraits::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13635,1
    - Dst: AllocatorTraits::allocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13637,1
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13639,1
    - Dst: std::unique_ptr::release
      Src: /src/sleuthkit/tools/logicalimager/json.h:13640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (object != nullptr)
      pos:
        line_end: 13638
        line_start: 13638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 13641
      start: 13624
    functionDepth: 1
    functionLinenumber: 13624
    functionLinenumberEnd: 13641
    functionName: nlohmann::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - AllocatorTraits::deallocate
    - assert
    - AllocatorTraits::allocate
    - nlohmann::detail::construct
    - std::unique_ptr::release
    - std::forward<Args>
    - std::unique_ptr::get
    linkageType: ''
    returnType: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args>"
    signature: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args> * create(Args&& ... args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13689
      start: 13689
    functionDepth: 0
    functionLinenumber: 13689
    functionLinenumberEnd: 13689
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13691
      start: 13691
    functionDepth: 0
    functionLinenumber: 13691
    functionLinenumberEnd: 13691
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(boolean_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13693
      start: 13693
    functionDepth: 0
    functionLinenumber: 13693
    functionLinenumberEnd: 13693
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_integer_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13695
      start: 13695
    functionDepth: 0
    functionLinenumber: 13695
    functionLinenumberEnd: 13695
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_unsigned_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13697
      start: 13697
    functionDepth: 0
    functionLinenumber: 13697
    functionLinenumberEnd: 13697
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_float_t v) noexcept
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13705,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13711,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13717,1
    - Dst: boolean_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13723,1
    - Dst: number_integer_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13729,1
    - Dst: number_unsigned_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13735,1
    - Dst: number_float_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13741,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:13754,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::detail::other_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13761
      start: 13699
    functionDepth: 3
    functionLinenumber: 13699
    functionLinenumberEnd: 13761
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - number_integer_t
    - nlohmann::create
    - boolean_t
    - number_unsigned_t
    - nlohmann::detail::other_error::create
    - JSON_THROW
    - JSON_UNLIKELY
    - number_float_t
    linkageType: ''
    returnType: void
    signature: void json_value(value_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13767
      start: 13764
    functionDepth: 2
    functionLinenumber: 13764
    functionLinenumberEnd: 13767
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13773
      start: 13770
    functionDepth: 2
    functionLinenumber: 13770
    functionLinenumberEnd: 13773
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(string_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13779
      start: 13776
    functionDepth: 2
    functionLinenumber: 13776
    functionLinenumberEnd: 13779
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13785
      start: 13782
    functionDepth: 2
    functionLinenumber: 13782
    functionLinenumberEnd: 13785
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(object_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13791
      start: 13788
    functionDepth: 2
    functionLinenumber: 13788
    functionLinenumberEnd: 13791
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const array_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13797
      start: 13794
    functionDepth: 2
    functionLinenumber: 13794
    functionLinenumberEnd: 13797
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(array_t&& value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13806,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13807,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13814,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13815,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13822,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13832
      start: 13799
    functionDepth: 1
    functionLinenumber: 13799
    functionLinenumberEnd: 13832
    functionName: nlohmann::destroy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - std::allocator_traits<decltype(alloc)>::deallocate
    - nlohmann::destroy
    linkageType: ''
    returnType: void
    signature: void destroy(value_t t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13846,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13847,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_type != value_t::object or m_value.object != nullptr)
      pos:
        line_end: 13845
        line_start: 13845
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::string or m_value.string != nullptr)
      pos:
        line_end: 13847
        line_start: 13847
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::array or m_value.array != nullptr)
      pos:
        line_end: 13846
        line_start: 13846
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 13849
      start: 13844
    functionDepth: 0
    functionLinenumber: 13844
    functionLinenumberEnd: 13849
    functionName: nlohmann::assert_invariant
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_invariant() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13966
      start: 13962
    functionDepth: 1
    functionLinenumber: 13962
    functionLinenumberEnd: 13966
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const value_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13990
      start: 13986
    functionDepth: 1
    functionLinenumber: 13986
    functionLinenumberEnd: 13990
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(std::nullptr_t = nullptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:14053,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14055,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - CompatibleType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14059
      start: 14053
    functionDepth: 2
    functionLinenumber: 14053
    functionLinenumberEnd: 14059
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::declval<basic_json_t&>
    - std::forward<CompatibleType>
    - nlohmann::detail::to_json
    - nlohmann::assert_invariant
    - noexcept
    linkageType: ''
    returnType: void
    signature: "void basic_json(CompatibleType && val) noexcept(noexcept(\n                JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n
      \                                          std::forward<CompatibleType>(val))))"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:14100,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: template get<other_boolean_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: template get<other_number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: template get<other_number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: template get<other_number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: template get_ref<const other_string_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: template get_ref<const other_object_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: template get_ref<const other_array_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14130,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 14129
        line_start: 14129
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14133
      start: 14090
    functionDepth: 2
    functionLinenumber: 14090
    functionLinenumberEnd: 14133
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - template get<other_number_float_t>
    - assert
    - template get<other_number_unsigned_t>
    - template get<other_number_integer_t>
    - template get_ref<const other_string_t&>
    - nlohmann::detail::to_json
    - template get_ref<const other_object_t&>
    - nlohmann::assert_invariant
    - template get_ref<const other_array_t&>
    - nlohmann::type
    - template get<other_boolean_t>
    linkageType: ''
    returnType: void
    signature: void basic_json(const BasicJsonType& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14231,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: std::for_each
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14245,1
    - Dst: object::emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:14246,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14247,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14248,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14259
      start: 14209
    functionDepth: 3
    functionLinenumber: 14209
    functionLinenumberEnd: 14259
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - moved_or_copied
    - JSON_THROW
    - size
    - nlohmann::is_string
    - std::move
    - nlohmann::create
    - std::all_of
    - initializer_list_t::begin
    - nlohmann::detail::type_error::create
    - std::for_each
    - nlohmann::assert_invariant
    - object::emplace
    - nlohmann::is_array
    - initializer_list_t::end
    - JSON_UNLIKELY
    linkageType: ''
    returnType: void
    signature: "void basic_json(initializer_list_t init,\n               bool type_deduction
      = true,\n               value_t manual_type = value_t::array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14302
      start: 14298
    functionDepth: 4
    functionLinenumber: 14298
    functionLinenumberEnd: 14302
    functionName: nlohmann::array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD array(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14346
      start: 14342
    functionDepth: 4
    functionLinenumber: 14342
    functionLinenumberEnd: 14346
    functionName: nlohmann::object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD object(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14373,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cnt
    - ' val'
    argTypes:
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14375
      start: 14370
    functionDepth: 2
    functionLinenumber: 14370
    functionLinenumberEnd: 14375
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::create
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(size_type cnt, const basic_json& val)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14437,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14438,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14441,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: InputIT::m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: InputIT::m_it::primitive_iterator::is_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14459,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14504,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14511,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: InputIT::m_object::type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14521,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIT
    - InputIT
    assertStmts:
    - condition: (first.m_object != nullptr)
      pos:
        line_end: 14436
        line_start: 14436
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last.m_object != nullptr)
      pos:
        line_end: 14437
        line_start: 14437
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14522
      start: 14435
    functionDepth: 3
    functionLinenumber: 14435
    functionLinenumberEnd: 14522
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - InputIT::m_object::type_name
    - assert
    - InputIT::m_it::primitive_iterator::is_begin
    - nlohmann::create
    - nlohmann::assert_invariant
    - InputIT::m_it::primitive_iterator::is_end
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: void
    signature: void basic_json(InputIT first, InputIT last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - detail::json_ref<basic_json>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14532
      start: 14530
    functionDepth: 0
    functionLinenumber: 14530
    functionLinenumberEnd: 14532
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - moved_or_copied
    linkageType: ''
    returnType: void
    signature: void basic_json(const detail::json_ref<basic_json>& ref)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14563,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14613,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14614
      start: 14559
    functionDepth: 1
    functionLinenumber: 14559
    functionLinenumberEnd: 14614
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const basic_json& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14643,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14644,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14647,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14654
      start: 14642
    functionDepth: 1
    functionLinenumber: 14642
    functionLinenumberEnd: 14654
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached:
    - std::move
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(basic_json&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14687,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14690,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14691,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14695
      start: 14679
    functionDepth: 0
    functionLinenumber: 14679
    functionLinenumberEnd: 14695
    functionName: "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
      and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
      and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json::assert_invariant
    - swap
    - assert_invariant
    linkageType: ''
    returnType: basic_json
    signature: "basic_json & operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
      and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
      and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14714,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:14715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14716
      start: 14712
    functionDepth: 2
    functionLinenumber: 14712
    functionLinenumberEnd: 14716
    functionName: ~basic_json() noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::assert_invariant
    - nlohmann::destroy
    linkageType: ''
    returnType: void
    signature: void ~basic_json() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14825
      start: 14822
    functionDepth: 0
    functionLinenumber: 14822
    functionLinenumberEnd: 14825
    functionName: nlohmann::type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: value_t
    signature: value_t type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14855
      start: 14852
    functionDepth: 1
    functionLinenumber: 14852
    functionLinenumberEnd: 14855
    functionName: nlohmann::is_primitive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::is_number
    - nlohmann::is_boolean
    - nlohmann::is_null
    - nlohmann::is_string
    linkageType: ''
    returnType: bool
    signature: bool is_primitive() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14881,1
    - Dst: nlohmann::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:14881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14882
      start: 14879
    functionDepth: 1
    functionLinenumber: 14879
    functionLinenumberEnd: 14882
    functionName: nlohmann::is_structured
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::is_object
    - nlohmann::is_array
    linkageType: ''
    returnType: bool
    signature: bool is_structured() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14904
      start: 14901
    functionDepth: 0
    functionLinenumber: 14901
    functionLinenumberEnd: 14904
    functionName: nlohmann::is_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_null() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14926
      start: 14923
    functionDepth: 0
    functionLinenumber: 14923
    functionLinenumberEnd: 14926
    functionName: nlohmann::is_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_boolean() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:14955,1
    - Dst: nlohmann::is_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:14955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14956
      start: 14953
    functionDepth: 1
    functionLinenumber: 14953
    functionLinenumberEnd: 14956
    functionName: nlohmann::is_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::is_number_integer
    - nlohmann::is_number_float
    linkageType: ''
    returnType: bool
    signature: bool is_number() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14985
      start: 14982
    functionDepth: 0
    functionLinenumber: 14982
    functionLinenumberEnd: 14985
    functionName: nlohmann::is_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15013
      start: 15010
    functionDepth: 0
    functionLinenumber: 15010
    functionLinenumberEnd: 15013
    functionName: nlohmann::is_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15041
      start: 15038
    functionDepth: 0
    functionLinenumber: 15038
    functionLinenumberEnd: 15041
    functionName: nlohmann::is_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15063
      start: 15060
    functionDepth: 0
    functionLinenumber: 15060
    functionLinenumberEnd: 15063
    functionName: nlohmann::is_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_object() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15085
      start: 15082
    functionDepth: 0
    functionLinenumber: 15082
    functionLinenumberEnd: 15085
    functionName: nlohmann::is_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_array() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15107
      start: 15104
    functionDepth: 0
    functionLinenumber: 15104
    functionLinenumberEnd: 15107
    functionName: nlohmann::is_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_string() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15134
      start: 15131
    functionDepth: 0
    functionLinenumber: 15131
    functionLinenumberEnd: 15134
    functionName: nlohmann::is_discarded
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_discarded() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15160
      start: 15157
    functionDepth: 0
    functionLinenumber: 15157
    functionLinenumberEnd: 15160
    functionName: operator value_t() const noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator value_t() const noexcept
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: allocator_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:13094,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13132,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13133,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13134,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13172,1
    - Dst: AllocatorTraits::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13635,1
    - Dst: AllocatorTraits::allocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13637,1
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13639,1
    - Dst: std::unique_ptr::release
      Src: /src/sleuthkit/tools/logicalimager/json.h:13640,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13705,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13711,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13717,1
    - Dst: boolean_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13723,1
    - Dst: number_integer_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13729,1
    - Dst: number_unsigned_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13735,1
    - Dst: number_float_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13741,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:13754,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::detail::other_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13766,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13778,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13790,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13806,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13807,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13814,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13815,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13822,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13823,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13846,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13847,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13848,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13965,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13989,1
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:14053,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14055,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14058,1
    - Dst: nlohmann::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:14100,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: template get<other_boolean_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: template get<other_number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: template get<other_number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: template get<other_number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: template get_ref<const other_string_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: template get_ref<const other_object_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: template get_ref<const other_array_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14130,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14132,1
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14231,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: std::for_each
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14245,1
    - Dst: object::emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:14246,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14247,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14248,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14258,1
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14301,1
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14345,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14373,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14374,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14437,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14438,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14441,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: m_it::primitive_iterator::is_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14459,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14504,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14511,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: m_object::type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14521,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14531,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14563,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14613,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14643,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14644,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14647,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14653,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14687,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14690,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14691,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14693,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14714,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:14715,1
    - Dst: s
      Src: /src/sleuthkit/tools/logicalimager/json.h:14776,1
    - Dst: detail::output_adapter<char, string_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14776,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:14780,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14780,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:14784,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 305
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_type != value_t::array or m_value.array != nullptr)
      pos:
        line_end: 13846
        line_start: 13846
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::object or m_value.object != nullptr)
      pos:
        line_end: 13845
        line_start: 13845
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (false)
      pos:
        line_end: 14129
        line_start: 14129
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (first.m_object != nullptr)
      pos:
        line_end: 14436
        line_start: 14436
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::string or m_value.string != nullptr)
      pos:
        line_end: 13847
        line_start: 13847
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last.m_object != nullptr)
      pos:
        line_end: 14437
        line_start: 14437
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (object != nullptr)
      pos:
        line_end: 13638
        line_start: 13638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14788
      start: 12965
    functionDepth: 3
    functionLinenumber: 12965
    functionLinenumberEnd: 14788
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - boolean_t
    - AllocatorTraits::allocate
    - template get<other_number_unsigned_t>
    - begin
    - to_string
    - static_cast<unsigned int>
    - std::allocator_traits<decltype(alloc)>::deallocate
    - nlohmann::detail::other_error::create
    - std::string
    - std::unique_ptr::release
    - s
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::type
    - number_integer_t
    - std::declval<basic_json_t&>
    - nlohmann::is_string
    - std::all_of
    - nlohmann::detail::type_error::create
    - allocator_type
    - std::forward<Args>
    - template get<other_boolean_t>
    - std::unique_ptr::get
    - AllocatorTraits::deallocate
    - moved_or_copied
    - assert
    - template get<other_number_integer_t>
    - template get_ref<const other_string_t&>
    - nlohmann::detail::construct
    - number_unsigned_t
    - nlohmann::detail::to_json
    - template get_ref<const other_object_t&>
    - std::for_each
    - object::emplace
    - nlohmann::destroy
    - end
    - nlohmann::is_array
    - m_it::primitive_iterator::is_end
    - std::move
    - m_object::type_name
    - nlohmann::detail::invalid_iterator::create
    - number_float_t
    - template get<other_number_float_t>
    - dump
    - size
    - nlohmann::create
    - std::forward<CompatibleType>
    - swap
    - nlohmann::basic_json
    - nlohmann::assert_invariant
    - template get_ref<const other_array_t&>
    - detail::output_adapter<char, string_t>
    - m_it::primitive_iterator::is_begin
    - noexcept
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: NLOHMANN_BASIC_JSON_TPL_DECLARATION basic_json
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocator_type
      Src: /src/sleuthkit/tools/logicalimager/json.h:13094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13095
      start: 13092
    functionDepth: 0
    functionLinenumber: 13092
    functionLinenumberEnd: 13095
    functionName: nlohmann::get_allocator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - allocator_type
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13132,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13133,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13134,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13156,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:13172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13177
      start: 13123
    functionDepth: 1
    functionLinenumber: 13123
    functionLinenumberEnd: 13177
    functionName: nlohmann::meta
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD meta()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AllocatorTraits::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13635,1
    - Dst: AllocatorTraits::allocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13637,1
    - Dst: nlohmann::detail::construct
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:13638,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13639,1
    - Dst: std::unique_ptr::release
      Src: /src/sleuthkit/tools/logicalimager/json.h:13640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (object != nullptr)
      pos:
        line_end: 13638
        line_start: 13638
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 13641
      start: 13624
    functionDepth: 1
    functionLinenumber: 13624
    functionLinenumberEnd: 13641
    functionName: nlohmann::create
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - AllocatorTraits::deallocate
    - assert
    - AllocatorTraits::allocate
    - nlohmann::detail::construct
    - std::unique_ptr::release
    - std::forward<Args>
    - std::unique_ptr::get
    linkageType: ''
    returnType: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args>"
    signature: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args> * create(Args&& ... args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13689
      start: 13689
    functionDepth: 0
    functionLinenumber: 13689
    functionLinenumberEnd: 13689
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13691
      start: 13691
    functionDepth: 0
    functionLinenumber: 13691
    functionLinenumberEnd: 13691
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(boolean_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13693
      start: 13693
    functionDepth: 0
    functionLinenumber: 13693
    functionLinenumberEnd: 13693
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_integer_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13695
      start: 13695
    functionDepth: 0
    functionLinenumber: 13695
    functionLinenumberEnd: 13695
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_unsigned_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13697
      start: 13697
    functionDepth: 0
    functionLinenumber: 13697
    functionLinenumberEnd: 13697
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_float_t v) noexcept
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13705,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13711,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13717,1
    - Dst: boolean_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13723,1
    - Dst: number_integer_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13729,1
    - Dst: number_unsigned_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13735,1
    - Dst: number_float_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:13741,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:13754,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    - Dst: nlohmann::detail::other_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13756,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13761
      start: 13699
    functionDepth: 3
    functionLinenumber: 13699
    functionLinenumberEnd: 13761
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - number_integer_t
    - nlohmann::create
    - boolean_t
    - number_unsigned_t
    - nlohmann::detail::other_error::create
    - JSON_THROW
    - JSON_UNLIKELY
    - number_float_t
    linkageType: ''
    returnType: void
    signature: void json_value(value_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13767
      start: 13764
    functionDepth: 2
    functionLinenumber: 13764
    functionLinenumberEnd: 13767
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13773
      start: 13770
    functionDepth: 2
    functionLinenumber: 13770
    functionLinenumberEnd: 13773
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(string_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13779
      start: 13776
    functionDepth: 2
    functionLinenumber: 13776
    functionLinenumberEnd: 13779
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13785
      start: 13782
    functionDepth: 2
    functionLinenumber: 13782
    functionLinenumberEnd: 13785
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(object_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13791
      start: 13788
    functionDepth: 2
    functionLinenumber: 13788
    functionLinenumberEnd: 13791
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    linkageType: ''
    returnType: void
    signature: void json_value(const array_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:13796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13797
      start: 13794
    functionDepth: 2
    functionLinenumber: 13794
    functionLinenumberEnd: 13797
    functionName: nlohmann::json_value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(array_t&& value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13806,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13807,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13814,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13815,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:13822,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:13823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13832
      start: 13799
    functionDepth: 1
    functionLinenumber: 13799
    functionLinenumberEnd: 13832
    functionName: nlohmann::destroy
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::allocator_traits<decltype(alloc)>::deallocate
    - nlohmann::destroy
    linkageType: ''
    returnType: void
    signature: void destroy(value_t t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13846,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13847,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:13848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_type != value_t::object or m_value.object != nullptr)
      pos:
        line_end: 13845
        line_start: 13845
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::string or m_value.string != nullptr)
      pos:
        line_end: 13847
        line_start: 13847
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (m_type != value_t::array or m_value.array != nullptr)
      pos:
        line_end: 13846
        line_start: 13846
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 13849
      start: 13844
    functionDepth: 0
    functionLinenumber: 13844
    functionLinenumberEnd: 13849
    functionName: nlohmann::assert_invariant
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 12
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_invariant() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13966
      start: 13962
    functionDepth: 1
    functionLinenumber: 13962
    functionLinenumberEnd: 13966
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const value_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:13989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13990
      start: 13986
    functionDepth: 1
    functionLinenumber: 13986
    functionLinenumberEnd: 13990
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(std::nullptr_t = nullptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:14053,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14054,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14055,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: std::forward<CompatibleType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14057,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - CompatibleType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14059
      start: 14053
    functionDepth: 2
    functionLinenumber: 14053
    functionLinenumberEnd: 14059
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - std::declval<basic_json_t&>
    - std::forward<CompatibleType>
    - nlohmann::detail::to_json
    - nlohmann::assert_invariant
    - noexcept
    linkageType: ''
    returnType: void
    signature: "void basic_json(CompatibleType && val) noexcept(noexcept(\n                JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n
      \                                          std::forward<CompatibleType>(val))))"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:14100,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: template get<other_boolean_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14103,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: template get<other_number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14106,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: template get<other_number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14109,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: template get<other_number_unsigned_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14112,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: template get_ref<const other_string_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14115,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: template get_ref<const other_object_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14118,1
    - Dst: nlohmann::detail::to_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: template get_ref<const other_array_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:14121,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14130,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - BasicJsonType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 14129
        line_start: 14129
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14133
      start: 14090
    functionDepth: 2
    functionLinenumber: 14090
    functionLinenumberEnd: 14133
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - template get<other_number_float_t>
    - assert
    - template get<other_number_unsigned_t>
    - template get<other_number_integer_t>
    - template get_ref<const other_string_t&>
    - nlohmann::detail::to_json
    - template get_ref<const other_object_t&>
    - nlohmann::assert_invariant
    - template get_ref<const other_array_t&>
    - nlohmann::type
    - template get<other_boolean_t>
    linkageType: ''
    returnType: void
    signature: void basic_json(const BasicJsonType& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14215,1
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14218,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14231,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14233,1
    - Dst: std::for_each
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14243,1
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14245,1
    - Dst: object::emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:14246,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14247,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14248,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14255,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14259
      start: 14209
    functionDepth: 3
    functionLinenumber: 14209
    functionLinenumberEnd: 14259
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - moved_or_copied
    - JSON_THROW
    - size
    - nlohmann::is_string
    - std::move
    - nlohmann::create
    - std::all_of
    - initializer_list_t::begin
    - nlohmann::detail::type_error::create
    - std::for_each
    - nlohmann::assert_invariant
    - object::emplace
    - nlohmann::is_array
    - initializer_list_t::end
    - JSON_UNLIKELY
    linkageType: ''
    returnType: void
    signature: "void basic_json(initializer_list_t init,\n               bool type_deduction
      = true,\n               value_t manual_type = value_t::array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14302
      start: 14298
    functionDepth: 4
    functionLinenumber: 14298
    functionLinenumberEnd: 14302
    functionName: nlohmann::array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD array(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:14345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14346
      start: 14342
    functionDepth: 4
    functionLinenumber: 14342
    functionLinenumberEnd: 14346
    functionName: nlohmann::object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: JSON_NODISCARD object(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14373,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cnt
    - ' val'
    argTypes:
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14375
      start: 14370
    functionDepth: 2
    functionLinenumber: 14370
    functionLinenumberEnd: 14375
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::create
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(size_type cnt, const basic_json& val)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14437,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:14438,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14441,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14443,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: InputIT::m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:14458,1
    - Dst: InputIT::m_it::primitive_iterator::is_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:14459,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14461,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14504,1
    - Dst: nlohmann::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14511,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:14517,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: InputIT::m_object::type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:14518,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14521,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIT
    - InputIT
    assertStmts:
    - condition: (first.m_object != nullptr)
      pos:
        line_end: 14436
        line_start: 14436
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - condition: (last.m_object != nullptr)
      pos:
        line_end: 14437
        line_start: 14437
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 14522
      start: 14435
    functionDepth: 3
    functionLinenumber: 14435
    functionLinenumberEnd: 14522
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - InputIT::m_object::type_name
    - assert
    - InputIT::m_it::primitive_iterator::is_begin
    - nlohmann::create
    - nlohmann::assert_invariant
    - InputIT::m_it::primitive_iterator::is_end
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    linkageType: ''
    returnType: void
    signature: void basic_json(InputIT first, InputIT last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: moved_or_copied
      Src: /src/sleuthkit/tools/logicalimager/json.h:14531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - detail::json_ref<basic_json>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14532
      start: 14530
    functionDepth: 0
    functionLinenumber: 14530
    functionLinenumberEnd: 14532
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - moved_or_copied
    linkageType: ''
    returnType: void
    signature: void basic_json(const detail::json_ref<basic_json>& ref)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14563,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14613,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14614
      start: 14559
    functionDepth: 1
    functionLinenumber: 14559
    functionLinenumberEnd: 14614
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const basic_json& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14643,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:14644,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14647,1
    - Dst: nlohmann::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14654
      start: 14642
    functionDepth: 1
    functionLinenumber: 14642
    functionLinenumberEnd: 14654
    functionName: nlohmann::basic_json
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - std::move
    - nlohmann::assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(basic_json&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json::assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14687,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14690,1
    - Dst: swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:14691,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14695
      start: 14679
    functionDepth: 0
    functionLinenumber: 14679
    functionLinenumberEnd: 14695
    functionName: "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
      and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
      and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json::assert_invariant
    - swap
    - assert_invariant
    linkageType: ''
    returnType: basic_json
    signature: "basic_json & operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
      and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
      and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:14714,1
    - Dst: destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:14715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14716
      start: 14712
    functionDepth: 0
    functionLinenumber: 14712
    functionLinenumberEnd: 14716
    functionName: ~basic_json() noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - destroy
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void ~basic_json() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14825
      start: 14822
    functionDepth: 0
    functionLinenumber: 14822
    functionLinenumberEnd: 14825
    functionName: nlohmann::type
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: value_t
    signature: value_t type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    - Dst: nlohmann::is_number
      Src: /src/sleuthkit/tools/logicalimager/json.h:14854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14855
      start: 14852
    functionDepth: 2
    functionLinenumber: 14852
    functionLinenumberEnd: 14855
    functionName: nlohmann::is_primitive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::is_number
    - nlohmann::is_boolean
    - nlohmann::is_null
    - nlohmann::is_string
    linkageType: ''
    returnType: bool
    signature: bool is_primitive() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:14881,1
    - Dst: nlohmann::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:14881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14882
      start: 14879
    functionDepth: 1
    functionLinenumber: 14879
    functionLinenumberEnd: 14882
    functionName: nlohmann::is_structured
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::is_object
    - nlohmann::is_array
    linkageType: ''
    returnType: bool
    signature: bool is_structured() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14904
      start: 14901
    functionDepth: 0
    functionLinenumber: 14901
    functionLinenumberEnd: 14904
    functionName: nlohmann::is_null
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_null() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14926
      start: 14923
    functionDepth: 0
    functionLinenumber: 14923
    functionLinenumberEnd: 14926
    functionName: nlohmann::is_boolean
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_boolean() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::is_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:14955,1
    - Dst: nlohmann::is_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:14955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14956
      start: 14953
    functionDepth: 1
    functionLinenumber: 14953
    functionLinenumberEnd: 14956
    functionName: nlohmann::is_number
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - nlohmann::is_number_integer
    - nlohmann::is_number_float
    linkageType: ''
    returnType: bool
    signature: bool is_number() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14985
      start: 14982
    functionDepth: 0
    functionLinenumber: 14982
    functionLinenumberEnd: 14985
    functionName: nlohmann::is_number_integer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15013
      start: 15010
    functionDepth: 0
    functionLinenumber: 15010
    functionLinenumberEnd: 15013
    functionName: nlohmann::is_number_unsigned
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15041
      start: 15038
    functionDepth: 0
    functionLinenumber: 15038
    functionLinenumberEnd: 15041
    functionName: nlohmann::is_number_float
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15063
      start: 15060
    functionDepth: 0
    functionLinenumber: 15060
    functionLinenumberEnd: 15063
    functionName: nlohmann::is_object
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_object() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15085
      start: 15082
    functionDepth: 0
    functionLinenumber: 15082
    functionLinenumberEnd: 15085
    functionName: nlohmann::is_array
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_array() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15107
      start: 15104
    functionDepth: 0
    functionLinenumber: 15104
    functionLinenumberEnd: 15107
    functionName: nlohmann::is_string
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_string() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15134
      start: 15131
    functionDepth: 0
    functionLinenumber: 15131
    functionLinenumberEnd: 15134
    functionName: nlohmann::is_discarded
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_discarded() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15160
      start: 15157
    functionDepth: 0
    functionLinenumber: 15157
    functionLinenumberEnd: 15160
    functionName: operator value_t() const noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator value_t() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:15183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15184
      start: 15181
    functionDepth: 0
    functionLinenumber: 15181
    functionLinenumberEnd: 15184
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_object
    linkageType: ''
    returnType: object_t
    signature: object_t * get_impl_ptr(object_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:15189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15190
      start: 15187
    functionDepth: 0
    functionLinenumber: 15187
    functionLinenumberEnd: 15190
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_object
    linkageType: ''
    returnType: object_t
    signature: object_t * get_impl_ptr(const object_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15196
      start: 15193
    functionDepth: 0
    functionLinenumber: 15193
    functionLinenumberEnd: 15196
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_array
    linkageType: ''
    returnType: array_t
    signature: array_t * get_impl_ptr(array_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15202
      start: 15199
    functionDepth: 0
    functionLinenumber: 15199
    functionLinenumberEnd: 15202
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_array
    linkageType: ''
    returnType: array_t
    signature: array_t * get_impl_ptr(const array_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15208
      start: 15205
    functionDepth: 0
    functionLinenumber: 15205
    functionLinenumberEnd: 15208
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_string
    linkageType: ''
    returnType: string_t
    signature: string_t * get_impl_ptr(string_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15214
      start: 15211
    functionDepth: 0
    functionLinenumber: 15211
    functionLinenumberEnd: 15214
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_string
    linkageType: ''
    returnType: string_t
    signature: string_t * get_impl_ptr(const string_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:15219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15220
      start: 15217
    functionDepth: 0
    functionLinenumber: 15217
    functionLinenumberEnd: 15220
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_boolean
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t * get_impl_ptr(boolean_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_boolean
      Src: /src/sleuthkit/tools/logicalimager/json.h:15225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15226
      start: 15223
    functionDepth: 0
    functionLinenumber: 15223
    functionLinenumberEnd: 15226
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_boolean
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t * get_impl_ptr(const boolean_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:15231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15232
      start: 15229
    functionDepth: 0
    functionLinenumber: 15229
    functionLinenumberEnd: 15232
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_integer
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t * get_impl_ptr(number_integer_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_integer
      Src: /src/sleuthkit/tools/logicalimager/json.h:15237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15238
      start: 15235
    functionDepth: 0
    functionLinenumber: 15235
    functionLinenumberEnd: 15238
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_integer
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t * get_impl_ptr(const number_integer_t* /*unused*/)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:15243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15244
      start: 15241
    functionDepth: 0
    functionLinenumber: 15241
    functionLinenumberEnd: 15244
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_unsigned
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t * get_impl_ptr(number_unsigned_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_unsigned
      Src: /src/sleuthkit/tools/logicalimager/json.h:15249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15250
      start: 15247
    functionDepth: 0
    functionLinenumber: 15247
    functionLinenumberEnd: 15250
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_unsigned
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t * get_impl_ptr(const number_unsigned_t* /*unused*/)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:15255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15256
      start: 15253
    functionDepth: 0
    functionLinenumber: 15253
    functionLinenumberEnd: 15256
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_float
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t * get_impl_ptr(number_float_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_float
      Src: /src/sleuthkit/tools/logicalimager/json.h:15261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15262
      start: 15259
    functionDepth: 0
    functionLinenumber: 15259
    functionLinenumberEnd: 15262
    functionName: get_impl_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_number_float
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t * get_impl_ptr(const number_float_t* /*unused*/) const
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<typename std::add_pointer<ReferenceType>::type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15279,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15281,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15286,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15286,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15286,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:15286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - ThisType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15287
      start: 15276
    functionDepth: 3
    functionLinenumber: 15276
    functionLinenumberEnd: 15287
    functionName: get_ref_impl
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - template get_ptr<typename std::add_pointer<ReferenceType>::type>
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref_impl(ThisType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15337
      start: 15334
    functionDepth: 0
    functionLinenumber: 15334
    functionLinenumberEnd: 15337
    functionName: get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 186
    functionsReached: []
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:15384,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15385,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15385,1
    - Dst: std::declval<ValueType&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15385,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15398
      start: 15384
    functionDepth: 4
    functionLinenumber: 15384
    functionLinenumberEnd: 15398
    functionName: get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 186
    functionsReached:
    - std::declval<const basic_json_t&>
    - nlohmann::detail::from_json
    - std::declval<ValueType&>
    - noexcept
    linkageType: ''
    returnType: ValueType
    signature: "ValueType get() const noexcept(noexcept(\n                                       JSONSerializer<ValueType>::from_json(std::declval<const
      basic_json_t&>(), std::declval<ValueType&>())))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:15435,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15436,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15436,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15441
      start: 15435
    functionDepth: 4
    functionLinenumber: 15435
    functionLinenumberEnd: 15441
    functionName: get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 186
    functionsReached:
    - std::declval<const basic_json_t&>
    - nlohmann::detail::from_json
    - noexcept
    linkageType: ''
    returnType: ValueType
    signature: "ValueType get() const noexcept(noexcept(\n                                       JSONSerializer<ValueTypeCV>::from_json(std::declval<const
      basic_json_t&>())))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:15481,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15482,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15482,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15486
      start: 15481
    functionDepth: 4
    functionLinenumber: 15481
    functionLinenumberEnd: 15486
    functionName: get_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - nlohmann::detail::from_json
    - noexcept
    linkageType: ''
    returnType: ValueType
    signature: "ValueType & get_to(ValueType& v) const noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const
      basic_json_t&>(), v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/sleuthkit/tools/logicalimager/json.h:15494,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15494,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15495,1
    - Dst: nlohmann::detail::from_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - (v)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15499
      start: 15493
    functionDepth: 4
    functionLinenumber: 15493
    functionLinenumberEnd: 15499
    functionName: get_to
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - nlohmann::detail::from_json
    - noexcept
    linkageType: ''
    returnType: Array
    signature: "Array get_to(T (&v)[N]) const\n    noexcept(noexcept(JSONSerializer<Array>::from_json(\n
      \                         std::declval<const basic_json_t&>(), v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15530,1
    - Dst: std::declval<PointerType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15530,1
    - Dst: get_impl_ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:15533,1
    - Dst: static_cast<PointerType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15534
      start: 15530
    functionDepth: 1
    functionLinenumber: 15530
    functionLinenumberEnd: 15534
    functionName: get_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<basic_json_t&>
    - get_impl_ptr
    - static_cast<PointerType>
    - std::declval<PointerType>
    linkageType: ''
    returnType: auto
    signature: auto get_ptr() noexcept -> decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15543,1
    - Dst: std::declval<PointerType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15543,1
    - Dst: get_impl_ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:15546,1
    - Dst: static_cast<PointerType>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15547
      start: 15543
    functionDepth: 1
    functionLinenumber: 15543
    functionLinenumberEnd: 15547
    functionName: get_ptr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - std::declval<PointerType>
    - get_impl_ptr
    - static_cast<PointerType>
    linkageType: ''
    returnType: auto
    signature: auto get_ptr() const noexcept -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15578,1
    - Dst: get_ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:15581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15582
      start: 15578
    functionDepth: 2
    functionLinenumber: 15578
    functionLinenumberEnd: 15582
    functionName: get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 186
    functionsReached:
    - std::declval<basic_json_t&>
    - get_ptr
    linkageType: ''
    returnType: auto
    signature: auto get() noexcept -> decltype(std::declval<basic_json_t&>().template
      get_ptr<PointerType>())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<const basic_json_t&>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15590,1
    - Dst: get_ptr
      Src: /src/sleuthkit/tools/logicalimager/json.h:15593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15594
      start: 15590
    functionDepth: 2
    functionLinenumber: 15590
    functionLinenumberEnd: 15594
    functionName: get
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 186
    functionsReached:
    - std::declval<const basic_json_t&>
    - get_ptr
    linkageType: ''
    returnType: auto
    signature: auto get() const noexcept -> decltype(std::declval<const basic_json_t&>().template
      get_ptr<PointerType>())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:15627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15628
      start: 15624
    functionDepth: 4
    functionLinenumber: 15624
    functionLinenumberEnd: 15628
    functionName: get_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_ref_impl
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_impl
      Src: /src/sleuthkit/tools/logicalimager/json.h:15640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15641
      start: 15637
    functionDepth: 4
    functionLinenumber: 15637
    functionLinenumberEnd: 15641
    functionName: get_ref
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_ref_impl
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sleuthkit/tools/logicalimager/json.h:15689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15690
      start: 15686
    functionDepth: 0
    functionLinenumber: 15686
    functionLinenumberEnd: 15690
    functionName: operator ValueType() const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void operator ValueType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15732,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15732,1
    - Dst: array::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:15736,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15743
      start: 15729
    functionDepth: 3
    functionLinenumber: 15729
    functionLinenumberEnd: 15743
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 172
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - to_string
    - JSON_LIKELY
    - is_array
    - JSON_THROW
    - array::at
    linkageType: ''
    returnType: reference
    signature: reference at(size_type idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15742
      start: 15738
    functionDepth: 3
    functionLinenumber: 15738
    functionLinenumberEnd: 15742
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - to_string
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15779,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15779,1
    - Dst: array::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:15783,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15790
      start: 15776
    functionDepth: 3
    functionLinenumber: 15776
    functionLinenumberEnd: 15790
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 173
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - to_string
    - JSON_LIKELY
    - is_array
    - JSON_THROW
    - array::at
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(size_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15789
      start: 15785
    functionDepth: 3
    functionLinenumber: 15785
    functionLinenumberEnd: 15789
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - to_string
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15830,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:15830,1
    - Dst: object::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:15834,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15839,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15841
      start: 15827
    functionDepth: 3
    functionLinenumber: 15827
    functionLinenumberEnd: 15841
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 174
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - object::at
    - is_object
    - JSON_LIKELY
    - JSON_THROW
    linkageType: ''
    returnType: reference
    signature: reference at(const typename object_t::key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15839,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15840
      start: 15836
    functionDepth: 3
    functionLinenumber: 15836
    functionLinenumberEnd: 15840
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15881,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:15881,1
    - Dst: object::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:15885,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15890,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15892
      start: 15878
    functionDepth: 3
    functionLinenumber: 15878
    functionLinenumberEnd: 15892
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 175
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - object::at
    - is_object
    - JSON_LIKELY
    - JSON_THROW
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(const typename object_t::key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15890,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15891
      start: 15887
    functionDepth: 3
    functionLinenumber: 15887
    functionLinenumberEnd: 15891
    functionName: JSON_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - nlohmann::detail::out_of_range::create
    - JSON_THROW
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:15927,1
    - Dst: create<array_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:15930,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:15931,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15935,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15935,1
    - Dst: array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:15938,1
    - Dst: array::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:15940,1
    - Dst: array::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:15940,1
    - Dst: array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:15941,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:15942,1
    - Dst: array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15945,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15948,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15948,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15948,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:15948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15949
      start: 15924
    functionDepth: 3
    functionLinenumber: 15924
    functionLinenumberEnd: 15949
    functionName: operator[](size_type idx)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - array::size
    - create<array_t>
    - is_null
    - basic_json
    - array::end
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - array::insert
    - is_array
    - array
    - std::string
    - JSON_THROW
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: reference
    signature: reference operator[](size_type idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:15973,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15973,1
    - Dst: array
      Src: /src/sleuthkit/tools/logicalimager/json.h:15975,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:15978,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:15978,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:15978,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:15978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15979
      start: 15970
    functionDepth: 3
    functionLinenumber: 15970
    functionLinenumberEnd: 15979
    functionName: operator[](size_type idx) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - is_array
    - array
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](size_type idx) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:16011,1
    - Dst: create<object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16014,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:16015,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16019,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16019,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16021,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16024,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16024,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16024,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16025
      start: 16008
    functionDepth: 3
    functionLinenumber: 16008
    functionLinenumberEnd: 16025
    functionName: operator[](const typename object_t::key_type& key)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_null
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - object
    - create<object_t>
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: reference
    signature: reference operator[](const typename object_t::key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16060,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16060,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:16062,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16062,1
    - Dst: object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16062,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16063,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16066,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16066,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16066,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts:
    - condition: (m_value.object->find(key) != m_value.object->end())
      pos:
        line_end: 16061
        line_start: 16061
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 16067
      start: 16057
    functionDepth: 3
    functionLinenumber: 16057
    functionLinenumberEnd: 16067
    functionName: operator[](const typename object_t::key_type& key) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - object::end
    - object::find
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](const typename object_t::key_type& key)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:16100,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:16104,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16108,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16108,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16110,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16113,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16113,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16113,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16114
      start: 16097
    functionDepth: 3
    functionLinenumber: 16097
    functionLinenumberEnd: 16114
    functionName: operator[](T* key)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - is_null
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - object
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: reference
    signature: reference operator[](T* key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16150,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16150,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:16152,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16152,1
    - Dst: object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16152,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16153,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16156,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16156,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16156,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - T*
    assertStmts:
    - condition: (m_value.object->find(key) != m_value.object->end())
      pos:
        line_end: 16151
        line_start: 16151
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 16157
      start: 16147
    functionDepth: 3
    functionLinenumber: 16147
    functionLinenumberEnd: 16157
    functionName: operator[](T* key) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - assert
    - object::end
    - object::find
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](T* key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16212,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16212,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16215,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16216,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16224,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16224,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16224,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' default_value'
    argTypes:
    - typename object_t::key_type
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16225
      start: 16209
    functionDepth: 3
    functionLinenumber: 16209
    functionLinenumberEnd: 16225
    functionName: value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 159
    functionsReached:
    - find
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - end
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: ValueType
    signature: ValueType value(const typename object_t::key_type& key, const ValueType&
      default_value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:16233,1
    - Dst: string_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:16233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - default_value
    argTypes:
    - typename object_t::key_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16234
      start: 16231
    functionDepth: 1
    functionLinenumber: 16231
    functionLinenumberEnd: 16234
    functionName: value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 160
    functionsReached:
    - value
    - string_t
    linkageType: ''
    returnType: string_t
    signature: string_t value(const typename object_t::key_type& key, const char*
      default_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16282,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16282,1
    - Dst: get_checked
      Src: /src/sleuthkit/tools/logicalimager/json.h:16287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ptr'
    - ' default_value'
    argTypes:
    - json_pointer
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16293
      start: 16279
    functionDepth: 4
    functionLinenumber: 16279
    functionLinenumberEnd: 16293
    functionName: value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 160
    functionsReached:
    - get_checked
    - is_object
    - JSON_LIKELY
    linkageType: ''
    returnType: ValueType
    signature: ValueType value(const json_pointer& ptr, const ValueType& default_value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16292
      start: 16289
    functionDepth: 0
    functionLinenumber: 16289
    functionLinenumberEnd: 16292
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JSON_INTERNAL_CATCH (out_of_range&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/sleuthkit/tools/logicalimager/json.h:16304,1
    - Dst: string_t
      Src: /src/sleuthkit/tools/logicalimager/json.h:16304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - default_value
    argTypes:
    - json_pointer
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16305
      start: 16302
    functionDepth: 1
    functionLinenumber: 16302
    functionLinenumberEnd: 16305
    functionName: value
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 161
    functionsReached:
    - value
    - string_t
    linkageType: ''
    returnType: string_t
    signature: string_t value(const json_pointer& ptr, const char* default_value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16335
      start: 16332
    functionDepth: 1
    functionLinenumber: 16332
    functionLinenumberEnd: 16335
    functionName: front
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - begin
    linkageType: ''
    returnType: reference
    signature: reference front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16343
      start: 16340
    functionDepth: 1
    functionLinenumber: 16340
    functionLinenumberEnd: 16343
    functionName: front
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - cbegin
    linkageType: ''
    returnType: const_reference
    signature: const_reference front() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16381
      start: 16376
    functionDepth: 1
    functionLinenumber: 16376
    functionLinenumberEnd: 16381
    functionName: back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 204
    functionsReached:
    - end
    linkageType: ''
    returnType: reference
    signature: reference back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:16388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16391
      start: 16386
    functionDepth: 1
    functionLinenumber: 16386
    functionLinenumberEnd: 16391
    functionName: back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 204
    functionsReached:
    - cend
    linkageType: ''
    returnType: const_reference
    signature: const_reference back() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16446,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16448,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16448,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16451,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16461,1
    - Dst: IteratorType::m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16461,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16463,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16463,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16466,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:16469,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:16470,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:16475,1
    - Dst: object::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16481,1
    - Dst: array::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16487,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16492,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16492,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16492,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16492,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - pos
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16496
      start: 16443
    functionDepth: 3
    functionLinenumber: 16443
    functionLinenumberEnd: 16496
    functionName: erase
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - is_string
    - object::erase
    - std::allocator_traits<decltype(alloc)>::deallocate
    - array::erase
    - nlohmann::detail::type_error::create
    - IteratorType::m_it::primitive_iterator::is_begin
    - end
    - nlohmann::destroy
    - JSON_THROW
    - std::string
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: IteratorType
    signature: IteratorType erase(IteratorType pos)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16551,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16553,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16553,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16556,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16566,1
    - Dst: IteratorType::m_it::primitive_iterator::is_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16566,1
    - Dst: IteratorType::m_it::primitive_iterator::is_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16567,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16569,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16569,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16572,1
    - Dst: nlohmann::destroy
      Src: /src/sleuthkit/tools/logicalimager/json.h:16575,1
    - Dst: std::allocator_traits<decltype(alloc)>::deallocate
      Src: /src/sleuthkit/tools/logicalimager/json.h:16576,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:16581,1
    - Dst: object::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16587,1
    - Dst: array::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16594,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16600,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16600,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16600,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16604
      start: 16548
    functionDepth: 3
    functionLinenumber: 16548
    functionLinenumberEnd: 16604
    functionName: erase
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - IteratorType::m_it::primitive_iterator::is_end
    - is_string
    - object::erase
    - JSON_LIKELY
    - std::allocator_traits<decltype(alloc)>::deallocate
    - array::erase
    - nlohmann::detail::type_error::create
    - IteratorType::m_it::primitive_iterator::is_begin
    - end
    - nlohmann::destroy
    - JSON_THROW
    - std::string
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: IteratorType
    signature: IteratorType erase(IteratorType first, IteratorType last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16638,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16638,1
    - Dst: object::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16640,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16643,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16643,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16643,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16644
      start: 16635
    functionDepth: 3
    functionLinenumber: 16635
    functionLinenumberEnd: 16644
    functionName: erase
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - object::erase
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: size_type
    signature: size_type erase(const typename object_t::key_type& key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16673,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:16673,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:16675,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:16675,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16677,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16677,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16677,1
    - Dst: array::erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:16680,1
    - Dst: array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16680,1
    - Dst: static_cast<difference_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16680,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:16684,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:16684,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:16684,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:16684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16686
      start: 16670
    functionDepth: 3
    functionLinenumber: 16670
    functionLinenumberEnd: 16686
    functionName: erase
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - array::begin
    - size
    - nlohmann::detail::out_of_range::create
    - to_string
    - JSON_LIKELY
    - array::erase
    - nlohmann::detail::type_error::create
    - is_array
    - static_cast<difference_type>
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    linkageType: ''
    returnType: void
    signature: void erase(const size_type idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16725,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16727,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16729,1
    - Dst: std::forward<KeyT>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16733
      start: 16723
    functionDepth: 1
    functionLinenumber: 16723
    functionLinenumberEnd: 16733
    functionName: find
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 69
    functionsReached:
    - std::forward<KeyT>
    - end
    - is_object
    - object::find
    linkageType: ''
    returnType: iterator
    signature: iterator find(KeyT&& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:16742,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16744,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16746,1
    - Dst: std::forward<KeyT>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16750
      start: 16740
    functionDepth: 1
    functionLinenumber: 16740
    functionLinenumberEnd: 16750
    functionName: find
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 70
    functionsReached:
    - cend
    - std::forward<KeyT>
    - is_object
    - object::find
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find(KeyT&& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16777,1
    - Dst: object::count
      Src: /src/sleuthkit/tools/logicalimager/json.h:16777,1
    - Dst: std::forward<KeyT>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16778
      start: 16774
    functionDepth: 1
    functionLinenumber: 16774
    functionLinenumberEnd: 16778
    functionName: count
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 63
    functionsReached:
    - std::forward<KeyT>
    - object::count
    - is_object
    linkageType: ''
    returnType: size_type
    signature: size_type count(KeyT&& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:16807,1
    - Dst: object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:16807,1
    - Dst: std::forward<KeyT>
      Src: /src/sleuthkit/tools/logicalimager/json.h:16807,1
    - Dst: object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16808
      start: 16805
    functionDepth: 2
    functionLinenumber: 16805
    functionLinenumberEnd: 16808
    functionName: contains
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - std::forward<KeyT>
    - object::end
    - is_object
    - object::find
    linkageType: ''
    returnType: bool
    signature: bool contains(KeyT&& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16849
      start: 16844
    functionDepth: 0
    functionLinenumber: 16844
    functionLinenumberEnd: 16849
    functionName: begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 166
    functionsReached:
    - iterator::set_begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16857
      start: 16854
    functionDepth: 1
    functionLinenumber: 16854
    functionLinenumberEnd: 16857
    functionName: begin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 167
    functionsReached:
    - cbegin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator::set_begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16889
      start: 16884
    functionDepth: 0
    functionLinenumber: 16884
    functionLinenumberEnd: 16889
    functionName: cbegin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - const_iterator::set_begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16920
      start: 16915
    functionDepth: 0
    functionLinenumber: 16915
    functionLinenumberEnd: 16920
    functionName: end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 275
    functionsReached:
    - iterator::set_end
    linkageType: ''
    returnType: iterator
    signature: iterator end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:16927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16928
      start: 16925
    functionDepth: 1
    functionLinenumber: 16925
    functionLinenumberEnd: 16928
    functionName: end
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 276
    functionsReached:
    - cend
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator::set_end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16960
      start: 16955
    functionDepth: 0
    functionLinenumber: 16955
    functionLinenumberEnd: 16960
    functionName: cend
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - const_iterator::set_end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:16987,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:16987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16988
      start: 16985
    functionDepth: 1
    functionLinenumber: 16985
    functionLinenumberEnd: 16988
    functionName: rbegin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - reverse_iterator
    - end
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:16995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16996
      start: 16993
    functionDepth: 1
    functionLinenumber: 16993
    functionLinenumberEnd: 16996
    functionName: rbegin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - crbegin
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:17024,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17025
      start: 17022
    functionDepth: 1
    functionLinenumber: 17022
    functionLinenumberEnd: 17025
    functionName: rend
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - reverse_iterator
    - begin
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crend
      Src: /src/sleuthkit/tools/logicalimager/json.h:17032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17033
      start: 17030
    functionDepth: 1
    functionLinenumber: 17030
    functionLinenumberEnd: 17033
    functionName: rend
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - crend
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:17061,1
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:17061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17062
      start: 17059
    functionDepth: 1
    functionLinenumber: 17059
    functionLinenumberEnd: 17062
    functionName: crbegin
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - cend
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:17090,1
    - Dst: cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17091
      start: 17088
    functionDepth: 1
    functionLinenumber: 17088
    functionLinenumberEnd: 17091
    functionName: crend
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - cbegin
    - const_reverse_iterator
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reference::items
      Src: /src/sleuthkit/tools/logicalimager/json.h:17163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17164
      start: 17160
    functionDepth: 1
    functionLinenumber: 17160
    functionLinenumberEnd: 17164
    functionName: iteration_proxy<const_iterator>::iterator_wrapper
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - const_reference::items
    linkageType: ''
    returnType: JSON_DEPRECATED
    signature: JSON_DEPRECATED iteration_proxy<const_iterator> iterator_wrapper(const_reference
      ref) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy<iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:17231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17232
      start: 17229
    functionDepth: 0
    functionLinenumber: 17229
    functionLinenumberEnd: 17232
    functionName: items
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - iteration_proxy<iterator>
    linkageType: ''
    returnType: iteration_proxy<iterator>
    signature: iteration_proxy<iterator> items() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy<const_iterator>
      Src: /src/sleuthkit/tools/logicalimager/json.h:17239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17240
      start: 17237
    functionDepth: 0
    functionLinenumber: 17237
    functionLinenumberEnd: 17240
    functionName: items
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - iteration_proxy<const_iterator>
    linkageType: ''
    returnType: iteration_proxy<const_iterator>
    signature: iteration_proxy<const_iterator> items() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: array::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:17306,1
    - Dst: object::empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:17312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17321
      start: 17293
    functionDepth: 1
    functionLinenumber: 17293
    functionLinenumberEnd: 17321
    functionName: empty
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 80
    functionsReached:
    - array::empty
    - object::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: array::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17378,1
    - Dst: object::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17393
      start: 17365
    functionDepth: 1
    functionLinenumber: 17365
    functionLinenumberEnd: 17393
    functionName: size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 313
    functionsReached:
    - array::size
    - object::size
    linkageType: ''
    returnType: size_type
    signature: size_type size() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: array::max_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17442,1
    - Dst: object::max_size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17448,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17457
      start: 17435
    functionDepth: 2
    functionLinenumber: 17435
    functionLinenumberEnd: 17457
    functionName: max_size
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - array::max_size
    - object::max_size
    - size
    linkageType: ''
    returnType: size_type
    signature: size_type max_size() const noexcept
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: string::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:17535,1
    - Dst: array::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:17541,1
    - Dst: object::clear
      Src: /src/sleuthkit/tools/logicalimager/json.h:17547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17554
      start: 17505
    functionDepth: 1
    functionLinenumber: 17505
    functionLinenumberEnd: 17554
    functionName: clear
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 63
    functionsReached:
    - array::clear
    - object::clear
    - string::clear
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17579,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17579,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17579,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17581,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17581,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17581,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17581,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17585,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:17589,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17593,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:17593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17597
      start: 17576
    functionDepth: 3
    functionLinenumber: 17576
    functionLinenumberEnd: 17597
    functionName: push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 118
    functionsReached:
    - is_null
    - std::move
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - array::push_back
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void push_back(basic_json&& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17605,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:17605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17607
      start: 17603
    functionDepth: 4
    functionLinenumber: 17603
    functionLinenumberEnd: 17607
    functionName: operator+=(basic_json&& val)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(basic_json&& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17616,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17616,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17616,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17618,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17618,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17618,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17618,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17622,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:17626,1
    - Dst: array::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17631
      start: 17613
    functionDepth: 3
    functionLinenumber: 17613
    functionLinenumberEnd: 17631
    functionName: push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 120
    functionsReached:
    - is_null
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - array::push_back
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void push_back(const basic_json& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17641
      start: 17637
    functionDepth: 4
    functionLinenumber: 17637
    functionLinenumberEnd: 17641
    functionName: operator+=(const basic_json& val)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(const basic_json& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17666,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17666,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:17666,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17668,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17668,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17668,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17668,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17672,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:17676,1
    - Dst: object::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:17680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - typename object_t::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17681
      start: 17663
    functionDepth: 3
    functionLinenumber: 17663
    functionLinenumberEnd: 17681
    functionName: push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 121
    functionsReached:
    - is_null
    - is_object
    - nlohmann::detail::type_error::create
    - object::insert
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void push_back(const typename object_t::value_type& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - typename object_t::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17691
      start: 17687
    functionDepth: 4
    functionLinenumber: 17687
    functionLinenumberEnd: 17691
    functionName: operator+=(const typename object_t::value_type& val)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(const typename object_t::value_type& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:17720,1
    - Dst: initializer_list_t::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:17720,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17720,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17720,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17722,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17728,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:17728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17730
      start: 17718
    functionDepth: 2
    functionLinenumber: 17718
    functionLinenumberEnd: 17730
    functionName: push_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 123
    functionsReached:
    - basic_json
    - is_string
    - push_back
    - initializer_list_t::begin
    - is_object
    - initializer_list_t::size
    linkageType: ''
    returnType: void
    signature: void push_back(initializer_list_t init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17740
      start: 17736
    functionDepth: 4
    functionLinenumber: 17736
    functionLinenumberEnd: 17740
    functionName: operator+=(initializer_list_t init)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(initializer_list_t init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17767,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17767,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17767,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17769,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17769,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17769,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17769,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17773,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:17777,1
    - Dst: array::emplace_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:17781,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:17781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17782
      start: 17764
    functionDepth: 3
    functionLinenumber: 17764
    functionLinenumberEnd: 17782
    functionName: emplace_back
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 21
    functionsReached:
    - is_null
    - array::emplace_back
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - assert_invariant
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void emplace_back(Args&& ... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17815,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17815,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:17815,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17817,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17817,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17817,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17817,1
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:17821,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:17825,1
    - Dst: object::emplace
      Src: /src/sleuthkit/tools/logicalimager/json.h:17829,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:17829,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17836
      start: 17812
    functionDepth: 3
    functionLinenumber: 17812
    functionLinenumberEnd: 17836
    functionName: emplace
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 13
    functionsReached:
    - is_null
    - begin
    - is_object
    - nlohmann::detail::type_error::create
    - std::string
    - object::emplace
    - JSON_THROW
    - JSON_UNLIKELY
    - type_name
    - assert_invariant
    - std::forward<Args>
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(Args&& ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:17845,1
    - Dst: std::distance
      Src: /src/sleuthkit/tools/logicalimager/json.h:17847,1
    - Dst: array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17847,1
    - Dst: array::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:17848,1
    - Dst: std::forward<Args>
      Src: /src/sleuthkit/tools/logicalimager/json.h:17848,1
    - Dst: array::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:17849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pos
    argTypes:
    - const_iterator
    assertStmts:
    - condition: (m_value.array != nullptr)
      pos:
        line_end: 17844
        line_start: 17844
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 17856
      start: 17842
    functionDepth: 1
    functionLinenumber: 17842
    functionLinenumberEnd: 17856
    functionName: insert_iterator
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - array::begin
    - assert
    - std::distance
    - array::insert
    - std::forward<Args>
    linkageType: ''
    returnType: iterator
    signature: iterator insert_iterator(const_iterator pos, Args&& ... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17883,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17883,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17886,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17888,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17888,1
    - Dst: insert_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:17892,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17895,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17895,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17895,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - ' val'
    argTypes:
    - const_iterator
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17896
      start: 17880
    functionDepth: 3
    functionLinenumber: 17880
    functionLinenumberEnd: 17896
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 15
    functionsReached:
    - insert_iterator
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, const basic_json& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:17904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - ' val'
    argTypes:
    - const_iterator
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17905
      start: 17902
    functionDepth: 1
    functionLinenumber: 17902
    functionLinenumberEnd: 17905
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, basic_json&& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17934,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17934,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17937,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17939,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17939,1
    - Dst: insert_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:17943,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17946,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17946,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17946,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pos
    - cnt
    - ' val'
    argTypes:
    - const_iterator
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17947
      start: 17931
    functionDepth: 3
    functionLinenumber: 17931
    functionLinenumberEnd: 17947
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - insert_iterator
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, size_type cnt, const basic_json&
      val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17982,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:17982,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17984,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17984,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:17984,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:17984,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17988,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17990,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17990,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17994,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:17996,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:17996,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:17999,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18001,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18001,1
    - Dst: insert_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:18005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18006
      start: 17979
    functionDepth: 3
    functionLinenumber: 17979
    functionLinenumberEnd: 18006
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - insert_iterator
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, const_iterator first, const_iterator
      last)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18035,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:18035,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18037,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18037,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18037,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18037,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18041,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18043,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18043,1
    - Dst: insert_iterator
      Src: /src/sleuthkit/tools/logicalimager/json.h:18047,1
    - Dst: initializer_list_t::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:18047,1
    - Dst: initializer_list_t::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:18047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - ilist
    argTypes:
    - const_iterator
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18048
      start: 18032
    functionDepth: 3
    functionLinenumber: 18032
    functionLinenumberEnd: 18048
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 16
    functionsReached:
    - insert_iterator
    - initializer_list_t::begin
    - nlohmann::detail::type_error::create
    - initializer_list_t::end
    - is_array
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, initializer_list_t ilist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18076,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18076,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18078,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18078,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18078,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18078,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18082,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18084,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18084,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18088,1
    - Dst: const_iterator::m_object::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18088,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18090,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18090,1
    - Dst: object::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:18093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18094
      start: 18073
    functionDepth: 3
    functionLinenumber: 18073
    functionLinenumberEnd: 18094
    functionName: insert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 17
    functionsReached:
    - const_iterator::m_object::is_object
    - is_object
    - nlohmann::detail::type_error::create
    - object::insert
    - std::string
    - JSON_THROW
    - JSON_UNLIKELY
    - nlohmann::detail::invalid_iterator::create
    - type_name
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator first, const_iterator last)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:18118,1
    - Dst: create<object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18121,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:18122,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18125,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18125,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18127,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18127,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18127,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18127,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18129,1
    - Dst: const_reference::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18129,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18131,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18131,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18131,1
    - Dst: const_reference::type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18131,1
    - Dst: const_reference::cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:18134,1
    - Dst: const_reference::cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:18134,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18136,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:18136,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:18136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - j
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18138
      start: 18115
    functionDepth: 4
    functionLinenumber: 18115
    functionLinenumberEnd: 18138
    functionName: update
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - const_reference::cbegin
    - is_null
    - const_reference::cend
    - const_reference::type_name
    - is_object
    - auto::key
    - nlohmann::detail::type_error::create
    - auto::value
    - std::string
    - JSON_THROW
    - object
    - JSON_UNLIKELY
    - create<object_t>
    - type_name
    - assert_invariant
    - const_reference::is_object
    linkageType: ''
    returnType: void
    signature: void update(const_reference j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/sleuthkit/tools/logicalimager/json.h:18169,1
    - Dst: create<object_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18172,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:18173,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18176,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18176,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18178,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18178,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18178,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18178,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18182,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18184,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18184,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18188,1
    - Dst: const_iterator::m_object::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18188,1
    - Dst: const_iterator::m_object::is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18189,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18191,1
    - Dst: nlohmann::detail::invalid_iterator::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18191,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18196,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:18196,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:18196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18198
      start: 18166
    functionDepth: 4
    functionLinenumber: 18166
    functionLinenumberEnd: 18198
    functionName: update
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - is_null
    - const_iterator::m_object::is_object
    - is_object
    - auto::key
    - nlohmann::detail::type_error::create
    - auto::value
    - std::string
    - JSON_THROW
    - object
    - JSON_UNLIKELY
    - create<object_t>
    - nlohmann::detail::invalid_iterator::create
    - type_name
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void update(const_iterator first, const_iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:18224,1
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:18225,1
    - Dst: assert_invariant
      Src: /src/sleuthkit/tools/logicalimager/json.h:18226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18227
      start: 18217
    functionDepth: 0
    functionLinenumber: 18217
    functionLinenumberEnd: 18227
    functionName: swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 7
    functionsReached:
    - assert_invariant
    - std::swap
    linkageType: ''
    returnType: void
    signature: "void swap(reference other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
      and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
      and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18252,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:18252,1
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:18254,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18258,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18258,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18258,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18260
      start: 18249
    functionDepth: 3
    functionLinenumber: 18249
    functionLinenumberEnd: 18260
    functionName: swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 8
    functionsReached:
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - is_array
    - std::string
    - std::swap
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void swap(array_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18285,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:18285,1
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:18287,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18291,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18291,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18291,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18293
      start: 18282
    functionDepth: 3
    functionLinenumber: 18282
    functionLinenumberEnd: 18293
    functionName: swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 9
    functionsReached:
    - is_object
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - std::swap
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void swap(object_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:18318,1
    - Dst: is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18318,1
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:18320,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:18324,1
    - Dst: nlohmann::detail::type_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:18324,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:18324,1
    - Dst: type_name
      Src: /src/sleuthkit/tools/logicalimager/json.h:18324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18326
      start: 18315
    functionDepth: 3
    functionLinenumber: 18315
    functionLinenumberEnd: 18326
    functionName: swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 10
    functionsReached:
    - is_string
    - JSON_LIKELY
    - nlohmann::detail::type_error::create
    - std::string
    - std::swap
    - JSON_THROW
    - type_name
    linkageType: ''
    returnType: void
    signature: void swap(string_t& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18451
      start: 18448
    functionDepth: 0
    functionLinenumber: 18448
    functionLinenumberEnd: 18451
    functionName: operator==(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator==(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18462
      start: 18459
    functionDepth: 0
    functionLinenumber: 18459
    functionLinenumberEnd: 18462
    functionName: operator==(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18485
      start: 18482
    functionDepth: 0
    functionLinenumber: 18482
    functionLinenumberEnd: 18485
    functionName: operator!=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18496
      start: 18493
    functionDepth: 0
    functionLinenumber: 18493
    functionLinenumberEnd: 18496
    functionName: operator!=(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18507
      start: 18504
    functionDepth: 0
    functionLinenumber: 18504
    functionLinenumberEnd: 18507
    functionName: operator!=(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: const_reference::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:18537,1
    - Dst: const_reference::type
      Src: /src/sleuthkit/tools/logicalimager/json.h:18538,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18576,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18580,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18584,1
    - Dst: static_cast<number_float_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18588,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18592,1
    - Dst: static_cast<number_integer_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18603
      start: 18535
    functionDepth: 0
    functionLinenumber: 18535
    functionLinenumberEnd: 18603
    functionName: operator<(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - static_cast<number_float_t>
    - const_reference::type
    - static_cast<number_integer_t>
    linkageType: ''
    returnType: friend
    signature: friend operator<(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18614
      start: 18611
    functionDepth: 0
    functionLinenumber: 18611
    functionLinenumberEnd: 18614
    functionName: operator<(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18625
      start: 18622
    functionDepth: 0
    functionLinenumber: 18622
    functionLinenumberEnd: 18625
    functionName: operator<(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18649
      start: 18646
    functionDepth: 0
    functionLinenumber: 18646
    functionLinenumberEnd: 18649
    functionName: operator<=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator<=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18660
      start: 18657
    functionDepth: 0
    functionLinenumber: 18657
    functionLinenumberEnd: 18660
    functionName: operator<=(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18671
      start: 18668
    functionDepth: 0
    functionLinenumber: 18668
    functionLinenumberEnd: 18671
    functionName: operator<=(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18695
      start: 18692
    functionDepth: 0
    functionLinenumber: 18692
    functionLinenumberEnd: 18695
    functionName: operator>(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator>(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18706
      start: 18703
    functionDepth: 0
    functionLinenumber: 18703
    functionLinenumberEnd: 18706
    functionName: operator>(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18717
      start: 18714
    functionDepth: 0
    functionLinenumber: 18714
    functionLinenumberEnd: 18717
    functionName: operator>(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18741
      start: 18738
    functionDepth: 0
    functionLinenumber: 18738
    functionLinenumberEnd: 18741
    functionName: operator>=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator>=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18752
      start: 18749
    functionDepth: 0
    functionLinenumber: 18749
    functionLinenumberEnd: 18752
    functionName: operator>=(const_reference lhs, const ScalarType rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const_reference lhs, const ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:18762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18763
      start: 18760
    functionDepth: 0
    functionLinenumber: 18760
    functionLinenumberEnd: 18763
    functionName: operator>=(const ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: width
      Src: /src/sleuthkit/tools/logicalimager/json.h:18808,1
    - Dst: width
      Src: /src/sleuthkit/tools/logicalimager/json.h:18809,1
    - Dst: width
      Src: /src/sleuthkit/tools/logicalimager/json.h:18812,1
    - Dst: detail::output_adapter<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18815,1
    - Dst: fill
      Src: /src/sleuthkit/tools/logicalimager/json.h:18815,1
    - Dst: serializer::dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:18816,1
    - Dst: static_cast<unsigned int>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - ' j'
    argTypes:
    - std::ostream
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18818
      start: 18805
    functionDepth: 0
    functionLinenumber: 18805
    functionLinenumberEnd: 18818
    functionName: '& operator<<(std::ostream& o, const basic_json& j)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - detail::output_adapter<char>
    - serializer::dump
    - static_cast<unsigned int>
    - fill
    - width
    linkageType: ''
    returnType: friend
    signature: friend & operator<<(std::ostream& o, const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' o'
    argTypes:
    - basic_json
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18832
      start: 18828
    functionDepth: 0
    functionLinenumber: 18828
    functionLinenumberEnd: 18832
    functionName: '& operator>>(const basic_json& j, std::ostream& o)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_DEPRECATED
    signature: JSON_DEPRECATED & operator>>(const basic_json& j, std::ostream& o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:18913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18915
      start: 18907
    functionDepth: 0
    functionLinenumber: 18907
    functionLinenumberEnd: 18915
    functionName: parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - parser
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD parse(detail::input_adapter&& i,\n                            const
      parser_callback_t cb = nullptr,\n                            const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:18919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18920
      start: 18917
    functionDepth: 0
    functionLinenumber: 18917
    functionLinenumberEnd: 18920
    functionName: accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - parser
    linkageType: ''
    returnType: bool
    signature: bool accept(detail::input_adapter&& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:18980,1
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:18982,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:18982,1
    - Dst: detail::binary_reader<basic_json, SAX>
      Src: /src/sleuthkit/tools/logicalimager/json.h:18983,1
    - Dst: std::move
      Src: /src/sleuthkit/tools/logicalimager/json.h:18983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' i'
    - sax
    argTypes:
    - detail::input_adapter
    - SAX*
    assertStmts:
    - condition: (sax)
      pos:
        line_end: 18979
        line_start: 18979
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 18984
      start: 18976
    functionDepth: 0
    functionLinenumber: 18976
    functionLinenumberEnd: 18984
    functionName: sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - detail::binary_reader<basic_json, SAX>
    - std::move
    - parser
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(detail::input_adapter&& i, SAX* sax,\n                          input_format_t
      format = input_format_t::json,\n                          const bool strict
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:19044,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19046
      start: 19039
    functionDepth: 1
    functionLinenumber: 19039
    functionLinenumberEnd: 19046
    functionName: parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - parser
    linkageType: ''
    returnType: basic_json
    signature: "basic_json parse(IteratorType first, IteratorType last,\n                            const
      parser_callback_t cb = nullptr,\n                            const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:19054,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19055
      start: 19052
    functionDepth: 1
    functionLinenumber: 19052
    functionLinenumberEnd: 19055
    functionName: accept
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - parser
    linkageType: ''
    returnType: bool
    signature: bool accept(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:19063,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - sax
    argTypes:
    - IteratorType
    - IteratorType
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19064
      start: 19061
    functionDepth: 1
    functionLinenumber: 19061
    functionLinenumberEnd: 19064
    functionName: sax_parse
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 4
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - parser
    linkageType: ''
    returnType: bool
    signature: bool sax_parse(IteratorType first, IteratorType last, SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' i'
    argTypes:
    - basic_json
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19078
      start: 19074
    functionDepth: 0
    functionLinenumber: 19074
    functionLinenumberEnd: 19078
    functionName: '& operator<<(basic_json& j, std::istream& i)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_DEPRECATED
    signature: JSON_DEPRECATED & operator<<(basic_json& j, std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/sleuthkit/tools/logicalimager/json.h:19107,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' i'
    - ' j'
    argTypes:
    - std::istream
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19109
      start: 19105
    functionDepth: 1
    functionLinenumber: 19105
    functionLinenumberEnd: 19109
    functionName: '& operator>>(std::istream& i, basic_json& j)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - parser
    linkageType: ''
    returnType: friend
    signature: friend & operator>>(std::istream& i, basic_json& j)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19168
      start: 19147
    functionDepth: 0
    functionLinenumber: 19147
    functionLinenumberEnd: 19168
    functionName: type_name
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * type_name() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19288
      start: 19285
    functionDepth: 0
    functionLinenumber: 19285
    functionLinenumberEnd: 19288
    functionName: to_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_writer<uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_cbor(const basic_json& j, detail::output_adapter<uint8_t> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19293
      start: 19290
    functionDepth: 0
    functionLinenumber: 19290
    functionLinenumberEnd: 19293
    functionName: to_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_cbor(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_msgpack
      Src: /src/sleuthkit/tools/logicalimager/json.h:19377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19379
      start: 19374
    functionDepth: 1
    functionLinenumber: 19374
    functionLinenumberEnd: 19379
    functionName: to_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - to_msgpack
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_msgpack(const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19384
      start: 19381
    functionDepth: 0
    functionLinenumber: 19381
    functionLinenumberEnd: 19384
    functionName: to_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_msgpack(const basic_json& j, detail::output_adapter<uint8_t>
      o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19389
      start: 19386
    functionDepth: 0
    functionLinenumber: 19386
    functionLinenumberEnd: 19389
    functionName: to_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_msgpack(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_ubjson
      Src: /src/sleuthkit/tools/logicalimager/json.h:19476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19478
      start: 19471
    functionDepth: 1
    functionLinenumber: 19471
    functionLinenumberEnd: 19478
    functionName: to_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - to_ubjson
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> to_ubjson(const basic_json& j,\n                                          const
      bool use_size = false,\n                                          const bool
      use_type = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19484
      start: 19480
    functionDepth: 0
    functionLinenumber: 19480
    functionLinenumberEnd: 19484
    functionName: to_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void to_ubjson(const basic_json& j, detail::output_adapter<uint8_t>
      o,\n                          const bool use_size = false, const bool use_type
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19490
      start: 19486
    functionDepth: 0
    functionLinenumber: 19486
    functionLinenumberEnd: 19490
    functionName: to_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: "void to_ubjson(const basic_json& j, detail::output_adapter<char> o,\n
      \                         const bool use_size = false, const bool use_type =
      false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bson
      Src: /src/sleuthkit/tools/logicalimager/json.h:19551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19553
      start: 19548
    functionDepth: 1
    functionLinenumber: 19548
    functionLinenumberEnd: 19553
    functionName: to_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - to_bson
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_bson(const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<uint8_t>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19566
      start: 19563
    functionDepth: 0
    functionLinenumber: 19563
    functionLinenumberEnd: 19566
    functionName: to_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_bson(const basic_json& j, detail::output_adapter<uint8_t> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19574
      start: 19571
    functionDepth: 0
    functionLinenumber: 19571
    functionLinenumberEnd: 19574
    functionName: to_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_bson(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19683,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19683,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19685
      start: 19676
    functionDepth: 1
    functionLinenumber: 19676
    functionLinenumberEnd: 19685
    functionName: from_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_reader
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_cbor(detail::input_adapter&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19699,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19699,1
    - Dst: std::forward<A1>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19699,1
    - Dst: std::forward<A2>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19699,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a1'
    - ' a2'
    argTypes:
    - A1
    - A2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19701
      start: 19692
    functionDepth: 1
    functionLinenumber: 19692
    functionLinenumberEnd: 19701
    functionName: from_cbor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    - binary_reader
    - std::forward<A1>
    - std::forward<A2>
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_cbor(A1 && a1, A2 && a2,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19792,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19792,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19794
      start: 19785
    functionDepth: 1
    functionLinenumber: 19785
    functionLinenumberEnd: 19794
    functionName: from_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_reader
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_msgpack(detail::input_adapter&& i,\n                                   const
      bool strict = true,\n                                   const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19808,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19808,1
    - Dst: std::forward<A1>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19808,1
    - Dst: std::forward<A2>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19808,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a1'
    - ' a2'
    argTypes:
    - A1
    - A2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19810
      start: 19801
    functionDepth: 1
    functionLinenumber: 19801
    functionLinenumberEnd: 19810
    functionName: from_msgpack
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    - binary_reader
    - std::forward<A1>
    - std::forward<A2>
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_msgpack(A1 && a1, A2 && a2,\n                                   const
      bool strict = true,\n                                   const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19880,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19880,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19882
      start: 19873
    functionDepth: 1
    functionLinenumber: 19873
    functionLinenumberEnd: 19882
    functionName: from_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_reader
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_ubjson(detail::input_adapter&& i,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19896,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19896,1
    - Dst: std::forward<A1>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19896,1
    - Dst: std::forward<A2>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19896,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a1'
    - ' a2'
    argTypes:
    - A1
    - A2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19898
      start: 19889
    functionDepth: 1
    functionLinenumber: 19889
    functionLinenumberEnd: 19898
    functionName: from_ubjson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    - binary_reader
    - std::forward<A1>
    - std::forward<A2>
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_ubjson(A1 && a1, A2 && a2,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19967,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19967,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19969
      start: 19960
    functionDepth: 1
    functionLinenumber: 19960
    functionLinenumberEnd: 19969
    functionName: from_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - binary_reader
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_bson(detail::input_adapter&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader
      Src: /src/sleuthkit/tools/logicalimager/json.h:19983,1
    - Dst: nlohmann::detail::file_input_adapter::file_input_adapter
      Src: /src/sleuthkit/tools/logicalimager/json.h:19983,1
    - Dst: std::forward<A1>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19983,1
    - Dst: std::forward<A2>
      Src: /src/sleuthkit/tools/logicalimager/json.h:19983,1
    - Dst: basic_json
      Src: /src/sleuthkit/tools/logicalimager/json.h:19984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a1'
    - ' a2'
    argTypes:
    - A1
    - A2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19985
      start: 19976
    functionDepth: 1
    functionLinenumber: 19976
    functionLinenumberEnd: 19985
    functionName: from_bson
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::file_input_adapter::file_input_adapter
    - basic_json
    - binary_reader
    - std::forward<A1>
    - std::forward<A2>
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD from_bson(A1 && a1, A2 && a2,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/sleuthkit/tools/logicalimager/json.h:20033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20034
      start: 20031
    functionDepth: 4
    functionLinenumber: 20031
    functionLinenumberEnd: 20034
    functionName: operator[](const json_pointer& ptr)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: reference
    signature: reference operator[](const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/sleuthkit/tools/logicalimager/json.h:20061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20062
      start: 20059
    functionDepth: 4
    functionLinenumber: 20059
    functionLinenumberEnd: 20062
    functionName: operator[](const json_pointer& ptr) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](const json_pointer& ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/sleuthkit/tools/logicalimager/json.h:20104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20105
      start: 20102
    functionDepth: 4
    functionLinenumber: 20102
    functionLinenumberEnd: 20105
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 175
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: reference
    signature: reference at(const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/sleuthkit/tools/logicalimager/json.h:20147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20148
      start: 20145
    functionDepth: 4
    functionLinenumber: 20145
    functionLinenumberEnd: 20148
    functionName: at
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 175
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(const json_pointer& ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flatten
      Src: /src/sleuthkit/tools/logicalimager/json.h:20175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20177
      start: 20172
    functionDepth: 1
    functionLinenumber: 20172
    functionLinenumberEnd: 20177
    functionName: flatten
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 2
    functionsReached:
    - flatten
    linkageType: ''
    returnType: basic_json
    signature: basic_json flatten() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unflatten
      Src: /src/sleuthkit/tools/logicalimager/json.h:20211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20212
      start: 20209
    functionDepth: 1
    functionLinenumber: 20209
    functionLinenumberEnd: 20212
    functionName: unflatten
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - unflatten
    linkageType: ''
    returnType: basic_json
    signature: basic_json unflatten() const
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sleuthkit/tools/logicalimager/json.h:20312,1
    - Dst: top
      Src: /src/sleuthkit/tools/logicalimager/json.h:20319,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20322,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20326,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20327,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20345,1
    - Dst: nlohmann::json_pointer::array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:20349,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20350,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:20350,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20350,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20353,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20353,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20353,1
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:20357,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20357,1
    - Dst: static_cast<difference_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:20357,1
    - Dst: assert
      Src: /src/sleuthkit/tools/logicalimager/json.h:20364,1
    - Dst: back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20372,1
    - Dst: pop_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20373,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20374,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20377,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:20380,1
    - Dst: JSON_LIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20381,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20381,1
    - Dst: erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:20383,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20387,1
    - Dst: nlohmann::detail::out_of_range::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20387,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:20390,1
    - Dst: erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:20393,1
    - Dst: static_cast<size_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:20393,1
    - Dst: nlohmann::json_pointer::array_index
      Src: /src/sleuthkit/tools/logicalimager/json.h:20393,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20398,1
    - Dst: is_array
      Src: /src/sleuthkit/tools/logicalimager/json.h:20398,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20400,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20400,1
    - Dst: m_value::object::find
      Src: /src/sleuthkit/tools/logicalimager/json.h:20412,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20418,1
    - Dst: m_value::object::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20418,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20420,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20420,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20424,1
    - Dst: auto::second::is_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20424,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20426,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20426,1
    - Dst: JSON_UNLIKELY
      Src: /src/sleuthkit/tools/logicalimager/json.h:20434,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20434,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20436,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20436,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20440,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20441,1
    - Dst: get_op
      Src: /src/sleuthkit/tools/logicalimager/json.h:20444,1
    - Dst: operation_add
      Src: /src/sleuthkit/tools/logicalimager/json.h:20448,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20448,1
    - Dst: operation_remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:20454,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20461,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20461,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20467,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20471,1
    - Dst: operation_remove
      Src: /src/sleuthkit/tools/logicalimager/json.h:20477,1
    - Dst: operation_add
      Src: /src/sleuthkit/tools/logicalimager/json.h:20478,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20484,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20488,1
    - Dst: operation_add
      Src: /src/sleuthkit/tools/logicalimager/json.h:20493,1
    - Dst: basic_json::at
      Src: /src/sleuthkit/tools/logicalimager/json.h:20504,1
    - Dst: get_value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20504,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20514,1
    - Dst: nlohmann::detail::other_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20514,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:20514,1
    - Dst: JSON_THROW
      Src: /src/sleuthkit/tools/logicalimager/json.h:20524,1
    - Dst: nlohmann::detail::parse_error::create
      Src: /src/sleuthkit/tools/logicalimager/json.h:20524,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 108
    argCount: 1
    argNames:
    - ' json_patch'
    argTypes:
    - basic_json
    assertStmts:
    - condition: (false)
      pos:
        line_end: 20363
        line_start: 20363
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    constantsTouched: []
    func_position:
      end: 20527
      start: 20270
    functionDepth: 4
    functionLinenumber: 20270
    functionLinenumberEnd: 20527
    functionName: patch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - erase
    - back
    - begin
    - pop_back
    - to_string
    - nlohmann::detail::other_error::create
    - is_array
    - JSON_THROW
    - JSON_UNLIKELY
    - m_value::object::find
    - JSON_LIKELY
    - top
    - static_cast<difference_type>
    - nlohmann::detail::parse_error::create
    - get_op
    - operation_add
    - assert
    - get_value
    - dump
    - nlohmann::json_pointer::array_index
    - end
    - insert
    - empty
    - m_value::object::end
    - static_cast<size_type>
    - size
    - nlohmann::detail::out_of_range::create
    - find
    - push_back
    - auto::second::is_string
    - is_object
    - operation_remove
    - basic_json::at
    linkageType: ''
    returnType: basic_json
    signature: basic_json patch(const basic_json& json_patch) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:20578,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:20578,1
    - Dst: basic_json::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20581,1
    - Dst: type
      Src: /src/sleuthkit/tools/logicalimager/json.h:20588,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20594,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20594,1
    - Dst: diff
      Src: /src/sleuthkit/tools/logicalimager/json.h:20597,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20597,1
    - Dst: basic_json::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:20598,1
    - Dst: basic_json::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20598,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20598,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20598,1
    - Dst: static_cast<difference_type>
      Src: /src/sleuthkit/tools/logicalimager/json.h:20606,1
    - Dst: basic_json::size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20606,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20607,1
    - Dst: basic_json::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:20611,1
    - Dst: basic_json::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20611,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20611,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20614,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/json.h:20620,1
    - Dst: basic_json::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20622,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20625,1
    - Dst: cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20637,1
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:20637,1
    - Dst: xml::xmlescape
      Src: /src/sleuthkit/tools/logicalimager/json.h:20640,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20640,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:20642,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20642,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20642,1
    - Dst: diff
      Src: /src/sleuthkit/tools/logicalimager/json.h:20645,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20645,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20645,1
    - Dst: basic_json::insert
      Src: /src/sleuthkit/tools/logicalimager/json.h:20646,1
    - Dst: basic_json::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20646,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20646,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20646,1
    - Dst: basic_json::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20651,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20651,1
    - Dst: cbegin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20659,1
    - Dst: cend
      Src: /src/sleuthkit/tools/logicalimager/json.h:20659,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/json.h:20661,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20661,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20661,1
    - Dst: xml::xmlescape
      Src: /src/sleuthkit/tools/logicalimager/json.h:20664,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20664,1
    - Dst: basic_json::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20665,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20668,1
    - Dst: basic_json::push_back
      Src: /src/sleuthkit/tools/logicalimager/json.h:20679,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - basic_json
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20688
      start: 20565
    functionDepth: 4
    functionLinenumber: 20565
    functionLinenumberEnd: 20688
    functionName: diff
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - auto::end
    - to_string
    - auto::key
    - object
    - auto::value
    - xml::xmlescape
    - cbegin
    - basic_json::size
    - basic_json::push_back
    - static_cast<difference_type>
    - basic_json::end
    - auto::begin
    - cend
    - end
    - diff
    - size
    - find
    - basic_json::insert
    - type
    - basic_json::begin
    linkageType: ''
    returnType: JSON_NODISCARD
    signature: "JSON_NODISCARD diff(const basic_json& source, const basic_json& target,\n
      \                          const std::string& path = \"\")"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20743,1
    - Dst: is_object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20745,1
    - Dst: object
      Src: /src/sleuthkit/tools/logicalimager/json.h:20747,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/json.h:20749,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/json.h:20749,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20751,1
    - Dst: erase
      Src: /src/sleuthkit/tools/logicalimager/json.h:20753,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/json.h:20753,1
    - Dst: merge_patch
      Src: /src/sleuthkit/tools/logicalimager/json.h:20757,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/json.h:20757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' apply_patch'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20765
      start: 20741
    functionDepth: 4
    functionLinenumber: 20741
    functionLinenumberEnd: 20765
    functionName: merge_patch
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 1
    functionsReached:
    - erase
    - begin
    - is_object
    - auto::key
    - end
    - merge_patch
    - object
    - auto::value
    linkageType: ''
    returnType: void
    signature: void merge_patch(const basic_json& apply_patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/sleuthkit/tools/logicalimager/json.h:20791,1
    - Dst: h
      Src: /src/sleuthkit/tools/logicalimager/json.h:20792,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:20792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20793
      start: 20788
    functionDepth: 2
    functionLinenumber: 20788
    functionLinenumberEnd: 20793
    functionName: operator()(const nlohmann::json& j) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - h
    - dump
    - hash
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(const nlohmann::json& j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::operator<
      Src: /src/sleuthkit/tools/logicalimager/json.h:20809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - nlohmann::detail::value_t
    - nlohmann::detail::value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20810
      start: 20806
    functionDepth: 0
    functionLinenumber: 20806
    functionLinenumberEnd: 20810
    functionName: "operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
      rhs) const noexcept"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::operator<
    linkageType: ''
    returnType: bool
    signature: "bool operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
      rhs) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:20824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j1'
    - ' j2'
    argTypes:
    - nlohmann::json
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20825
      start: 20819
    functionDepth: 0
    functionLinenumber: 20819
    functionLinenumberEnd: 20825
    functionName: std::swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 5
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: "void swap<nlohmann::json>(nlohmann::json& j1, nlohmann::json& j2)
      noexcept(\n    is_nothrow_move_constructible<nlohmann::json>::value and\n    is_nothrow_move_assignable<nlohmann::json>::value\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/sleuthkit/tools/logicalimager/json.h:20791,1
    - Dst: h
      Src: /src/sleuthkit/tools/logicalimager/json.h:20792,1
    - Dst: dump
      Src: /src/sleuthkit/tools/logicalimager/json.h:20792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20793
      start: 20788
    functionDepth: 2
    functionLinenumber: 20788
    functionLinenumberEnd: 20793
    functionName: operator()(const nlohmann::json& j) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - h
    - dump
    - hash
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(const nlohmann::json& j) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::operator<
      Src: /src/sleuthkit/tools/logicalimager/json.h:20809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - nlohmann::detail::value_t
    - nlohmann::detail::value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20810
      start: 20806
    functionDepth: 0
    functionLinenumber: 20806
    functionLinenumberEnd: 20810
    functionName: "operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
      rhs) const noexcept"
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::operator<
    linkageType: ''
    returnType: bool
    signature: "bool operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
      rhs) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/sleuthkit/tools/logicalimager/json.h:20824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j1'
    - ' j2'
    argTypes:
    - nlohmann::json
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20825
      start: 20819
    functionDepth: 0
    functionLinenumber: 20819
    functionLinenumberEnd: 20825
    functionName: std::swap
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 6
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: "void swap<nlohmann::json>(nlohmann::json& j1, nlohmann::json& j2)
      noexcept(\n    is_nothrow_move_constructible<nlohmann::json>::value and\n    is_nothrow_move_assignable<nlohmann::json>::value\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::detail::binary_reader::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/json.h:20844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20845
      start: 20842
    functionDepth: 4
    functionLinenumber: 20842
    functionLinenumberEnd: 20845
    functionName: operator "" _json(const char* s, std::size_t n)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::detail::binary_reader::sax_parse
    linkageType: ''
    returnType: nlohmann::json
    signature: nlohmann::json operator "" _json(const char* s, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json_pointer::json_pointer
      Src: /src/sleuthkit/tools/logicalimager/json.h:20862,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/json.h:20862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20863
      start: 20860
    functionDepth: 2
    functionLinenumber: 20860
    functionLinenumberEnd: 20863
    functionName: operator "" _json_pointer(const char* s, std::size_t n)
    functionSourceFile: /src/sleuthkit/tools/logicalimager/json.h
    functionUses: 0
    functionsReached:
    - nlohmann::json_pointer::json_pointer
    - std::string
    linkageType: ''
    returnType: nlohmann::json::json_pointer
    signature: nlohmann::json::json_pointer operator "" _json_pointer(const char*
      s, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: UserAccount::getItemJSONName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getItemJSONName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aType
    argTypes:
    - USER_ACCOUNT_TYPE::Enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: UserAccount::setAccountType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setAccountType(USER_ACCOUNT_TYPE::Enum aType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aPriv
    argTypes:
    - USER_ADMIN_PRIV::Enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: UserAccount::setAdminPriv
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setAdminPriv(USER_ADMIN_PRIV::Enum aPriv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aDomain
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: UserAccount::setUserDomain
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setUserDomain(const std::string &aDomain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aSID
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: UserAccount::setSID
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setSID(const std::string &aSID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aDir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: UserAccount::setHomeDir
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setHomeDir(const std::string &aDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aDateStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: UserAccount::setDateCreated
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setDateCreated(const std::string &aDateStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aDateStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: UserAccount::setLastLoginDate
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setLastLoginDate(const std::string &aDateStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aCount
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: UserAccount::setLoginCount
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setLoginCount(uint16_t aCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aLocn
    argTypes:
    - USER_ACCOUNT_LOCATION::Enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: UserAccount::setAccountLocation
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setAccountLocation(USER_ACCOUNT_LOCATION::Enum aLocn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_bool
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: UserAccount::setDisabled
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setDisabled(bool a_bool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: UserAccount::getUserName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getUserName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: UserAccount::getUserDomain
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getUserDomain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: UserAccount::getSID
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getSID() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: UserAccount::getHomeDir
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getHomeDir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: UserAccount::getAccountType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getAccountType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: UserAccount::getAdminPriv
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getAdminPriv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: UserAccount::getDateCreated
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDateCreated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: UserAccount::getLastLoginDate
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getLastLoginDate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: UserAccount::getLoginCount
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getLoginCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: UserAccount::getAccountLocation
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: USER_ACCOUNT_LOCATION::Enum
    signature: USER_ACCOUNT_LOCATION::Enum getAccountLocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: UserAccount::getAccountLocationStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getAccountLocationStr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: UserAccount::isDisabled
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDisabled() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:22,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - aName
    - aPath
    - a_hiveType
    - aOff
    - aMetaAddr
    - a_regParser
    argTypes:
    - std::string
    - std::string
    - RegHiveType::Enum
    - TSK_OFF_T
    - TSK_INUM_T
    - RegParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: RegFileInfo::RegFileInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: "void RegFileInfo::RegFileInfo(std::string &aName, std::string &aPath,
      RegHiveType::Enum a_hiveType, \n                         TSK_OFF_T aOff, TSK_INUM_T
      aMetaAddr, RegParser *a_regParser)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: RegFileInfo::~RegFileInfo()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegFileInfo::~RegFileInfo()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:37,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:37,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:39,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:39,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:41,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:41,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:43,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:43,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:45,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:45,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:47,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - aName
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: RegFileInfo::hiveNameToType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - _stricmp
    linkageType: ''
    returnType: RegHiveType::Enum
    signature: RegHiveType::Enum RegFileInfo::hiveNameToType(const std::string &aName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:34,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: LogicalImagerConfiguration::~LogicalImagerConfiguration()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void LogicalImagerConfiguration::~LogicalImagerConfiguration()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:191,1
    - Dst: std::ifstream::rdbuf
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:194,1
    - Dst: std::ifstream::close
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:195,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:196,1
    - Dst: nlohmann::detail::binary_reader::sax_parse
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:200,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:203,1
    - Dst: what
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:203,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:209,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:209,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:210,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:211,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:211,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:212,1
    - Dst: LogicalImagerRuleSet::LogicalImagerRuleSet
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:214,1
    - Dst: LogicalImagerRuleSet*::constructRuleSet
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:215,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:216,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:219,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:220,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:222,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:223,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:225,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:226,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:228,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:229,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:234,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:242,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - configFilename
    - callbackFunc
    argTypes:
    - std::string
    - LogicalImagerRuleSet::matchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 247
    functionName: LogicalImagerConfiguration::LogicalImagerConfiguration
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp
    functionUses: 0
    functionsReached:
    - LogicalImagerRuleSet::LogicalImagerRuleSet
    - nlohmann::json::end
    - what
    - std::logic_error
    - std::ifstream::close
    - std::stringstream::str
    - push_back
    - nlohmann::json::begin
    - auto::key
    - LogicalImagerRuleSet*::constructRuleSet
    - nlohmann::detail::binary_reader::sax_parse
    - std::ifstream::rdbuf
    - auto::value
    linkageType: ''
    returnType: void
    signature: void LogicalImagerConfiguration::LogicalImagerConfiguration(const std::string
      &configFilename, LogicalImagerRuleSet::matchCallback callbackFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:259,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:259,1
    - Dst: LogicalImagerConfiguration::matches
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: LogicalImagerConfiguration::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - LogicalImagerConfiguration::matches
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM LogicalImagerConfiguration::matches(TSK_FS_FILE *fs_file,
      const char *path) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:272,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:272,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:273,1
    - Dst: LogicalImagerConfiguration::getFullFilePaths
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: LogicalImagerConfiguration::getFullFilePaths
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - LogicalImagerConfiguration::getFullFilePaths
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::pair<const MatchedRuleInfo *, std::list<std::string>>>
    signature: std::vector<std::pair<const MatchedRuleInfo *, std::list<std::string>>>
      LogicalImagerConfiguration::getFullFilePaths() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - minDays
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: LogicalImagerDateRule::LogicalImagerDateRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerDateRule(int minDays)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - min
    - max
    - minDays
    argTypes:
    - time_t
    - time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: LogicalImagerDateRule::LogicalImagerDateRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerDateRule::LogicalImagerDateRule(time_t min, time_t
      max, int minDays)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: LogicalImagerDateRule::~LogicalImagerDateRule()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerDateRule::~LogicalImagerDateRule()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:44,1
    - Dst: max
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:44,1
    - Dst: max
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - TSK_FS_META*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: LogicalImagerDateRule::getLatestTime
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp
    functionUses: 0
    functionsReached:
    - max
    linkageType: ''
    returnType: time_t
    signature: time_t LogicalImagerDateRule::getLatestTime(TSK_FS_META *meta) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LogicalImagerDateRule::getLatestTime
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:62,1
    - Dst: std::time
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:69,1
    - Dst: gmtime_s
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:70,1
    - Dst: std::mktime
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 97
    functionName: LogicalImagerDateRule::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp
    functionUses: 0
    functionsReached:
    - std::time
    - gmtime_s
    - std::mktime
    - LogicalImagerDateRule::getLatestTime
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerDateRule::matches(TSK_FS_FILE *fs_file, const char
      * /* path */) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aUserName
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: UserAccount::UserAccount
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UserAccount::UserAccount(std::string &aUserName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: 'UserAccount:: ~UserAccount(void)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void UserAccount:: ~UserAccount(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UserAccount::isDisabled
      Src: /src/sleuthkit/tools/logicalimager/UserAccount.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: UserAccount::getAccountStatus
    functionSourceFile: /src/sleuthkit/tools/logicalimager/UserAccount.cpp
    functionUses: 1
    functionsReached:
    - UserAccount::isDisabled
    linkageType: ''
    returnType: std::string
    signature: std::string UserAccount::getAccountStatus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:24,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:24,1
    - Dst: validatePath
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:25,1
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:26,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filenames
    argTypes:
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: LogicalImagerFilenameRule::LogicalImagerFilenameRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp
    functionUses: 0
    functionsReached:
    - insert
    - begin
    - end
    - TskHelper::toLower
    - validatePath
    linkageType: ''
    returnType: void
    signature: void LogicalImagerFilenameRule::LogicalImagerFilenameRule(const std::set<std::string>
      &filenames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: LogicalImagerFilenameRule::~LogicalImagerFilenameRule()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void LogicalImagerFilenameRule::~LogicalImagerFilenameRule()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:46,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:48,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: LogicalImagerFilenameRule::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - TskHelper::toLower
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerFilenameRule::matches(TSK_FS_FILE *fs_file, const
      char * /*path*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: LogicalImagerRuleSet::getRules
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase
      *>>>
    signature: std::vector<std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase
      *>>> getRules()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: LogicalImagerRuleSet::LogicalImagerRuleSet
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleSet(const LogicalImagerRuleSet &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ruleSetName
    - name
    - description
    - shouldSave
    - shouldAlert
    argTypes:
    - std::string
    - std::string
    - std::string
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: MatchedRuleInfo::MatchedRuleInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MatchedRuleInfo::MatchedRuleInfo(const std::string &ruleSetName,
      const std::string &name, \n    const std::string &description, bool shouldSave,
      bool shouldAlert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::RegistryLoader
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: '&getInstance()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.h
    functionUses: 0
    functionsReached:
    - RegistryLoader::RegistryLoader
    linkageType: ''
    returnType: RegistryLoader
    signature: RegistryLoader &getInstance()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - createVHD
    - cwd
    - directoryPath
    argTypes:
    - bool
    - std::wstring
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: FileExtractor::FileExtractor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileExtractor::FileExtractor(bool createVHD, const std::wstring
      &cwd, const std::string &directoryPath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FileExtractor::createDirectoryRecursively
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:44,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:44,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:44,1
    - Dst: FileExtractor::getRootImageDirPrefix
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:44,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - imageDirName
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: FileExtractor::initializePerImage
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 0
    functionsReached:
    - TskHelper::toWide
    - FileExtractor::getRootImageDirPrefix
    - to_string
    - std::string
    - FileExtractor::createDirectoryRecursively
    linkageType: ''
    returnType: void
    signature: void FileExtractor::initializePerImage(const std::string &imageDirName)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FileExtractor::generateDirForFiles
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:72,1
    - Dst: FileExtractor::getRootImageDirPrefix
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:75,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:75,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:75,1
    - Dst: PathFindExtensionA
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:75,1
    - Dst: _wfopen
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:78,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:78,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:81,1
    - Dst: _strerror
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:81,1
    - Dst: FileExtractor::getRootImageDirPrefix
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:82,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:82,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:82,1
    - Dst: _wfopen
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:84,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:84,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:86,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:86,1
    - Dst: _strerror
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:86,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:87,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:90,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:94,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:103,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:104,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:115,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:116,1
    - Dst: fwrite
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:132,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:134,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:134,1
    - Dst: _strerror
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:134,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:146,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 3
    argNames:
    - fs_file
    - path
    - extractedFilePath
    argTypes:
    - TSK_FS_FILE*
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 150
    functionName: FileExtractor::extractFile
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 0
    functionsReached:
    - _strerror
    - fwrite
    - PathFindExtensionA
    - TskHelper::toWide
    - fclose
    - std::string::c_str
    - TskHelper::replaceAll
    - FileExtractor::getRootImageDirPrefix
    - to_string
    - tsk_fs_file_read
    - ReportUtil::handleExit
    - _wfopen
    - ReportUtil::consoleOutput
    - ReportUtil::printDebug
    - FileExtractor::generateDirForFiles
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM FileExtractor::extractFile(TSK_FS_FILE *fs_file, const
      char *path, std::string &extractedFilePath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: FileExtractor::getRootImageDirPrefix
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 2
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string FileExtractor::getRootImageDirPrefix() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:168,1
    - Dst: FileExtractor::getRootImageDirPrefix
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:168,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:168,1
    - Dst: _mkdir
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:169,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:169,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:171,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:171,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: FileExtractor::generateDirForFiles
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - FileExtractor::getRootImageDirPrefix
    - to_string
    - ReportUtil::handleExit
    - std::string
    - _mkdir
    - ReportUtil::consoleOutput
    linkageType: ''
    returnType: void
    signature: void FileExtractor::generateDirForFiles()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:184,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: FileExtractor::dirExists
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - std::wstring::c_str
    linkageType: ''
    returnType: bool
    signature: bool FileExtractor::dirExists(const std::wstring &dirName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FileExtractor::dirExists
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:202,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:207,1
    - Dst: std::wstring::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:212,1
    - Dst: CreateDirectoryW
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:213,1
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:213,1
    - Dst: std::wstring::substr
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:213,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:214,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:215,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:215,1
    - Dst: ReportUtil::GetErrorStdStr
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:216,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:216,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 221
    functionName: FileExtractor::createDirectoryRecursively
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
    functionUses: 1
    functionsReached:
    - std::wstring
    - std::wstring::substr
    - CreateDirectoryW
    - GetLastError
    - ReportUtil::GetErrorStdStr
    - std::wstring::find_first_of
    - ReportUtil::handleExit
    - FileExtractor::dirExists
    - TskHelper::toNarrow
    - ReportUtil::consoleOutput
    - TskHelper::replaceAll
    linkageType: ''
    returnType: void
    signature: void FileExtractor::createDirectoryRecursively(const std::wstring &path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: RegistryLoader::RegistryLoader
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryLoader::RegistryLoader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::freeHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: RegistryLoader::~RegistryLoader()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - RegistryLoader::freeHives
    linkageType: ''
    returnType: void
    signature: void RegistryLoader::~RegistryLoader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:31,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:31,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:35,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:37,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:37,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:41,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:43,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:43,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: RegistryLoader::freeHives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 1
    functionsReached:
    - clear
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void RegistryLoader::freeHives()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHostName
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: getFQDN
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getFQDN(const std::string &aHostName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:85,1
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:85,1
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:86,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:89,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:90,1
    - Dst: std::string::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:93,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:95,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:96,1
    - Dst: getFQDN
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:97,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:102,1
    - Dst: getFQDN
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:103,1
    - Dst: _splitpath_s
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:110,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:110,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:112,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:112,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:112,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:113,1
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:116,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:117,1
    - Dst: TskHelper::replaceAll
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - aPath
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 122
    functionName: toNormalizedOutputPathName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - std::string::erase
    - TskHelper::startsWith
    - std::string::substr
    - std::string::c_str
    - getFQDN
    - std::string::find
    - std::string
    - _splitpath_s
    - std::string::find_first_of
    - TskHelper::replaceAll
    linkageType: ''
    returnType: std::string
    signature: std::string toNormalizedOutputPathName(const std::string &aPath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadSystemHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:130,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:131,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:131,1
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: RegistryLoader::getSAMHive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - begin
    - RegistryLoader::loadSystemHives
    - end
    - RegFileInfo*::getHiveType
    linkageType: ''
    returnType: RegFileInfo
    signature: RegFileInfo *RegistryLoader::getSAMHive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadSystemHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:146,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:147,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:147,1
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: RegistryLoader::getSystemHive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - begin
    - RegistryLoader::loadSystemHives
    - end
    - RegFileInfo*::getHiveType
    linkageType: ''
    returnType: RegFileInfo
    signature: RegFileInfo *RegistryLoader::getSystemHive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadSystemHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:162,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:163,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:163,1
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: RegistryLoader::getSoftwareHive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - begin
    - RegistryLoader::loadSystemHives
    - end
    - RegFileInfo*::getHiveType
    linkageType: ''
    returnType: RegFileInfo
    signature: RegFileInfo *RegistryLoader::getSoftwareHive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadSystemHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:178,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:179,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:179,1
    - Dst: RegFileInfo*::getHiveType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: RegistryLoader::getSecurityHive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - begin
    - RegistryLoader::loadSystemHives
    - end
    - RegFileInfo*::getHiveType
    linkageType: ''
    returnType: RegFileInfo
    signature: RegFileInfo *RegistryLoader::getSecurityHive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadUserHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: RegistryLoader::getUsrClassHives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - RegistryLoader::loadUserHives
    linkageType: ''
    returnType: std::list<RegFileInfo *>
    signature: std::list<RegFileInfo *> RegistryLoader::getUsrClassHives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::loadUserHives
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: RegistryLoader::getNtUserHives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 0
    functionsReached:
    - RegistryLoader::loadUserHives
    linkageType: ''
    returnType: std::list<RegFileInfo *>
    signature: std::list<RegFileInfo *> RegistryLoader::getNtUserHives()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:217,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:218,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:218,1
    - Dst: RegistryLoader::findSystemRegFiles
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: RegistryLoader::loadSystemHives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 4
    functionsReached:
    - std::list::begin
    - std::list::end
    - TskHelper::getInstance
    - RegistryLoader::findSystemRegFiles
    linkageType: ''
    returnType: void
    signature: void RegistryLoader::loadSystemHives()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:235,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:236,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:236,1
    - Dst: RegistryLoader::findUserRegFiles
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: RegistryLoader::loadUserHives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 2
    functionsReached:
    - std::list::begin
    - std::list::end
    - RegistryLoader::findUserRegFiles
    - TskHelper::getInstance
    linkageType: ''
    returnType: void
    signature: void RegistryLoader::loadUserHives()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TSKFileNameInfo::TSKFileNameInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:251,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:252,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:252,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:254,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:255,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:255,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:255,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:264,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:264,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:265,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:266,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:267,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:267,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:272,1
    - Dst: tsk_fs_dir_get_name
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:278,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:279,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:280,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:281,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:281,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:290,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:290,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:290,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:290,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:291,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:291,1
    - Dst: RegFileInfo::hiveNameToType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:293,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:297,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:298,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:299,1
    - Dst: RegParser::RegParser
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:303,1
    - Dst: RegParser*::loadHive
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:304,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:305,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:306,1
    - Dst: toNormalizedOutputPathName
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:310,1
    - Dst: RegFileInfo::RegFileInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:310,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:313,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:314,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:317,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 319
    functionName: RegistryLoader::findSystemRegFiles
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 1
    functionsReached:
    - TSKFileNameInfo::TSKFileNameInfo
    - tsk_fs_dir_open_meta
    - TSKFileNameInfo::getINUM
    - tsk_error_get
    - tsk_fs_dir_get_name
    - toNormalizedOutputPathName
    - tsk_fs_dir_getsize
    - _stricmp
    - std::string::c_str
    - RegFileInfo::hiveNameToType
    - TskHelper::getInstance
    - ReportUtil::consoleOutput
    - tsk_fs_dir_close
    - tsk_fs_dir_get
    - push_back
    - RegParser::RegParser
    - RegParser*::loadHive
    - RegFileInfo::RegFileInfo
    - tsk_fs_file_close
    linkageType: ''
    returnType: int
    signature: int RegistryLoader::findSystemRegFiles(TSK_FS_INFO *a_fs_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegistryLoader::findUserRegFiles
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:332,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:332,1
    - Dst: RegistryLoader::findUserRegFiles
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:333,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a_fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: RegistryLoader::findUserRegFiles
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - RegistryLoader::findUserRegFiles
    linkageType: ''
    returnType: int
    signature: int RegistryLoader::findUserRegFiles(TSK_FS_INFO *a_fs_info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TSKFileNameInfo::TSKFileNameInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:348,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:349,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:349,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:352,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:353,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:353,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:353,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:361,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:361,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:362,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:363,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:363,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:363,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:368,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:373,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:374,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:375,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:376,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:376,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:382,1
    - Dst: RegistryLoader::findNTUserRegFilesInDir
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:385,1
    - Dst: RegistryLoader::findUsrClassRegFile
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:388,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - a_fs_info
    - a_starting_dir
    argTypes:
    - TSK_FS_INFO*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 395
    functionName: RegistryLoader::findUserRegFiles
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 2
    functionsReached:
    - TSKFileNameInfo::TSKFileNameInfo
    - tsk_fs_dir_get
    - tsk_fs_dir_open_meta
    - std::string::c_str
    - TSKFileNameInfo::getINUM
    - TskHelper::getInstance
    - tsk_fs_dir_getsize
    - TSK_FS_ISDOT
    - RegistryLoader::findNTUserRegFilesInDir
    - tsk_fs_file_close
    - ReportUtil::consoleOutput
    - RegistryLoader::findUsrClassRegFile
    - tsk_error_get
    linkageType: ''
    returnType: int
    signature: int RegistryLoader::findUserRegFiles(TSK_FS_INFO *a_fs_info, const
      std::string &a_starting_dir)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:411,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:412,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:413,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:413,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:413,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:418,1
    - Dst: tsk_fs_dir_get_name
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:424,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:425,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:426,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:427,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:435,1
    - Dst: RegFileInfo::hiveNameToType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:437,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:440,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:441,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:442,1
    - Dst: RegParser::RegParser
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:446,1
    - Dst: RegParser*::loadHive
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:447,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:448,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:449,1
    - Dst: toNormalizedOutputPathName
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:452,1
    - Dst: RegFileInfo::RegFileInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:452,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:456,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:457,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:457,1
    - Dst: std::string::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:460,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:462,1
    - Dst: RegFileInfo*::setUserAccountName
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:467,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:470,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:471,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:474,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - a_fs_info
    - a_dir_inum
    - a_userFolderPath
    - aUserDirName
    argTypes:
    - TSK_FS_INFO*
    - TSK_INUM_T
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 406
    functionDepth: 5
    functionLinenumber: 406
    functionLinenumberEnd: 476
    functionName: RegistryLoader::findNTUserRegFilesInDir
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 1
    functionsReached:
    - tsk_fs_dir_open_meta
    - tsk_error_get
    - tsk_fs_dir_get_name
    - toNormalizedOutputPathName
    - tsk_fs_dir_getsize
    - RegFileInfo*::setUserAccountName
    - _stricmp
    - std::string::c_str
    - RegFileInfo::hiveNameToType
    - std::string::length
    - ReportUtil::consoleOutput
    - std::string::find_first_of
    - tsk_fs_dir_close
    - tsk_fs_dir_get
    - std::string::substr
    - push_back
    - RegParser::RegParser
    - RegParser*::loadHive
    - RegFileInfo::RegFileInfo
    - tsk_fs_file_close
    linkageType: ''
    returnType: int
    signature: "int RegistryLoader::findNTUserRegFilesInDir(TSK_FS_INFO *a_fs_info,
      TSK_INUM_T a_dir_inum, const std::string &a_userFolderPath, \n                                            const
      std::string &aUserDirName)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::startsWith
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:492,1
    - Dst: TSKFileNameInfo::TSKFileNameInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:499,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:500,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:500,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:503,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:504,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:505,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:505,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:513,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:513,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:514,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:515,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:516,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:516,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:521,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:526,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:527,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:528,1
    - Dst: TSKFileNameInfo::getINUM
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:529,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:529,1
    - Dst: _stricmp
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:539,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:539,1
    - Dst: RegFileInfo::hiveNameToType
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:541,1
    - Dst: RegParser::RegParser
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:543,1
    - Dst: RegParser*::loadHive
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:544,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:545,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:546,1
    - Dst: toNormalizedOutputPathName
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:549,1
    - Dst: RegFileInfo::RegFileInfo
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:549,1
    - Dst: std::string::find_last_of
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:556,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:558,1
    - Dst: std::string::find_first_of
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:560,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:562,1
    - Dst: RegFileInfo*::setUserAccountName
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:568,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:571,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:576,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp:578,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - a_fs_info
    - aUserDirPathName
    argTypes:
    - TSK_FS_INFO*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 581
    functionName: RegistryLoader::findUsrClassRegFile
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
    functionUses: 1
    functionsReached:
    - TSKFileNameInfo::TSKFileNameInfo
    - tsk_fs_dir_open_meta
    - TSKFileNameInfo::getINUM
    - tsk_error_get
    - toNormalizedOutputPathName
    - tsk_fs_dir_getsize
    - RegFileInfo*::setUserAccountName
    - std::string::find_last_of
    - _stricmp
    - std::string::c_str
    - RegFileInfo::hiveNameToType
    - TskHelper::getInstance
    - ReportUtil::consoleOutput
    - std::string::find_first_of
    - tsk_fs_dir_close
    - tsk_fs_dir_get
    - TskHelper::startsWith
    - std::string::substr
    - push_back
    - RegParser::RegParser
    - RegParser*::loadHive
    - RegFileInfo::RegFileInfo
    - tsk_fs_file_close
    linkageType: ''
    returnType: int
    signature: int RegistryLoader::findUsrClassRegFile(TSK_FS_INFO *a_fs_info, const
      std::string &aUserDirPathName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keyName
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: RegKey::RegKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegKey::RegKey(std::wstring &keyName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - keyName
    - numSubkeys
    - numValues
    argTypes:
    - std::wstring
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: RegKey::RegKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegKey::RegKey(std::wstring &keyName, long numSubkeys, long numValues)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: RegKey::~RegKey()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegKey::~RegKey()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryKey*::getName
      Src: /src/sleuthkit/tools/logicalimager/RegKey.cpp:51,1
    - Dst: Rejistry::RegistryKey*::getSubkeyListSize
      Src: /src/sleuthkit/tools/logicalimager/RegKey.cpp:55,1
    - Dst: Rejistry::RegistryKey*::getValueListSize
      Src: /src/sleuthkit/tools/logicalimager/RegKey.cpp:56,1
    - Dst: Rejistry::RegistryKey*::getTimestamp
      Src: /src/sleuthkit/tools/logicalimager/RegKey.cpp:57,1
    - Dst: Rejistry::RegistryKey::RegistryKey
      Src: /src/sleuthkit/tools/logicalimager/RegKey.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - regKey
    argTypes:
    - Rejistry::RegistryKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: RegKey::initialize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.cpp
    functionUses: 0
    functionsReached:
    - Rejistry::RegistryKey::RegistryKey
    - Rejistry::RegistryKey*::getName
    - Rejistry::RegistryKey*::getValueListSize
    - Rejistry::RegistryKey*::getTimestamp
    - Rejistry::RegistryKey*::getSubkeyListSize
    linkageType: ''
    returnType: int
    signature: int RegKey::initialize(const Rejistry::RegistryKey *regKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RegKey::print
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegKey::print()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: LogicalImagerConfiguration::getCreateVHD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getCreateVHD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: LogicalImagerConfiguration::getFinalizeImagerWriter
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getFinalizeImagerWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: LogicalImagerConfiguration::getPromptBeforeExit
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getPromptBeforeExit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: LogicalImagerConfiguration::getVersion
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getVersion()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: LogicalImagerConfiguration::LogicalImagerConfiguration
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerConfiguration(const LogicalImagerConfiguration &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::openConsoleOutput
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:43,1
    - Dst: ReportUtil::openReport
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sessionDir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: ReportUtil::initialize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - ReportUtil::openConsoleOutput
    - ReportUtil::openReport
    linkageType: ''
    returnType: void
    signature: void ReportUtil::initialize(const std::string &sessionDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::rdbuf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:53,1
    - Dst: std::ofstream::close
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:54,1
    - Dst: std::ifstream::close
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - configFilename
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: ReportUtil::copyConfigFile
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::rdbuf
    - std::ofstream::close
    - std::ifstream::close
    linkageType: ''
    returnType: void
    signature: void ReportUtil::copyConfigFile(const std::wstring &configFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:64,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:66,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:66,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:67,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - reportFilename
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ReportUtil::openReport
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 1
    functionsReached:
    - fopen
    - fprintf
    - std::string::c_str
    - ReportUtil::handleExit
    - ReportUtil::consoleOutput
    linkageType: ''
    returnType: void
    signature: void ReportUtil::openReport(const std::string &reportFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:73,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:73,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:75,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:75,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - consoleFileName
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: ReportUtil::openConsoleOutput
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    - ReportUtil::handleExit
    - std::string::c_str
    - fopen
    linkageType: ''
    returnType: void
    signature: void ReportUtil::openConsoleOutput(const std::string &consoleFileName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: ReportUtil::logOutputToFile
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ReportUtil::logOutputToFile(const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:90,1
    - Dst: vsnprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:91,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:92,1
    - Dst: ReportUtil::logOutputToFile
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:94,1
    - Dst: va_end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: ReportUtil::consoleOutput
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 13
    functionsReached:
    - vsnprintf
    - fprintf
    - ReportUtil::logOutputToFile
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void ReportUtil::consoleOutput(FILE *fd, const char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:102,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: ReportUtil::printDebug
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 3
    functionsReached:
    - std::string::c_str
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void ReportUtil::printDebug(char *msg, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: ReportUtil::printDebug
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 4
    functionsReached:
    - ReportUtil::printDebug
    linkageType: ''
    returnType: void
    signature: void ReportUtil::printDebug(char *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:136,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:136,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:145,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:146,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:147,1
    - Dst: to_string
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:148,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:153,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:153,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:153,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:153,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:153,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:154,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:154,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:154,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:154,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:154,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:155,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:155,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:155,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:155,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:155,1
    - Dst: std::string::erase
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:156,1
    - Dst: std::remove
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:156,1
    - Dst: std::string::begin
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:156,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:156,1
    - Dst: std::string::end
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:156,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:159,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:160,1
    - Dst: MatchedRuleInfo*::getRuleSetName
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:164,1
    - Dst: MatchedRuleInfo*::getName
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:165,1
    - Dst: MatchedRuleInfo*::getDescription
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:166,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:167,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:168,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:169,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:170,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:171,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:172,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:173,1
    - Dst: fflush
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:175,1
    - Dst: MatchedRuleInfo*::isShouldAlert
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:185,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:186,1
    - Dst: MatchedRuleInfo*::getRuleSetName
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:187,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 6
    argNames:
    - outputLocation
    - extractStatus
    - matchedRuleInfo
    - fs_file
    - path
    - extractedFilePath
    argTypes:
    - std::string
    - TSK_RETVAL_ENUM
    - MatchedRuleInfo*
    - TSK_FS_FILE*
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 190
    functionName: ReportUtil::reportResult
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - std::string::erase
    - std::string::end
    - fflush
    - fprintf
    - MatchedRuleInfo*::getDescription
    - std::string::c_str
    - std::remove
    - std::string::begin
    - to_string
    - strcmp
    - MatchedRuleInfo*::getRuleSetName
    - MatchedRuleInfo*::isShouldAlert
    - ReportUtil::consoleOutput
    - MatchedRuleInfo*::getName
    linkageType: ''
    returnType: void
    signature: void ReportUtil::reportResult(const std::string &outputLocation, TSK_RETVAL_ENUM
      extractStatus, const MatchedRuleInfo *matchedRuleInfo, TSK_FS_FILE *fs_file,
      const char *path, const std::string &extractedFilePath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: ReportUtil::closeReport
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ReportUtil::closeReport()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:204,1
    - Dst: _getch
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:209,1
    - Dst: exit
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: ReportUtil::handleExit
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 5
    functionsReached:
    - _getch
    - fclose
    - exit
    linkageType: ''
    returnType: void
    signature: void ReportUtil::handleExit(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:221,1
    - Dst: ReportUtil::GetErrorStdStrW
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: ReportUtil::GetErrorStdStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 1
    functionsReached:
    - TskHelper::toNarrow
    - ReportUtil::GetErrorStdStrW
    linkageType: ''
    returnType: std::string
    signature: std::string ReportUtil::GetErrorStdStr(DWORD err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:230,1
    - Dst: ReportUtil::GetErrorStdStrW
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: ReportUtil::GetLastErrorStdStrW
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached:
    - ReportUtil::GetErrorStdStrW
    - GetLastError
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ReportUtil::GetLastErrorStdStrW()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageW
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:243,1
    - Dst: MAKELANGID
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:249,1
    - Dst: std::wstring::find_last_not_of
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:255,1
    - Dst: std::wstring::resize
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:257,1
    - Dst: LocalFree
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:259,1
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a_err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: ReportUtil::GetErrorStdStrW
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 2
    functionsReached:
    - FormatMessageW
    - std::wstring
    - MAKELANGID
    - LocalFree
    - std::wstring::find_last_not_of
    - std::wstring::resize
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring ReportUtil::GetErrorStdStrW(DWORD a_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: ReportUtil::SetPromptBeforeExit
    functionSourceFile: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReportUtil::SetPromptBeforeExit(bool flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - valName
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: RegVal::setValName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setValName(std::wstring &valName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - valType
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: RegVal::setValType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setValType(int valType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - valLen
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: RegVal::setValLen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setValLen(long valLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dwData
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: RegVal::setDWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setDWORD(unsigned long dwData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dwData64
    argTypes:
    - unsigned _int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: RegVal::setQWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setQWORD(unsigned _int64 dwData64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wsData
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: RegVal::setString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setString(std::wstring &wsData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: RegVal::getValName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring getValName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: RegVal::getValType
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getValType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: RegVal::getValLen
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long getValLen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: RegVal::getDWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getDWORD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: RegVal::getDWORD64
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned _int64
    signature: unsigned _int64 getDWORD64() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: RegVal::getString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring getString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: RegVal::getBinary
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *getBinary() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: RegVal::getMultiString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> getMultiString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: RegVal::isString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: RegVal::isDWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDWORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: RegVal::isQWORD
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isQWORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: RegVal::isBinary
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isBinary()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: RegVal::isMultiString
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isMultiString()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wgetcwd
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:36,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:37,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:38,1
    - Dst: wcsncpy_s
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:44,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:46,1
    - Dst: DriveUtil::driveIsFAT
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cwd
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: DriveUtil::cwdIsFAT
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - DriveUtil::driveIsFAT
    - wcsncpy_s
    - ReportUtil::handleExit
    - _wgetcwd
    - ReportUtil::consoleOutput
    - free
    linkageType: ''
    returnType: bool
    signature: bool DriveUtil::cwdIsFAT(std::wstring &cwd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:57,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:58,1
    - Dst: TskHelper::addFSFromImage
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:61,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:66,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:67,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:67,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:78,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - drive
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: DriveUtil::driveIsFAT
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 1
    functionsReached:
    - std::list::begin
    - std::wstring
    - tsk_img_close
    - TskHelper::addFSFromImage
    - std::wstring::c_str
    - std::list::end
    - TskHelper::getInstance
    linkageType: ''
    returnType: bool
    signature: bool DriveUtil::driveIsFAT(wchar_t *drive)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DriveUtil::wmi_init
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:104,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:111,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:125,1
    - Dst: IWbemServices*::ExecQuery
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:129,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:130,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:131,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:131,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:136,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:140,1
    - Dst: IEnumWbemClassObject*::Next
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:147,1
    - Dst: IWbemClassObject*::Get
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:151,1
    - Dst: _bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:151,1
    - Dst: VariantClear
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:163,1
    - Dst: IEnumWbemClassObject*::Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:166,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - driveLetter
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 171
    functionName: DriveUtil::checkDriveForBitlocker
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - DriveUtil::wmi_init
    - FAILED
    - IWbemClassObject*::Get
    - TskHelper::toWide
    - std::wstring::c_str
    - _bstr_t
    - IEnumWbemClassObject*::Release
    - IEnumWbemClassObject*::Next
    - DriveUtil::wmi_close
    - TskHelper::toNarrow
    - IWbemServices*::ExecQuery
    - bstr_t
    - VariantClear
    linkageType: ''
    returnType: int
    signature: int DriveUtil::checkDriveForBitlocker(const std::string &driveLetter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DriveUtil::wmi_init
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:193,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:200,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:213,1
    - Dst: IWbemServices*::ExecQuery
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:217,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:218,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:219,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:219,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:224,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:228,1
    - Dst: IEnumWbemClassObject*::Next
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:235,1
    - Dst: IWbemClassObject*::Get
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:239,1
    - Dst: _bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:239,1
    - Dst: VariantClear
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:247,1
    - Dst: IEnumWbemClassObject*::Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:250,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - driveLetter
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 255
    functionName: DriveUtil::isDriveLocked
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - DriveUtil::wmi_init
    - FAILED
    - IWbemClassObject*::Get
    - TskHelper::toWide
    - std::wstring::c_str
    - _bstr_t
    - IEnumWbemClassObject*::Release
    - IEnumWbemClassObject*::Next
    - DriveUtil::wmi_close
    - TskHelper::toNarrow
    - IWbemServices*::ExecQuery
    - bstr_t
    - VariantClear
    linkageType: ''
    returnType: int
    signature: int DriveUtil::isDriveLocked(const std::string &driveLetter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CoInitializeEx
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:273,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:274,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:275,1
    - Dst: CoInitializeSecurity
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:280,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:292,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:293,1
    - Dst: CoUninitialize
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:294,1
    - Dst: CoCreateInstance
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:299,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:305,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:307,1
    - Dst: CoUninitialize
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:308,1
    - Dst: ConnectServer
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:316,1
    - Dst: _bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:317,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:317,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:327,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:329,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:330,1
    - Dst: ReportUtil::GetErrorStdStr
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:330,1
    - Dst: Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:333,1
    - Dst: CoUninitialize
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:334,1
    - Dst: CoSetProxyBlanket
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:340,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:351,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:352,1
    - Dst: Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:353,1
    - Dst: Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:354,1
    - Dst: CoUninitialize
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - ' wmiNamespace'
    - ppWbemLocator
    - ppWbemServices
    argTypes:
    - std::wstring
    - IWbemLocator**
    - IWbemServices**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 359
    functionName: DriveUtil::wmi_init
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 2
    functionsReached:
    - FAILED
    - CoInitializeEx
    - CoCreateInstance
    - _bstr_t
    - Release
    - ReportUtil::GetErrorStdStr
    - CoUninitialize
    - CoInitializeSecurity
    - TskHelper::toNarrow
    - ReportUtil::consoleOutput
    - ConnectServer
    - CoSetProxyBlanket
    - c_str
    linkageType: ''
    returnType: long
    signature: long DriveUtil::wmi_init(const std::wstring& wmiNamespace, IWbemLocator
      **ppWbemLocator, IWbemServices **ppWbemServices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:372,1
    - Dst: Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:373,1
    - Dst: CoUninitialize
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ppWbemLocator
    - ppWbemServices
    argTypes:
    - IWbemLocator**
    - IWbemServices**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 380
    functionName: DriveUtil::wmi_close
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 2
    functionsReached:
    - Release
    - CoUninitialize
    linkageType: ''
    returnType: int
    signature: int DriveUtil::wmi_close(IWbemLocator **ppWbemLocator, IWbemServices
      **ppWbemServices)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DriveUtil::wmi_init
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:397,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:409,1
    - Dst: IWbemServices*::ExecQuery
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:413,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:414,1
    - Dst: bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:415,1
    - Dst: std::wstring::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:415,1
    - Dst: FAILED
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:420,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:424,1
    - Dst: IEnumWbemClassObject*::Next
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:431,1
    - Dst: IWbemClassObject*::Get
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:436,1
    - Dst: _bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:436,1
    - Dst: IWbemClassObject*::Get
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:439,1
    - Dst: _bstr_t
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:439,1
    - Dst: VariantClear
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:442,1
    - Dst: VariantClear
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:443,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:448,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:448,1
    - Dst: IEnumWbemClassObject*::Release
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:454,1
    - Dst: DriveUtil::wmi_close
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - driveLetter
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 459
    functionName: DriveUtil::checkDriveForLDM
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - DriveUtil::wmi_init
    - FAILED
    - IWbemClassObject*::Get
    - TskHelper::toWide
    - std::wstring::c_str
    - _bstr_t
    - IEnumWbemClassObject*::Release
    - TskHelper::toLower
    - IEnumWbemClassObject*::Next
    - DriveUtil::wmi_close
    - TskHelper::toNarrow
    - IWbemServices*::ExecQuery
    - bstr_t
    - VariantClear
    linkageType: ''
    returnType: int
    signature: int DriveUtil::checkDriveForLDM(const std::string &driveLetter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DriveUtil::checkDriveForLDM
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:472,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:474,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:474,1
    - Dst: DriveUtil::checkDriveForBitlocker
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:479,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:481,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:481,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:490,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - systemDriveLetter
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 499
    functionName: DriveUtil::hasBitLockerOrLDM
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - DriveUtil::checkDriveForLDM
    - ReportUtil::printDebug
    - std::string::c_str
    - DriveUtil::checkDriveForBitlocker
    linkageType: ''
    returnType: bool
    signature: bool DriveUtil::hasBitLockerOrLDM(const std::string &systemDriveLetter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QueryDosDeviceA
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:512,1
    - Dst: std::vector<std::wstring>::clear
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:513,1
    - Dst: strlen
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:514,1
    - Dst: std::wstring::rfind
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:516,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:516,1
    - Dst: std::vector<std::wstring>::push_back
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:517,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:518,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:523,1
    - Dst: GetLastError
      Src: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - phyiscalDrives
    argTypes:
    - std::vector<std::wstring>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 527
    functionName: DriveUtil::getPhysicalDrives
    functionSourceFile: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
    functionUses: 0
    functionsReached:
    - QueryDosDeviceA
    - std::vector<std::wstring>::clear
    - std::vector<std::wstring>::push_back
    - std::wstring::rfind
    - GetLastError
    - _TSK_T
    - ReportUtil::consoleOutput
    - ReportUtil::printDebug
    - strlen
    linkageType: ''
    returnType: BOOL
    signature: BOOL DriveUtil::getPhysicalDrives(std::vector<std::wstring> &phyiscalDrives)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: RegistryAnalyzer::RegistryAnalyzer
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryAnalyzer(const RegistryAnalyzer&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sscanf
      Src: /src/sleuthkit/tools/logicalimager/Version.h:29,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/Version.h:29,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/Version.h:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - version
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: Version::Version
    functionSourceFile: /src/sleuthkit/tools/logicalimager/Version.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::logic_error
    - std::sscanf
    linkageType: ''
    returnType: void
    signature: void Version(std::string version)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: operator < (const Version& rhs) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/Version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator < (const Version& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: operator == (const Version& other) const
    functionSourceFile: /src/sleuthkit/tools/logicalimager/Version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (const Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' stream'
    - ' ver'
    argTypes:
    - std::ostream
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: '& operator << (std::ostream& stream, const Version& ver)'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/Version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << (std::ostream& stream, const Version& ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: ~FileExtractor()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FileExtractor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: FileExtractor::FileExtractor
    functionSourceFile: /src/sleuthkit/tools/logicalimager/FileExtractor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileExtractor(const FileExtractor &)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::istringstream::imbue
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:47,1
    - Dst: std::locale
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:47,1
    - Dst: std::get_time
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:48,1
    - Dst: std::istringstream::fail
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:49,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:50,1
    - Dst: mktime
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - datetimeStr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: stringToTimet
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - std::locale
    - std::logic_error
    - std::get_time
    - std::istringstream::imbue
    - mktime
    - std::istringstream::fail
    linkageType: ''
    returnType: time_t
    signature: time_t stringToTimet(const std::string &datetimeStr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:58,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - ruleJson
    argTypes:
    - std::string
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: getPositiveInt64
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - get_to
    - std::logic_error
    linkageType: ''
    returnType: TSK_OFF_T
    signature: TSK_OFF_T getPositiveInt64(const std::string &key, nlohmann::json ruleJson)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:67,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - ruleJson
    argTypes:
    - std::string
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: getPositiveInt
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - get_to
    - std::logic_error
    linkageType: ''
    returnType: int
    signature: int getPositiveInt(const std::string &key, nlohmann::json ruleJson)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:92,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:92,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:93,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:94,1
    - Dst: nlohmann::json::get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:97,1
    - Dst: nlohmann::json::get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:100,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:103,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:106,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:110,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:110,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:112,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:113,1
    - Dst: std::set::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:115,1
    - Dst: LogicalImagerExtensionRule::LogicalImagerExtensionRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:117,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:123,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:123,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:125,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:126,1
    - Dst: std::set::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:128,1
    - Dst: LogicalImagerFilenameRule::LogicalImagerFilenameRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:130,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:136,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:136,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:138,1
    - Dst: std::set::insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:139,1
    - Dst: std::set::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:141,1
    - Dst: LogicalImagerPathRule::LogicalImagerPathRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:142,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:143,1
    - Dst: nlohmann::json::get
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:147,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:148,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:151,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:151,1
    - Dst: getPositiveInt64
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:153,1
    - Dst: getPositiveInt64
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:156,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:159,1
    - Dst: LogicalImagerSizeRule::LogicalImagerSizeRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:162,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:163,1
    - Dst: nlohmann::json::get
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:167,1
    - Dst: auto::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:168,1
    - Dst: auto::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:172,1
    - Dst: auto::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:172,1
    - Dst: get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:175,1
    - Dst: stringToTimet
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:176,1
    - Dst: get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:180,1
    - Dst: stringToTimet
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:181,1
    - Dst: getPositiveInt
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:184,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:187,1
    - Dst: LogicalImagerDateRule::LogicalImagerDateRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:190,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:191,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:195,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:195,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:197,1
    - Dst: std::list::push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:198,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:202,1
    - Dst: std::string::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:208,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:209,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:213,1
    - Dst: std::list::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:216,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:216,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:217,1
    - Dst: MatchedRuleInfo::MatchedRuleInfo
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:220,1
    - Dst: std::list::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:221,1
    - Dst: std::vector::empty
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:225,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:226,1
    - Dst: std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase *>>
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:226,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 103
    argCount: 2
    argNames:
    - ruleSetName
    - rule
    argTypes:
    - std::string
    - nlohmann::json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 228
    functionName: LogicalImagerRuleSet::constructRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - std::list::push_back
    - auto::end
    - std::set::insert
    - auto::key
    - LogicalImagerDateRule::LogicalImagerDateRule
    - get_to
    - MatchedRuleInfo::MatchedRuleInfo
    - auto::value
    - LogicalImagerExtensionRule::LogicalImagerExtensionRule
    - getPositiveInt64
    - nlohmann::json::get
    - std::list::empty
    - LogicalImagerPathRule::LogicalImagerPathRule
    - std::vector::empty
    - stringToTimet
    - std::logic_error
    - std::string::empty
    - auto::begin
    - nlohmann::json::begin
    - std::set::empty
    - LogicalImagerFilenameRule::LogicalImagerFilenameRule
    - LogicalImagerSizeRule::LogicalImagerSizeRule
    - std::vector::push_back
    - nlohmann::json::end
    - nlohmann::json::get_to
    - getPositiveInt
    - auto::empty
    - push_back
    - std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase *>>
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleSet::constructRule(const std::string &ruleSetName,
      nlohmann::json rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::json::find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:243,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:243,1
    - Dst: nlohmann::json::find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:244,1
    - Dst: nlohmann::json::get_to
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:245,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:248,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:248,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:249,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:250,1
    - Dst: auto::key
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:251,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:252,1
    - Dst: nlohmann::json::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:253,1
    - Dst: nlohmann::json::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:253,1
    - Dst: auto::value
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:254,1
    - Dst: LogicalImagerRuleSet::constructRule
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ruleSet
    - outRules
    argTypes:
    - nlohmann::json
    - std::vector<std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase
      *>>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 7
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: LogicalImagerRuleSet::constructRuleSet
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::json::end
    - nlohmann::json::get_to
    - auto::key
    - nlohmann::json::begin
    - LogicalImagerRuleSet::constructRule
    - auto::value
    - nlohmann::json::find
    linkageType: ''
    returnType: void
    signature: "void LogicalImagerRuleSet::constructRuleSet(const nlohmann::json ruleSet,\n
      \   std::vector<std::pair<const MatchedRuleInfo *, std::vector<LogicalImagerRuleBase
      *>>> &outRules\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: LogicalImagerRuleSet::LogicalImagerRuleSet
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleSet::LogicalImagerRuleSet()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:265,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:265,1
    - Dst: auto::second::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:268,1
    - Dst: auto::second::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:268,1
    - Dst: second::clear
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: LogicalImagerRuleSet::~LogicalImagerRuleSet()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::second::begin
    - end
    - auto::second::end
    - second::clear
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleSet::~LogicalImagerRuleSet()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:289,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:289,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:294,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:294,1
    - Dst: LogicalImagerRuleSet::matches
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:295,1
    - Dst: callbackFunc
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - fs_file
    - path
    - callbackFunc
    argTypes:
    - TSK_FS_FILE*
    - char*
    - matchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 307
    functionName: LogicalImagerRuleSet::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - begin
    - end
    - std::vector::end
    - LogicalImagerRuleSet::matches
    - callbackFunc
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerRuleSet::matches(TSK_FS_FILE *fs_file, const char
      *path, matchCallback callbackFunc) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: LogicalImagerRuleSet::getFullFilePaths
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::pair<const MatchedRuleInfo *, std::list<std::string>>
    signature: std::pair<const MatchedRuleInfo *, std::list<std::string>> LogicalImagerRuleSet::getFullFilePaths()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: RegKey::getKeyName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring getKeyName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: RegKey::getNumSubkeys
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getNumSubkeys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: RegKey::getNumValues
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t getNumValues() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/sleuthkit/tools/logicalimager/RegKey.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ft'
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: RegKey::getModifyTime
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void getModifyTime(FILETIME& ft) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: RegKey::getRegistryKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Rejistry::RegistryKey
    signature: Rejistry::RegistryKey * getRegistryKey() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: RegKey::setModifyTime
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setModifyTime(FILETIME ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numSubkeys
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: RegKey::setNumSubkeys
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNumSubkeys(long numSubkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numValues
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: RegKey::setNumValues
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegKey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNumValues(long numValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - config
    - driveName
    argTypes:
    - LogicalImagerConfiguration*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: TskFindFiles::TskFindFiles
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskFindFiles::TskFindFiles(const LogicalImagerConfiguration *config,
      const std::string &driveName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:45,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TskFindFiles::~TskFindFiles()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
    functionUses: 0
    functionsReached:
    - SetConsoleTitleA
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void TskFindFiles::~TskFindFiles()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:52,1
    - Dst: ReportUtil::logOutputToFile
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:54,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: TskFindFiles::handleError
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
    functionUses: 0
    functionsReached:
    - ReportUtil::logOutputToFile
    - std::string::c_str
    - tsk_error_get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskFindFiles::handleError()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:73,1
    - Dst: setFileFilterFlags
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:77,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:80,1
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:84,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:88,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:92,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: TskFindFiles::filterFs
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
    functionUses: 0
    functionsReached:
    - setFileFilterFlags
    - tsk_fs_dir_open_meta
    - std::string::c_str
    - TSK_FS_TYPE_ISFAT
    - SetConsoleTitleA
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_dir_close
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskFindFiles::filterFs(TSK_FS_INFO * fs_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::intToStr
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:121,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:121,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:122,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:122,1
    - Dst: matches
      Src: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    functionName: TskFindFiles::processFile
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - SetConsoleTitleA
    - matches
    - std::string
    - TskHelper::intToStr
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskFindFiles::processFile(TSK_FS_FILE *fs_file, const
      char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:61,1
    - Dst: GetVersionEx
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: isWinXPOrOlder
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - GetVersionEx
    - memset
    linkageType: ''
    returnType: BOOL
    signature: BOOL isWinXPOrOlder()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isWinXPOrOlder
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:86,1
    - Dst: OpenProcessToken
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:90,1
    - Dst: GetCurrentProcess
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:90,1
    - Dst: GetTokenInformation
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:93,1
    - Dst: CloseHandle
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: isProcessElevated
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - OpenProcessToken
    - GetCurrentProcess
    - GetTokenInformation
    - isWinXPOrOlder
    - CloseHandle
    linkageType: ''
    returnType: BOOL
    signature: BOOL isProcessElevated()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:115,1
    - Dst: MAKEWORD
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:115,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:117,1
    - Dst: gethostname
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:122,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:123,1
    - Dst: WSAGetLastError
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:123,1
    - Dst: string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:126,1
    - Dst: WSACleanup
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a_hostName
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: getLocalHost
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - string
    - WSAGetLastError
    - WSACleanup
    - ReportUtil::consoleOutput
    - MAKEWORD
    - gethostname
    - WSAStartup
    linkageType: ''
    returnType: int
    signature: int getLocalHost(string &a_hostName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:144,1
    - Dst: gmtime_s
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:145,1
    - Dst: strftime
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:148,1
    - Dst: getLocalHost
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:152,1
    - Dst: stat
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:157,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:157,1
    - Dst: _mkdir
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:158,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:158,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:160,1
    - Dst: string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - directoryPathname
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: createSessionDirectory
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - time
    - getLocalHost
    - stat
    - strftime
    - string::c_str
    - _mkdir
    - ReportUtil::consoleOutput
    - gmtime_s
    linkageType: ''
    returnType: int
    signature: int createSessionDirectory(string &directoryPathname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isProcessElevated
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:182,1
    - Dst: sprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:192,1
    - Dst: GetDriveTypeA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:193,1
    - Dst: sprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:195,1
    - Dst: DriveUtil::hasBitLockerOrLDM
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:197,1
    - Dst: sprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:207,1
    - Dst: GetDriveTypeA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:208,1
    - Dst: sprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:210,1
    - Dst: std::vector<std::wstring>::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:212,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:212,1
    - Dst: std::vector<std::wstring>::clear
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:218,1
    - Dst: DriveUtil::getPhysicalDrives
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - drivesToProcess
    argTypes:
    - std::vector<std::wstring>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 224
    functionName: getDrivesToProcess
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - GetDriveTypeA
    - sprintf
    - std::vector<std::wstring>::clear
    - TskHelper::toWide
    - DriveUtil::getPhysicalDrives
    - isProcessElevated
    - DriveUtil::hasBitLockerOrLDM
    - std::vector<std::wstring>::push_back
    linkageType: ''
    returnType: BOOL
    signature: BOOL getDrivesToProcess(std::vector<std::wstring> &drivesToProcess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:234,1
    - Dst: TSKFileNameInfo::TSKFileNameInfo
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:235,1
    - Dst: std::list::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:237,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:240,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:240,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:241,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:241,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:242,1
    - Dst: std::list<std::string>::const_iterator::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:242,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:246,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:249,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 257
    functionName: hasTskLogicalImager
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - std::list::begin
    - TSKFileNameInfo::TSKFileNameInfo
    - std::list::push_back
    - std::list::end
    - TskHelper::getInstance
    - std::list<std::string>::const_iterator::c_str
    - tsk_fs_file_close
    linkageType: ''
    returnType: bool
    signature: bool hasTskLogicalImager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MatchedRuleInfo*::isShouldSave
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:274,1
    - Dst: extractFile
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:275,1
    - Dst: ReportUtil::reportResult
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - matchedRuleInfo
    - fs_file
    - path
    argTypes:
    - MatchedRuleInfo*
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: matchCallback
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - extractFile
    - MatchedRuleInfo*::isShouldSave
    - ReportUtil::reportResult
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM matchCallback(const MatchedRuleInfo *matchedRuleInfo,
      TSK_FS_FILE *fs_file, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::rfind
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:291,1
    - Dst: string::length
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:291,1
    - Dst: string::substr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fullPath
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: getFilename
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - string::rfind
    - string::length
    - string::substr
    linkageType: ''
    returnType: string
    signature: string getFilename(const string &fullPath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string::rfind
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:308,1
    - Dst: string::length
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:308,1
    - Dst: string::substr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fullPath
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: getPathName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - string::rfind
    - string::length
    - string::substr
    linkageType: ''
    returnType: string
    signature: string getPathName(const string &fullPath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:322,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:323,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:323,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:325,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:328,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:328,1
    - Dst: LogicalImagerConfiguration*::getFullFilePaths
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:331,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:332,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:332,1
    - Dst: std::list::begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:337,1
    - Dst: std::list::end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:337,1
    - Dst: tsk_fs_name_alloc
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:339,1
    - Dst: TSKFileNameInfo::TSKFileNameInfo
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:340,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:341,1
    - Dst: std::list<std::string>::const_iterator::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:341,1
    - Dst: getPathName
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:343,1
    - Dst: matchCallback
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:345,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:345,1
    - Dst: tsk_fs_name_free
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:347,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - config
    - driveName
    argTypes:
    - LogicalImagerConfiguration*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 352
    functionName: searchFilesByFullPath
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - std::list::begin
    - getPathName
    - std::vector::begin
    - TSKFileNameInfo::TSKFileNameInfo
    - std::string::c_str
    - std::list::end
    - TskHelper::getInstance
    - LogicalImagerConfiguration*::getFullFilePaths
    - SetConsoleTitleA
    - tsk_fs_name_free
    - std::string
    - matchCallback
    - std::vector::end
    - std::list<std::string>::const_iterator::c_str
    - ReportUtil::consoleOutput
    - tsk_fs_file_close
    - tsk_fs_name_alloc
    linkageType: ''
    returnType: void
    signature: void searchFilesByFullPath(LogicalImagerConfiguration *config, const
      std::string &driveName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskFindFiles::openImageHandle
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:362,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:363,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:363,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:367,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:367,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:368,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:368,1
    - Dst: TskFindFiles::findFilesInImg
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - config
    - driveName
    - img_info
    argTypes:
    - LogicalImagerConfiguration*
    - std::string
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: searchFilesByAttribute
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - TskFindFiles::openImageHandle
    - std::string::c_str
    - TskFindFiles::findFilesInImg
    - SetConsoleTitleA
    - std::string
    - ReportUtil::consoleOutput
    - tsk_error_get
    linkageType: ''
    returnType: void
    signature: void searchFilesByAttribute(LogicalImagerConfiguration *config, const
      std::string &driveName, TSK_IMG_INFO *img_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:382,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:382,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:383,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:383,1
    - Dst: TskHelper::endsWith
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:387,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:388,1
    - Dst: std::string::length
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:388,1
    - Dst: RegistryAnalyzer::analyzeSAMUsers
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sessionDir
    - driveName
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: reportUsers
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 0
    functionsReached:
    - RegistryAnalyzer::analyzeSAMUsers
    - std::string::c_str
    - TskHelper::endsWith
    - std::string::substr
    - SetConsoleTitleA
    - std::string
    - std::string::length
    - ReportUtil::consoleOutput
    linkageType: ''
    returnType: void
    signature: void reportUsers(const std::string &sessionDir, const std::string &driveName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:399,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:400,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:403,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:404,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:405,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 30
    functionsReached:
    - ReportUtil::handleExit
    - _TSK_T
    - tsk_fprintf
    - TFPRINTF
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleOutputCP
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:424,1
    - Dst: setlocale
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:425,1
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:429,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:429,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:431,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:432,1
    - Dst: GETOPT
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:439,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:439,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:441,1
    - Dst: TFPRINTF
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:443,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:443,1
    - Dst: usage
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:445,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:447,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:451,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:455,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:456,1
    - Dst: exit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:457,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:460,1
    - Dst: usage
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:468,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:475,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:476,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:478,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:478,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:481,1
    - Dst: LogicalImagerConfiguration::LogicalImagerConfiguration
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:481,1
    - Dst: ReportUtil::SetPromptBeforeExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:482,1
    - Dst: LogicalImagerConfiguration*::getPromptBeforeExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:482,1
    - Dst: LogicalImagerConfiguration*::getCreateVHD
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:483,1
    - Dst: what
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:486,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:487,1
    - Dst: DriveUtil::cwdIsFAT
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:491,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:492,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:493,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:506,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:507,1
    - Dst: getDrivesToProcess
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:509,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:510,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:511,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:511,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:512,1
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:512,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:516,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:517,1
    - Dst: createSessionDirectory
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:526,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:527,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:527,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:528,1
    - Dst: ReportUtil::initialize
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:531,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:533,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:533,1
    - Dst: ReportUtil::copyConfigFile
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:534,1
    - Dst: FileExtractor::FileExtractor
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:537,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:540,1
    - Dst: c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:541,1
    - Dst: TskHelper::toNarrow
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:542,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:544,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:544,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:545,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:545,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:545,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:546,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:546,1
    - Dst: TskHelper::intToStr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:546,1
    - Dst: TskHelper::intToStr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:546,1
    - Dst: std::vector::size
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:546,1
    - Dst: DriveUtil::isDriveLocked
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:548,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:549,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:549,1
    - Dst: TskHelper::addFSFromImage
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:554,1
    - Dst: hasTskLogicalImager
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:559,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:560,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:560,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:561,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:562,1
    - Dst: std::string::back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:572,1
    - Dst: std::string::substr
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:573,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:573,1
    - Dst: initializePerImage
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:576,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:588,1
    - Dst: TskHelper::toWide
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:588,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:589,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:589,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:590,1
    - Dst: std::list::push_back
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:592,1
    - Dst: std::make_pair
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:592,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:596,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:602,1
    - Dst: searchFilesByFullPath
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:608,1
    - Dst: reportUsers
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:617,1
    - Dst: TskHelper::getInstance
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:620,1
    - Dst: searchFilesByAttribute
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:623,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:627,1
    - Dst: ReportUtil::closeReport
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:632,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:635,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:635,1
    - Dst: LogicalImagerConfiguration*::getFinalizeImagerWriter
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:638,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:639,1
    - Dst: auto::second::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:639,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:640,1
    - Dst: auto::second::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:640,1
    - Dst: SetConsoleTitleA
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:641,1
    - Dst: std::string
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:641,1
    - Dst: tsk_img_writer_finish
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:642,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:643,1
    - Dst: auto::second::c_str
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:643,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:643,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:647,1
    - Dst: ReportUtil::printDebug
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:656,1
    - Dst: ReportUtil::handleExit
      Src: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp:657,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 148
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 658
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
    functionUses: 1
    functionsReached:
    - ReportUtil::copyConfigFile
    - LogicalImagerConfiguration*::getPromptBeforeExit
    - tsk_img_close
    - LogicalImagerConfiguration*::getCreateVHD
    - TskHelper::toWide
    - std::list::push_back
    - begin
    - initializePerImage
    - tsk_img_writer_create
    - std::string
    - _TSK_T
    - DriveUtil::isDriveLocked
    - getDrivesToProcess
    - ReportUtil::printDebug
    - TskHelper::intToStr
    - DriveUtil::cwdIsFAT
    - tsk_error_get
    - TFPRINTF
    - reportUsers
    - FileExtractor::FileExtractor
    - TskHelper::addFSFromImage
    - SetConsoleTitleA
    - ReportUtil::SetPromptBeforeExit
    - auto::second::c_str
    - ReportUtil::initialize
    - ReportUtil::closeReport
    - std::wstring
    - what
    - LogicalImagerConfiguration*::getFinalizeImagerWriter
    - searchFilesByFullPath
    - exit
    - std::string::c_str
    - CommandLineToArgvW
    - hasTskLogicalImager
    - TskHelper::getInstance
    - tsk_version_print
    - end
    - std::string::size
    - std::vector::size
    - TskHelper::toNarrow
    - ReportUtil::consoleOutput
    - SetConsoleOutputCP
    - setlocale
    - std::vector::push_back
    - c_str
    - GetCommandLineW
    - createSessionDirectory
    - GETOPT
    - std::string::substr
    - tsk_img_writer_finish
    - ReportUtil::handleExit
    - std::string::back
    - searchFilesByAttribute
    - LogicalImagerConfiguration::LogicalImagerConfiguration
    - usage
    - std::make_pair
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aHiveType
    argTypes:
    - RegHiveType::Enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: RegParser::RegParser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegParser::RegParser(const RegHiveType::Enum aHiveType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryHiveFile::RegistryHiveFile
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:21,1
    - Dst: getRoot
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filePath
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: RegParser::RegParser
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 3
    functionsReached:
    - getRoot
    - Rejistry::RegistryHiveFile::RegistryHiveFile
    linkageType: ''
    returnType: void
    signature: void RegParser::RegParser(const std::wstring &filePath)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: RegParser::~RegParser()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegParser::~RegParser()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:46,1
    - Dst: malloc
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:58,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:59,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:63,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:66,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:67,1
    - Dst: Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:72,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:75,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:76,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:80,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:81,1
    - Dst: getRoot
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:84,1
    - Dst: free
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - aHiveFile
    - aHiveType
    argTypes:
    - TSK_FS_FILE*
    - RegHiveType::Enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 88
    functionName: RegParser::loadHive
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
    - tsk_fs_file_read
    - ReportUtil::consoleOutput
    - free
    - getRoot
    linkageType: ''
    returnType: int
    signature: int RegParser::loadHive(TSK_FS_FILE *aHiveFile, RegHiveType::Enum aHiveType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegKey::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aKey
    argTypes:
    - RegKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: RegParser::getRootKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 0
    functionsReached:
    - RegKey::initialize
    linkageType: ''
    returnType: int
    signature: int RegParser::getRootKey(RegKey &aKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegKey::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:121,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - keyName
    - aKey
    argTypes:
    - std::wstring
    - RegKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: RegParser::getKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - RegKey::initialize
    - std::unique_ptr::get
    linkageType: ''
    returnType: int
    signature: int RegParser::getKey(const std::wstring &keyName, RegKey &aKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::getSubkeyList
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:153,1
    - Dst: std::vector<std::wstring>::reserve
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:154,1
    - Dst: auto::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:154,1
    - Dst: std::vector<std::wstring>::push_back
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:157,1
    - Dst: getName
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - keyName
    - subKeyNamesList
    argTypes:
    - std::wstring
    - std::vector<std::wstring>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: RegParser::getSubKeys
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - getName
    - std::unique_ptr::getSubkeyList
    - std::vector<std::wstring>::reserve
    - auto::size
    - std::vector<std::wstring>::push_back
    linkageType: ''
    returnType: int
    signature: int RegParser::getSubKeys(const std::wstring &keyName, std::vector<std::wstring>
      &subKeyNamesList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::getSubkeyList
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:189,1
    - Dst: std::vector<RegKey*>::reserve
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:190,1
    - Dst: auto::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:190,1
    - Dst: getName
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:193,1
    - Dst: RegKey::RegKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:193,1
    - Dst: RegKey*::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:194,1
    - Dst: get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:194,1
    - Dst: std::vector<RegKey*>::push_back
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - keyName
    - subKeysList
    argTypes:
    - std::wstring
    - std::vector<RegKey*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: RegParser::getSubKeys
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - std::vector<RegKey*>::push_back
    - getName
    - std::unique_ptr::getSubkeyList
    - auto::size
    - std::vector<RegKey*>::reserve
    - RegKey::RegKey
    - get
    - RegKey*::initialize
    linkageType: ''
    returnType: int
    signature: int RegParser::getSubKeys(const std::wstring &keyName, std::vector<RegKey*>
      &subKeysList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::getValue
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:228,1
    - Dst: RegVal::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:229,1
    - Dst: auto::get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - keyName
    - valName
    - val
    argTypes:
    - std::wstring
    - std::wstring
    - RegVal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: RegParser::getValue
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - RegVal::initialize
    - std::unique_ptr::getValue
    linkageType: ''
    returnType: int
    signature: int RegParser::getValue(const std::wstring &keyName, const std::wstring
      &valName, RegVal &val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegParser::findKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:267,1
    - Dst: RegKey*::getRegistryKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:267,1
    - Dst: std::unique_ptr::getValue
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:268,1
    - Dst: RegVal::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:269,1
    - Dst: auto::get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - startKey
    - subpathName
    - valName
    - val
    argTypes:
    - RegKey*
    - std::wstring
    - std::wstring
    - RegVal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 281
    functionName: RegParser::getValue
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - RegKey*::getRegistryKey
    - auto::get
    - RegVal::initialize
    - std::unique_ptr::getValue
    - RegParser::findKey
    linkageType: ''
    returnType: int
    signature: int RegParser::getValue(const RegKey *startKey, const std::wstring
      &subpathName, const std::wstring &valName, RegVal &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::getValueList
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:300,1
    - Dst: std::vector<RegVal *>::reserve
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:301,1
    - Dst: auto::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:301,1
    - Dst: std::vector<RegVal *>::push_back
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:304,1
    - Dst: get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:304,1
    - Dst: RegVal::RegVal
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - keyName
    - valList
    argTypes:
    - std::wstring
    - std::vector<RegVal *>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 317
    functionName: RegParser::getValues
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 0
    functionsReached:
    - std::vector<RegVal *>::push_back
    - RegVal::RegVal
    - auto::size
    - get
    - std::unique_ptr::getValueList
    - std::vector<RegVal *>::reserve
    linkageType: ''
    returnType: int
    signature: int RegParser::getValues(const std::wstring &keyName, std::vector<RegVal
      *> &valList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegParser::findKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:339,1
    - Dst: RegKey*::getRegistryKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:339,1
    - Dst: std::unique_ptr::getValueList
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:341,1
    - Dst: std::vector<RegVal *>::reserve
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:342,1
    - Dst: auto::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:342,1
    - Dst: std::vector<RegVal *>::push_back
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:345,1
    - Dst: get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:345,1
    - Dst: RegVal::RegVal
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - startKey
    - subpathName
    - valList
    argTypes:
    - RegKey*
    - std::wstring
    - std::vector<RegVal *>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 358
    functionName: RegParser::getValues
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 0
    functionsReached:
    - RegKey*::getRegistryKey
    - std::vector<RegVal *>::push_back
    - RegVal::RegVal
    - auto::size
    - get
    - std::unique_ptr::getValueList
    - RegParser::findKey
    - std::vector<RegVal *>::reserve
    linkageType: ''
    returnType: int
    signature: int RegParser::getValues(const RegKey *startKey, const std::wstring
      &subpathName, std::vector<RegVal *> &valList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:373,1
    - Dst: Rejistry::RegistryKey::RegistryKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:374,1
    - Dst: RegParser::splitKeyName
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:377,1
    - Dst: std::vector::begin
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:378,1
    - Dst: std::vector::end
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:383,1
    - Dst: Rejistry::RegistryKey*::getSubkey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:385,1
    - Dst: std::unique_ptr::get
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:386,1
    - Dst: getName
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:392,1
    - Dst: std::unique_ptr::release
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:399,1
    - Dst: Rejistry::RegistryKey::RegistryKey
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - keyName
    - startingKey
    argTypes:
    - std::wstring
    - Rejistry::RegistryKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 404
    functionName: RegParser::findKey
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 2
    functionsReached:
    - RegParser::splitKeyName
    - std::vector::begin
    - getName
    - Rejistry::RegistryKey::RegistryKey
    - Rejistry::RegistryKey*::getSubkey
    - std::unique_ptr::release
    - std::vector::end
    - std::unique_ptr::get
    linkageType: ''
    returnType: Rejistry::RegistryKey
    signature: Rejistry::RegistryKey *RegParser::findKey(const std::wstring &keyName,
      const Rejistry::RegistryKey *startingKey) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:418,1
    - Dst: std::wstring::find
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:419,1
    - Dst: std::wstring::size
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:422,1
    - Dst: std::vector::push_back
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:428,1
    - Dst: std::wstring
      Src: /src/sleuthkit/tools/logicalimager/RegParser.cpp:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - keyName
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 432
    functionName: RegParser::splitKeyName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegParser.cpp
    functionUses: 1
    functionsReached:
    - std::wstring::find
    - std::wstring
    - std::wstring::size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::wstring>
    signature: std::vector<std::wstring> RegParser::splitKeyName(const std::wstring
      &keyName) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - TSK_OFF_T
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: LogicalImagerSizeRule::LogicalImagerSizeRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerSizeRule.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerSizeRule::LogicalImagerSizeRule(TSK_OFF_T min, TSK_OFF_T
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: LogicalImagerSizeRule::~LogicalImagerSizeRule()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerSizeRule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerSizeRule::~LogicalImagerSizeRule()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: LogicalImagerSizeRule::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerSizeRule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerSizeRule::matches(TSK_FS_FILE *fs_file, const char
      * /*path*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: LogicalImagerPathRule::getUserFolder
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getUserFolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: LogicalImagerRuleBase::LogicalImagerRuleBase
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleBase::LogicalImagerRuleBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: LogicalImagerRuleBase::~LogicalImagerRuleBase()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleBase::~LogicalImagerRuleBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp:29,1
    - Dst: std::logic_error
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: LogicalImagerRuleBase::validatePath
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp
    functionUses: 0
    functionsReached:
    - std::string::find
    - std::logic_error
    linkageType: ''
    returnType: void
    signature: void LogicalImagerRuleBase::validatePath(const std::string &path) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:25,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:25,1
    - Dst: validatePath
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:26,1
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:27,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: LogicalImagerExtensionRule::LogicalImagerExtensionRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp
    functionUses: 1
    functionsReached:
    - insert
    - begin
    - end
    - TskHelper::toLower
    - validatePath
    linkageType: ''
    returnType: void
    signature: void LogicalImagerExtensionRule::LogicalImagerExtensionRule(const std::set<std::string>
      &extensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: LogicalImagerExtensionRule::~LogicalImagerExtensionRule()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void LogicalImagerExtensionRule::~LogicalImagerExtensionRule()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PathFindExtensionA
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:47,1
    - Dst: find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:53,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:53,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fs_file
    argTypes:
    - TSK_FS_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: LogicalImagerExtensionRule::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    - TskHelper::toLower
    - PathFindExtensionA
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerExtensionRule::matches(TSK_FS_FILE *fs_file, const
      char * /*path*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~MatchedRuleInfo()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MatchedRuleInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: MatchedRuleInfo::getRuleSetName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getRuleSetName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: MatchedRuleInfo::getName
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: MatchedRuleInfo::getDescription
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: MatchedRuleInfo::isShouldSave
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isShouldSave() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: MatchedRuleInfo::isShouldAlert
    functionSourceFile: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isShouldAlert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_flag
    argTypes:
    - TSK_FS_NAME_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Path2InumCacheData::setFSNameFlag
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setFSNameFlag(TSK_FS_NAME_FLAG_ENUM a_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Path2InumCacheData::getInum
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getInum() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Path2InumCacheData::getFSDir
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_DIR
    signature: TSK_FS_DIR *getFSDir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Path2InumCacheData::getFSNameFlag
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_FLAG_ENUM
    signature: TSK_FS_NAME_FLAG_ENUM getFSNameFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: TSKFileNameInfo::TSKFileNameInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSKFileNameInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_inum
    argTypes:
    - TSK_INUM_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: TSKFileNameInfo::setINUM
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setINUM(TSK_INUM_T a_inum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_flags
    argTypes:
    - TSK_FS_NAME_FLAG_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TSKFileNameInfo::setFSNameFlags
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setFSNameFlags(TSK_FS_NAME_FLAG_ENUM a_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: TSKFileNameInfo::getINUM
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: TSK_INUM_T
    signature: TSK_INUM_T getINUM() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: TSKFileNameInfo::getFSNameFlags
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TSK_FS_NAME_FLAG_ENUM
    signature: TSK_FS_NAME_FLAG_ENUM getFSNameFlags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::TskHelper
      Src: /src/sleuthkit/tools/logicalimager/TskHelper.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: '& getInstance()'
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached:
    - TskHelper::TskHelper
    linkageType: ''
    returnType: TskHelper
    signature: TskHelper & getInstance()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a_img_info
    argTypes:
    - TSK_IMG_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: TskHelper::setImgInfo
    functionSourceFile: /src/sleuthkit/tools/logicalimager/TskHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setImgInfo(TSK_IMG_INFO *a_img_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:35,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:40,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:41,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:50,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:51,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - valName
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - valName
    - valType
    - valLen
    argTypes:
    - std::wstring
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName, int valType, long valLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - valName
    - valType
    - valLen
    - dwData
    argTypes:
    - std::wstring
    - int
    - long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName, int valType, long valLen,
      unsigned long dwData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - valName
    - valType
    - valLen
    - dwData64
    argTypes:
    - std::wstring
    - int
    - long
    - unsigned _int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName, int valType, long valLen,
      unsigned _int64 dwData64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - valName
    - valType
    - valLen
    - wsData
    argTypes:
    - std::wstring
    - int
    - long
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName, int valType, long valLen,
      std::wstring &wsData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - valName
    - valType
    - valLen
    - binData
    argTypes:
    - std::wstring
    - int
    - long
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(std::wstring &valName, int valType, long valLen,
      unsigned char *binData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegVal::initialize
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Rejistry::RegistryValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: RegVal::RegVal
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached:
    - RegVal::initialize
    linkageType: ''
    returnType: void
    signature: void RegVal::RegVal(const Rejistry::RegistryValue *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: RegVal::~RegVal()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegVal::~RegVal()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Rejistry::RegistryValue*::getName
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:127,1
    - Dst: Rejistry::RegistryValue*::getValueType
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:128,1
    - Dst: Rejistry::RegistryValue*::getValueLength
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:135,1
    - Dst: Rejistry::RegistryValue::RegistryValue
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:136,1
    - Dst: Rejistry::RegistryValue*::getValue
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:138,1
    - Dst: auto::getAsNumber
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:143,1
    - Dst: auto::getAsNumber
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:146,1
    - Dst: auto::getAsString
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:151,1
    - Dst: auto::getAsStringList
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:154,1
    - Dst: auto::getAsRawData
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:161,1
    - Dst: ReportUtil::consoleOutput
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:170,1
    - Dst: message
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - value
    argTypes:
    - Rejistry::RegistryValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 174
    functionName: RegVal::initialize
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 3
    functionsReached:
    - message
    - Rejistry::RegistryValue*::getName
    - auto::getAsStringList
    - Rejistry::RegistryValue*::getValueLength
    - Rejistry::RegistryValue::RegistryValue
    - Rejistry::RegistryValue*::getValue
    - auto::getAsString
    - Rejistry::RegistryValue*::getValueType
    - auto::getAsRawData
    - ReportUtil::consoleOutput
    - auto::getAsNumber
    linkageType: ''
    returnType: int
    signature: int RegVal::initialize(const Rejistry::RegistryValue *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pData
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: RegVal::setBinaryData
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RegVal::setBinaryData(unsigned char *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strData
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: RegVal::addMultiStringData
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void RegVal::addMultiStringData(std::wstring &strData)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: RegVal::valTypeStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string RegVal::valTypeStr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegVal::valTypeStr
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:215,1
    - Dst: RegVal::dataToStr
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: RegVal::print
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached:
    - RegVal::valTypeStr
    - RegVal::dataToStr
    linkageType: ''
    returnType: void
    signature: void RegVal::print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:231,1
    - Dst: std::setfill
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:233,1
    - Dst: std::setw
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:233,1
    - Dst: std::stringstream::str
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - maxSize
    - len
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: hexprintBuf
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - min
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string hexprintBuf(const unsigned char *buf, size_t maxSize, size_t
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RegVal::isString
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:250,1
    - Dst: RegVal::isDWORD
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:253,1
    - Dst: RegVal::isQWORD
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:256,1
    - Dst: RegVal::isBinary
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:259,1
    - Dst: hexprintBuf
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:261,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:261,1
    - Dst: RegVal::isMultiString
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:263,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:264,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:264,1
    - Dst: std::wstringstream::str
      Src: /src/sleuthkit/tools/logicalimager/RegVal.cpp:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 269
    functionName: RegVal::dataToStr
    functionSourceFile: /src/sleuthkit/tools/logicalimager/RegVal.cpp
    functionUses: 1
    functionsReached:
    - hexprintBuf
    - RegVal::isBinary
    - size
    - std::wstringstream::str
    - RegVal::isMultiString
    - begin
    - RegVal::isQWORD
    - RegVal::isString
    - end
    - RegVal::isDWORD
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring RegVal::dataToStr()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:35,1
    - Dst: LogicalImagerPathRule::getUserFolder
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:35,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:36,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:36,1
    - Dst: validatePath
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:37,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:38,1
    - Dst: std::string::size
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:39,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:39,1
    - Dst: std::string::compare
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:40,1
    - Dst: size
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:40,1
    - Dst: std::string::replace
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:44,1
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:44,1
    - Dst: length
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:44,1
    - Dst: TskHelper::endsWith
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:45,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:46,1
    - Dst: std::string::append
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:48,1
    - Dst: push_back
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:51,1
    - Dst: insert
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:53,1
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - paths
    argTypes:
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: LogicalImagerPathRule::LogicalImagerPathRule
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp
    functionUses: 1
    functionsReached:
    - insert
    - size
    - LogicalImagerPathRule::getUserFolder
    - std::string::append
    - begin
    - TskHelper::endsWith
    - push_back
    - std::string::replace
    - std::string::find
    - length
    - end
    - std::string::compare
    - std::string::size
    - TskHelper::toLower
    - validatePath
    linkageType: ''
    returnType: void
    signature: void LogicalImagerPathRule::LogicalImagerPathRule(const std::set<std::string>
      &paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:59,1
    - Dst: clear
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: LogicalImagerPathRule::~LogicalImagerPathRule()
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void LogicalImagerPathRule::~LogicalImagerPathRule()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:70,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:70,1
    - Dst: std::regex_match
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: LogicalImagerPathRule::matchUserFolder
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp
    functionUses: 0
    functionsReached:
    - std::regex_match
    - begin
    - end
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerPathRule::matchUserFolder(const std::string path)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskHelper::toLower
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:90,1
    - Dst: LogicalImagerPathRule::matchUserFolder
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:92,1
    - Dst: begin
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:96,1
    - Dst: end
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:96,1
    - Dst: std::string::find
      Src: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: LogicalImagerPathRule::matches
    functionSourceFile: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::string::find
    - end
    - LogicalImagerPathRule::matchUserFolder
    - TskHelper::toLower
    linkageType: ''
    returnType: bool
    signature: bool LogicalImagerPathRule::matches(TSK_FS_FILE * /*fs_file*/, const
      char *path) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: SET_BINARY
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: _sch_test
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sch_test(c, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: ISPRINT
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPRINT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: STRING_ISGRAPHIC
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_ISGRAPHIC(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: file_open
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: file_open(s,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: file_open
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: file_open(s,m)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:273,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:284,1
    - Dst: integer_arg
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:288,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:290,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:291,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:303,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:318,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:325,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:332,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:334,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:336,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:337,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:340,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:369,1
    - Dst: SET_BINARY
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:375,1
    - Dst: fileno
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:375,1
    - Dst: print_strings
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:377,1
    - Dst: strings_file
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:383,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:388,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 391
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 1
    functionsReached:
    - fprintf
    - getopt
    - exit
    - printf
    - strings_file
    - fileno
    - print_strings
    - integer_arg
    - usage
    - SET_BINARY
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:404,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:406,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:408,1
    - Dst: strerror
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:409,1
    - Dst: S_ISREG
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:411,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 418
    functionName: get_file_size
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached:
    - fprintf
    - S_ISREG
    - stat
    - strerror
    linkageType: ''
    returnType: off_t
    signature: off_t get_file_size(const char *file_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_file_size
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:429,1
    - Dst: file_open
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:433,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:435,1
    - Dst: perror
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:436,1
    - Dst: print_strings
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:440,1
    - Dst: fclose
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:442,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:443,1
    - Dst: perror
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 449
    functionName: strings_file
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 1
    functionsReached:
    - perror
    - file_open
    - fprintf
    - fclose
    - print_strings
    - get_file_size
    linkageType: ''
    returnType: bfd_boolean
    signature: bfd_boolean strings_file(char *file)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getc_unlocked
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:478,1
    - Dst: getc
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:480,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - stream
    - address
    - magiccount
    - magic
    argTypes:
    - FILE*
    - uint64_t*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 515
    functionName: get_char
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 0
    functionsReached:
    - getc
    - getc_unlocked
    linkageType: ''
    returnType: long
    signature: long get_char(FILE * stream, uint64_t * address, int *magiccount, char
      **magic)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:533,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:535,1
    - Dst: get_char
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:550,1
    - Dst: free
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:552,1
    - Dst: STRING_ISGRAPHIC
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:555,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:570,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:574,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:578,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:582,1
    - Dst: fputs
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:587,1
    - Dst: get_char
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:590,1
    - Dst: STRING_ISGRAPHIC
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:593,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:595,1
    - Dst: putchar
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:598,1
    - Dst: free
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:600,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 6
    argNames:
    - filename
    - stream
    - address
    - stop_point
    - magiccount
    - magic
    argTypes:
    - char*
    - FILE*
    - uint64_t
    - uint64_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 601
    functionName: print_strings
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 2
    functionsReached:
    - get_char
    - malloc
    - fprintf
    - STRING_ISGRAPHIC
    - printf
    - fputs
    - putchar
    - free
    linkageType: ''
    returnType: void
    signature: "void print_strings(const char *filename, FILE * stream, uint64_t address,\n
      \       uint64_t stop_point, int magiccount, char *magic)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:646,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 651
    functionName: integer_arg
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int integer_arg(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:656,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:657,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:658,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/srch_strings.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - status
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 670
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/srchtools/srch_strings.c
    functionUses: 32
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(FILE * stream, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:25,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:28,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:29,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:31,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:32,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:33,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:35,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: usage
    functionSourceFile: /src/sleuthkit/tools/srchtools/sigfind.cpp
    functionUses: 32
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:61,1
    - Dst: strtol
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:64,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:66,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:68,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:72,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:73,1
    - Dst: strtol
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:83,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:85,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:87,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:92,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:93,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:94,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:102,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:103,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:104,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:112,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:123,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:134,1
    - Dst: strcmp
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:145,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:155,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:156,1
    - Dst: tsk_version_print
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:161,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:162,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:164,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:172,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:182,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:184,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:201,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:202,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:218,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:220,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:251,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:252,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:258,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:260,1
    - Dst: usage
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:271,1
    - Dst: tsk_img_open_utf8_sing
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:275,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:277,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:278,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:286,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:299,1
    - Dst: fprintf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:305,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:306,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:315,1
    - Dst: printf
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:317,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:325,1
    - Dst: exit
      Src: /src/sleuthkit/tools/srchtools/sigfind.cpp:326,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 195
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 327
    functionName: main
    functionSourceFile: /src/sleuthkit/tools/srchtools/sigfind.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - tsk_img_close
    - tsk_img_open_utf8_sing
    - fprintf
    - getopt
    - exit
    - printf
    - strcmp
    - tsk_version_print
    - strtol
    - tsk_img_read
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CppUnit::TestFactoryRegistry::getRegistry
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:21,1
    - Dst: CppUnit::TextUi::TestRunner::addTest
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:25,1
    - Dst: CppUnit::TextUi::TestRunner::setOutputter
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:28,1
    - Dst: CppUnit::TextUi::TestRunner::result
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:28,1
    - Dst: CppUnit::CompilerOutputter::CompilerOutputter
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:28,1
    - Dst: CppUnit::TextUi::TestRunner::run
      Src: /src/sleuthkit/unit_tests/base/test_base.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/sleuthkit/unit_tests/base/test_base.cpp
    functionUses: 1
    functionsReached:
    - CppUnit::CompilerOutputter::CompilerOutputter
    - CppUnit::TextUi::TestRunner::result
    - CppUnit::TestFactoryRegistry::getRegistry
    - CppUnit::TextUi::TestRunner::setOutputter
    - CppUnit::TextUi::TestRunner::addTest
    - CppUnit::TextUi::TestRunner::run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ErrorsTest::setUp
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrorsTest::setUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: ErrorsTest::tearDown
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrorsTest::tearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:36,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:37,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:38,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: ErrorsTest::testInitialState
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_get_info
    - CPPUNIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ErrorsTest::testInitialState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get_info
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:45,1
    - Dst: std::string
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:48,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:50,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:50,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:52,1
    - Dst: std::string::size
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: ErrorsTest::testLengthChecks
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_get_info
    - tsk_error_set_errstr
    - std::string::c_str
    - std::string
    - std::string::size
    - CPPUNIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ErrorsTest::testLengthChecks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: xErrorsTestShared
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xErrorsTestShared()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semaphore_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:80,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:82,1
    - Dst: sem_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:86,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:87,1
    - Dst: strerror
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:87,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:91,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:92,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:93,1
    - Dst: semaphore_signal
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:95,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:97,1
    - Dst: semaphore_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:100,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:102,1
    - Dst: sem_post
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:106,1
    - Dst: sem_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:107,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:109,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:110,1
    - Dst: strcmp
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:111,1
    - Dst: tsk_error_get_errstr2
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:112,1
    - Dst: strcmp
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 115
    functionName: thread_1
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_get_errstr2
    - sem_post
    - semaphore_signal
    - fprintf
    - sem_wait
    - semaphore_wait
    - tsk_error_set_errstr
    - strcmp
    - tsk_error_set_errno
    - tsk_error_get_errno
    - tsk_error_get_errstr
    - tsk_error_set_errstr2
    - strerror
    linkageType: ''
    returnType: void
    signature: void * thread_1(void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:120,1
    - Dst: semaphore_create
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:124,1
    - Dst: mach_task_self
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:124,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:126,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:127,1
    - Dst: sem_init
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:130,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:131,1
    - Dst: strerror
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:131,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:132,1
    - Dst: pthread_create
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:138,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:140,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:141,1
    - Dst: semaphore_signal
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:145,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:147,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:148,1
    - Dst: semaphore_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:151,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:153,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:154,1
    - Dst: sem_post
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:159,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:160,1
    - Dst: strerror
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:160,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:161,1
    - Dst: sem_wait
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:164,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:165,1
    - Dst: strerror
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:165,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:166,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:169,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:169,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:170,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:170,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:171,1
    - Dst: tsk_error_get_errstr2
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:171,1
    - Dst: semaphore_signal
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:174,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:176,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:177,1
    - Dst: sem_post
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:180,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:181,1
    - Dst: strerror
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:181,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:182,1
    - Dst: pthread_join
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:187,1
    - Dst: fprintf
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:189,1
    - Dst: CPPUNIT_FAIL
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:190,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:192,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:193,1
    - Dst: CPPUNIT_ASSERT
      Src: /src/sleuthkit/unit_tests/base/errors_test.cpp:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 195
    functionName: ErrorsTest::testMultithreaded
    functionSourceFile: /src/sleuthkit/unit_tests/base/errors_test.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_get_errstr2
    - sem_post
    - semaphore_signal
    - pthread_create
    - fprintf
    - tsk_error_reset
    - sem_init
    - semaphore_wait
    - sem_wait
    - pthread_join
    - semaphore_create
    - tsk_error_get_errno
    - tsk_error_get_errstr
    - CPPUNIT_FAIL
    - mach_task_self
    - strerror
    - CPPUNIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ErrorsTest::testMultithreaded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:66,1
    - Dst: JNIEnv*::ThrowNew
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - JNIEnv*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: setThrowTskCoreError
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ThrowNew
    - JNIEnv*::FindClass
    linkageType: ''
    returnType: void
    signature: void setThrowTskCoreError(JNIEnv * env, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:79,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: setThrowTskCoreError
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 1
    functionsReached:
    - setThrowTskCoreError
    - tsk_error_get
    linkageType: ''
    returnType: void
    signature: void setThrowTskCoreError(JNIEnv * env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:94,1
    - Dst: JNIEnv*::ThrowNew
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - JNIEnv*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: setThrowTskDataError
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ThrowNew
    - JNIEnv*::FindClass
    linkageType: ''
    returnType: void
    signature: void setThrowTskDataError(JNIEnv * env, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:108,1
    - Dst: setThrowTskDataError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: setThrowTskDataError
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 1
    functionsReached:
    - setThrowTskDataError
    - tsk_error_get
    linkageType: ''
    returnType: void
    signature: void setThrowTskDataError(JNIEnv * env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: castImgInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    linkageType: ''
    returnType: TSK_IMG_INFO
    signature: 'TSK_IMG_INFO *

      castImgInfo(JNIEnv * env, jlong ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:133,1
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 141
    functionName: castVsInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castImgInfo
    linkageType: ''
    returnType: TSK_VS_INFO
    signature: 'TSK_VS_INFO *

      castVsInfo(JNIEnv * env, jlong ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:148,1
    - Dst: castVsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: castVsPartInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castVsInfo
    linkageType: ''
    returnType: TSK_VS_PART_INFO
    signature: 'TSK_VS_PART_INFO *

      castVsPartInfo(JNIEnv * env, jlong ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: castPoolInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    linkageType: ''
    returnType: TSK_POOL_INFO
    signature: 'TSK_POOL_INFO *

      castPoolInfo(JNIEnv * env, jlong ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:174,1
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: castFsInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castImgInfo
    linkageType: ''
    returnType: TSK_FS_INFO
    signature: 'TSK_FS_INFO *

      castFsInfo(JNIEnv * env, jlong ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:190,1
    - Dst: castFsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: castFsFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castFsInfo
    linkageType: ''
    returnType: TSK_FS_FILE
    signature: 'TSK_FS_FILE *

      castFsFile(JNIEnv * env, jlong ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:205,1
    - Dst: castFsFile
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: castJniFileHandle
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castFsFile
    linkageType: ''
    returnType: TSK_JNI_FILEHANDLE
    signature: 'TSK_JNI_FILEHANDLE *

      castJniFileHandle(JNIEnv * env, jlong ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:226,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:233,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:236,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:239,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:240,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:243,1
    - Dst: snprintf
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:252,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - env
    - buffer
    - size
    - strJ
    argTypes:
    - JNIEnv*
    - TSK_TCHAR*
    - size_t
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: toTCHAR
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - tsk_error_set_errstr
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_error_set_errno
    - tsk_UTF8toUTF16
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int toTCHAR(JNIEnv * env, TSK_TCHAR * buffer, size_t size, jstring
      strJ)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toTCHAR
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:271,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:272,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:275,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:275,1
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:281,1
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - env
    - obj
    - pathJ
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbOpenNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - toTCHAR
    - size
    - push_back
    - setThrowTskCoreError
    - tsk_hdb_open
    - tsk_error_get_errstr
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbOpenNat(JNIEnv
      * env,\n    jclass obj, jstring pathJ)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toTCHAR
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:297,1
    - Dst: tsk_hdb_create
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:298,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:299,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:299,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:303,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:305,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:305,1
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:311,1
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - env
    - obj
    - pathJ
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 313
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbNewNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - toTCHAR
    - size
    - push_back
    - setThrowTskCoreError
    - tsk_hdb_create
    - tsk_hdb_open
    - tsk_error_get_errstr
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbNewNat(JNIEnv
      * env,\n    jclass obj, jstring pathJ)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:326,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:327,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:331,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:333,1
    - Dst: tsk_hdb_begin_transaction
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 338
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbBeginTransactionNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_hdb_begin_transaction
    - size
    - at
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbBeginTransactionNat(\n
      \   JNIEnv *env, jclass obj, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:351,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:352,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:356,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:358,1
    - Dst: tsk_hdb_commit_transaction
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 363
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCommitTransactionNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_hdb_commit_transaction
    - size
    - at
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCommitTransactionNat(\n
      \   JNIEnv *env, jclass obj, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:376,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:377,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:381,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:383,1
    - Dst: tsk_hdb_rollback_transaction
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 388
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbRollbackTransactionNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_hdb_rollback_transaction
    - size
    - at
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbRollbackTransactionNat(\n
      \   JNIEnv *env, jclass obj, jint dbHandle)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:406,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:407,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:411,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:413,1
    - Dst: TSK_HDB_INFO*::accepts_updates
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:417,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:418,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:423,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:424,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:425,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:426,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:427,1
    - Dst: tsk_hdb_add_entry
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:429,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:430,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:430,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:434,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:438,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:442,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:446,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:450,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 8
    argNames:
    - env
    - obj
    - filenameJ
    - hashMd5J
    - hashSha1J
    - hashSha256J
    - commentJ
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    - jstring
    - jstring
    - jstring
    - jstring
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 454
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbAddEntryNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - size
    - at
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_error_get_errstr
    - tsk_hdb_add_entry
    - TSK_HDB_INFO*::accepts_updates
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbAddEntryNat(JNIEnv
      * env,\n    jclass obj, jstring filenameJ, jstring hashMd5J, jstring hashSha1J,
      jstring hashSha256J,\n    jstring commentJ, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:467,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:468,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:472,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:474,1
    - Dst: tsk_hdb_accepts_updates
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:478,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 479
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsUpdateableNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - size
    - at
    - setThrowTskCoreError
    - static_cast<uint8_t>
    - tsk_hdb_accepts_updates
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsUpdateableNat(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:493,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:494,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:498,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:500,1
    - Dst: tsk_hdb_uses_external_indexes
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:504,1
    - Dst: tsk_hdb_is_idx_only
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsReindexableNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - size
    - at
    - tsk_hdb_is_idx_only
    - setThrowTskCoreError
    - tsk_hdb_uses_external_indexes
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsReindexableNat(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:519,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:520,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:524,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:526,1
    - Dst: tsk_hdb_get_db_path
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:531,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:533,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:534,1
    - Dst: snprintf
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:535,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:536,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:537,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 543
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbPathNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_get_db_path
    - size
    - at
    - setThrowTskCoreError
    - JNIEnv*::NewStringUTF
    - tsk_malloc
    - free
    - snprintf
    - TSTRLEN
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbPathNat(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:556,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:557,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:561,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:563,1
    - Dst: tsk_hdb_get_idx_path
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:569,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:571,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:572,1
    - Dst: snprintf
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:573,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:574,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:575,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 581
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexPathNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_get_idx_path
    - size
    - at
    - setThrowTskCoreError
    - JNIEnv*::NewStringUTF
    - tsk_malloc
    - free
    - snprintf
    - TSTRLEN
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexPathNat(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:597,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:598,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:602,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:604,1
    - Dst: tsk_hdb_is_idx_only
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 609
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsIdxOnlyNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - size
    - at
    - tsk_hdb_is_idx_only
    - setThrowTskCoreError
    - static_cast<uint8_t>
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsIdxOnlyNat(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:621,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:622,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:626,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:628,1
    - Dst: tsk_hdb_get_display_name
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:633,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 638
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbGetDisplayName
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - size
    - at
    - setThrowTskCoreError
    - JNIEnv*::NewStringUTF
    - tsk_hdb_get_display_name
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbGetDisplayName\n
      \ (JNIEnv * env, jclass obj, jint dbHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:650,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:650,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:652,1
    - Dst: clear
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jclass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCloseAll
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - clear
    - begin
    - end
    - tsk_hdb_close
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCloseAll(JNIEnv
      * env,\n    jclass obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:669,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:670,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:674,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:676,1
    - Dst: tsk_hdb_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:680,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 685
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbClose
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - size
    - at
    - tsk_hdb_close
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbClose(JNIEnv
      * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:697,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:698,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:702,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:704,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:709,1
    - Dst: tsk_hdb_lookup_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:711,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:713,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:713,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - env
    - obj
    - hash
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 722
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookup
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - size
    - at
    - setThrowTskCoreError
    - tsk_hdb_lookup_str
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_error_get_errstr
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookup

      (JNIEnv * env, jclass obj, jstring hash, jint dbHandle)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:733,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:734,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:738,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:740,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:745,1
    - Dst: tsk_hdb_lookup_verbose_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:747,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:748,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:751,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:751,1
    - Dst: TskHashInfo::hashMd5::c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:760,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:761,1
    - Dst: TskHashInfo::hashSha1::c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:763,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:764,1
    - Dst: TskHashInfo::hashSha2_256::c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:766,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:767,1
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:771,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:772,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:773,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:774,1
    - Dst: JNIEnv*::NewObject
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:775,1
    - Dst: TskHashInfo::fileNames::begin
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:776,1
    - Dst: TskHashInfo::fileNames::end
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:776,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:777,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:777,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:778,1
    - Dst: TskHashInfo::comments::begin
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:780,1
    - Dst: TskHashInfo::comments::end
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:780,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:781,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:781,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - env
    - obj
    - hash
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 785
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookupVerbose
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - TskHashInfo::hashSha1::c_str
    - at
    - JNIEnv*::NewObject
    - TskHashInfo::fileNames::end
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::FindClass
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::GetMethodID
    - tsk_hdb_lookup_verbose_str
    - TskHashInfo::hashMd5::c_str
    - TskHashInfo::comments::end
    - TskHashInfo::fileNames::begin
    - setThrowTskCoreError
    - TskHashInfo::hashSha2_256::c_str
    - c_str
    - JNIEnv*::GetStringUTFChars
    - size
    - TskHashInfo::comments::begin
    - JNIEnv*::NewStringUTF
    - tsk_error_get_errstr
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookupVerbose

      (JNIEnv * env, jclass obj, jstring hash, jint dbHandle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - env
    - obj
    - callbackObj
    - timeZone
    - addUnallocSpace
    - skipFatFsOrphans
    - passwordJ
    argTypes:
    - JNIEnv*
    - jclass
    - jobject
    - jstring
    - jboolean
    - jboolean
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 804
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNatPassword
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNatPassword(JNIEnv
      * env,\n    jclass obj, jobject callbackObj, jstring timeZone, jboolean addUnallocSpace,
      jboolean skipFatFsOrphans, jstring passwordJ)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - env
    - obj
    - callbackObj
    - timeZone
    - addUnallocSpace
    - skipFatFsOrphans
    argTypes:
    - JNIEnv*
    - jclass
    - jobject
    - jstring
    - jboolean
    - jboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 822
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNat(JNIEnv
      * env,\n    jclass obj, jobject callbackObj, jstring timeZone, jboolean addUnallocSpace,
      jboolean skipFatFsOrphans)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - env
    - obj
    - callbackObj
    - timeZone
    - addFileSystems
    - addUnallocSpace
    - skipFatFsOrphans
    argTypes:
    - JNIEnv*
    - jclass
    - jobject
    - jstring
    - jboolean
    - jboolean
    - jboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgNat(JNIEnv
      * env, jclass obj,\n    jobject callbackObj, jstring timeZone, jboolean addFileSystems,
      jboolean addUnallocSpace, jboolean skipFatFsOrphans)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:860,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:861,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:863,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:864,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:867,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:867,1
    - Dst: snprintf
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:872,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:873,1
    - Dst: putenv
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:875,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:879,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:879,1
    - Dst: TZSET
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:884,1
    - Dst: TskAutoDbJava::TskAutoDbJava
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:887,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:889,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:895,1
    - Dst: TskAutoDbJava*::setFileSystemPassword
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:896,1
    - Dst: string
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:896,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:897,1
    - Dst: TskAutoDbJava*::setAddFileSystems
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:901,1
    - Dst: TskAutoDbJava*::setAddUnallocSpace
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:905,1
    - Dst: TskAutoDbJava*::setAddUnallocSpace
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:908,1
    - Dst: TskAutoDbJava*::setNoFatFsOrphans
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:910,1
    - Dst: TskAutoDbJava*::setAddUnallocSpace
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:912,1
    - Dst: TskAutoDbJava*::setNoFatFsOrphans
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:913,1
    - Dst: TskAutoDbJava*::initializeJni
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:917,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 8
    argNames:
    - env
    - obj
    - callbackObj
    - timeZone
    - addFileSystems
    - addUnallocSpace
    - skipFatFsOrphans
    - passwordJ
    argTypes:
    - JNIEnv*
    - jclass
    - jobject
    - jstring
    - jboolean
    - jboolean
    - jboolean
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 923
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 3
    functionsReached:
    - TskAutoDbJava*::setFileSystemPassword
    - JNIEnv*::GetStringUTFChars
    - TskAutoDbJava*::initializeJni
    - string
    - JNIEnv*::GetStringUTFLength
    - TZSET
    - TskAutoDbJava::TskAutoDbJava
    - stringstream::str
    - TskAutoDbJava*::setNoFatFsOrphans
    - JNIEnv*::ReleaseStringUTFChars
    - setThrowTskCoreError
    - putenv
    - TskAutoDbJava*::setAddFileSystems
    - TskAutoDbJava*::setAddUnallocSpace
    - snprintf
    - strlen
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat(JNIEnv
      * env, jclass obj,\n    jobject callbackObj, jstring timeZone, jboolean addFileSystems,
      jboolean addUnallocSpace, jboolean skipFatFsOrphans, jstring passwordJ)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:944,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:952,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:954,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:960,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:963,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:965,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:969,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:970,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:972,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:975,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:976,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:978,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:980,1
    - Dst: JNIEnv*::GetStringLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:987,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:988,1
    - Dst: TskAutoDbJava*::setTz
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:989,1
    - Dst: string
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:989,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:990,1
    - Dst: TskAutoDbJava*::startAddImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:995,1
    - Dst: TskAutoDbJava*::getErrorList
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:999,1
    - Dst: vector::size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1000,1
    - Dst: TskAuto::errorRecordToString
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1002,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1008,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1008,1
    - Dst: setThrowTskDataError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1012,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1012,1
    - Dst: TskAutoDbJava*::closeImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1018,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1023,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1024,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1026,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1028,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1030,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 7
    argNames:
    - env
    - obj
    - process
    - deviceId
    - paths
    - numImgs
    - timeZone
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jstring
    - jobjectArray
    - jint
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 1034
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_runOpenAndAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringLength
    - TskAutoDbJava*::startAddImage
    - JNIEnv*::GetStringUTFChars
    - TskAutoDbJava*::closeImage
    - string
    - JNIEnv*::GetObjectArrayElement
    - TskAutoDbJava*::setTz
    - stringstream::str
    - JNIEnv*::DeleteLocalRef
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_malloc
    - TskAutoDbJava*::getErrorList
    - TskAuto::errorRecordToString
    - vector::size
    - setThrowTskDataError
    - free
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_runOpenAndAddImgNat(JNIEnv
      * env,\n    jclass obj, jlong process, jstring deviceId, jobjectArray paths,
      jint numImgs, jstring timeZone)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1055,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1063,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1065,1
    - Dst: TskAutoDbJava*::setDatasourceObjId
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1071,1
    - Dst: JNIEnv*::GetStringLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1074,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1075,1
    - Dst: TskAutoDbJava*::setTz
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1076,1
    - Dst: string
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1076,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1077,1
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1081,1
    - Dst: JNIEnv*::GetStringLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1084,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1085,1
    - Dst: TskAutoDbJava*::enableImageWriter
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1086,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1087,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1088,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1092,1
    - Dst: TskAutoDbJava*::disableImageWriter
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1095,1
    - Dst: TskAutoDbJava*::startAddImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1100,1
    - Dst: TskAutoDbJava*::getErrorList
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1103,1
    - Dst: vector::size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1104,1
    - Dst: TskAuto::errorRecordToString
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1106,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1112,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1112,1
    - Dst: setThrowTskDataError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1116,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1116,1
    - Dst: TskAutoDbJava*::closeImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1122,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 8
    argNames:
    - env
    - obj
    - process
    - deviceId
    - a_img_info
    - img_id
    - timeZone
    - imageWriterPathJ
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jstring
    - jlong
    - jlong
    - jstring
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1128
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_runAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringLength
    - TskAutoDbJava*::startAddImage
    - JNIEnv*::GetStringUTFChars
    - setThrowTskDataError
    - string
    - TskAutoDbJava*::closeImage
    - TskAutoDbJava*::setTz
    - stringstream::str
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    - TskAutoDbJava*::getErrorList
    - TskAutoDbJava*::setDatasourceObjId
    - TskAutoDbJava*::enableImageWriter
    - vector::size
    - TskAuto::errorRecordToString
    - TskAutoDbJava*::disableImageWriter
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_runAddImgNat(JNIEnv
      * env,\n    jclass obj, jlong process, jstring deviceId, jlong a_img_info, jlong
      img_id, jstring timeZone, jstring imageWriterPathJ)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1142,1
    - Dst: TskAutoDbJava*::stopAddImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - env
    - obj
    - process
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1147
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_stopAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - TskAutoDbJava*::stopAddImage
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_stopAddImgNat(JNIEnv
      * env,\n    jclass obj, jlong process)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1162,1
    - Dst: TskAutoDbJava*::getImageID
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1166,1
    - Dst: TskAutoDbJava*::close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1167,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - env
    - obj
    - process
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1175
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_finishAddImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - TskAutoDbJava*::close
    - TskAutoDbJava*::getImageID
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_finishAddImgNat(JNIEnv
      * env,\n    jclass obj, jlong process)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1194,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1196,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1200,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1201,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1204,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1205,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1207,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1208,1
    - Dst: tsk_img_open_utf8
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1215,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1218,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1218,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1223,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1225,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - env
    - obj
    - paths
    - num_imgs
    - sector_size
    argTypes:
    - JNIEnv*
    - jclass
    - jobjectArray
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1187
    functionDepth: 8
    functionLinenumber: 1187
    functionLinenumberEnd: 1230
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetObjectArrayElement
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_malloc
    - tsk_img_open_utf8
    - free
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openImgNat(JNIEnv
      * env,\n    jclass obj, jobjectArray paths, jint num_imgs, jint sector_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1239,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1248,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1250,1
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1250,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1250,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1254,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1262,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1263,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1266,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1267,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1268,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1269,1
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1269,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1269,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1277,1
    - Dst: JNIEnv*::FindClass
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1277,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1277,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1279,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1283
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getPathsForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetObjectArrayElement
    - tsk_error_set_errstr
    - tsk_error_reset
    - JNIEnv*::FindClass
    - JNIEnv*::NewStringUTF
    - tsk_malloc
    - tsk_error_set_errno
    - JNIEnv*::NewObjectArray
    - castImgInfo
    - tsk_UTF16toUTF8_lclorder
    - TSTRLEN
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getPathsForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1300
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getSizeForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getSizeForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1317
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getTypeForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getTypeForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1334
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getSectorSizeForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getSectorSizeForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1343,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1353,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1358
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getMD5HashForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getMD5HashForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1367,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1377,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1382
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getSha1HashForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getSha1HashForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1391,1
    - Dst: ewf_get_details
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1400,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1387
    functionDepth: 4
    functionLinenumber: 1387
    functionLinenumberEnd: 1404
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getCollectionDetailsForImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - castImgInfo
    - ewf_get_details
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getCollectionDetailsForImageNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1416,1
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1423,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1425,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - env
    - obj
    - a_img_info
    - vsOffset
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1414
    functionDepth: 6
    functionLinenumber: 1414
    functionLinenumberEnd: 1428
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openVsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_error_get
    - castImgInfo
    - tsk_vs_open
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openVsNat\n    (JNIEnv
      * env, jclass obj, jlong a_img_info, jlong vsOffset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: castVsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1443,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1450,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1452,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - env
    - obj
    - a_vs_info
    - vol_id
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1439
    functionDepth: 3
    functionLinenumber: 1439
    functionLinenumberEnd: 1455
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openVolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - castVsInfo
    - tsk_error_get
    - tsk_vs_part_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openVolNat(JNIEnv
      * env,\n    jclass obj, jlong a_vs_info, jlong vol_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1469,1
    - Dst: tsk_pool_open_img_sing
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1475,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1477,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1478,1
    - Dst: tsk_pool_type_print
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1479,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1480,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - env
    - obj
    - a_img_info
    - offset
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1465
    functionDepth: 4
    functionLinenumber: 1465
    functionLinenumberEnd: 1483
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openPoolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_print
    - setThrowTskCoreError
    - tsk_error_get
    - tsk_pool_open_img_sing
    - tsk_error_get_errno
    - tsk_pool_type_print
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openPoolNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info, jlong offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castPoolInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1496,1
    - Dst: TSK_POOL_INFO*::get_img_info
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - env
    - obj
    - a_pool_info
    - pool_block
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1504
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getImgInfoForPoolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - TSK_POOL_INFO*::get_img_info
    - castPoolInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getImgInfoForPoolNat

      (JNIEnv * env, jclass obj, jlong a_pool_info, jlong pool_block)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1516,1
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1524,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1527,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - env
    - obj
    - a_img_info
    - fs_offset
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1514
    functionDepth: 3
    functionLinenumber: 1514
    functionLinenumberEnd: 1530
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_error_get
    - tsk_fs_open_img
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsNat\n    (JNIEnv
      * env, jclass obj, jlong a_img_info, jlong fs_offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1543,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1552,1
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1557,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1559,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1562,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - env
    - obj
    - a_img_info
    - fs_offset
    - passwordJ
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1541
    functionDepth: 8
    functionLinenumber: 1541
    functionLinenumberEnd: 1565
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsDecryptNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::ReleaseStringUTFChars
    - setThrowTskCoreError
    - tsk_error_get
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsDecryptNat\n
      \   (JNIEnv * env, jclass obj, jlong a_img_info, jlong fs_offset, jstring passwordJ)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: castFsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1582,1
    - Dst: tsk_fs_file_open_meta
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1591,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1593,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1593,1
    - Dst: tsk_fs_file_attr_get_type
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1599,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1601,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1602,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1602,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1608,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1610,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1611,1
    - Dst: const_cast<TSK_FS_ATTR*>
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - env
    - obj
    - a_fs_info
    - file_id
    - attr_type
    - attr_id
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1578
    functionDepth: 5
    functionLinenumber: 1578
    functionLinenumberEnd: 1620
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_openFileNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - const_cast<TSK_FS_ATTR*>
    - setThrowTskCoreError
    - tsk_malloc
    - castFsInfo
    - tsk_fs_file_open_meta
    - tsk_fs_file_attr_get_type
    - tsk_fs_file_close
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_openFileNat(JNIEnv
      * env,\n    jclass obj, jlong a_fs_info, jlong file_id, jint attr_type, jint
      attr_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1633,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1635,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - buf
    - len
    argTypes:
    - JNIEnv*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1641
    functionName: copyBufToByteArray
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - JNIEnv*::SetByteArrayRegion
    - JNIEnv*::NewByteArray
    linkageType: ''
    returnType: jbyteArray
    signature: jbyteArray copyBufToByteArray(JNIEnv * env, const char *buf, ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - jbuf
    - buf
    - len
    argTypes:
    - JNIEnv*
    - jbyteArray
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1656
    functionName: copyBufToByteArray
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetByteArrayRegion
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t copyBufToByteArray(JNIEnv * env, jbyteArray jbuf, const char
      *buf, ssize_t len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1678,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1680,1
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1685,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1688,1
    - Dst: tsk_img_read
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1695,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1698,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1700,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1700,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1707,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1711,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1713,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1716,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1716,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - env
    - obj
    - a_img_info
    - jbuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1719
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_error_get
    - tsk_malloc
    - copyBufToByteArray
    - JNIEnv*::GetArrayLength
    - free
    - castImgInfo
    - tsk_img_read
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readImgNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info, jbyteArray jbuf, jlong offset, jlong
      len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1742,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1744,1
    - Dst: castPoolInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1749,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1753,1
    - Dst: tsk_pool_read
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1758,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1761,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1761,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1763,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1771,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1775,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1777,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1780,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - env
    - obj
    - a_pool_info
    - jbuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1783
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readPoolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_pool_read
    - castPoolInfo
    - setThrowTskCoreError
    - tsk_malloc
    - copyBufToByteArray
    - JNIEnv*::GetArrayLength
    - free
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readPoolNat(JNIEnv
      * env,\n    jclass obj, jlong a_pool_info, jbyteArray jbuf, jlong offset, jlong
      len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1806,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1808,1
    - Dst: castVsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1813,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1817,1
    - Dst: tsk_vs_read_block
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1822,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1825,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1825,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1827,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1835,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1839,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1841,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1844,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - env
    - obj
    - a_vs_info
    - jbuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1795
    functionDepth: 3
    functionLinenumber: 1795
    functionLinenumberEnd: 1847
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readVsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_vs_read_block
    - setThrowTskCoreError
    - tsk_malloc
    - copyBufToByteArray
    - JNIEnv*::GetArrayLength
    - castVsInfo
    - free
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readVsNat(JNIEnv
      * env,\n    jclass obj, jlong a_vs_info, jbyteArray jbuf, jlong offset, jlong
      len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1871,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1873,1
    - Dst: castVsPartInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1878,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1881,1
    - Dst: tsk_vs_part_read
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1887,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1890,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1890,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1892,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1900,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1904,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1906,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1909,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1909,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - env
    - obj
    - a_vol_info
    - jbuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1860
    functionDepth: 4
    functionLinenumber: 1860
    functionLinenumberEnd: 1912
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readVolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castVsPartInfo
    - tsk_vs_part_read
    - setThrowTskCoreError
    - tsk_malloc
    - copyBufToByteArray
    - JNIEnv*::GetArrayLength
    - free
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readVolNat(JNIEnv
      * env,\n    jclass obj, jlong a_vol_info, jbyteArray jbuf, jlong offset, jlong
      len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1935,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1937,1
    - Dst: castFsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1942,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1945,1
    - Dst: tsk_fs_read
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1952,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1955,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1957,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1957,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1964,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1968,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1970,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1973,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:1973,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - env
    - obj
    - a_fs_info
    - jbuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1924
    functionDepth: 3
    functionLinenumber: 1924
    functionLinenumberEnd: 1976
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readFsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - tsk_malloc
    - copyBufToByteArray
    - castFsInfo
    - JNIEnv*::GetArrayLength
    - tsk_fs_read
    - free
    - tsk_error_get
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readFsNat(JNIEnv
      * env,\n    jclass obj, jlong a_fs_info, jbyteArray jbuf, jlong offset, jlong
      len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2009,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2011,1
    - Dst: castJniFileHandle
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2016,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2019,1
    - Dst: tsk_fs_attr_read
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2035,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2039,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2041,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2041,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2048,1
    - Dst: copyBufToByteArray
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2052,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2054,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2057,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2057,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 7
    argNames:
    - env
    - obj
    - a_file_handle
    - jbuf
    - offset
    - offset_type
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    - jlong
    - jint
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 1998
    functionDepth: 9
    functionLinenumber: 1998
    functionLinenumberEnd: 2060
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_readFileNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castJniFileHandle
    - setThrowTskCoreError
    - tsk_malloc
    - copyBufToByteArray
    - JNIEnv*::GetArrayLength
    - free
    - tsk_error_get
    - tsk_fs_attr_read
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_readFileNat(JNIEnv
      * env,\n    jclass obj, jlong a_file_handle, jbyteArray jbuf, jlong offset,
      jint offset_type, jlong len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: castJniFileHandle
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2071,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2079,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2086,1
    - Dst: fopen
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2087,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2089,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2090,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2093,1
    - Dst: TSK_FS_INFO*::istat
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2095,1
    - Dst: fclose
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2096,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2097,1
    - Dst: fclose
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - env
    - obj
    - a_file_handle
    - a_tmp_path
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2068
    functionDepth: 5
    functionLinenumber: 2068
    functionLinenumberEnd: 2103
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_saveFileMetaDataTextNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - TSK_FS_INFO*::istat
    - JNIEnv*::GetStringUTFChars
    - fopen
    - fclose
    - castJniFileHandle
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_saveFileMetaDataTextNat\n
      \ (JNIEnv *env, jclass obj, jlong a_file_handle, jstring a_tmp_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2115,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2111
    functionDepth: 2
    functionLinenumber: 2111
    functionLinenumberEnd: 2121
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_closeImgNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    - tsk_img_close
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_closeImgNat(JNIEnv
      * env,\n    jclass obj, jlong a_img_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castVsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2131,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_vs_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2129
    functionDepth: 3
    functionLinenumber: 2129
    functionLinenumberEnd: 2137
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_closeVsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_vs_close
    - castVsInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_closeVsNat\n    (JNIEnv
      * env, jclass obj, jlong a_vs_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castFsInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2147,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_fs_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2145
    functionDepth: 3
    functionLinenumber: 2145
    functionLinenumberEnd: 2153
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castFsInfo
    - tsk_fs_close
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFsNat\n    (JNIEnv
      * env, jclass obj, jlong a_fs_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castPoolInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2163,1
    - Dst: tsk_pool_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - obj
    - a_pool_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2169
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_closePoolNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_pool_close
    - castPoolInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_closePoolNat

      (JNIEnv * env, jclass obj, jlong a_pool_info)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: castJniFileHandle
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2181,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2188,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - env
    - obj
    - a_file_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2177
    functionDepth: 5
    functionLinenumber: 2177
    functionLinenumberEnd: 2194
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFileNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - free
    - tsk_fs_file_close
    - castJniFileHandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFileNat(JNIEnv
      * env,\n    jclass obj, jlong a_file_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_version_get_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2206,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jclass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2209
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getVersionNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_version_get_str
    - NewStringUTF
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getVersionNat(JNIEnv
      * env,\n    jclass obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2222,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2223,1
    - Dst: TskAutoDbJava*::getCurDir
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2225,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2226,1
    - Dst: std::string::c_str
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2216
    functionDepth: 1
    functionLinenumber: 2216
    functionLinenumberEnd: 2228
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getCurDirNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - std::string::c_str
    - TskAutoDbJava*::getCurDir
    - setThrowTskCoreError
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getCurDirNat\n
      \   (JNIEnv * env,jclass obj, jlong dbHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2241,1
    - Dst: freopen
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2242,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2243,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2244,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - env
    - obj
    - logPath
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2249
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_startVerboseLoggingNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::GetStringUTFChars
    - freopen
    - setThrowTskCoreError
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_startVerboseLoggingNat\n
      \   (JNIEnv * env, jclass obj, jstring logPath)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2261,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2262,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2266,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2268,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2274,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2274,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2277,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2277,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2280,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2280,1
    - Dst: TSNPRINTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2285,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2285,1
    - Dst: tsk_hdb_make_index
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2288,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2289,1
    - Dst: tsk_error_get_errstr
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2257
    functionDepth: 4
    functionLinenumber: 2257
    functionLinenumberEnd: 2291
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCreateIndexNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - size
    - at
    - tsk_hdb_make_index
    - setThrowTskCoreError
    - TSNPRINTF
    - _TSK_T
    - tsk_error_get_errstr
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCreateIndexNat
      (JNIEnv * env,\n    jclass obj, jint dbHandle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2302,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2303,1
    - Dst: at
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2307,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2309,1
    - Dst: TSK_HDB_INFO*::has_index
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - dbHandle
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2300
    functionDepth: 4
    functionLinenumber: 2300
    functionLinenumberEnd: 2314
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexExistsNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - setThrowTskCoreError
    - TSK_HDB_INFO*::has_index
    - size
    - at
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexExistsNat\n
      \ (JNIEnv * env, jclass obj, jint dbHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2328,1
    - Dst: tsk_img_open_utf8_sing
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2332,1
    - Dst: setThrowTskCoreError
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2334,1
    - Dst: tsk_error_get
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2334,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2335,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2343,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - devPathJ
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2324
    functionDepth: 3
    functionLinenumber: 2324
    functionLinenumberEnd: 2347
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_findDeviceSizeNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - tsk_img_close
    - setThrowTskCoreError
    - JNIEnv*::ReleaseStringUTFChars
    - tsk_error_get
    - tsk_img_open_utf8_sing
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_findDeviceSizeNat\n
      \ (JNIEnv * env, jclass obj, jstring devPathJ)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskIsImageSupported::TskIsImageSupported
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2359,1
    - Dst: toTCHAR
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2361,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2365,1
    - Dst: TskIsImageSupported::openImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2368,1
    - Dst: TskIsImageSupported::findFilesInImg
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2372,1
    - Dst: TskIsImageSupported::isImageSupported
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2376,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - env
    - obj
    - imagePathJ
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2356
    functionDepth: 4
    functionLinenumber: 2356
    functionLinenumberEnd: 2389
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - TskIsImageSupported::openImage
    - toTCHAR
    - TskIsImageSupported::TskIsImageSupported
    - TskIsImageSupported::isImageSupported
    - tsk_malloc
    - free
    - TskIsImageSupported::findFilesInImg
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedNat

      (JNIEnv* env, jclass obj, jstring imagePathJ)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskIsImageSupported::TskIsImageSupported
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2402,1
    - Dst: toTCHAR
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2404,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2409,1
    - Dst: TskIsImageSupported::setFileSystemPassword
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2410,1
    - Dst: string
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2410,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2411,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2414,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2418,1
    - Dst: TskIsImageSupported::openImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2420,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2421,1
    - Dst: TskIsImageSupported::findFilesInImg
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2423,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2424,1
    - Dst: TskIsImageSupported::getMessageForIsImageSupportedNat
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2424,1
    - Dst: TskIsImageSupported::closeImage
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2428,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - env
    - obj
    - imagePathJ
    - passwordJ
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2399
    functionDepth: 4
    functionLinenumber: 2399
    functionLinenumberEnd: 2432
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedStringNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - TskIsImageSupported::openImage
    - string
    - toTCHAR
    - TskIsImageSupported::closeImage
    - TskIsImageSupported::TskIsImageSupported
    - TskIsImageSupported::getMessageForIsImageSupportedNat
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::NewStringUTF
    - tsk_malloc
    - free
    - TskIsImageSupported::setFileSystemPassword
    - TskIsImageSupported::findFilesInImg
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedStringNat\n
      \ (JNIEnv * env, jclass obj, jstring imagePathJ, jstring passwordJ)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jclass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2441
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getSleuthkitVersionNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getSleuthkitVersionNat

      (JNIEnv * env, jclass obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2453,1
    - Dst: tsk_img_writer_finish
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2450
    functionDepth: 4
    functionLinenumber: 2450
    functionLinenumberEnd: 2455
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - tsk_img_writer_finish
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat

      (JNIEnv * env, jclass obj, jlong a_img_info)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2460
    functionDepth: 2
    functionLinenumber: 2460
    functionLinenumberEnd: 2479
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_getFinishImageProgressNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_getFinishImageProgressNat

      (JNIEnv * env, jclass obj, jlong a_img_info)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: castImgInfo
      Src: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp:2487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - a_img_info
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2484
    functionDepth: 2
    functionLinenumber: 2484
    functionLinenumberEnd: 2502
    functionName: Java_org_sleuthkit_datamodel_SleuthkitJNI_cancelFinishImageNat
    functionSourceFile: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    functionUses: 0
    functionsReached:
    - castImgInfo
    linkageType: ''
    returnType: JNIEXPORT
    signature: 'JNIEXPORT Java_org_sleuthkit_datamodel_SleuthkitJNI_cancelFinishImageNat

      (JNIEnv * env, jclass obj, jlong a_img_info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' tskAutoDbJava'
    - ' fsInfo'
    - fsObjId
    - minChunkSize
    - maxChunkSize
    argTypes:
    - TskAutoDbJava
    - TSK_FS_INFO
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: TskAutoDbJava::_UNALLOC_BLOCK_WLK_TRACK
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _UNALLOC_BLOCK_WLK_TRACK(TskAutoDbJava & tskAutoDbJava, const
      TSK_FS_INFO & fsInfo, const int64_t fsObjId, int64_t minChunkSize, int64_t maxChunkSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_init_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: TskAutoDbJava::TskAutoDbJava
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - tsk_init_lock
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::TskAutoDbJava()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::closeImage
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:62,1
    - Dst: tsk_deinit_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: TskAutoDbJava::~TskAutoDbJava()
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::closeImage
    - tsk_deinit_lock
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::~TskAutoDbJava()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NewGlobalRef
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:74,1
    - Dst: FindClass
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:76,1
    - Dst: NewGlobalRef
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:80,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:82,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:87,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:92,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:97,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:102,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:108,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:113,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:118,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:123,1
    - Dst: GetMethodID
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 2
    argNames:
    - jniEnv
    - jobj
    argTypes:
    - JNIEnv*
    - jobject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 133
    functionName: TskAutoDbJava::initializeJni
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - GetMethodID
    - FindClass
    - NewGlobalRef
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::initializeJni(JNIEnv * jniEnv, jobject
      jobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - objId
    - parObjId
    - type
    argTypes:
    - int64_t
    - int64_t
    - TSK_DB_OBJECT_TYPE_ENUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: TskAutoDbJava::saveObjectInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::saveObjectInfo(int64_t objId, int64_t parObjId,
      TSK_DB_OBJECT_TYPE_ENUM type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:157,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - objId
    - obj_info
    argTypes:
    - int64_t
    - TSK_DB_OBJECT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: TskAutoDbJava::getObjectInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::getObjectInfo(int64_t objId, TSK_DB_OBJECT**
      obj_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:190,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:191,1
    - Dst: string::c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:193,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:194,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:196,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:197,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:199,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:200,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:202,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:203,1
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:205,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:206,1
    - Dst: NewObjectArray
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:208,1
    - Dst: FindClass
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:210,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:211,1
    - Dst: SetObjectArrayElement
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:214,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:215,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:218,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 12
    argNames:
    - type
    - ssize
    - ' objId'
    - ' timezone'
    - size
    - md5
    - ' sha1'
    - ' sha256'
    - ' deviceId'
    - ' collectionDetails'
    - img_ptrs
    - num_imgs
    argTypes:
    - int
    - TSK_OFF_T
    - int64_t
    - string
    - TSK_OFF_T
    - string
    - string
    - string
    - string
    - string
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 228
    functionName: TskAutoDbJava::addImageInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    - string::c_str
    - SetObjectArrayElement
    - NewObjectArray
    - FindClass
    - c_str
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addImageInfo(int type, TSK_OFF_T ssize,
      int64_t & objId, const string & timezone, TSK_OFF_T size, const string &md5,\n
      \   const string& sha1, const string& sha256, const string& deviceId, const
      string& collectionDetails,\n    char** img_ptrs, int num_imgs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:233,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:234,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - imgId
    - ' collectionDetails'
    argTypes:
    - int64_t
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: TskAutoDbJava::addAcquisitionDetails
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - CallLongMethod
    - c_str
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::addAcquisitionDetails(int64_t imgId, const string&
      collectionDetails)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:251,1
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:265,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - vs_info
    - parObjId
    - ' objId'
    argTypes:
    - TSK_VS_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: TskAutoDbJava::addVsInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    - push_back
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addVsInfo(const TSK_VS_INFO* vs_info,
      int64_t parObjId, int64_t& objId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:283,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:290,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:293,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pool_info
    - parObjId
    - ' objId'
    argTypes:
    - TSK_POOL_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 303
    functionName: TskAutoDbJava::addPoolInfoAndVS
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addPoolInfoAndVS(const TSK_POOL_INFO
      *pool_info, int64_t parObjId, int64_t& objId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:317,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:319,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pool_vol
    - parObjId
    - ' objId'
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: TskAutoDbJava::addPoolVolumeInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addPoolVolumeInfo(const TSK_POOL_VOLUME_INFO*
      pool_vol,\n    int64_t parObjId, int64_t& objId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:344,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:346,1
    - Dst: strncpy
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:361,1
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:363,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - vs_part
    - parObjId
    - ' objId'
    argTypes:
    - TSK_VS_PART_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 367
    functionName: TskAutoDbJava::addVolumeInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    - push_back
    - strncpy
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addVolumeInfo(const TSK_VS_PART_INFO*
      vs_part,\n    int64_t parObjId, int64_t& objId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:381,1
    - Dst: push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:401,1
    - Dst: TskAutoDbJava::saveObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - fs_info
    - parObjId
    - ' objId'
    argTypes:
    - TSK_FS_INFO*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 405
    functionName: TskAutoDbJava::addFsInfo
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::saveObjectInfo
    - CallLongMethod
    - push_back
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addFsInfo(const TSK_FS_INFO* fs_info,
      int64_t parObjId,\n    int64_t& objId)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:433,1
    - Dst: TskAutoDbJava::addFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - fs_file
    - fs_attr
    - path
    - fsObjId
    - ' objId'
    - dataSourceObjId
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 440
    functionName: TskAutoDbJava::addFsFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addFile
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addFsFile(TSK_FS_FILE* fs_file,\n    const
      TSK_FS_ATTR* fs_attr, const char* path,\n    int64_t fsObjId, int64_t& objId,
      int64_t dataSourceObjId)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:448,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:452,1
    - Dst: strncpy
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:455,1
    - Dst: tolower
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - name
    - extension
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 462
    functionName: extractExtension
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - strrchr
    - strlen
    - tolower
    - strncpy
    linkageType: ''
    returnType: void
    signature: void extractExtension(char *name, char *extension)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:477,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:480,1
    - Dst: tsk_UTF8toUTF16
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:487,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:488,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:490,1
    - Dst: NewString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:500,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - input
    - ' newJString'
    argTypes:
    - char*
    - jstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 504
    functionName: TskAutoDbJava::createJString
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - NewString
    - tsk_malloc
    - tsk_UTF8toUTF16
    - free
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::createJString(const char * input, jstring
      & newJString)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:562,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:563,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:574,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:577,1
    - Dst: strncpy
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:581,1
    - Dst: extractExtension
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:584,1
    - Dst: strncat
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:588,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:588,1
    - Dst: strncat
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:590,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:590,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:595,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:596,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:602,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:604,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:605,1
    - Dst: strncpy
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:608,1
    - Dst: strncat
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:609,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:609,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:612,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:613,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:614,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:619,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:622,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:623,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:631,1
    - Dst: tsk_fs_file_get_owner_sid
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:643,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:644,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:645,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:648,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:652,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:666,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:679,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:679,1
    - Dst: strncat
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:683,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:683,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:684,1
    - Dst: strncat
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:685,1
    - Dst: strlen
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:685,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:688,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:689,1
    - Dst: TskAutoDbJava::createJString
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:693,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:694,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:700,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:714,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:719,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 95
    argCount: 6
    argNames:
    - fs_file
    - fs_attr
    - path
    - fsObjId
    - parObjId
    - dataSourceObjId
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 519
    functionDepth: 4
    functionLinenumber: 519
    functionLinenumberEnd: 722
    functionName: TskAutoDbJava::addFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - strncat
    - CallLongMethod
    - TskAutoDbJava::createJString
    - tsk_fs_file_get_owner_sid
    - TSK_FS_ISDOT
    - strcmp
    - tsk_malloc
    - TSK_FS_TYPE_ISNTFS
    - strncpy
    - extractExtension
    - free
    - strlen
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addFile(TSK_FS_FILE* fs_file,\n    const
      TSK_FS_ATTR* fs_attr, const char* path,\n    int64_t fsObjId, int64_t parObjId,\n
      \   int64_t dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ranges'
    argTypes:
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 730
    functionName: _checkFileLayoutRangeOverlap
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _checkFileLayoutRangeOverlap(const vector<TSK_DB_FILE_LAYOUT_RANGE>
      & ranges)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: getHasOverlap
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getHasOverlap() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:741,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - TSK_DB_FILE_LAYOUT_RANGE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: operator() (const TSK_DB_FILE_LAYOUT_RANGE & range)
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void operator() (const TSK_DB_FILE_LAYOUT_RANGE & range)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:775,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:778,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:779,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:780,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:799,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:800,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:803,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:803,1
    - Dst: sort
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:808,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:808,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:808,1
    - Dst: for_each
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:813,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:813,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:813,1
    - Dst: checkFileLayoutRangeOverlap
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:813,1
    - Dst: getHasOverlap
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:814,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:815,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:816,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:817,1
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:825,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:825,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:828,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:837,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:838,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:841,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 7
    argNames:
    - dbFileType
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - TSK_DB_FILES_TYPE_ENUM
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 769
    functionDepth: 3
    functionLinenumber: 769
    functionLinenumberEnd: 848
    functionName: TskAutoDbJava::addFileWithLayoutRange
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - CallLongMethod
    - size
    - tsk_error_set_errstr
    - tsk_error_reset
    - begin
    - stringstream::str
    - getHasOverlap
    - tsk_error_set_errno
    - end
    - for_each
    - checkFileLayoutRangeOverlap
    - sort
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addFileWithLayoutRange(const TSK_DB_FILES_TYPE_ENUM
      dbFileType, const int64_t parentObjId,\n    const int64_t fsObjId, const uint64_t
      size,\n    vector<TSK_DB_FILE_LAYOUT_RANGE>& ranges, int64_t& objId,\n    int64_t
      dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addFileWithLayoutRange
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 861
    functionDepth: 4
    functionLinenumber: 861
    functionLinenumberEnd: 867
    functionName: TskAutoDbJava::addUnallocBlockFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addFileWithLayoutRange
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addUnallocBlockFile(const int64_t parentObjId,
      const int64_t fsObjId, const uint64_t size,\n    vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n    int64_t dataSourceObjId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addFileWithLayoutRange
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parentObjId
    - fsObjId
    - size
    - ' ranges'
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - uint64_t
    - vector<TSK_DB_FILE_LAYOUT_RANGE>
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: TskAutoDbJava::addUnusedBlockFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addFileWithLayoutRange
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addUnusedBlockFile(const int64_t parentObjId,
      const int64_t fsObjId, const uint64_t size,\n    vector<TSK_DB_FILE_LAYOUT_RANGE>&
      ranges, int64_t& objId,\n    int64_t dataSourceObjId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:901,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fsObjId
    - ' objId'
    - dataSourceObjId
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 911
    functionName: TskAutoDbJava::addUnallocFsBlockFilesParent
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - CallLongMethod
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::addUnallocFsBlockFilesParent(const
      int64_t fsObjId, int64_t& objId,\n    int64_t dataSourceObjId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:926,1
    - Dst: CallLongMethod
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vol_index
    - parObjId
    - ' objId'
    argTypes:
    - int
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 937
    functionName: TskAutoDbJava::addUnallocatedPoolVolume
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - NewStringUTF
    - CallLongMethod
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocatedPoolVolume(int vol_index,
      int64_t parObjId, int64_t& objId)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeleteGlobalRef
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:945,1
    - Dst: DeleteGlobalRef
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 951
    functionName: TskAutoDbJava::close
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - DeleteGlobalRef
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: TskAutoDbJava::getImageID
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t TskAutoDbJava::getImageID()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::closeImage
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: TskAutoDbJava::closeImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - TskAuto::closeImage
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::closeImage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addFileSystems
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: TskAutoDbJava::setAddFileSystems
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setAddFileSystems(bool addFileSystems)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - noFatFsOrphans
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: TskAutoDbJava::setNoFatFsOrphans
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setNoFatFsOrphans(bool noFatFsOrphans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::setAddUnallocSpace
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addUnallocSpace
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 971
    functionName: TskAutoDbJava::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - TskAutoDbJava::setAddUnallocSpace
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setAddUnallocSpace(bool addUnallocSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addUnallocSpace
    - minChunkSize
    argTypes:
    - bool
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: TskAutoDbJava::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setAddUnallocSpace(bool addUnallocSpace, int64_t
      minChunkSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - minChunkSize
    - maxChunkSize
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 983
    functionName: TskAutoDbJava::setAddUnallocSpace
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setAddUnallocSpace(int64_t minChunkSize, int64_t
      maxChunkSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::openImageUtf8
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1000,1
    - Dst: TskAutoDbJava::addImageDetails
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - a_num
    - a_images
    - a_type
    - a_ssize
    - a_deviceId
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1009
    functionName: TskAutoDbJava::openImageUtf8
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAuto::openImageUtf8
    - TskAutoDbJava::addImageDetails
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDbJava::openImageUtf8(int a_num, const char *const
      a_images[],\n    TSK_IMG_TYPE_ENUM a_type, unsigned int a_ssize, const char*
      a_deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAuto::openImage
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1028,1
    - Dst: TskAutoDbJava::addImageDetails
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1034,1
    - Dst: TskAutoDbJava::openImageUtf8
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - a_num
    - a_images
    - a_type
    - a_ssize
    - a_deviceId
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1038
    functionName: TskAutoDbJava::openImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addImageDetails
    - TskAuto::openImage
    - TskAutoDbJava::openImageUtf8
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDbJava::openImage(int a_num, const TSK_TCHAR * const
      a_images[],\n    TSK_IMG_TYPE_ENUM a_type, unsigned int a_ssize, const char*
      a_deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addImageDetails
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a_deviceId
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1054
    functionName: TskAutoDbJava::openImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addImageDetails
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDbJava::openImage(const char* a_deviceId)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ewf_get_details
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1079,1
    - Dst: TskAutoDbJava::addAcquisitionDetails
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1085,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1099,1
    - Dst: tsk_malloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1105,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1108,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1110,1
    - Dst: tsk_UTF16toUTF8_lclorder
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1120,1
    - Dst: TSTRLEN
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1121,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1124,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1125,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1126,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1127,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1129,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1131,1
    - Dst: TskAutoDbJava::addImageInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1141,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1144,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1151,1
    - Dst: free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - deviceId
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1062
    functionDepth: 6
    functionLinenumber: 1062
    functionLinenumberEnd: 1157
    functionName: TskAutoDbJava::addImageDetails
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 3
    functionsReached:
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskAutoDbJava::addAcquisitionDetails
    - TskAutoDbJava::addImageInfo
    - ewf_get_details
    - tsk_malloc
    - tsk_error_set_errno
    - free
    - registerError
    - tsk_UTF16toUTF8_lclorder
    - TSTRLEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDbJava::addImageDetails(const char* deviceId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addVsInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1164,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vs_info
    argTypes:
    - TSK_VS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1160
    functionDepth: 6
    functionLinenumber: 1160
    functionLinenumberEnd: 1170
    functionName: TskAutoDbJava::filterVs
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addVsInfo
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDbJava::filterVs(const TSK_VS_INFO * vs_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addPoolInfoAndVS
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1179,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1180,1
    - Dst: TskAutoDbJava::addPoolInfoAndVS
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1188,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pool_info
    argTypes:
    - TSK_POOL_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1172
    functionDepth: 6
    functionLinenumber: 1172
    functionLinenumberEnd: 1200
    functionName: TskAutoDbJava::filterPool
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addPoolInfoAndVS
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDbJava::filterPool(const TSK_POOL_INFO * pool_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1212,1
    - Dst: find
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1214,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1214,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1215,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1216,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1217,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1224,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1225,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1226,1
    - Dst: TskAutoDbJava::addUnallocatedPoolVolume
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1240,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1241,1
    - Dst: tsk_error_set_errno
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1242,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1243,1
    - Dst: tsk_pool_unallocated_runs
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1248,1
    - Dst: TskAutoDbJava::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1252,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1253,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1254,1
    - Dst: tsk_fs_attr_run_free
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - ' numPool'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1264
    functionName: TskAutoDbJava::addUnallocatedPoolBlocksToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - size
    - tsk_fs_attr_run_free
    - tsk_error_set_errstr
    - tsk_error_reset
    - TskAutoDbJava::addUnallocatedPoolVolume
    - find
    - TskAutoDbJava::addUnallocBlockFileInChunks
    - tsk_error_set_errno
    - tsk_pool_unallocated_runs
    - end
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocatedPoolBlocksToDb(size_t
      & numPool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addPoolVolumeInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1270,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pool_vol
    argTypes:
    - TSK_POOL_VOLUME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1276
    functionName: TskAutoDbJava::filterPoolVol
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - registerError
    - TskAutoDbJava::addPoolVolumeInfo
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDbJava::filterPoolVol(const TSK_POOL_VOLUME_INFO
      * pool_vol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addVolumeInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1285,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - vs_part
    argTypes:
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1278
    functionDepth: 6
    functionLinenumber: 1278
    functionLinenumberEnd: 1291
    functionName: TskAutoDbJava::filterVol
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addVolumeInfo
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDbJava::filterVol(const TSK_VS_PART_INFO * vs_part)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addFsInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1302,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1303,1
    - Dst: TskAutoDbJava::addFsInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1309,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1310,1
    - Dst: TskAutoDbJava::addFsInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1316,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1317,1
    - Dst: tsk_fs_file_open
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1324,1
    - Dst: TskAutoDbJava::processFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1325,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1326,1
    - Dst: TSK_FS_TYPE_ISFAT
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1339,1
    - Dst: setFileFilterFlags
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1343,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - fs_info
    argTypes:
    - TSK_FS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1294
    functionDepth: 6
    functionLinenumber: 1294
    functionLinenumberEnd: 1346
    functionName: TskAutoDbJava::filterFs
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - setFileFilterFlags
    - TSK_FS_TYPE_ISFAT
    - tsk_fs_file_close
    - tsk_fs_file_open
    - TskAutoDbJava::addFsInfo
    - TskAutoDbJava::processFile
    - registerError
    linkageType: ''
    returnType: TSK_FILTER_ENUM
    signature: TSK_FILTER_ENUM TskAutoDbJava::filterFs(TSK_FS_INFO * fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addFsFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1358,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fs_file
    - fs_attr
    - path
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1354
    functionDepth: 2
    functionLinenumber: 1354
    functionLinenumberEnd: 1365
    functionName: TskAutoDbJava::insertFileData
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - registerError
    - TskAutoDbJava::addFsFile
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::insertFileData(TSK_FS_FILE * fs_file,\n
      \   const TSK_FS_ATTR * fs_attr, const char *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setVolFilterFlags
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1379,1
    - Dst: findFilesInImg
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1383,1
    - Dst: TskAutoDbJava::addUnallocSpaceToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1408
    functionName: TskAutoDbJava::addFilesInImgToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - TskAutoDbJava::addUnallocSpaceToDb
    - findFilesInImg
    - setVolFilterFlags
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDbJava::addFilesInImgToDb()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1428,1
    - Dst: TskAutoDbJava::openImage
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1430,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1431,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1432,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1437,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1438,1
    - Dst: TskAutoDbJava::addFilesInImgToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - numImg
    - imagePaths
    - imgType
    - sSize
    - deviceId
    argTypes:
    - int
    - TSK_TCHAR*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1423
    functionDepth: 6
    functionLinenumber: 1423
    functionLinenumberEnd: 1448
    functionName: TskAutoDbJava::startAddImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - TskAutoDbJava::openImage
    - tsk_img_writer_create
    - tsk_error_set_errstr2
    - TskAutoDbJava::addFilesInImgToDb
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDbJava::startAddImage(int numImg, const TSK_TCHAR *
      const imagePaths[],\n    TSK_IMG_TYPE_ENUM imgType, unsigned int sSize, const
      char* deviceId)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: openImageHandle
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1462,1
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1469,1
    - Dst: TskAutoDbJava::openImage
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1471,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1472,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1473,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1478,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1479,1
    - Dst: TskAutoDbJava::addFilesInImgToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - img_info
    - deviceId
    argTypes:
    - TSK_IMG_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1459
    functionDepth: 6
    functionLinenumber: 1459
    functionLinenumberEnd: 1490
    functionName: TskAutoDbJava::startAddImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - openImageHandle
    - tsk_fprintf
    - TskAutoDbJava::openImage
    - tsk_img_writer_create
    - tsk_error_set_errstr2
    - TskAutoDbJava::addFilesInImgToDb
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TskAutoDbJava::startAddImage(TSK_IMG_INFO * img_info, const
      char* deviceId)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1512,1
    - Dst: TskAutoDbJava::openImageUtf8
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1514,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1515,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1516,1
    - Dst: tsk_img_writer_create
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1520,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1521,1
    - Dst: TskAutoDbJava::addFilesInImgToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - numImg
    - imagePaths
    - imgType
    - sSize
    - deviceId
    argTypes:
    - int
    - char*[]
    - TSK_IMG_TYPE_ENUM
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1507
    functionDepth: 6
    functionLinenumber: 1507
    functionLinenumberEnd: 1531
    functionName: TskAutoDbJava::startAddImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - tsk_fprintf
    - tsk_img_writer_create
    - tsk_error_set_errstr2
    - TskAutoDbJava::addFilesInImgToDb
    - TskAutoDbJava::openImageUtf8
    - registerError
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t TskAutoDbJava::startAddImage(int numImg, const char *const
      imagePaths[],\n    TSK_IMG_TYPE_ENUM imgType, unsigned int sSize, const char*
      deviceId)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1542,1
    - Dst: setStopProcessing
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1538
    functionDepth: 4
    functionLinenumber: 1538
    functionLinenumberEnd: 1547
    functionName: TskAutoDbJava::stopAddImage
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - setStopProcessing
    - tsk_fprintf
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::stopAddImage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tzone
    argTypes:
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1556
    functionName: TskAutoDbJava::setTz
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setTz(string tzone)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img_id
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1565
    functionName: TskAutoDbJava::setDatasourceObjId
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TskAutoDbJava::setDatasourceObjId(int64_t img_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fprintf
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1573,1
    - Dst: isDir
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1583,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1585,1
    - Dst: string
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1586,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1587,1
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1591,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1593,1
    - Dst: tsk_fs_file_attr_getsize
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1605,1
    - Dst: processAttributes
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1606,1
    - Dst: TskAutoDbJava::insertFileData
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1567
    functionDepth: 5
    functionLinenumber: 1567
    functionLinenumberEnd: 1621
    functionName: TskAutoDbJava::processFile
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - tsk_take_lock
    - string
    - tsk_fprintf
    - processAttributes
    - TskAutoDbJava::insertFileData
    - tsk_fs_file_attr_getsize
    - tsk_release_lock
    - isDir
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::processFile(TSK_FS_FILE * fs_file, const
      char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isDefaultType
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1630,1
    - Dst: TskAutoDbJava::insertFileData
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1632,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fs_file
    - fs_attr
    - path
    argTypes:
    - TSK_FS_FILE*
    - TSK_FS_ATTR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1625
    functionDepth: 3
    functionLinenumber: 1625
    functionLinenumberEnd: 1642
    functionName: TskAutoDbJava::processAttribute
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - isDefaultType
    - registerError
    - TskAutoDbJava::insertFileData
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: "TSK_RETVAL_ENUM TskAutoDbJava::processAttribute(TSK_FS_FILE * fs_file,\n
      \   const TSK_FS_ATTR * fs_attr, const char *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNALLOC_BLOCK_WLK_TRACK*::ranges::push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1684,1
    - Dst: TSK_DB_FILE_LAYOUT_RANGE
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1684,1
    - Dst: TskAutoDbJava::addUnallocBlockFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1706,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1708,1
    - Dst: UNALLOC_BLOCK_WLK_TRACK*::ranges::clear
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1716,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - a_block
    - a_ptr
    argTypes:
    - TSK_FS_BLOCK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1653
    functionDepth: 5
    functionLinenumber: 1653
    functionLinenumberEnd: 1723
    functionName: TskAutoDbJava::fsWalkUnallocBlocksCb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - UNALLOC_BLOCK_WLK_TRACK*::ranges::clear
    - TSK_DB_FILE_LAYOUT_RANGE
    - TskAutoDbJava::addUnallocBlockFile
    - UNALLOC_BLOCK_WLK_TRACK*::ranges::push_back
    - registerError
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM TskAutoDbJava::fsWalkUnallocBlocksCb(const TSK_FS_BLOCK
      *a_block, void *a_ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img_decrypt
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1740,1
    - Dst: getFileSystemPassword
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1740,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1742,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1743,1
    - Dst: TskAutoDbJava::addUnallocFsBlockFilesParent
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1748,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1749,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1750,1
    - Dst: tsk_fs_block_walk
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1757,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1762,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1765,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1765,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1766,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1771,1
    - Dst: UNALLOC_BLOCK_WLK_TRACK::ranges::push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1780,1
    - Dst: TSK_DB_FILE_LAYOUT_RANGE
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1780,1
    - Dst: TskAutoDbJava::addUnallocBlockFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1783,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1784,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1785,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - ' dbFsInfo'
    argTypes:
    - TSK_DB_FS_INFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1732
    functionDepth: 8
    functionLinenumber: 1732
    functionLinenumberEnd: 1794
    functionName: TskAutoDbJava::addFsInfoUnalloc
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - tsk_fs_open_img_decrypt
    - tsk_error_set_errstr2
    - UNALLOC_BLOCK_WLK_TRACK::ranges::push_back
    - getFileSystemPassword
    - stringstream::str
    - tsk_fs_close
    - TSK_DB_FILE_LAYOUT_RANGE
    - TskAutoDbJava::addUnallocBlockFile
    - TskAutoDbJava::addUnallocFsBlockFilesParent
    - registerError
    - tsk_fs_block_walk
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addFsInfoUnalloc(const TSK_DB_FS_INFO
      & dbFsInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TskAutoDbJava::addUnallocFsSpaceToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1809,1
    - Dst: TskAutoDbJava::addUnallocVsSpaceToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1810,1
    - Dst: TskAutoDbJava::addUnallocatedPoolBlocksToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1811,1
    - Dst: TskAutoDbJava::addUnallocImageSpaceToDb
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1800
    functionDepth: 4
    functionLinenumber: 1800
    functionLinenumberEnd: 1824
    functionName: TskAutoDbJava::addUnallocSpaceToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - TskAutoDbJava::addUnallocImageSpaceToDb
    - TskAutoDbJava::addUnallocatedPoolBlocksToDb
    - TskAutoDbJava::addUnallocVsSpaceToDb
    - TskAutoDbJava::addUnallocFsSpaceToDb
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocSpaceToDb()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1838,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1840,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1840,1
    - Dst: TskAutoDbJava::addFsInfoUnalloc
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' numFs'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1832
    functionDepth: 9
    functionLinenumber: 1832
    functionLinenumberEnd: 1851
    functionName: TskAutoDbJava::addUnallocFsSpaceToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - size
    - TskAutoDbJava::addFsInfoUnalloc
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocFsSpaceToDb(size_t & numFs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1860,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1863,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1864,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1874,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1875,1
    - Dst: TskAutoDbJava::getObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1879,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1882,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1882,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1883,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1900,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1900,1
    - Dst: TskAutoDbJava::getObjectInfo
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1915,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1918,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1918,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1919,1
    - Dst: begin
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1927,1
    - Dst: end
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1928,1
    - Dst: tsk_error_set_errstr2
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1938,1
    - Dst: stringstream::str
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1938,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1939,1
    - Dst: TskAutoDbJava::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1946,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1947,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 1
    argNames:
    - ' numVsP'
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1858
    functionDepth: 3
    functionLinenumber: 1858
    functionLinenumberEnd: 1953
    functionName: TskAutoDbJava::addUnallocVsSpaceToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - size
    - begin
    - stringstream::str
    - TskAutoDbJava::addUnallocBlockFileInChunks
    - end
    - TskAutoDbJava::getObjectInfo
    - tsk_error_set_errstr2
    - registerError
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocVsSpaceToDb(size_t & numVsP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getImageSize
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1963,1
    - Dst: tsk_error_set_errstr
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1965,1
    - Dst: registerError
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1966,1
    - Dst: TskAutoDbJava::addUnallocBlockFileInChunks
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 1976
    functionName: TskAutoDbJava::addUnallocImageSpaceToDb
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_set_errstr
    - getImageSize
    - registerError
    - TskAutoDbJava::addUnallocBlockFileInChunks
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocImageSpaceToDb()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vector::push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1989,1
    - Dst: TskAutoDbJava::addUnallocBlockFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:1991,1
    - Dst: vector::push_back
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:2012,1
    - Dst: TskAutoDbJava::addUnallocBlockFile
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:2015,1
    - Dst: vector::clear
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:2019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - byteStart
    - totalSize
    - parentObjId
    - dataSourceObjId
    argTypes:
    - uint64_t
    - TSK_OFF_T
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1983
    functionDepth: 5
    functionLinenumber: 1983
    functionLinenumberEnd: 2023
    functionName: TskAutoDbJava::addUnallocBlockFileInChunks
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 3
    functionsReached:
    - vector::clear
    - vector::push_back
    - TskAutoDbJava::addUnallocBlockFile
    linkageType: ''
    returnType: TSK_RETVAL_ENUM
    signature: TSK_RETVAL_ENUM TskAutoDbJava::addUnallocBlockFileInChunks(uint64_t
      byteStart, TSK_OFF_T totalSize, int64_t parentObjId, int64_t dataSourceObjId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsk_take_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:2033,1
    - Dst: tsk_release_lock
      Src: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2037
    functionName: TskAutoDbJava::getCurDir
    functionSourceFile: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    functionUses: 0
    functionsReached:
    - tsk_take_lock
    - tsk_release_lock
    linkageType: ''
    returnType: std::string
    signature: std::string TskAutoDbJava::getCurDir()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TskFsDir::TskFsDir
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:56,1
    - Dst: TskFsDir*::open
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:62,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:63,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:65,1
    - Dst: malloc
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:72,1
    - Dst: malloc
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:76,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:77,1
    - Dst: TskFsDir*::getSize
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:82,1
    - Dst: TskFsDir*::getFile
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:88,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:89,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:92,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:94,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:95,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:100,1
    - Dst: TskFsFile*::getFsInfo
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:100,1
    - Dst: const_cast<TskFsName *>
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:101,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:101,1
    - Dst: TskFsFile*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:102,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:109,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:119,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:121,1
    - Dst: TskFsFile*::read
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:128,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:132,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:133,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:135,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:138,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:139,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:143,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:146,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:148,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:151,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:159,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:159,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:160,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:160,1
    - Dst: tsk_stack_find
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:163,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:163,1
    - Dst: tsk_stack_push
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:165,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:165,1
    - Dst: snprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:167,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:168,1
    - Dst: procDir
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:169,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:169,1
    - Dst: TskFsFile*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:171,1
    - Dst: TskFsDir*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:172,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:173,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:174,1
    - Dst: tsk_stack_pop
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:179,1
    - Dst: TskFsFile*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:184,1
    - Dst: TskFsDir*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:186,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:188,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:189,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 4
    argNames:
    - fs_info
    - stack
    - dir_inum
    - path
    argTypes:
    - TskFsInfo*
    - TSK_STACK*
    - TSK_INUM_T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 191
    functionName: procDir
    functionSourceFile: /src/sleuthkit/samples/posix-cpp-style.cpp
    functionUses: 1
    functionsReached:
    - tsk_error_print
    - TskFsFile*::getName
    - TskFsDir*::getSize
    - fprintf
    - snprintf
    - TskFsFile*::getFsInfo
    - TskFsDir*::getFile
    - TSK_FS_TYPE_ISNTFS
    - TskFsDir*::open
    - TSK_FS_IS_DIR_META
    - procDir
    - TskFsFile*::close
    - tsk_stack_pop
    - TskFsFile*::read
    - TskFsDir*::close
    - tsk_stack_push
    - tsk_stack_find
    - malloc
    - TSK_FS_ISDOT
    - const_cast<TskFsName *>
    - TskFsDir::TskFsDir
    - TskFsFile*::getMeta
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t procDir(TskFsInfo * fs_info, TSK_STACK * stack,\n    TSK_INUM_T
      dir_inum, const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskFsInfo::TskFsInfo
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:205,1
    - Dst: TskFsInfo*::open
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:209,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:211,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:214,1
    - Dst: tsk_stack_create
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:222,1
    - Dst: procDir
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:225,1
    - Dst: TskFsInfo*::getRootINum
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:225,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:226,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TskImgInfo*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 240
    functionName: procFs
    functionSourceFile: /src/sleuthkit/samples/posix-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - procDir
    - tsk_error_print
    - TskFsInfo::TskFsInfo
    - fprintf
    - tsk_stack_create
    - tsk_stack_free
    - TskFsInfo*::getRootINum
    - TskFsInfo*::open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t procFs(TskImgInfo * img_info, TSK_OFF_T start)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TskVsInfo::TskVsInfo
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:256,1
    - Dst: TskVsInfo*::open
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:259,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:261,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:265,1
    - Dst: procFs
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:266,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:271,1
    - Dst: TskVsInfo*::getPartCount
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:274,1
    - Dst: TskVsInfo*::getPart
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:277,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:278,1
    - Dst: const_cast<TskVsPartInfo *>
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:283,1
    - Dst: const_cast<TskVsPartInfo *>
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:287,1
    - Dst: procFs
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:291,1
    - Dst: const_cast<TskVsPartInfo *>
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:292,1
    - Dst: TskVsInfo*::getBlockSize
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:292,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:295,1
    - Dst: TskVsInfo*::close
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:299,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TskImgInfo*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 302
    functionName: procVs
    functionSourceFile: /src/sleuthkit/samples/posix-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - TskVsInfo::TskVsInfo
    - TskVsInfo*::getBlockSize
    - fprintf
    - tsk_error_reset
    - TskVsInfo*::close
    - TskVsInfo*::getPartCount
    - const_cast<TskVsPartInfo *>
    - procFs
    - TskVsInfo*::getPart
    - TskVsInfo*::open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t procVs(TskImgInfo * img_info, TSK_OFF_T start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskImgInfo::TskImgInfo
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:307,1
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:312,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:312,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:314,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:315,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:322,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:323,1
    - Dst: TskImgInfo*::open
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:327,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:330,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:331,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:332,1
    - Dst: procVs
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:336,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:337,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-cpp-style.cpp:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 345
    functionName: main
    functionSourceFile: /src/sleuthkit/samples/posix-cpp-style.cpp
    functionUses: 1
    functionsReached:
    - GetCommandLineW
    - tsk_error_print
    - fprintf
    - exit
    - CommandLineToArgvW
    - TskImgInfo::TskImgInfo
    - procVs
    - TskImgInfo*::open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - size
    - ptr
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: fileAct
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - TSK_MD5_Update
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM fileAct(TskFsFile * /*fs_file*/, TSK_OFF_T /*a_off*/,
      TSK_DADDR_T /*addr*/,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM /*flags*/,
      void *ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:76,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:76,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:79,1
    - Dst: TSK_MD5_Init
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:86,1
    - Dst: TskFsFile*::walk
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:93,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:97,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:98,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:99,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:99,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:100,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:102,1
    - Dst: TSK_MD5_Final
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:108,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:112,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:115,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:117,1
    - Dst: tsk_hdb_lookup_raw
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TskFsFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 137
    functionName: procFile
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_lookup_raw
    - TSK_MD5_Final
    - TskFsFile*::getName
    - tsk_error_print
    - TskFsFile*::walk
    - tsk_error_reset
    - printf
    - TSK_MD5_Init
    - tsk_error_get_errno
    - TskFsFile*::getMeta
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t procFile(TskFsFile * fs_file, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:146,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:147,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:150,1
    - Dst: TskFsFile*::getFsInfo
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:150,1
    - Dst: TskFsFile*::getName
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:151,1
    - Dst: TskFsFile*::getMeta
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:155,1
    - Dst: procFile
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TskFsFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: dirAct
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - TskFsFile*::getName
    - TskFsFile*::getFsInfo
    - fprintf
    - procFile
    - TSK_FS_TYPE_ISNTFS
    - TskFsFile*::getMeta
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM dirAct(TskFsFile * fs_file, const char *path, void
      * /*ptr*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TskFsInfo::TskFsInfo
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:177,1
    - Dst: TskFsInfo*::open
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:180,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:183,1
    - Dst: TskFsInfo*::dirWalk
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:191,1
    - Dst: TskFsInfo*::getRootINum
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:191,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:194,1
    - Dst: TskFsInfo*::close
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:195,1
    - Dst: TskFsInfo*::close
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TskImgInfo*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 206
    functionName: procFs
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 1
    functionsReached:
    - TskFsInfo*::close
    - tsk_error_print
    - TskFsInfo::TskFsInfo
    - TskFsInfo*::dirWalk
    - TskFsInfo*::getRootINum
    - TskFsInfo*::open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t procFs(TskImgInfo * img_info, TSK_OFF_T start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: procFs
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:215,1
    - Dst: const_cast<TskImgInfo *>
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:215,1
    - Dst: TskVsInfo*::getImgInfo
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:215,1
    - Dst: const_cast<TskVsPartInfo *>
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:215,1
    - Dst: TskVsInfo*::getBlockSize
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:215,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vs_info
    - vs_part
    argTypes:
    - TskVsInfo*
    - TskVsPartInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: vsAct
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - TskVsInfo*::getImgInfo
    - const_cast<TskVsPartInfo *>
    - procFs
    - TskVsInfo*::getBlockSize
    - const_cast<TskImgInfo *>
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM vsAct(TskVsInfo * vs_info, const TskVsPartInfo *
      vs_part, void * /*ptr*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TskVsInfo::TskVsInfo
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:240,1
    - Dst: TskVsInfo*::open
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:243,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:245,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:249,1
    - Dst: procFs
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:250,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:256,1
    - Dst: TskVsInfo*::vsPartWalk
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:259,1
    - Dst: TskVsInfo*::getPartCount
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TskImgInfo*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 268
    functionName: procVs
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 1
    functionsReached:
    - TskVsInfo::TskVsInfo
    - fprintf
    - tsk_error_reset
    - TskVsInfo*::vsPartWalk
    - TskVsInfo*::getPartCount
    - procFs
    - TskVsInfo*::open
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t procVs(TskImgInfo * img_info, TSK_OFF_T start)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TskImgInfo::TskImgInfo
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:274,1
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:279,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:279,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:282,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:283,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:291,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:292,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:299,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:299,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:302,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:303,1
    - Dst: tsk_hdb_idxsetup
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:306,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:308,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:310,1
    - Dst: TskImgInfo*::open
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:316,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:318,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:319,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:320,1
    - Dst: procVs
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:323,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:325,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-cpp-style.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 331
    functionName: main
    functionSourceFile: /src/sleuthkit/samples/callback-cpp-style.cpp
    functionUses: 1
    functionsReached:
    - GetCommandLineW
    - tsk_error_print
    - tsk_hdb_idxsetup
    - fprintf
    - exit
    - CommandLineToArgvW
    - TskImgInfo::TskImgInfo
    - procVs
    - TskImgInfo*::open
    - tsk_hdb_open
    - _TSK_T
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Update
      Src: /src/sleuthkit/samples/callback-style.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - size
    - ptr
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: file_act
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 1
    functionsReached:
    - TSK_MD5_Update
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: "TSK_WALK_RET_ENUM file_act(TSK_FS_FILE * /*fs_file*/, TSK_OFF_T /*a_off*/,
      TSK_DADDR_T /*addr*/,\n    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM /*flags*/,
      void *ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TSK_MD5_Init
      Src: /src/sleuthkit/samples/callback-style.cpp:86,1
    - Dst: tsk_fs_file_walk
      Src: /src/sleuthkit/samples/callback-style.cpp:93,1
    - Dst: tsk_error_get_errno
      Src: /src/sleuthkit/samples/callback-style.cpp:97,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-style.cpp:98,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:100,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-style.cpp:102,1
    - Dst: TSK_MD5_Final
      Src: /src/sleuthkit/samples/callback-style.cpp:108,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-style.cpp:112,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-style.cpp:115,1
    - Dst: printf
      Src: /src/sleuthkit/samples/callback-style.cpp:117,1
    - Dst: tsk_hdb_lookup_raw
      Src: /src/sleuthkit/samples/callback-style.cpp:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 136
    functionName: proc_file
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 0
    functionsReached:
    - tsk_hdb_lookup_raw
    - TSK_MD5_Final
    - tsk_error_print
    - tsk_error_reset
    - printf
    - TSK_MD5_Init
    - tsk_fs_file_walk
    - tsk_error_get_errno
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t proc_file(TSK_FS_FILE * fs_file, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:145,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/samples/callback-style.cpp:149,1
    - Dst: proc_file
      Src: /src/sleuthkit/samples/callback-style.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fs_file
    - path
    argTypes:
    - TSK_FS_FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: dir_act
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - TSK_FS_TYPE_ISNTFS
    - proc_file
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM dir_act(TSK_FS_FILE * fs_file, const char *path,
      void * /*ptr*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/samples/callback-style.cpp:180,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:182,1
    - Dst: tsk_fs_dir_walk
      Src: /src/sleuthkit/samples/callback-style.cpp:190,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:193,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/samples/callback-style.cpp:194,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/samples/callback-style.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 173
    functionDepth: 7
    functionLinenumber: 173
    functionLinenumberEnd: 203
    functionName: proc_fs
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 3
    functionsReached:
    - tsk_fs_close
    - tsk_fs_open_img
    - tsk_error_print
    - tsk_fs_dir_walk
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t proc_fs(TSK_IMG_INFO * img_info, TSK_OFF_T start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proc_fs
      Src: /src/sleuthkit/samples/callback-style.cpp:212,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-style.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vs_info
    - vs_part
    argTypes:
    - TSK_VS_INFO*
    - TSK_VS_PART_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: vs_act
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 0
    functionsReached:
    - tsk_error_reset
    - proc_fs
    linkageType: ''
    returnType: TSK_WALK_RET_ENUM
    signature: TSK_WALK_RET_ENUM vs_act(TSK_VS_INFO * vs_info, const TSK_VS_PART_INFO
      * vs_part, void * /*ptr*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/samples/callback-style.cpp:241,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:243,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/callback-style.cpp:247,1
    - Dst: proc_fs
      Src: /src/sleuthkit/samples/callback-style.cpp:248,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:253,1
    - Dst: tsk_vs_part_walk
      Src: /src/sleuthkit/samples/callback-style.cpp:256,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/samples/callback-style.cpp:259,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/samples/callback-style.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 234
    functionDepth: 6
    functionLinenumber: 234
    functionLinenumberEnd: 265
    functionName: proc_vs
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 1
    functionsReached:
    - tsk_vs_close
    - fprintf
    - tsk_error_reset
    - tsk_vs_open
    - tsk_vs_part_walk
    - proc_fs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t proc_vs(TSK_IMG_INFO * img_info, TSK_OFF_T start)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/samples/callback-style.cpp:276,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/samples/callback-style.cpp:276,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:278,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:279,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:286,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:287,1
    - Dst: tsk_hdb_open
      Src: /src/sleuthkit/samples/callback-style.cpp:293,1
    - Dst: _TSK_T
      Src: /src/sleuthkit/samples/callback-style.cpp:293,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:295,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:296,1
    - Dst: tsk_hdb_open_idx
      Src: /src/sleuthkit/samples/callback-style.cpp:299,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:300,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:302,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/samples/callback-style.cpp:308,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/callback-style.cpp:310,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:311,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:312,1
    - Dst: proc_vs
      Src: /src/sleuthkit/samples/callback-style.cpp:315,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/callback-style.cpp:316,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/samples/callback-style.cpp:317,1
    - Dst: exit
      Src: /src/sleuthkit/samples/callback-style.cpp:318,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/samples/callback-style.cpp:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 268
    functionDepth: 7
    functionLinenumber: 268
    functionLinenumberEnd: 323
    functionName: main
    functionSourceFile: /src/sleuthkit/samples/callback-style.cpp
    functionUses: 1
    functionsReached:
    - GetCommandLineW
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - exit
    - tsk_img_open_sing
    - CommandLineToArgvW
    - tsk_hdb_open
    - _TSK_T
    - tsk_hdb_open_idx
    - proc_vs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_dir_open_meta
      Src: /src/sleuthkit/samples/posix-style.cpp:64,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:65,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:67,1
    - Dst: malloc
      Src: /src/sleuthkit/samples/posix-style.cpp:74,1
    - Dst: malloc
      Src: /src/sleuthkit/samples/posix-style.cpp:78,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:79,1
    - Dst: tsk_fs_dir_getsize
      Src: /src/sleuthkit/samples/posix-style.cpp:84,1
    - Dst: tsk_fs_dir_get
      Src: /src/sleuthkit/samples/posix-style.cpp:90,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:91,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:94,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:96,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:97,1
    - Dst: TSK_FS_TYPE_ISNTFS
      Src: /src/sleuthkit/samples/posix-style.cpp:102,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/samples/posix-style.cpp:104,1
    - Dst: tsk_fs_file_read
      Src: /src/sleuthkit/samples/posix-style.cpp:130,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:134,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:141,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:145,1
    - Dst: TSK_FS_IS_DIR_META
      Src: /src/sleuthkit/samples/posix-style.cpp:161,1
    - Dst: TSK_FS_ISDOT
      Src: /src/sleuthkit/samples/posix-style.cpp:162,1
    - Dst: tsk_stack_find
      Src: /src/sleuthkit/samples/posix-style.cpp:165,1
    - Dst: tsk_stack_push
      Src: /src/sleuthkit/samples/posix-style.cpp:167,1
    - Dst: snprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:169,1
    - Dst: proc_dir
      Src: /src/sleuthkit/samples/posix-style.cpp:171,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/samples/posix-style.cpp:173,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/samples/posix-style.cpp:174,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:175,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:176,1
    - Dst: tsk_stack_pop
      Src: /src/sleuthkit/samples/posix-style.cpp:181,1
    - Dst: tsk_fs_file_close
      Src: /src/sleuthkit/samples/posix-style.cpp:186,1
    - Dst: tsk_fs_dir_close
      Src: /src/sleuthkit/samples/posix-style.cpp:188,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:190,1
    - Dst: free
      Src: /src/sleuthkit/samples/posix-style.cpp:191,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 4
    argNames:
    - fs_info
    - stack
    - dir_inum
    - path
    argTypes:
    - TSK_FS_INFO*
    - TSK_STACK*
    - TSK_INUM_T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 193
    functionName: proc_dir
    functionSourceFile: /src/sleuthkit/samples/posix-style.cpp
    functionUses: 2
    functionsReached:
    - tsk_error_print
    - tsk_fs_dir_get
    - tsk_stack_find
    - tsk_stack_pop
    - fprintf
    - tsk_fs_dir_open_meta
    - malloc
    - snprintf
    - TSK_FS_ISDOT
    - tsk_fs_file_read
    - tsk_fs_dir_getsize
    - proc_dir
    - tsk_fs_dir_close
    - TSK_FS_TYPE_ISNTFS
    - tsk_fs_file_close
    - tsk_stack_push
    - free
    - TSK_FS_IS_DIR_META
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t proc_dir(TSK_FS_INFO * fs_info, TSK_STACK * stack,\n    TSK_INUM_T
      dir_inum, const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tsk_fs_open_img
      Src: /src/sleuthkit/samples/posix-style.cpp:216,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:218,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:221,1
    - Dst: tsk_stack_create
      Src: /src/sleuthkit/samples/posix-style.cpp:229,1
    - Dst: proc_dir
      Src: /src/sleuthkit/samples/posix-style.cpp:232,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:233,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/samples/posix-style.cpp:236,1
    - Dst: tsk_stack_free
      Src: /src/sleuthkit/samples/posix-style.cpp:240,1
    - Dst: tsk_fs_close
      Src: /src/sleuthkit/samples/posix-style.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: proc_fs
    functionSourceFile: /src/sleuthkit/samples/posix-style.cpp
    functionUses: 5
    functionsReached:
    - tsk_error_print
    - fprintf
    - tsk_stack_create
    - tsk_fs_close
    - proc_dir
    - tsk_fs_open_img
    - tsk_stack_free
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t proc_fs(TSK_IMG_INFO * img_info, TSK_OFF_T start)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tsk_vs_open
      Src: /src/sleuthkit/samples/posix-style.cpp:267,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:269,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/posix-style.cpp:273,1
    - Dst: proc_fs
      Src: /src/sleuthkit/samples/posix-style.cpp:274,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:279,1
    - Dst: tsk_vs_part_get
      Src: /src/sleuthkit/samples/posix-style.cpp:285,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:286,1
    - Dst: proc_fs
      Src: /src/sleuthkit/samples/posix-style.cpp:299,1
    - Dst: tsk_error_reset
      Src: /src/sleuthkit/samples/posix-style.cpp:303,1
    - Dst: tsk_vs_close
      Src: /src/sleuthkit/samples/posix-style.cpp:307,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - img_info
    - start
    argTypes:
    - TSK_IMG_INFO*
    - TSK_OFF_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 310
    functionName: proc_vs
    functionSourceFile: /src/sleuthkit/samples/posix-style.cpp
    functionUses: 2
    functionsReached:
    - fprintf
    - tsk_error_reset
    - tsk_vs_open
    - tsk_vs_part_get
    - tsk_vs_close
    - proc_fs
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t proc_vs(TSK_IMG_INFO * img_info, TSK_OFF_T start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/sleuthkit/samples/posix-style.cpp:321,1
    - Dst: GetCommandLineW
      Src: /src/sleuthkit/samples/posix-style.cpp:321,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:323,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-style.cpp:324,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:331,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-style.cpp:332,1
    - Dst: tsk_img_open_sing
      Src: /src/sleuthkit/samples/posix-style.cpp:337,1
    - Dst: fprintf
      Src: /src/sleuthkit/samples/posix-style.cpp:340,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:341,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-style.cpp:342,1
    - Dst: proc_vs
      Src: /src/sleuthkit/samples/posix-style.cpp:346,1
    - Dst: tsk_error_print
      Src: /src/sleuthkit/samples/posix-style.cpp:347,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/samples/posix-style.cpp:348,1
    - Dst: exit
      Src: /src/sleuthkit/samples/posix-style.cpp:349,1
    - Dst: tsk_img_close
      Src: /src/sleuthkit/samples/posix-style.cpp:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv1
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 355
    functionName: main
    functionSourceFile: /src/sleuthkit/samples/posix-style.cpp
    functionUses: 1
    functionsReached:
    - GetCommandLineW
    - tsk_error_print
    - tsk_img_close
    - fprintf
    - exit
    - tsk_img_open_sing
    - CommandLineToArgvW
    - proc_vs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv1)
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- zlib.h
- mbedtls/aes.h
- sys/time.h
- libvslvm.h
- tsk/img/logical_img.h
- aff.h
- Version.h
- REGFHeader.h
- clocale
- memory
- semaphore.h
- tsk_config.h
- crypto.hpp
- tsk/fs/apfs_fs.h
- RegistryValue.h
- utf8.h
- apfs_compat.hpp
- tsk/auto/tsk_is_image_supported.h
- initializer_list
- exiv2/version.hpp
- utility
- cppunit/extensions/TestFactoryRegistry.h
- MetadataValueKey.h
- locale
- tsk/base/tsk_base.h
- sys/mman.h
- tsk_case_db.h
- tsk_vs.h
- array
- ../img/tsk_img.h
- intrin.h
- stddef.h
- RegParser.h
- RegistryHiveBuffer.h
- string
- lauxlib.h
- tsk/fs/tsk_fs_i.h
- RegistryKey.h
- dlfcn.h
- Record.h
- Buffer.h
- tsk_ntfs.h
- tsk/img/img_writer.h
- openssl/md5.h
- tsk_is_image_supported.h
- ../base/tsk_base.h
- cstring
- DBIndirectRecord.h
- auto_db_java.h
- tsk_apfs.hpp
- time.h
- unicode/ucol.h
- LogicalImagerRuleBase.h
- MetadataValueStretchKey.h
- rejistry++\include\librejistry++.h
- ../util/lw_shared_ptr.hpp
- mach/semaphore.h
- forward_list
- dataModel_SleuthkitJNI.h
- iosfwd
- tsk/img/tsk_img.h
- libewf.h
- HBIN.h
- sys/types.h
- base64.h
- sys/fcntl.h
- codecvt
- tsk/auto/sqlite3.h
- strings.h
- ../src/RegistryHiveBuffer.h
- mutex
- cstddef
- FileExtractor.h
- apfs_pool_compat.hpp
- comutil.h
- valarray
- tsk_auto_i.h
- conio.h
- assert.h
- tsk_lvm.hpp
- stack
- detect_encryption.h
- tsk_img.h
- list
- crtdefs.h
- ../../tsk/base/tsk_unicode.h
- hash_t.h
- MatchedRuleInfo.h
- RegistryHive.h
- LogicalImagerConfiguration.h
- ../img/pool.hpp
- tsk_hash_info.h
- tsk/vs/tsk_vs_i.h
- vxWorks.h
- LogicalImagerPathRule.h
- iomanip
- ../src/RegistryKey.h
- unistd.h
- afflib/utils.h
- limits
- ReportUtil.h
- errno.h
- BitlockerUtils.h
- stdlib.h
- ostream
- tuple
- shlobj.h
- cstdint
- MetadataValueUnicode.h
- sys/cdefs.h
- sstream
- mingw.h
- tsk_logical_fs.h
- winioctl.h
- share.h
- sys/file.h
- VKRecord.h
- sys/mmap.h
- apfs_fs.h
- istream
- magic.h
- ../pool/tsk_pool.h
- utils.h
- tsk_base_i.h
- vmdk.h
- IsImageSupportedLib.h
- AvailabilityMacros.h
- stdarg.h
- unicode/ustring.h
- MetadataValueOffsetAndSize.h
- exception
- tsk_exfatfs.h
- crc.h
- DriveUtil.h
- libkern/OSAtomic.h
- tsk/hashdb/tsk_hashdb.h
- ../fs/tsk_fs_i.h
- sys/param.h
- MetadataUtils.h
- ../util/span.hpp
- openssl/aes.h
- rejistry++/include/librejistry++.h
- tsk_apfs.h
- fiwalk.h
- cstdlib
- TskFindFiles.h
- set
- tsk/auto/tsk_db.h
- tsk/img/tsk_img_i.h
- ctime
- tsk/tsk_config.h
- LogicalImagerDateRule.h
- LogicalImagerFilenameRule.h
- ../pool/tsk_apfs.h
- MetadataValueVolumeMasterKey.h
- sys/stat.h
- sha2.h
- ../fs/tsk_apfs.h
- regex
- ValueData.h
- BinaryBlock.h
- mach/task.h
- ../src/RegistryHive.h
- thread
- json.h
- tsk_unicode.h
- iterator
- limits.h
- sys/cygwin.h
- DBRecord.h
- shellapi.h
- ../fs/apfs_fs.hpp
- tsk_mac.h
- ../pool/apfs_pool_compat.hpp
- tsk/fs/tsk_fatfs.h
- tsk_pool.h
- libvmdk.h
- sys/resource.h
- sys/signal.h
- winsock2.h
- pthread.h
- stdbool.h
- tsk/auto/tsk_auto.h
- unsupported_types.h
- cstdio
- ../fs/tsk_apfs.hpp
- mbedtls/sha256.h
- vhd.h
- CoreFoundation/CFUUID.h
- decmpfs.h
- sys/statvfs.h
- ../../tsk/base/tsk_base.h
- unordered_map
- tsk_hfs.h
- malloc/malloc.h
- algorithm
- framework.h
- tsk_thread.h
- RejistryException.h
- tsk_pool.hpp
- winsock.h
- ciso646
- stdio.h
- unicode/utf16.h
- ../pool/tsk_apfs.hpp
- config.h
- cctype
- tsk/util/file_system_utils.h
- _mingw.h
- ctype.h
- img_bfio_handle.h
- file_system_utils.h
- BitlockerParser.h
- memory.h
- tsk_vs_i.h
- cppunit/extensions/HelperMacros.h
- cppunit/ui/text/TestRunner.h
- MetadataEntry.h
- tsk_fatxxfs.h
- RegistryAnalyzer.h
- tsk/tsk_tools_i.h
- ios
- cerrno
- vector
- ../src/RegistryValue.h
- type_traits
- tsk_fatfs.h
- unordered_set
- afflib/afflib.h
- ../libtsk.h
- tsk/libtsk.h
- math.h
- openssl/sha.h
- config_msc.h
- tsk/auto/guid.h
- lualib.h
- tsk_os.h
- pch.h
- sys/mount.h
- ByteBuffer.h
- Cell.h
- dfxml.h
- ewf.h
- afflib/afflib_i.h
- DataTypes.h
- ../src/RejistryException.h
- tsk/util/detect_encryption.h
- cppunit/CompilerOutputter.h
- RIRecord.h
- tsk/pool/tsk_pool.h
- RegistryLoader.h
- cassert
- dirent.h
- unicode_escape.h
- tsk/auto/tsk_auto_i.h
- tsk/fs/tsk_fs.h
- tsk_gpt.h
- sys/dcmd_blk.h
- hexbuf.h
- sys/sysctl.h
- libbfio.h
- sys/sysmacros.h
- map
- tsk/fs/tsk_apfs.hpp
- stdexcept
- tsk_sun.h
- fstream
- tsk_db_sqlite.h
- cwchar
- stdint.h
- tchar.h
- fcntl.h
- RegFileInfo.h
- tsk_fs_i.h
- tsk/util/Bitlocker/BitlockerParser.h
- LogicalImagerExtensionRule.h
- lua.h
- malloc.h
- tsk/img/pool.hpp
- raw.h
- cmath
- tsk_comparedir.h
- locale.h
- tsk_base.h
- ../auto/guid.h
- RegistryByteBuffer.h
- utime.h
- string.h
- content.h
- tsk/fs/tsk_fatxxfs.h
- RegKey.h
- jni.h
- process.h
- iostream
- tsk_bsd.h
- tsk_ext2fs.h
- sys/ioctl.h
- unicode/ubrk.h
- LFRecord.h
- uuid/uuid.h
- typeinfo
- lvm_pool_compat.hpp
- tsk/img/ewf.h
- ValueListRecord.h
- tsk/base/crc.h
- MetadataValue.h
- openssl/opensslv.h
- EmptySubkeyList.h
- errors_test.h
- objbase.h
- inttypes.h
- ../src/RegistryHiveFile.h
- LIRecord.h
- tsk/auto/tsk_case_db.h
- sqlite3.h
- TargetConditionals.h
- cwctype
- shlwapi.h
- openssl/evp.h
- RegVal.h
- LogicalImagerSizeRule.h
- DirectSubkeyListRecord.h
- io.h
- sys/utsname.h
- TskHelper.h
- cmnintrin.h
- tsk_fs.h
- lzvn.h
- tsk_yaffs.h
- tsk_dos.h
- Windows.h
- regex.h
- winbase.h
- UserAccount.h
- Wbemidl.h
- err.h
- chrono
- arff.h
- NKRecord.h
- tsk_ffs.h
- apfs_fs.hpp
- tsk/img/unsupported_types.h
- libtsk.h
- RegHiveType.h
- tsk_hashdb_i.h
- LogicalImagerRuleSet.h
- encryptionHelper.h
- tsk/vs/tsk_vs.h
- pwd.h
- direct.h
- LHRecord.h
- streambuf
- SubkeyListRecord.h
- wchar.h
- tsk/fs/tsk_ntfs.h
- unicode/utypes.h
- tsk_db.h
- tsk_auto.h
- logical_img.h
- unicode/uregex.h
- pool_compat.hpp
- guid.h
- numeric
- tsk/img/raw.h
- windows.h
- libvhdi.h
- ../util/crypto.hpp
- functional
- sqlite3rtree.h
- tsk/base/tsk_base_i.h
- sys/disk.h
- tcl.h
- exiv2/exiv2.hpp
- tsk/hashdb/tsk_hash_info.h
- new
- tsk_iso9660.h
- MetadataValueAesCcmEncryptedKey.h
- tsk/tsk_incs.h
- img_writer.h
- tsk_hashdb.h
- tsk_img_i.h
- RegistryHiveFile.h
- plugin.h
report: name
sources:
- function_names: []
  source_file: /src/sleuthkit/tsk/libtsk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/tsk_tools_i.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/pool/img_bfio_handle.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*image'
        type: TSK_IMG_INFO
      - name: base_offset
        type: TSK_OFF_T
      - name: logical_offset
        type: TSK_OFF_T
      - name: access_flags
        type: int
      item_type: struct
      name: img_bfio_handle
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/sleuthkit/tsk/pool/img_bfio_handle.h
    typedefs:
    - item_type: typedef
      name: img_bfio_handle_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/sleuthkit/tsk/pool/img_bfio_handle.h
      type: img_bfio_handle
    union: []
- function_names:
  - APFSPool::APFSPool
  - APFSPool::nx
  - APFSPool::volumes
  - APFSPool::read
  - APFSPool::known_versions
  - APFSPool::unallocated_ranges
  - APFSPool::clear_cache
  source_file: /src/sleuthkit/tsk/pool/apfs_pool.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_pool_read
  - tsk_pool_unallocated_runs
  source_file: /src/sleuthkit/tsk/pool/pool_read.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_pool_type_toid
  - tsk_pool_type_toid_utf8
  - tsk_pool_type_print
  - tsk_pool_type_toname
  - tsk_fs_type_supported
  source_file: /src/sleuthkit/tsk/pool/pool_types.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name
        type: std::string
      - name: code
        type: TSK_POOL_TYPE_ENUM
      - name: comment
        type: std::string
      item_type: struct
      name: POOL_TYPES
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/sleuthkit/tsk/pool/pool_types.cpp
    typedefs: []
    union: []
- function_names:
  - TSKPoolCompat::TSKPoolCompat
  - '&operator=(const TSKPoolCompat &)'
  - TSKPoolCompat::TSKPoolCompat
  - '&operator=(TSKPoolCompat &&) noexcept'
  - TSKPoolCompat::TSKPoolCompat
  - '&pool_info() const noexcept'
  - ~TSKPoolCompat()
  source_file: /src/sleuthkit/tsk/pool/pool_compat.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - APFSBlock::APFSBlock
  - APFSBlock::APFSBlock
  - '&operator=(const APFSBlock &)'
  - APFSBlock::APFSBlock
  - ~APFSBlock()
  - operator==(const APFSBlock &rhs) const noexcept
  - operator!=(const APFSBlock &rhs) const noexcept
  - APFSBlock::block_num
  - '&pool() const noexcept'
  - APFSBlock::data
  - APFSPool::APFSPool
  - '&operator=(APFSPool &&)'
  - APFSPool::APFSPool
  - '&operator=(const APFSPool &)'
  - APFSPool::get_block
  - APFSPool::hardware_crypto
  source_file: /src/sleuthkit/tsk/pool/tsk_apfs.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_POOL_INFO_TAG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
      type_or_value: '0x504F4C4C'
    - item_type: preproc_def
      name: TSK_POOL_VOL_INFO_TAG
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
      type_or_value: '0x50564F4C'
    structs:
    - fields:
      - name: tag
        type: uint32_t
      - name: index
        type: int
      - name: '*desc'
        type: char
      - name: '*password_hint'
        type: char
      - name: block
        type: uint64_t
      - name: num_blocks
        type: uint64_t
      - name: '*next'
        type: struct _TSK_POOL_VOLUME_INFO
      - name: '*prev'
        type: struct _TSK_POOL_VOLUME_INFO
      - name: flags
        type: TSK_POOL_VOLUME_FLAGS
      item_type: struct
      name: _TSK_POOL_VOLUME_INFO
      pos:
        line_end: 53
        line_start: 43
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
    - fields:
      - name: tag
        type: uint32_t
      - name: ctype
        type: TSK_POOL_TYPE_ENUM
      - name: block_size
        type: uint32_t
      - name: num_blocks
        type: uint64_t
      - name: num_vols
        type: int
      - name: img_offset
        type: uint64_t
      - name: '*vol_list'
        type: TSK_POOL_VOLUME_INFO
      - name: (*close)(const struct _TSK_POOL_INFO *)
        type: void
      - name: "(*poolstat)(const struct _TSK_POOL_INFO *pool,\n                      FILE
          *hFile)"
        type: uint8_t
      - name: "* (*get_img_info)(const struct _TSK_POOL_INFO *pool,\n      TSK_DADDR_T
          pvol_block)"
        type: TSK_IMG_INFO
      - name: '*impl'
        type: void
      item_type: struct
      name: _TSK_POOL_INFO
      pos:
        line_end: 73
        line_start: 55
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
    typedefs:
    - item_type: typedef
      name: TSK_FS_ATTR_RUN
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
      type: TSK_FS_ATTR_RUN
    - item_type: typedef
      name: TSK_VS_PART_INFO
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
      type: TSK_VS_PART_INFO
    - item_type: typedef
      name: TSK_IMG_INFO
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/sleuthkit/tsk/pool/tsk_pool.h
      type: TSK_IMG_INFO
    union: []
- function_names:
  - APFSPoolCompat::APFSPoolCompat
  source_file: /src/sleuthkit/tsk/pool/apfs_pool_compat.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/pool/tsk_apfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APFS_POOL_NX_BLOCK_LAST_KNOWN_GOOD
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/sleuthkit/tsk/pool/tsk_apfs.h
      type_or_value: 0ULL
    - item_type: preproc_def
      name: APFS_POOL_NX_BLOCK_LATEST
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/sleuthkit/tsk/pool/tsk_apfs.h
      type_or_value: 0xFFFFFFFFFFFFFFFFULL
    structs: []
    typedefs:
    - item_type: typedef
      name: apfs_block_num
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/sleuthkit/tsk/pool/tsk_apfs.h
      type: uint64_t
    union: []
- function_names:
  - LVMPool::LVMPool
  - LVMPool::~LVMPool()
  - LVMPool::read
  source_file: /src/sleuthkit/tsk/pool/lvm_pool.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - APFSPoolCompat::~APFSPoolCompat()
  - APFSPoolCompat::init_volumes
  - APFSPoolCompat::poolstat
  - apfs_img_close
  - apfs_img_imgstat
  - apfs_img_read
  - APFSPoolCompat::getImageInfo
  source_file: /src/sleuthkit/tsk/pool/apfs_pool_compat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LVMPoolCompat::LVMPoolCompat
  source_file: /src/sleuthkit/tsk/pool/lvm_pool_compat.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - img_bfio_handle_initialize
  - img_bfio_handle_free
  - img_bfio_handle_open
  - img_bfio_handle_close
  - img_bfio_handle_read
  - img_bfio_handle_seek_offset
  - img_bfio_handle_exists
  - img_bfio_handle_is_open
  - img_bfio_handle_get_size
  source_file: /src/sleuthkit/tsk/pool/img_bfio_handle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_pool_open_sing
  - tsk_pool_open
  - tsk_pool_open_img_sing
  - tsk_pool_open_img
  - tsk_pool_close
  source_file: /src/sleuthkit/tsk/pool/pool_open.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LVMPool::LVMPool
  - '&operator=(LVMPool &&)'
  - LVMPool::LVMPool
  - '&operator=(const LVMPool &)'
  source_file: /src/sleuthkit/tsk/pool/tsk_lvm.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSKPool::TSKPool
  - TSKPool::TSKPool
  - '&operator=(const TSKPool &)'
  - TSKPool::TSKPool
  - '&operator=(TSKPool &&)'
  - ~TSKPool()
  - '&uuid() const'
  - TSKPool::block_size
  - TSKPool::dev_block_size
  - TSKPool::num_blocks
  - TSKPool::first_img_offset
  - TSKPool::num_vols
  - TSKPool::unallocated_ranges
  - TSKPool::getTSKImgInfo
  - TSKPool::TSKPool
  - '&operator|=(T &a, T b)'
  source_file: /src/sleuthkit/tsk/pool/tsk_pool.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getError
  - LVMPoolCompat::poolstat
  - lvm_logical_volume_img_close
  - lvm_logical_volume_img_imgstat
  - lvm_logical_volume_img_read
  - LVMPoolCompat::getImageInfo
  source_file: /src/sleuthkit/tsk/pool/lvm_pool_compat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_vs_type_toid
  - tsk_vs_type_toid_utf8
  - tsk_vs_type_print
  - tsk_vs_type_supported
  - tsk_vs_type_toname
  - tsk_vs_type_todesc
  source_file: /src/sleuthkit/tsk/vs/mm_types.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: code
        type: TSK_VS_TYPE_ENUM
      - name: '*comment'
        type: char
      item_type: struct
      name: VS_TYPES
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/sleuthkit/tsk/vs/mm_types.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUN_MAGIC
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '0xDABE'
    - item_type: preproc_def
      name: SUN_SANITY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '0x600DDEEE'
    - item_type: preproc_def
      name: SUN_FLAG_UNMNT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SUN_FLAG_RO
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SUN_SPARC_PART_SOFFSET
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SUN_I386_PART_SOFFSET
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
      type_or_value: '1'
    structs:
    - fields:
      - name: asciilabel[128]
        type: uint8_t
      - name: version[4]
        type: uint8_t
      - name: vol_name[8]
        type: uint8_t
      - name: num_parts[2]
        type: uint8_t
      - name: part_meta[8]
        type: "struct {\n            uint8_t type[2];\n            uint8_t flag[2];\n
          \       }"
      - name: bootinfo[4][3]
        type: uint8_t
      - name: reserved0[2]
        type: uint8_t
      - name: sanity[4]
        type: uint8_t
      - name: reserved1[38]
        type: uint8_t
      - name: timestamp[8][4]
        type: uint8_t
      - name: write_reinstruct[2]
        type: uint8_t
      - name: read_reinstruct[2]
        type: uint8_t
      - name: reserved2[154]
        type: uint8_t
      - name: rpm[2]
        type: uint8_t
      - name: num_ph_cyl[2]
        type: uint8_t
      - name: alt_per_cyl[2]
        type: uint8_t
      - name: reserved3[4]
        type: uint8_t
      - name: interleave[2]
        type: uint8_t
      - name: num_cyl[2]
        type: uint8_t
      - name: num_alt_cyl[2]
        type: uint8_t
      - name: num_head[2]
        type: uint8_t
      - name: sec_per_tr[2]
        type: uint8_t
      - name: reserved5[4]
        type: uint8_t
      - name: part_layout[8]
        type: "struct {\n            uint8_t start_cyl[4];\n            uint8_t size_blk[4];\n
          \       }"
      - name: magic[2]
        type: uint8_t
      - name: checksum[2]
        type: uint8_t
      item_type: struct
      name: sun_dlabel_sparc
      pos:
        line_end: 64
        line_start: 21
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
    - fields:
      - name: bootinfo[3][4]
        type: uint8_t
      - name: sanity[4]
        type: uint8_t
      - name: version[4]
        type: uint8_t
      - name: vol_name[8]
        type: uint8_t
      - name: sec_size[2]
        type: uint8_t
      - name: num_parts[2]
        type: uint8_t
      - name: reserved0[40]
        type: uint8_t
      - name: part[16]
        type: "struct {\n            uint8_t type[2];\n            uint8_t flag[2];\n
          \           uint8_t start_sec[4];\n            uint8_t size_sec[4];\n        }"
      - name: timestamp[16][4]
        type: uint8_t
      - name: asciilabel[128]
        type: uint8_t
      - name: num_ph_cyl[4]
        type: uint8_t
      - name: num_cyl[4]
        type: uint8_t
      - name: num_alt_cyl[2]
        type: uint8_t
      - name: cyl_offset[2]
        type: uint8_t
      - name: num_head[4]
        type: uint8_t
      - name: sec_per_tr[4]
        type: uint8_t
      - name: interleave[2]
        type: uint8_t
      - name: skew[2]
        type: uint8_t
      - name: alt_per_cyl[2]
        type: uint8_t
      - name: rpm[2]
        type: uint8_t
      - name: write_reinstruct[2]
        type: uint8_t
      - name: read_reinstruct[2]
        type: uint8_t
      - name: reserved1[8]
        type: uint8_t
      - name: reserved2[12]
        type: uint8_t
      - name: magic[2]
        type: uint8_t
      - name: checksum[2]
        type: uint8_t
      item_type: struct
      name: sun_dlabel_i386
      pos:
        line_end: 106
        line_start: 67
        source_file: /src/sleuthkit/tsk/vs/tsk_sun.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/vs/tsk_bsd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BSD_MAGIC
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/sleuthkit/tsk/vs/tsk_bsd.h
      type_or_value: '0x82564557'
    - item_type: preproc_def
      name: BSD_PART_SOFFSET
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/sleuthkit/tsk/vs/tsk_bsd.h
      type_or_value: '1'
    structs:
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: type[2]
        type: uint8_t
      - name: sub_type[2]
        type: uint8_t
      - name: type_name[16]
        type: uint8_t
      - name: packname[16]
        type: uint8_t
      - name: sec_size[4]
        type: uint8_t
      - name: sec_per_tr[4]
        type: uint8_t
      - name: tr_per_cyl[4]
        type: uint8_t
      - name: cyl_per_unit[4]
        type: uint8_t
      - name: sec_per_cyl[4]
        type: uint8_t
      - name: sec_per_unit[4]
        type: uint8_t
      - name: spare_per_tr[2]
        type: uint8_t
      - name: spare_per_cyl[2]
        type: uint8_t
      - name: alt_per_unit[4]
        type: uint8_t
      - name: rpm[2]
        type: uint8_t
      - name: interleave[2]
        type: uint8_t
      - name: trackskew[2]
        type: uint8_t
      - name: cylskew[2]
        type: uint8_t
      - name: headswitch[4]
        type: uint8_t
      - name: track_seek[4]
        type: uint8_t
      - name: flags[4]
        type: uint8_t
      - name: drivedata[20]
        type: uint8_t
      - name: reserved1[20]
        type: uint8_t
      - name: magic2[4]
        type: uint8_t
      - name: checksum[2]
        type: uint8_t
      - name: num_parts[2]
        type: uint8_t
      - name: bootarea_size[4]
        type: uint8_t
      - name: sb_size[4]
        type: uint8_t
      - name: part[16]
        type: "struct {\n            uint8_t size_sec[4];\n            uint8_t start_sec[4];\n
          \           uint8_t frag_size[4];\n            uint8_t fstype;\n            uint8_t
          frag_per_block;\n            uint8_t cyl_per_grp[2];\n        }"
      - name: reserved2[108]
        type: uint8_t
      item_type: struct
      name: bsd_disklabel
      pos:
        line_end: 71
        line_start: 20
        source_file: /src/sleuthkit/tsk/vs/tsk_bsd.h
    typedefs: []
    union: []
- function_names:
  - sun_get_desc
  - sun_load_table_i386
  - sun_load_table_sparc
  - sun_load_table
  - sun_close
  - tsk_vs_sun_open
  source_file: /src/sleuthkit/tsk/vs/sun.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dos_is_ext
  - dos_get_desc
  - dos_load_ext_table
  - dos_load_prim_table
  - dos_close
  - tsk_vs_dos_open
  source_file: /src/sleuthkit/tsk/vs/dos.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DESC_LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/vs/dos.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gpt_load_table
  - gpt_close
  - tsk_vs_gpt_open
  source_file: /src/sleuthkit/tsk/vs/gpt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_vs_part_add
  - tsk_vs_part_unused
  - tsk_vs_part_free
  - tsk_vs_part_get
  - tsk_vs_part_walk
  source_file: /src/sleuthkit/tsk/vs/mm_part.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_vs_open
  - tsk_vs_close
  source_file: /src/sleuthkit/tsk/vs/mm_open.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/vs/tsk_dos.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOS_MAGIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/vs/tsk_dos.h
      type_or_value: '0xaa55'
    - item_type: preproc_def
      name: DOS_PART_SOFFSET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/vs/tsk_dos.h
      type_or_value: '0'
    structs:
    - fields:
      - name: boot
        type: uint8_t
      - name: start_chs[3]
        type: uint8_t
      - name: ptype
        type: uint8_t
      - name: end_chs[3]
        type: uint8_t
      - name: start_sec[4]
        type: uint8_t
      - name: size_sec[4]
        type: uint8_t
      item_type: struct
      name: dos_part
      pos:
        line_end: 26
        line_start: 19
        source_file: /src/sleuthkit/tsk/vs/tsk_dos.h
    - fields:
      - name: f1[3]
        type: uint8_t
      - name: oemname[8]
        type: char
      - name: ssize[2]
        type: uint8_t
      - name: csize
        type: uint8_t
      - name: filler[432]
        type: uint8_t
      - name: ptable[4]
        type: dos_part
      - name: magic[2]
        type: uint8_t
      item_type: struct
      name: dos_sect
      pos:
        line_end: 39
        line_start: 29
        source_file: /src/sleuthkit/tsk/vs/tsk_dos.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAC_MAGIC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x504d'
    - item_type: preproc_def
      name: MAC_PART_SOFFSET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAC_STAT_VALID
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: MAC_STAT_ALLOC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MAC_STAT_INUSE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MAC_STAT_BOOT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: MAC_STAT_READ
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
      type_or_value: '0x08'
    structs:
    - fields:
      - name: magic[2]
        type: uint8_t
      - name: reserved[2]
        type: uint8_t
      - name: pmap_size[4]
        type: uint8_t
      - name: start_sec[4]
        type: uint8_t
      - name: size_sec[4]
        type: uint8_t
      - name: name[32]
        type: uint8_t
      - name: type[32]
        type: uint8_t
      - name: data_start_sec[4]
        type: uint8_t
      - name: data_size_sec[4]
        type: uint8_t
      - name: status[4]
        type: uint8_t
      - name: boot_start_sec[4]
        type: uint8_t
      - name: boot_size_sec[4]
        type: uint8_t
      - name: boot_load_addr[4]
        type: uint8_t
      - name: reserved2[4]
        type: uint8_t
      - name: boot_entry[4]
        type: uint8_t
      - name: reserved3[4]
        type: uint8_t
      - name: boot_checksum[4]
        type: uint8_t
      - name: proc_type[16]
        type: uint8_t
      - name: reserved4[376]
        type: uint8_t
      item_type: struct
      name: mac_part
      pos:
        line_end: 40
        line_start: 20
        source_file: /src/sleuthkit/tsk/vs/tsk_mac.h
    typedefs: []
    union: []
- function_names:
  - tsk_vs_read_block
  - tsk_vs_part_read
  - tsk_vs_part_read_block
  source_file: /src/sleuthkit/tsk/vs/mm_io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mac_load_table
  - mac_close
  - tsk_vs_mac_open
  source_file: /src/sleuthkit/tsk/vs/mac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskVsPartInfo::TskVsPartInfo
  - TskVsPartInfo::read
  - TskVsPartInfo::readBlock
  - TskVsPartInfo::getStart
  - TskVsPartInfo::getLen
  - TskVsPartInfo::getDesc
  - TskVsPartInfo::getTableNum
  - TskVsPartInfo::getSlotNum
  - TskVsPartInfo::getAddr
  - TskVsPartInfo::getFlags
  - TskVsInfo::TskVsInfo
  - TskVsInfo::TskVsInfo
  - ~TskVsInfo()
  - TskVsInfo::vsPartWalk
  - TskVsInfo::open
  - TskVsInfo::readBlock
  - TskVsInfo::close
  - TskVsInfo::getOffset
  - TskVsInfo::getBlockSize
  - TskVsInfo::getPartCount
  - TskVsInfo::getPart
  - TskVsInfo::getImgInfo
  - TskVsInfo::getVsType
  - TskVsInfo::typeToId
  - TskVsInfo::typePrint
  - TskVsInfo::typeSupported
  - TskVsInfo::typeToName
  - TskVsInfo::typeToDesc
  source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_VS_INFO_TAG
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type_or_value: '0x52301642'
    - item_type: preproc_def
      name: TSK_VS_PART_INFO_TAG
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type_or_value: '0x40121253'
    structs:
    - fields:
      - name: tag
        type: int
      - name: '*img_info'
        type: TSK_IMG_INFO
      - name: vstype
        type: TSK_VS_TYPE_ENUM
      - name: is_backup
        type: int
      - name: offset
        type: TSK_DADDR_T
      - name: block_size
        type: unsigned int
      - name: endian
        type: TSK_ENDIAN_ENUM
      - name: '*part_list'
        type: TSK_VS_PART_INFO
      - name: part_count
        type: TSK_PNUM_T
      - name: (*close) (TSK_VS_INFO *)
        type: void
      item_type: struct
      name: TSK_VS_INFO
      pos:
        line_end: 79
        line_start: 64
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
    - fields:
      - name: tag
        type: int
      - name: '*prev'
        type: TSK_VS_PART_INFO
      - name: '*next'
        type: TSK_VS_PART_INFO
      - name: '*vs'
        type: TSK_VS_INFO
      - name: start
        type: TSK_DADDR_T
      - name: len
        type: TSK_DADDR_T
      - name: '*desc'
        type: char
      - name: table_num
        type: int8_t
      - name: slot_num
        type: int8_t
      - name: addr
        type: TSK_PNUM_T
      - name: flags
        type: TSK_VS_PART_FLAG_ENUM
      item_type: struct
      name: TSK_VS_PART_INFO
      pos:
        line_end: 115
        line_start: 102
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
    - fields:
      - name: cppAction
        type: TSK_VS_PART_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_VS_PART_WALK_CPP_DATA
      pos:
        line_end: 174
        line_start: 171
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
    typedefs:
    - item_type: typedef
      name: TSK_VS_INFO
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type: TSK_VS_INFO
    - item_type: typedef
      name: TSK_VS_PART_INFO
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type: TSK_VS_PART_INFO
    - item_type: typedef
      name: "(*TSK_VS_PART_WALK_CB) (TSK_VS_INFO *\n        a_vs, const TSK_VS_PART_INFO
        * a_vs_part, void *a_ptr)"
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_VS_PART_WALK_CPP_CB) (TskVsInfo *\n    a_vs, const TskVsPartInfo
        * a_vs_part, void *a_ptr)"
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/sleuthkit/tsk/vs/tsk_vs.h
      type: TSK_WALK_RET_ENUM
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GPT_PART_SOFFSET
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GPT_DOS_TYPE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
      type_or_value: '0xEE'
    - item_type: preproc_def
      name: GPT_HEAD_OFFSET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GPT_HEAD_SIG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
      type_or_value: 0x5452415020494645ULL
    structs:
    - fields:
      - name: signature[8]
        type: uint8_t
      - name: version[4]
        type: uint8_t
      - name: head_size_b[4]
        type: uint8_t
      - name: head_crc[4]
        type: uint8_t
      - name: f1[4]
        type: uint8_t
      - name: head_lba[8]
        type: uint8_t
      - name: head2_lba[8]
        type: uint8_t
      - name: partarea_start[8]
        type: uint8_t
      - name: partarea_end[8]
        type: uint8_t
      - name: guid[16]
        type: uint8_t
      - name: tab_start_lba[8]
        type: uint8_t
      - name: tab_num_ent[4]
        type: uint8_t
      - name: tab_size_b[4]
        type: uint8_t
      - name: tab_crc[4]
        type: uint8_t
      - name: f2[420]
        type: uint8_t
      item_type: struct
      name: gpt_head
      pos:
        line_end: 46
        line_start: 30
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
    - fields:
      - name: type_guid[16]
        type: uint8_t
      - name: id_guid[16]
        type: uint8_t
      - name: start_lba[8]
        type: uint8_t
      - name: end_lba[8]
        type: uint8_t
      - name: flags[8]
        type: uint8_t
      - name: name[72]
        type: uint8_t
      item_type: struct
      name: gpt_entry
      pos:
        line_end: 57
        line_start: 50
        source_file: /src/sleuthkit/tsk/vs/tsk_gpt.h
    typedefs: []
    union: []
- function_names:
  - tsk_vs_guessu16
  - tsk_vs_guessu32
  - tsk_vs_guessu64
  source_file: /src/sleuthkit/tsk/vs/tsk_vs_i.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bsd_get_desc
  - bsd_load_table
  - bsd_close
  - tsk_vs_bsd_open
  source_file: /src/sleuthkit/tsk/vs/bsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SQLITE_INT_TO_PTR
  - SQLITE_PTR_TO_INT
  - SQLITE_INT_TO_PTR
  - SQLITE_PTR_TO_INT
  - SQLITE_INT_TO_PTR
  - SQLITE_PTR_TO_INT
  - SQLITE_INT_TO_PTR
  - SQLITE_PTR_TO_INT
  - testcase
  - TESTONLY
  - VVA_ONLY
  - ALWAYS
  - NEVER
  - ALWAYS
  - NEVER
  - ALWAYS
  - NEVER
  - OSTRACE
  - IS_BIG_INT
  - likely
  - unlikely
  - sqliteHashFirst
  - sqliteHashNext
  - sqliteHashData
  - offsetof
  - MIN
  - MAX
  - SWAP
  - ROUND8
  - ROUNDDOWN8
  - EIGHT_BYTE_ALIGNMENT
  - EIGHT_BYTE_ALIGNMENT
  - SCHEMA_TABLE
  - ArraySize
  - IsPowerOfTwo
  - GLOBAL
  - UNUSED_PARAMETER
  - UNUSED_PARAMETER2
  - sqlite3BtreeEnter
  - sqlite3BtreeSharable
  - sqlite3BtreeHoldsMutex
  - sqlite3BtreeHoldsAllMutexes
  - sqlite3SchemaMutexHeld
  - ADDR
  - VdbeComment
  - VdbeNoopComment
  - VdbeModuleComment
  - VdbeCoverage
  - VdbeCoverageIf
  - VdbeCoverageAlwaysTaken
  - VdbeCoverageNeverTaken
  - VDBE_OFFSET_LINENO
  - VDBE_OFFSET_LINENO
  - PAGER_MJ_PGNO
  - sqlite3PagerGet
  - sqlite3_mutex_alloc
  - sqlite3_mutex_enter
  - sqlite3_mutex_leave
  - sqlite3_mutex_notheld
  - sqlite3MutexAlloc
  - sqlite3MutexInit
  - MUTEX_LOGIC
  - DbHasProperty
  - DbHasAnyProperty
  - DbSetProperty
  - DbClearProperty
  - SCHEMA_ENC
  - ENC
  - OptimizationDisabled
  - OptimizationEnabled
  - OptimizationDisabled
  - OptimizationEnabled
  - ConstFactorOk
  - FUNCTION
  - VFUNCTION
  - FUNCTION2
  - STR_FUNCTION
  - LIKEFUNC
  - AGGREGATE
  - AGGREGATE2
  - sqlite3IsNumericAffinity
  - IsVirtual
  - IsHiddenColumn
  - IsVirtual
  - IsHiddenColumn
  - HasRowid
  - VisibleRowid
  - IsPrimaryKeyIndex
  - IsUniqueIndex
  - ExprHasProperty
  - ExprHasAllProperty
  - ExprSetProperty
  - ExprClearProperty
  - ExprSetVVAProperty
  - MASKBIT
  - MASKBIT32
  - IgnorableOrderby
  - DbMaskTest
  - DbMaskZero
  - DbMaskSet
  - DbMaskAllZero
  - DbMaskNonZero
  - DbMaskTest
  - DbMaskZero
  - DbMaskSet
  - DbMaskAllZero
  - DbMaskNonZero
  - SQLITE_SKIP_UTF8
  - sqlite3Toupper
  - sqlite3Isspace
  - sqlite3Isalnum
  - sqlite3Isalpha
  - sqlite3Isdigit
  - sqlite3Isxdigit
  - sqlite3Tolower
  - sqlite3Toupper
  - sqlite3Isspace
  - sqlite3Isalnum
  - sqlite3Isalpha
  - sqlite3Isdigit
  - sqlite3Isxdigit
  - sqlite3Tolower
  - sqlite3StackAllocRaw
  - sqlite3StackAllocZero
  - sqlite3StackFree
  - sqlite3StackAllocRaw
  - sqlite3StackAllocZero
  - sqlite3StackFree
  - sqlite3IsNaN
  - sqlite3FaultSim
  - sqlite3ViewGetColumnNames
  - sqlite3ParseToplevel
  - sqlite3TriggersExist
  - sqlite3TriggerList
  - sqlite3ParseToplevel
  - sqlite3TriggerColmask
  - sqlite3AuthCheck
  - sqlite3AuthContextPop
  - getVarint32
  - putVarint32
  - sqlite3VtabSync
  - sqlite3VtabInSync
  - sqlite3VtabLock
  - sqlite3VtabSavepoint
  - sqlite3GetVTable
  - sqlite3VtabInSync
  - sqlite3FkOldmask
  - sqlite3FkRequired
  - sqlite3JournalSize
  - sqlite3JournalExists
  - sqlite3SelectExprHeight
  - IOTRACE
  - sqlite3MemdebugHasType
  - sqlite3MemdebugNoType
  - sqlite3_compileoption_used
  - SQLITE_STDCALL::sqlite3_compileoption_get
  - VdbeFrameMem
  - MemSetTypeFlag
  - memIsValid
  - VdbeMemDynamic
  - sqlite3VdbeCheckFk
  - ExpandBlob
  - sqlite3VdbeMemExpandBlob
  - ExpandBlob
  - sqlite3StatType
  - sqlite3_int64::sqlite3StatusValue
  - sqlite3StatusUp
  - sqlite3StatusDown
  - sqlite3StatusSet
  - sqlite3_status64
  - sqlite3_status
  - sqlite3_db_status
  - getDigits
  - parseTimezone
  - parseHhMmSs
  - computeJD
  - parseYyyyMmDd
  - setDateTimeToCurrent
  - parseDateOrTime
  - computeYMD
  - computeHMS
  - computeYMD_HMS
  - clearYMD_HMS_TZ
  - osLocaltime
  - localtimeOffset
  - parseModifier
  - isDate
  - juliandayFunc
  - datetimeFunc
  - timeFunc
  - dateFunc
  - strftimeFunc
  - ctimeFunc
  - cdateFunc
  - ctimestampFunc
  - currentTimeFunc
  - sqlite3RegisterDateTimeFunctions
  - DO_OS_MALLOC_TEST
  - sqlite3OsClose
  - sqlite3OsRead
  - sqlite3OsWrite
  - sqlite3OsTruncate
  - sqlite3OsSync
  - sqlite3OsFileSize
  - sqlite3OsLock
  - sqlite3OsUnlock
  - sqlite3OsCheckReservedLock
  - sqlite3OsFileControl
  - sqlite3OsFileControlHint
  - sqlite3OsSectorSize
  - sqlite3OsDeviceCharacteristics
  - sqlite3OsShmLock
  - sqlite3OsShmBarrier
  - sqlite3OsShmUnmap
  - sqlite3OsShmMap
  - sqlite3OsFetch
  - sqlite3OsUnfetch
  - sqlite3OsFetch
  - sqlite3OsUnfetch
  - sqlite3OsOpen
  - sqlite3OsDelete
  - sqlite3OsAccess
  - sqlite3OsFullPathname
  - sqlite3OsDlOpen
  - sqlite3OsDlError
  - (void)
  - sqlite3OsDlClose
  - sqlite3OsRandomness
  - sqlite3OsSleep
  - sqlite3OsCurrentTimeInt64
  - sqlite3OsOpenMalloc
  - sqlite3OsCloseFree
  - sqlite3OsInit
  - sqlite3_vfs_find
  - vfsUnlink
  - sqlite3_vfs_register
  - sqlite3_vfs_unregister
  - BenignMallocHooks
  - sqlite3BenignMallocHooks
  - sqlite3BeginBenignMalloc
  - sqlite3EndBenignMalloc
  - sqlite3MemMalloc
  - sqlite3MemFree
  - sqlite3MemRealloc
  - sqlite3MemSize
  - sqlite3MemRoundup
  - sqlite3MemInit
  - sqlite3MemShutdown
  - sqlite3MemSetDefault
  - SQLITE_MALLOC
  - SQLITE_FREE
  - SQLITE_REALLOC
  - SQLITE_MALLOCSIZE
  - SQLITE_MALLOC
  - SQLITE_FREE
  - SQLITE_REALLOC
  - SQLITE_MALLOCSIZE
  - sqlite3MemMalloc
  - sqlite3MemFree
  - sqlite3MemSize
  - sqlite3MemRealloc
  - sqlite3MemRoundup
  - sqlite3MemInit
  - sqlite3MemShutdown
  - sqlite3MemSetDefault
  - backtrace
  - adjustStats
  - sqlite3MemsysGetHeader
  - sqlite3MemSize
  - sqlite3MemInit
  - sqlite3MemShutdown
  - sqlite3MemRoundup
  - randomFill
  - sqlite3MemMalloc
  - sqlite3MemFree
  - sqlite3MemRealloc
  - sqlite3MemSetDefault
  - sqlite3MemdebugSetType
  - sqlite3MemdebugHasType
  - sqlite3MemdebugNoType
  - sqlite3MemdebugBacktrace
  - sqlite3MemdebugBacktraceCallback
  - sqlite3MemdebugSettitle
  - sqlite3MemdebugSync
  - sqlite3MemdebugDump
  - sqlite3MemdebugMallocCount
  - Mem3Global
  - memsys3UnlinkFromList
  - memsys3Unlink
  - memsys3LinkIntoList
  - memsys3Link
  - memsys3Enter
  - memsys3Leave
  - memsys3OutOfMemory
  - memsys3Checkout
  - memsys3FromMaster
  - memsys3Merge
  - memsys3MallocUnsafe
  - memsys3FreeUnsafe
  - memsys3Size
  - memsys3Roundup
  - memsys3Malloc
  - memsys3Free
  - memsys3Realloc
  - memsys3Init
  - memsys3Shutdown
  - sqlite3Memsys3Dump
  - sqlite3_mem_methods *sqlite3MemGetMemsys3(void)
  - Mem5Global
  - MEM5LINK
  - memsys5Unlink
  - memsys5Link
  - memsys5Enter
  - memsys5Leave
  - memsys5Size
  - memsys5MallocUnsafe
  - memsys5FreeUnsafe
  - memsys5Malloc
  - memsys5Free
  - memsys5Realloc
  - memsys5Roundup
  - memsys5Log
  - memsys5Init
  - memsys5Shutdown
  - sqlite3Memsys5Dump
  - sqlite3_mem_methods *sqlite3MemGetMemsys5(void)
  - sqlite3MutexInit
  - sqlite3MutexEnd
  - GLOBAL
  - sqlite3_mutex_alloc
  - sqlite3_mutex *sqlite3MutexAlloc(int id)
  - sqlite3_mutex_free
  - sqlite3_mutex_enter
  - sqlite3_mutex_try
  - sqlite3_mutex_leave
  - sqlite3_mutex_held
  - sqlite3_mutex_notheld
  - noopMutexInit
  - noopMutexEnd
  - noopMutexAlloc
  - noopMutexFree
  - noopMutexEnter
  - noopMutexTry
  - noopMutexLeave
  - sqlite3NoopMutex
  - debugMutexHeld
  - debugMutexNotheld
  - debugMutexInit
  - debugMutexEnd
  - debugMutexAlloc
  - debugMutexFree
  - debugMutexEnter
  - debugMutexTry
  - debugMutexLeave
  - sqlite3NoopMutex
  - sqlite3DefaultMutex
  - pthreadMutexHeld
  - pthreadMutexNotheld
  - pthreadMutexInit
  - pthreadMutexEnd
  - pthreadMutexAlloc
  - pthreadMutexFree
  - pthreadMutexEnter
  - pthreadMutexTry
  - pthreadMutexLeave
  - sqlite3DefaultMutex
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite_uint64::sqlite3Hwtime
  - SimulateIOErrorBenign
  - SimulateIOError
  - local_ioerr
  - SimulateDiskfullError
  - OpenCounter
  - winMutexHeld
  - winMutexNotheld2
  - winMutexNotheld
  - winMutexInit
  - winMutexEnd
  - winMutexAlloc
  - winMutexFree
  - winMutexEnter
  - winMutexTry
  - winMutexLeave
  - sqlite3DefaultMutex
  - sqlite3_release_memory
  - Mem0Global
  - sqlite3_mutex *sqlite3MallocMutex(void)
  - softHeapLimitEnforcer
  - sqlite3MemoryAlarm
  - sqlite3_memory_alarm
  - sqlite3_soft_heap_limit64
  - sqlite3_soft_heap_limit
  - sqlite3MallocInit
  - sqlite3HeapNearlyFull
  - sqlite3MallocEnd
  - sqlite3_memory_used
  - sqlite3_memory_highwater
  - sqlite3MallocAlarm
  - mallocWithAlarm
  - sqlite3Malloc
  - SQLITE_STDCALL::sqlite3_malloc
  - SQLITE_STDCALL::sqlite3_malloc64
  - sqlite3ScratchMalloc
  - sqlite3ScratchFree
  - isLookaside
  - isLookaside
  - sqlite3MallocSize
  - sqlite3DbMallocSize
  - sqlite3_msize
  - sqlite3_free
  - measureAllocationSize
  - sqlite3DbFree
  - sqlite3Realloc
  - SQLITE_STDCALL::sqlite3_realloc
  - SQLITE_STDCALL::sqlite3_realloc64
  - sqlite3MallocZero
  - sqlite3DbMallocZero
  - sqlite3DbMallocRaw
  - sqlite3DbRealloc
  - sqlite3DbReallocOrFree
  - sqlite3DbStrDup
  - sqlite3DbStrNDup
  - sqlite3SetString
  - apiOomError
  - sqlite3ApiExit
  - et_getdigit
  - setStrAccumError
  - getIntArg
  - getDoubleArg
  - getTextArg
  - sqlite3VXPrintf
  - sqlite3StrAccumEnlarge
  - sqlite3AppendChar
  - SQLITE_NOINLINE::enlargeAndAppend
  - sqlite3StrAccumAppend
  - sqlite3StrAccumAppendAll
  - sqlite3StrAccumFinish
  - sqlite3StrAccumReset
  - sqlite3StrAccumInit
  - sqlite3VMPrintf
  - sqlite3MPrintf
  - SQLITE_STDCALL::sqlite3_vmprintf
  - SQLITE_CDECL::sqlite3_mprintf
  - SQLITE_STDCALL::sqlite3_vsnprintf
  - SQLITE_CDECL::sqlite3_snprintf
  - renderLogMsg
  - sqlite3_log
  - sqlite3DebugPrintf
  - sqlite3XPrintf
  - sqlite3TreeViewPush
  - sqlite3TreeViewPop
  - sqlite3TreeViewLine
  - sqlite3TreeViewItem
  - sqlite3TreeViewSelect
  - sqlite3TreeViewExpr
  - sqlite3TreeViewExprList
  - sqlite3PrngType
  - sqlite3_randomness
  - sqlite3PrngSaveState
  - sqlite3PrngRestoreState
  - sqlite3ThreadCreate
  - sqlite3ThreadJoin
  - sqlite3ThreadProc
  - sqlite3ThreadCreate
  - sqlite3ThreadJoin
  - sqlite3ThreadCreate
  - sqlite3ThreadJoin
  - WRITE_UTF8
  - WRITE_UTF16LE
  - WRITE_UTF16BE
  - READ_UTF16LE
  - READ_UTF16BE
  - READ_UTF8
  - sqlite3Utf8Read
  - sqlite3VdbeMemTranslate
  - sqlite3VdbeMemHandleBom
  - sqlite3Utf8CharLen
  - sqlite3Utf8To8
  - sqlite3Utf16to8
  - sqlite3Utf16ByteLen
  - sqlite3UtfSelfTest
  - sqlite3Coverage
  - sqlite3FaultSim
  - sqlite3IsNaN
  - sqlite3Strlen30
  - sqlite3Error
  - sqlite3ErrorWithMsg
  - sqlite3ErrorMsg
  - sqlite3Dequote
  - sqlite3_stricmp
  - sqlite3_strnicmp
  - sqlite3AtoF
  - compare2pow63
  - sqlite3Atoi64
  - sqlite3DecOrHexToI64
  - sqlite3GetInt32
  - sqlite3Atoi
  - SQLITE_NOINLINE::putVarint64
  - sqlite3PutVarint
  - sqlite3GetVarint
  - sqlite3GetVarint32
  - sqlite3VarintLen
  - sqlite3Get4byte
  - sqlite3Put4byte
  - sqlite3HexToInt
  - sqlite3HexToBlob
  - logBadConnection
  - sqlite3SafetyCheckOk
  - sqlite3SafetyCheckSickOrOk
  - sqlite3AddInt64
  - sqlite3SubInt64
  - sqlite3MulInt64
  - sqlite3AbsInt32
  - sqlite3FileSuffix3
  - sqlite3LogEstAdd
  - sqlite3LogEst
  - sqlite3LogEstFromDouble
  - sqlite3LogEstToInt
  - sqlite3HashInit
  - sqlite3HashClear
  - strHash
  - insertElement
  - rehash
  - findElementWithHash
  - removeElementGivenHash
  - sqlite3HashFind
  - sqlite3HashInsert
  - OpHelp
  - sqlite3OpcodeName
  - osGetpid
  - IS_LOCK_ERROR
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite_uint64::sqlite3Hwtime
  - SimulateIOErrorBenign
  - SimulateIOError
  - local_ioerr
  - SimulateDiskfullError
  - OpenCounter
  - posixOpen
  - posixFchown
  - unixSetSystemCall
  - unixGetSystemCall
  - unixNextSystemCall
  - robust_open
  - unixEnterMutex
  - unixLeaveMutex
  - unixMutexHeld
  - azFileLock
  - lockTrace
  - robust_ftruncate
  - sqliteErrorFromPosixError
  - vxworksSimplifyName
  - vxworksFindFileId
  - vxworksReleaseFileId
  - unixLogError
  - unixLogErrorAtLine
  - robust_close
  - storeLastErrno
  - closePendingFds
  - releaseInodeInfo
  - findInodeInfo
  - fileHasMoved
  - verifyDbFile
  - unixCheckReservedLock
  - unixFileLock
  - unixLock
  - setPendingFd
  - posixUnlock
  - unixUnlock
  - closeUnixFile
  - unixClose
  - nolockCheckReservedLock
  - nolockLock
  - nolockUnlock
  - nolockClose
  - dotlockCheckReservedLock
  - dotlockLock
  - dotlockUnlock
  - dotlockClose
  - robust_flock
  - robust_flock
  - flockCheckReservedLock
  - flockLock
  - flockUnlock
  - flockClose
  - semXCheckReservedLock
  - semXLock
  - semXUnlock
  - semXClose
  - afpSetLock
  - afpCheckReservedLock
  - afpLock
  - afpUnlock
  - afpClose
  - nfsUnlock
  - seekAndRead
  - unixRead
  - seekAndWriteFd
  - seekAndWrite
  - unixWrite
  - full_fsync
  - openDirectory
  - unixSync
  - unixTruncate
  - unixFileSize
  - fcntlSizeHint
  - unixModeBit
  - unixFileControl
  - unixSectorSize
  - unixSectorSize
  - unixDeviceCharacteristics
  - unixGetpagesize
  - unixShmSystemLock
  - unixShmRegionPerMap
  - unixShmPurge
  - unixOpenSharedMemory
  - unixShmMap
  - unixShmLock
  - unixShmBarrier
  - unixShmUnmap
  - unixUnmapfile
  - unixRemapfile
  - unixMapfile
  - unixFetch
  - unixUnfetch
  - IOMETHODS
  - autolockIoFinderImpl
  - vxworksIoFinderImpl
  - fillInUnixFile
  - unixTempFileDir
  - unixGetTempname
  - findReusableFd
  - findCreateFileMode
  - unixOpen
  - unixDelete
  - unixAccess
  - unixFullPathname
  - unixDlOpen
  - unixDlError
  - (*unixDlSym(sqlite3_vfs *NotUsed, void *p, const char*zSym))(void)
  - unixDlClose
  - unixRandomness
  - unixSleep
  - unixCurrentTimeInt64
  - unixCurrentTime
  - unixGetLastError
  - proxyGetLockPath
  - proxyCreateLockPath
  - proxyCreateUnixFile
  - proxyGetHostID
  - proxyBreakConchLock
  - proxyConchLock
  - proxyTakeConch
  - proxyReleaseConch
  - proxyCreateConchPathname
  - switchLockProxyPath
  - proxyGetDbPathForUnixFile
  - proxyTransformUnixFile
  - proxyFileControl
  - proxyCheckReservedLock
  - proxyLock
  - proxyUnlock
  - proxyClose
  - sqlite3_os_init
  - UNIXVFS
  - sqlite3_os_end
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite_uint64::sqlite3Hwtime
  - SimulateIOErrorBenign
  - SimulateIOError
  - local_ioerr
  - SimulateDiskfullError
  - OpenCounter
  - winIsDirSep
  - UNUSED_VARIABLE_VALUE
  - winGetDirSep
  - winMemAssertMagic1
  - winMemAssertMagic2
  - winMemAssertMagic
  - winMemGetDataPtr
  - winMemGetHeap
  - winMemGetOwned
  - osAreFileApisANSI
  - winSetSystemCall
  - winGetSystemCall
  - winNextSystemCall
  - sqlite3_win32_compact_heap
  - sqlite3_win32_reset_heap
  - sqlite3_win32_write_debug
  - sqlite3_win32_sleep
  - sqlite3Win32Wait
  - osIsNT
  - osIsNT
  - osIsNT
  - osIsNT
  - sqlite3_win32_is_nt
  - winMemMalloc
  - winMemFree
  - winMemRealloc
  - winMemSize
  - winMemRoundup
  - winMemInit
  - winMemShutdown
  - sqlite3_mem_methods *sqlite3MemGetWin32(void)
  - sqlite3MemSetDefault
  - winUtf8ToUnicode
  - winUnicodeToUtf8
  - winMbcsToUnicode
  - winUnicodeToMbcs
  - SQLITE_STDCALL::sqlite3_win32_mbcs_to_utf8
  - SQLITE_STDCALL::sqlite3_win32_utf8_to_mbcs
  - sqlite3_win32_set_directory
  - winGetLastErrorMsg
  - winLogError
  - winLogErrorAtLine
  - winIoerrCanRetry1
  - winRetryIoerr
  - if
  - winLogIoerr
  - localtime
  - HANDLE_TO_WINFILE
  - winceMutexAcquire
  - winceMutexRelease
  - winceCreateLock
  - winceDestroyLock
  - winceLockFile
  - winceUnlockFile
  - winLockFile
  - winUnlockFile
  - winSeekFile
  - winClose
  - winTruncate
  - winSync
  - winFileSize
  - winGetReadLock
  - winUnlockReadLock
  - winLock
  - winCheckReservedLock
  - winUnlock
  - winModeBit
  - winFileControl
  - winSectorSize
  - winDeviceCharacteristics
  - winShmEnterMutex
  - winShmLeaveMutex
  - winShmMutexHeld
  - winShmSystemLock
  - winShmPurge
  - winOpenSharedMemory
  - winShmUnmap
  - winShmLock
  - winShmBarrier
  - winShmMap
  - winUnmapfile
  - winMapfile
  - winFetch
  - winUnfetch
  - winConvertToUtf8Filename
  - winConvertFromUtf8Filename
  - winMakeEndInDirSep
  - winGetTempname
  - if
  - winIsDir
  - winOpen
  - winDelete
  - winAccess
  - winIsDriveLetterAndColon
  - winIsVerbatimPathname
  - winFullPathname
  - winDlOpen
  - winDlError
  - (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void)
  - winDlClose
  - winRandomness
  - winSleep
  - winCurrentTimeInt64
  - winCurrentTime
  - winGetLastError
  - sqlite3_os_init
  - sqlite3_os_end
  - BITVEC_HASH
  - sqlite3BitvecCreate
  - sqlite3BitvecTestNotNull
  - sqlite3BitvecTest
  - sqlite3BitvecSet
  - sqlite3BitvecClear
  - sqlite3BitvecDestroy
  - sqlite3BitvecSize
  - SETBIT
  - CLEARBIT
  - TESTBIT
  - sqlite3BitvecBuiltinTest
  - pcacheManageDirtyList
  - pcacheUnpin
  - numberOfCachePages
  - sqlite3PcacheInitialize
  - sqlite3PcacheShutdown
  - sqlite3PcacheSize
  - sqlite3PcacheOpen
  - sqlite3PcacheSetPageSize
  - "sqlite3_pcache_page *sqlite3PcacheFetch(\n  PCache *pCache,       /* Obtain the
    page from this cache */\n  Pgno pgno,            /* Page number to obtain */\n
    \ int createFlag        /* If true, create page if it does not exist already */\n)"
  - sqlite3PcacheFetchStress
  - pcacheFetchFinishWithInit
  - sqlite3PcacheFetchFinish
  - sqlite3PcacheRelease
  - sqlite3PcacheRef
  - sqlite3PcacheDrop
  - sqlite3PcacheMakeDirty
  - sqlite3PcacheMakeClean
  - sqlite3PcacheCleanAll
  - sqlite3PcacheClearSyncFlags
  - sqlite3PcacheMove
  - sqlite3PcacheTruncate
  - sqlite3PcacheClose
  - sqlite3PcacheClear
  - pcacheMergeDirtyList
  - pcacheSortDirtyList
  - sqlite3PcacheDirtyList
  - sqlite3PcacheRefCount
  - sqlite3PcachePageRefcount
  - sqlite3PcachePagecount
  - sqlite3PcacheGetCachesize
  - sqlite3PcacheSetCachesize
  - sqlite3PcacheShrink
  - sqlite3HeaderSizePcache
  - sqlite3PcacheIterateDirty
  - PCacheGlobal
  - pcache1EnterMutex
  - pcache1LeaveMutex
  - pcache1EnterMutex
  - pcache1LeaveMutex
  - sqlite3PCacheBufferSetup
  - pcache1InitBulk
  - pcache1Alloc
  - pcache1Free
  - pcache1MemSize
  - pcache1AllocPage
  - pcache1FreePage
  - sqlite3PageMalloc
  - sqlite3PageFree
  - pcache1UnderMemoryPressure
  - pcache1ResizeHash
  - pcache1PinPage
  - pcache1RemoveFromHash
  - pcache1EnforceMaxPage
  - pcache1TruncateUnsafe
  - pcache1Init
  - pcache1Shutdown
  - pcache1Create
  - pcache1Cachesize
  - pcache1Shrink
  - pcache1Pagecount
  - pcache1FetchStage2
  - pcache1FetchNoMutex
  - pcache1FetchWithMutex
  - pcache1Fetch
  - pcache1Unpin
  - pcache1Rekey
  - pcache1Truncate
  - pcache1Destroy
  - sqlite3PCacheSetDefault
  - sqlite3HeaderSizePcache1
  - sqlite3_mutex *sqlite3Pcache1Mutex(void)
  - sqlite3PcacheReleaseMemory
  - sqlite3PcacheStats
  - sqlite3RowSetInit
  - sqlite3RowSetClear
  - rowSetEntryAlloc
  - sqlite3RowSetInsert
  - rowSetEntryMerge
  - rowSetEntrySort
  - rowSetTreeToList
  - rowSetNDeepTree
  - rowSetListToTree
  - rowSetToList
  - sqlite3RowSetNext
  - sqlite3RowSetTest
  - sqlite3WalOpen
  - sqlite3WalClose
  - sqlite3WalBeginReadTransaction
  - sqlite3WalDbsize
  - sqlite3WalBeginWriteTransaction
  - sqlite3WalEndWriteTransaction
  - sqlite3WalUndo
  - sqlite3WalSavepointUndo
  - sqlite3WalFrames
  - sqlite3WalCheckpoint
  - sqlite3WalCallback
  - sqlite3WalExclusiveMode
  - sqlite3WalHeapMemory
  - sqlite3WalFramesize
  - sqlite3WalFindFrame
  - PAGERTRACE
  - PAGERID
  - FILEHANDLEID
  - CODEC1
  - CODEC2
  - CODEC2
  - PAGER_INCR
  - JOURNAL_PG_SZ
  - JOURNAL_HDR_SZ
  - USEFETCH
  - USEFETCH
  - isOpen
  - pagerUseWal
  - pagerUseWal
  - pagerRollbackWal
  - pagerWalFrames
  - pagerOpenWalIfPresent
  - pagerBeginReadTransaction
  - assert_pager_state
  - print_pager_state
  - subjRequiresPage
  - pageInJournal
  - read32bits
  - put32bits
  - write32bits
  - pagerUnlockDb
  - pagerLockDb
  - jrnlBufferSize
  - pager_datahash
  - pager_pagehash
  - pager_set_pagehash
  - CHECK_PAGE
  - checkPage
  - pager_datahash
  - pager_pagehash
  - readMasterJournal
  - journalHdrOffset
  - zeroJournalHdr
  - writeJournalHdr
  - readJournalHdr
  - writeMasterJournal
  - pager_reset
  - sqlite3PagerDataVersion
  - releaseAllSavepoints
  - addToSavepointBitvecs
  - pager_unlock
  - pager_error
  - pager_end_transaction
  - pagerUnlockAndRollback
  - pager_cksum
  - pagerReportSize
  - pager_playback_one_page
  - pager_delmaster
  - pager_truncate
  - sqlite3SectorSize
  - setSectorSize
  - pager_playback
  - readDbPage
  - pager_write_changecounter
  - pagerUndoCallback
  - pagerRollbackWal
  - pagerWalFrames
  - pagerBeginReadTransaction
  - pagerPagecount
  - pagerOpenWalIfPresent
  - pagerPlaybackSavepoint
  - sqlite3PagerSetCachesize
  - pagerFixMaplimit
  - sqlite3PagerSetMmapLimit
  - sqlite3PagerShrink
  - sqlite3PagerSetFlags
  - pagerOpentemp
  - sqlite3PagerSetBusyhandler
  - sqlite3PagerSetPagesize
  - sqlite3PagerTempSpace
  - sqlite3PagerMaxPageCount
  - disable_simulated_io_errors
  - enable_simulated_io_errors
  - sqlite3PagerReadFileheader
  - sqlite3PagerPagecount
  - pager_wait_on_lock
  - assertTruncateConstraintCb
  - assertTruncateConstraint
  - sqlite3PagerTruncateImage
  - pagerSyncHotJournal
  - pagerAcquireMapPage
  - pagerReleaseMapPage
  - pagerFreeMapHdrs
  - sqlite3PagerClose
  - sqlite3PagerPagenumber
  - sqlite3PagerRef
  - syncJournal
  - pager_write_pagelist
  - openSubJournal
  - subjournalPage
  - subjournalPageIfRequired
  - pagerStress
  - sqlite3PagerOpen
  - databaseIsUnmoved
  - hasHotJournal
  - sqlite3PagerSharedLock
  - pagerUnlockIfUnused
  - sqlite3PagerAcquire
  - sqlite3PagerLookup
  - sqlite3PagerUnrefNotNull
  - sqlite3PagerUnref
  - pager_open_journal
  - sqlite3PagerBegin
  - pagerAddPageToRollbackJournal
  - pager_write
  - pagerWriteLargeSector
  - sqlite3PagerWrite
  - sqlite3PagerIswriteable
  - sqlite3PagerDontWrite
  - pager_incr_changecounter
  - sqlite3PagerSync
  - sqlite3PagerExclusiveLock
  - sqlite3PagerCommitPhaseOne
  - sqlite3PagerCommitPhaseTwo
  - sqlite3PagerRollback
  - sqlite3PagerIsreadonly
  - sqlite3PagerRefcount
  - sqlite3PagerMemUsed
  - sqlite3PagerPageRefcount
  - sqlite3PagerStats
  - sqlite3PagerCacheStat
  - sqlite3PagerIsMemdb
  - pagerOpenSavepoint
  - sqlite3PagerOpenSavepoint
  - sqlite3PagerSavepoint
  - sqlite3PagerFilename
  - sqlite3_vfs *sqlite3PagerVfs(Pager *pPager)
  - sqlite3_file *sqlite3PagerFile(Pager *pPager)
  - sqlite3PagerJournalname
  - sqlite3PagerNosync
  - sqlite3PagerSetCodec
  - sqlite3PagerGetCodec
  - sqlite3PagerCodec
  - sqlite3PagerState
  - sqlite3PagerMovepage
  - sqlite3PagerRekey
  - sqlite3PagerGetData
  - sqlite3PagerGetExtra
  - sqlite3PagerLockingMode
  - sqlite3PagerSetJournalMode
  - sqlite3PagerGetJournalMode
  - sqlite3PagerOkToChangeJournalMode
  - sqlite3PagerJournalSizeLimit
  - sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager)
  - sqlite3PagerClearCache
  - sqlite3PagerCheckpoint
  - sqlite3PagerWalCallback
  - sqlite3PagerWalSupported
  - pagerExclusiveLock
  - pagerOpenWal
  - sqlite3PagerOpenWal
  - sqlite3PagerCloseWal
  - sqlite3PagerWalFramesize
  - WALTRACE
  - WAL_READ_LOCK
  - walFrameOffset
  - walIndexPage
  - walCkptInfo
  - walIndexHdr
  - BYTESWAP32
  - walChecksumBytes
  - walShmBarrier
  - walIndexWriteHdr
  - walEncodeFrame
  - walDecodeFrame
  - walLockName
  - walLockShared
  - walUnlockShared
  - walLockExclusive
  - walUnlockExclusive
  - walHash
  - walNextHash
  - walHashGet
  - walFramePage
  - walFramePgno
  - walCleanupHash
  - walIndexAppend
  - walIndexRecover
  - walIndexClose
  - sqlite3WalOpen
  - sqlite3WalLimit
  - walIteratorNext
  - walMerge
  - walMergesort
  - walIteratorFree
  - walIteratorInit
  - walBusyLock
  - walPagesize
  - walRestartHdr
  - walCheckpoint
  - walLimitSize
  - sqlite3WalClose
  - walIndexTryHdr
  - walIndexReadHdr
  - walTryBeginRead
  - sqlite3WalBeginReadTransaction
  - sqlite3WalEndReadTransaction
  - sqlite3WalFindFrame
  - sqlite3WalReadFrame
  - sqlite3WalDbsize
  - sqlite3WalBeginWriteTransaction
  - sqlite3WalEndWriteTransaction
  - sqlite3WalUndo
  - sqlite3WalSavepoint
  - sqlite3WalSavepointUndo
  - walRestartLog
  - walWriteToLog
  - walWriteOneFrame
  - sqlite3WalFrames
  - sqlite3WalCheckpoint
  - sqlite3WalCallback
  - sqlite3WalExclusiveMode
  - sqlite3WalHeapMemory
  - sqlite3WalFramesize
  - MX_CELL_SIZE
  - MX_CELL
  - PENDING_BYTE_PAGE
  - PTRMAP_PAGENO
  - PTRMAP_PTROFFSET
  - PTRMAP_ISPAGE
  - btreeIntegrity
  - get2byte
  - put2byte
  - get2byteAligned
  - get2byteAligned
  - get2byteAligned
  - get2byteAligned
  - lockBtreeMutex
  - SQLITE_NOINLINE::unlockBtreeMutex
  - sqlite3BtreeEnter
  - SQLITE_NOINLINE::btreeLockCarefully
  - sqlite3BtreeLeave
  - sqlite3BtreeHoldsMutex
  - sqlite3BtreeEnterCursor
  - sqlite3BtreeLeaveCursor
  - sqlite3BtreeEnterAll
  - sqlite3BtreeLeaveAll
  - sqlite3BtreeSharable
  - sqlite3BtreeHoldsAllMutexes
  - sqlite3SchemaMutexHeld
  - sqlite3BtreeEnter
  - sqlite3BtreeEnterAll
  - TRACE
  - get2byteNotZero
  - IfNotOmitAV
  - IfNotOmitAV
  - sqlite3_enable_shared_cache
  - querySharedCacheTableLock
  - setSharedCacheTableLock
  - hasSharedCacheTableLock
  - hasReadConflicts
  - hasSharedCacheTableLock
  - hasReadConflicts
  - querySharedCacheTableLock
  - setSharedCacheTableLock
  - clearAllSharedCacheTableLocks
  - downgradeAllSharedCacheTableLocks
  - cursorHoldsMutex
  - invalidateOverflowCache
  - invalidateAllOverflowCache
  - invalidateIncrblobCursors
  - btreeSetHasContent
  - btreeGetHasContent
  - btreeClearHasContent
  - btreeReleaseAllCursorPages
  - saveCursorPosition
  - saveAllCursors
  - SQLITE_NOINLINE::saveCursorsOnList
  - sqlite3BtreeClearCursor
  - btreeMoveto
  - btreeRestoreCursorPosition
  - restoreCursorPosition
  - sqlite3BtreeCursorHasMoved
  - sqlite3BtreeCursorRestore
  - ptrmapPageno
  - ptrmapPut
  - ptrmapGet
  - ptrmapGet
  - findCell
  - findCellPastPtr
  - btreeParseCellAdjustSizeForOverflow
  - btreeParseCellPtrNoPayload
  - btreeParseCellPtr
  - btreeParseCellPtrIndex
  - btreeParseCell
  - cellSizePtr
  - cellSizePtrNoPayload
  - cellSize
  - ptrmapPutOvflPtr
  - defragmentPage
  - pageFindSlot
  - allocateSpace
  - freeSpace
  - decodeFlags
  - btreeInitPage
  - zeroPage
  - btreePageFromDbPage
  - btreeGetPage
  - btreePageLookup
  - btreePagecount
  - sqlite3BtreeLastPage
  - getAndInitPage
  - releasePageNotNull
  - releasePage
  - btreeGetUnusedPage
  - pageReinit
  - btreeInvokeBusyHandler
  - sqlite3BtreeOpen
  - removeFromSharingList
  - allocateTempSpace
  - freeTempSpace
  - sqlite3BtreeClose
  - sqlite3BtreeSetCacheSize
  - sqlite3BtreeSetMmapLimit
  - sqlite3BtreeSetPagerFlags
  - sqlite3BtreeSyncDisabled
  - sqlite3BtreeSetPageSize
  - sqlite3BtreeGetPageSize
  - sqlite3BtreeGetReserveNoMutex
  - sqlite3BtreeGetOptimalReserve
  - sqlite3BtreeMaxPageCount
  - sqlite3BtreeSecureDelete
  - sqlite3BtreeSetAutoVacuum
  - sqlite3BtreeGetAutoVacuum
  - lockBtree
  - countValidCursors
  - unlockBtreeIfUnused
  - newDatabase
  - sqlite3BtreeNewDb
  - sqlite3BtreeBeginTrans
  - setChildPtrmaps
  - modifyPagePointer
  - relocatePage
  - incrVacuumStep
  - finalDbSize
  - sqlite3BtreeIncrVacuum
  - autoVacuumCommit
  - setChildPtrmaps
  - sqlite3BtreeCommitPhaseOne
  - btreeEndTransaction
  - sqlite3BtreeCommitPhaseTwo
  - sqlite3BtreeCommit
  - countWriteCursors
  - sqlite3BtreeTripAllCursors
  - sqlite3BtreeRollback
  - sqlite3BtreeBeginStmt
  - sqlite3BtreeSavepoint
  - btreeCursor
  - sqlite3BtreeCursor
  - sqlite3BtreeCursorSize
  - sqlite3BtreeCursorZero
  - sqlite3BtreeCloseCursor
  - assertCellInfo
  - getCellInfo
  - sqlite3BtreeCursorIsValid
  - sqlite3BtreeKeySize
  - sqlite3BtreeDataSize
  - getOverflowPage
  - copyPayload
  - accessPayload
  - sqlite3BtreeKey
  - sqlite3BtreeData
  - fetchPayload
  - sqlite3BtreeKeyFetch
  - sqlite3BtreeDataFetch
  - moveToChild
  - assertParentIndex
  - assertParentIndex
  - moveToParent
  - moveToRoot
  - moveToLeftmost
  - moveToRightmost
  - sqlite3BtreeFirst
  - sqlite3BtreeLast
  - sqlite3BtreeMovetoUnpacked
  - sqlite3BtreeEof
  - btreeNext
  - sqlite3BtreeNext
  - btreePrevious
  - sqlite3BtreePrevious
  - allocateBtreePage
  - freePage2
  - freePage
  - clearCell
  - fillInCell
  - dropCell
  - insertCell
  - populateCellCache
  - computeCellSize
  - cachedCellSize
  - rebuildPage
  - pageInsertArray
  - pageFreeArray
  - editPage
  - balance_quick
  - ptrmapCheckPages
  - copyNodeContent
  - balance_nonroot
  - balance_deeper
  - balance
  - sqlite3BtreeInsert
  - sqlite3BtreeDelete
  - btreeCreateTable
  - sqlite3BtreeCreateTable
  - clearDatabasePage
  - sqlite3BtreeClearTable
  - sqlite3BtreeClearTableOfCursor
  - btreeDropTable
  - sqlite3BtreeDropTable
  - sqlite3BtreeGetMeta
  - sqlite3BtreeUpdateMeta
  - sqlite3BtreeCount
  - sqlite3BtreePager
  - checkAppendMsg
  - getPageReferenced
  - setPageReferenced
  - checkRef
  - checkPtrmap
  - checkList
  - btreeHeapInsert
  - btreeHeapPull
  - checkTreePage
  - sqlite3BtreeIntegrityCheck
  - sqlite3BtreeGetFilename
  - sqlite3BtreeGetJournalname
  - sqlite3BtreeIsInTrans
  - sqlite3BtreeCheckpoint
  - sqlite3BtreeIsInReadTrans
  - sqlite3BtreeIsInBackup
  - sqlite3BtreeSchema
  - sqlite3BtreeSchemaLocked
  - sqlite3BtreeLockTable
  - sqlite3BtreePutData
  - sqlite3BtreeIncrblobCursor
  - sqlite3BtreeSetVersion
  - sqlite3BtreeCursorHints
  - sqlite3BtreeCursorHasHint
  - sqlite3BtreeIsReadonly
  - sqlite3HeaderSizeBtree
  - findBtree
  - setDestPgsz
  - checkReadTransaction
  - sqlite3_backup_init
  - isFatalError
  - backupOnePage
  - backupTruncateFile
  - attachBackupObject
  - sqlite3_backup_step
  - sqlite3_backup_finish
  - sqlite3_backup_remaining
  - sqlite3_backup_pagecount
  - backupUpdate
  - sqlite3BackupUpdate
  - sqlite3BackupRestart
  - sqlite3BtreeCopyFile
  - sqlite3VdbeCheckMemInvariants
  - sqlite3VdbeChangeEncoding
  - sqlite3VdbeMemGrow
  - sqlite3VdbeMemClearAndResize
  - sqlite3VdbeMemMakeWriteable
  - sqlite3VdbeMemExpandBlob
  - vdbeMemAddTerminator
  - sqlite3VdbeMemNulTerminate
  - sqlite3VdbeMemStringify
  - sqlite3VdbeMemFinalize
  - vdbeMemClearExternAndSetNull
  - vdbeMemClear
  - sqlite3VdbeMemRelease
  - doubleToInt64
  - sqlite3VdbeIntValue
  - sqlite3VdbeRealValue
  - sqlite3VdbeIntegerAffinity
  - sqlite3VdbeMemIntegerify
  - sqlite3VdbeMemRealify
  - sqlite3VdbeMemNumerify
  - sqlite3VdbeMemCast
  - sqlite3VdbeMemInit
  - sqlite3VdbeMemSetNull
  - sqlite3ValueSetNull
  - sqlite3VdbeMemSetZeroBlob
  - vdbeReleaseAndSetInt64
  - sqlite3VdbeMemSetInt64
  - sqlite3VdbeMemSetDouble
  - sqlite3VdbeMemSetRowSet
  - sqlite3VdbeMemTooBig
  - sqlite3VdbeMemAboutToChange
  - vdbeClrCopy
  - sqlite3VdbeMemShallowCopy
  - sqlite3VdbeMemCopy
  - sqlite3VdbeMemMove
  - sqlite3VdbeMemSetStr
  - vdbeMemFromBtreeResize
  - sqlite3VdbeMemFromBtree
  - valueToText
  - sqlite3ValueText
  - sqlite3_value *sqlite3ValueNew(sqlite3 *db)
  - valueNew
  - valueFromFunction
  - valueFromFunction
  - valueFromExpr
  - sqlite3ValueFromExpr
  - recordFunc
  - sqlite3AnalyzeFunctions
  - stat4ValueFromExpr
  - sqlite3Stat4ProbeSetValue
  - sqlite3Stat4ValueFromExpr
  - sqlite3Stat4Column
  - sqlite3Stat4ProbeFree
  - sqlite3ValueSetStr
  - sqlite3ValueFree
  - valueBytes
  - sqlite3ValueBytes
  - sqlite3VdbeCreate
  - sqlite3VdbeError
  - sqlite3VdbeSetSql
  - SQLITE_STDCALL::sqlite3_sql
  - sqlite3VdbeSwap
  - growOpArray
  - test_addop_breakpoint
  - sqlite3VdbeAddOp3
  - sqlite3VdbeAddOp0
  - sqlite3VdbeAddOp1
  - sqlite3VdbeAddOp2
  - sqlite3VdbeAddOp4
  - sqlite3VdbeAddOp4Dup8
  - sqlite3VdbeAddParseSchemaOp
  - sqlite3VdbeAddOp4Int
  - sqlite3VdbeMakeLabel
  - sqlite3VdbeResolveLabel
  - sqlite3VdbeRunOnlyOnce
  - opIterNext
  - sqlite3VdbeAssertMayAbort
  - resolveP2Values
  - sqlite3VdbeCurrentAddr
  - sqlite3VdbeTakeOpArray
  - sqlite3VdbeAddOpList
  - sqlite3VdbeScanStatus
  - sqlite3VdbeChangeP1
  - sqlite3VdbeChangeP2
  - sqlite3VdbeChangeP3
  - sqlite3VdbeChangeP5
  - sqlite3VdbeJumpHere
  - freeEphemeralFunction
  - freeP4
  - vdbeFreeOpArray
  - sqlite3VdbeLinkSubProgram
  - sqlite3VdbeChangeToNoop
  - sqlite3VdbeDeletePriorOpcode
  - sqlite3VdbeChangeP4
  - sqlite3VdbeSetP4KeyInfo
  - vdbeVComment
  - sqlite3VdbeComment
  - sqlite3VdbeNoopComment
  - sqlite3VdbeSetLineNumber
  - sqlite3VdbeGetOp
  - translateP
  - displayComment
  - displayP4
  - sqlite3VdbeUsesBtree
  - sqlite3VdbeEnter
  - vdbeLeave
  - sqlite3VdbeLeave
  - sqlite3VdbePrintOp
  - releaseMemArray
  - sqlite3VdbeFrameDelete
  - sqlite3VdbeList
  - sqlite3VdbePrintSql
  - sqlite3VdbeIOTraceSql
  - allocSpace
  - sqlite3VdbeRewind
  - sqlite3VdbeMakeReady
  - sqlite3VdbeFreeCursor
  - closeCursorsInFrame
  - sqlite3VdbeFrameRestore
  - closeAllCursors
  - Cleanup
  - sqlite3VdbeSetNumCols
  - sqlite3VdbeSetColName
  - vdbeCommit
  - checkActiveVdbeCnt
  - sqlite3VdbeCloseStatement
  - sqlite3VdbeCheckFk
  - sqlite3VdbeHalt
  - sqlite3VdbeResetStepResult
  - sqlite3VdbeTransferError
  - vdbeInvokeSqllog
  - sqlite3VdbeReset
  - sqlite3VdbeFinalize
  - sqlite3VdbeDeleteAuxData
  - sqlite3VdbeClearObject
  - sqlite3VdbeDelete
  - SQLITE_NOINLINE::handleDeferredMoveto
  - SQLITE_NOINLINE::handleMovedCursor
  - sqlite3VdbeCursorRestore
  - sqlite3VdbeCursorMoveto
  - sqlite3VdbeSerialType
  - sqlite3VdbeSerialTypeLen
  - floatSwap
  - swapMixedEndianFloat
  - sqlite3VdbeSerialPut
  - ONE_BYTE_INT
  - TWO_BYTE_INT
  - THREE_BYTE_INT
  - FOUR_BYTE_UINT
  - FOUR_BYTE_INT
  - SQLITE_NOINLINE::serialGet
  - sqlite3VdbeSerialGet
  - "UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(\n  KeyInfo *pKeyInfo,              /*
    Description of the record */\n  char *pSpace,                   /* Unaligned space
    available */\n  int szSpace,                    /* Size of pSpace[] in bytes */\n
    \ char **ppFree                   /* OUT: Caller should free this pointer */\n)"
  - sqlite3VdbeRecordUnpack
  - vdbeRecordCompareDebug
  - vdbeAssertFieldCountWithinLimits
  - vdbeCompareMemString
  - sqlite3BlobCompare
  - sqlite3MemCompare
  - vdbeRecordDecodeInt
  - sqlite3VdbeRecordCompareWithSkip
  - sqlite3VdbeRecordCompare
  - vdbeRecordCompareInt
  - vdbeRecordCompareString
  - RecordCompare::sqlite3VdbeFindCompare
  - sqlite3VdbeIdxRowid
  - sqlite3VdbeIdxKeyCompare
  - sqlite3VdbeSetChanges
  - sqlite3VdbeCountChanges
  - sqlite3ExpirePreparedStatements
  - sqlite3VdbeDb
  - sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff)
  - sqlite3VdbeSetVarmask
  - sqlite3VtabImportErrmsg
  - sqlite3_expired
  - vdbeSafety
  - vdbeSafetyNotNull
  - invokeProfileCallback
  - checkProfileCallback
  - sqlite3_finalize
  - sqlite3_reset
  - sqlite3_clear_bindings
  - SQLITE_STDCALL::sqlite3_value_blob
  - sqlite3_value_bytes
  - sqlite3_value_bytes16
  - sqlite3_value_double
  - sqlite3_value_int
  - sqlite3_value_int64
  - SQLITE_STDCALL::sqlite3_value_text
  - SQLITE_STDCALL::sqlite3_value_text16
  - SQLITE_STDCALL::sqlite3_value_text16be
  - SQLITE_STDCALL::sqlite3_value_text16le
  - sqlite3_value_type
  - sqlite3_value_dup
  - sqlite3_value_free
  - setResultStrOrError
  - invokeValueDestructor
  - sqlite3_result_blob
  - sqlite3_result_blob64
  - sqlite3_result_double
  - sqlite3_result_error
  - sqlite3_result_error16
  - sqlite3_result_int
  - sqlite3_result_int64
  - sqlite3_result_null
  - sqlite3_result_text
  - sqlite3_result_text64
  - sqlite3_result_text16
  - sqlite3_result_text16be
  - sqlite3_result_text16le
  - sqlite3_result_value
  - sqlite3_result_zeroblob
  - sqlite3_result_zeroblob64
  - sqlite3_result_error_code
  - sqlite3_result_error_toobig
  - sqlite3_result_error_nomem
  - doWalCallbacks
  - sqlite3Step
  - sqlite3_step
  - SQLITE_STDCALL::sqlite3_user_data
  - SQLITE_STDCALL::sqlite3_context_db_handle
  - sqlite3_int64::sqlite3StmtCurrentTime
  - sqlite3InvalidFunction
  - createAggContext
  - SQLITE_STDCALL::sqlite3_aggregate_context
  - SQLITE_STDCALL::sqlite3_get_auxdata
  - sqlite3_set_auxdata
  - sqlite3_aggregate_count
  - sqlite3_column_count
  - sqlite3_data_count
  - columnMem
  - columnMallocFailure
  - SQLITE_STDCALL::sqlite3_column_blob
  - sqlite3_column_bytes
  - sqlite3_column_bytes16
  - sqlite3_column_double
  - sqlite3_column_int
  - sqlite3_column_int64
  - SQLITE_STDCALL::sqlite3_column_text
  - sqlite3_column_value
  - SQLITE_STDCALL::sqlite3_column_text16
  - sqlite3_column_type
  - columnName
  - SQLITE_STDCALL::sqlite3_column_name
  - SQLITE_STDCALL::sqlite3_column_name16
  - SQLITE_STDCALL::sqlite3_column_decltype
  - SQLITE_STDCALL::sqlite3_column_decltype16
  - SQLITE_STDCALL::sqlite3_column_database_name
  - SQLITE_STDCALL::sqlite3_column_database_name16
  - SQLITE_STDCALL::sqlite3_column_table_name
  - SQLITE_STDCALL::sqlite3_column_table_name16
  - SQLITE_STDCALL::sqlite3_column_origin_name
  - SQLITE_STDCALL::sqlite3_column_origin_name16
  - vdbeUnbind
  - bindText
  - sqlite3_bind_blob
  - sqlite3_bind_blob64
  - sqlite3_bind_double
  - sqlite3_bind_int
  - sqlite3_bind_int64
  - sqlite3_bind_null
  - sqlite3_bind_text
  - sqlite3_bind_text64
  - sqlite3_bind_text16
  - sqlite3_bind_value
  - sqlite3_bind_zeroblob
  - sqlite3_bind_zeroblob64
  - sqlite3_bind_parameter_count
  - SQLITE_STDCALL::sqlite3_bind_parameter_name
  - sqlite3VdbeParameterIndex
  - sqlite3_bind_parameter_index
  - sqlite3TransferBindings
  - sqlite3_transfer_bindings
  - SQLITE_STDCALL::sqlite3_db_handle
  - sqlite3_stmt_readonly
  - sqlite3_stmt_busy
  - sqlite3_next_stmt
  - sqlite3_stmt_status
  - sqlite3_stmt_scanstatus
  - sqlite3_stmt_scanstatus_reset
  - findNextHostParameter
  - sqlite3VdbeExpandSql
  - memAboutToChange
  - updateMaxBlobsize
  - UPDATE_MAX_BLOBSIZE
  - VdbeBranchTaken
  - vdbeTakeBranch
  - Stringify
  - Deephemeralize
  - isSorter
  - allocateCursor
  - applyNumericAffinity
  - applyAffinity
  - sqlite3_value_numeric_type
  - sqlite3ValueApplyAffinity
  - SQLITE_NOINLINE::computeNumericType
  - numericType
  - sqlite3VdbeMemPrettyPrint
  - memTracePrint
  - registerTrace
  - REGISTER_TRACE
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite3Hwtime
  - sqlite_uint64::sqlite3Hwtime
  - checkSavepointCount
  - out2Prerelease
  - sqlite3VdbeExec
  - blobSeekToRow
  - sqlite3_blob_open
  - sqlite3_blob_close
  - blobReadWrite
  - sqlite3_blob_read
  - sqlite3_blob_write
  - sqlite3_blob_bytes
  - sqlite3_blob_reopen
  - SRVAL
  - vdbePmaReaderClear
  - vdbePmaReadBlob
  - vdbePmaReadVarint
  - vdbeSorterMapFile
  - vdbePmaReaderSeek
  - vdbePmaReaderNext
  - vdbePmaReaderInit
  - vdbeSorterCompareTail
  - vdbeSorterCompare
  - vdbeSorterCompareText
  - vdbeSorterCompareInt
  - sqlite3VdbeSorterInit
  - vdbeSorterRecordFree
  - vdbeSortSubtaskCleanup
  - vdbeSorterWorkDebug
  - vdbeSorterRewindDebug
  - vdbeSorterPopulateDebug
  - vdbeSorterBlockDebug
  - vdbeSorterJoinThread
  - vdbeSorterCreateThread
  - vdbeSorterJoinAll
  - vdbeSorterJoinAll
  - vdbeSorterJoinThread
  - vdbeMergeEngineNew
  - vdbeMergeEngineFree
  - vdbeIncrFree
  - sqlite3VdbeSorterReset
  - sqlite3VdbeSorterClose
  - vdbeSorterExtendFile
  - vdbeSorterOpenTempFile
  - vdbeSortAllocUnpacked
  - vdbeSorterMerge
  - vdbeSorterGetCompare
  - vdbeSorterSort
  - vdbePmaWriterInit
  - vdbePmaWriteBlob
  - vdbePmaWriterFinish
  - vdbePmaWriteVarint
  - vdbeSorterListToPMA
  - vdbeMergeEngineStep
  - vdbeSorterFlushThread
  - vdbeSorterFlushPMA
  - sqlite3VdbeSorterWrite
  - vdbeIncrPopulate
  - vdbeIncrPopulateThread
  - vdbeIncrBgPopulate
  - vdbeIncrSwap
  - vdbeIncrMergerNew
  - vdbeIncrMergerSetThreads
  - vdbeMergeEngineCompare
  - vdbeMergeEngineInit
  - vdbePmaReaderIncrMergeInit
  - vdbePmaReaderBgIncrInit
  - vdbePmaReaderIncrInit
  - vdbeMergeEngineLevel0
  - vdbeSorterTreeDepth
  - vdbeSorterAddToTree
  - vdbeSorterMergeTreeBuild
  - vdbeSorterSetupMerge
  - sqlite3VdbeSorterRewind
  - sqlite3VdbeSorterNext
  - vdbeSorterRowkey
  - sqlite3VdbeSorterRowkey
  - sqlite3VdbeSorterCompare
  - createFile
  - jrnlClose
  - jrnlRead
  - jrnlWrite
  - jrnlTruncate
  - jrnlSync
  - jrnlFileSize
  - sqlite3JournalOpen
  - sqlite3JournalCreate
  - sqlite3JournalExists
  - sqlite3JournalSize
  - memjrnlRead
  - memjrnlWrite
  - memjrnlTruncate
  - memjrnlClose
  - memjrnlSync
  - memjrnlFileSize
  - sqlite3MemJournalOpen
  - sqlite3IsMemJournal
  - sqlite3MemJournalSize
  - sqlite3WalkExpr
  - sqlite3WalkExprList
  - sqlite3WalkSelectExpr
  - sqlite3WalkSelectFrom
  - sqlite3WalkSelect
  - incrAggDepth
  - incrAggFunctionDepth
  - resolveAlias
  - nameInUsingClause
  - sqlite3MatchSpanName
  - lookupName
  - sqlite3CreateColumnExpr
  - notValidPartIdxWhere
  - notValidCheckConstraint
  - exprProbability
  - resolveExprStep
  - resolveAsName
  - resolveOrderByTermToExprList
  - resolveOutOfRangeError
  - resolveCompoundOrderBy
  - sqlite3ResolveOrderGroupBy
  - resolveOrderGroupBy
  - resolveSelectStep
  - sqlite3ResolveExprNames
  - sqlite3ResolveSelectNames
  - sqlite3ResolveSelfReference
  - sqlite3ExprAffinity
  - sqlite3ExprAddCollateToken
  - sqlite3ExprAddCollateString
  - sqlite3ExprSkipCollate
  - sqlite3ExprCollSeq
  - sqlite3CompareAffinity
  - comparisonAffinity
  - sqlite3IndexAffinityOk
  - binaryCompareP5
  - sqlite3BinaryCompareCollSeq
  - codeCompare
  - sqlite3ExprCheckHeight
  - heightOfExpr
  - heightOfExprList
  - heightOfSelect
  - exprSetHeight
  - sqlite3ExprSetHeightAndFlags
  - sqlite3SelectExprHeight
  - sqlite3ExprSetHeightAndFlags
  - sqlite3ExprAlloc
  - sqlite3Expr
  - sqlite3ExprAttachSubtrees
  - sqlite3PExpr
  - exprAlwaysTrue
  - exprAlwaysFalse
  - sqlite3ExprAnd
  - sqlite3ExprFunction
  - sqlite3ExprAssignVarNumber
  - sqlite3ExprDelete
  - exprStructSize
  - dupedExprStructSize
  - dupedExprNodeSize
  - dupedExprSize
  - exprDup
  - withDup
  - withDup
  - sqlite3ExprDup
  - sqlite3ExprListDup
  - sqlite3SrcListDup
  - sqlite3IdListDup
  - sqlite3SelectDup
  - sqlite3SelectDup
  - sqlite3ExprListAppend
  - sqlite3ExprListSetName
  - sqlite3ExprListSetSpan
  - sqlite3ExprListCheckLength
  - sqlite3ExprListDelete
  - sqlite3ExprListFlags
  - exprNodeIsConstant
  - selectNodeIsConstant
  - exprIsConst
  - sqlite3ExprIsConstant
  - sqlite3ExprIsConstantNotJoin
  - sqlite3ExprIsTableConstant
  - sqlite3ExprIsConstantOrFunction
  - sqlite3ExprIsInteger
  - sqlite3ExprCanBeNull
  - sqlite3ExprNeedsNoAffinityChange
  - sqlite3IsRowid
  - isCandidateForInOpt
  - sqlite3CodeOnce
  - sqlite3SetHasNullFlag
  - sqlite3InRhsIsConstant
  - sqlite3FindInIndex
  - sqlite3CodeSubselect
  - sqlite3ExprCodeIN
  - codeReal
  - codeInteger
  - cacheEntryClear
  - sqlite3ExprCacheStore
  - sqlite3ExprCacheRemove
  - sqlite3ExprCachePush
  - sqlite3ExprCachePop
  - sqlite3ExprCachePinRegister
  - sqlite3ExprCodeGetColumnOfTable
  - sqlite3ExprCodeGetColumn
  - sqlite3ExprCacheClear
  - sqlite3ExprCacheAffinityChange
  - sqlite3ExprCodeMove
  - usedAsColumnCache
  - exprToRegister
  - sqlite3ExprCodeTarget
  - sqlite3ExprCodeAtInit
  - sqlite3ExprCodeTemp
  - sqlite3ExprCode
  - sqlite3ExprCodeFactorable
  - sqlite3ExprCodeAndCache
  - sqlite3ExprCodeExprList
  - exprCodeBetween
  - sqlite3ExprIfTrue
  - sqlite3ExprIfFalse
  - sqlite3ExprIfFalseDup
  - sqlite3ExprCompare
  - sqlite3ExprListCompare
  - sqlite3ExprImpliesExpr
  - exprSrcCount
  - sqlite3FunctionUsesThisSrc
  - addAggInfoColumn
  - addAggInfoFunc
  - analyzeAggregate
  - analyzeAggregatesInSelect
  - sqlite3ExprAnalyzeAggregates
  - sqlite3ExprAnalyzeAggList
  - sqlite3GetTempReg
  - sqlite3ReleaseTempReg
  - sqlite3GetTempRange
  - sqlite3ReleaseTempRange
  - sqlite3ClearTempRegCache
  - renameTableFunc
  - renameParentFunc
  - renameTriggerFunc
  - sqlite3AlterFunctions
  - whereOrName
  - whereForeignKeys
  - whereTempTriggers
  - reloadTableSchema
  - isSystemTable
  - sqlite3AlterRenameTable
  - sqlite3MinimumFileFormat
  - sqlite3AlterFinishAddColumn
  - sqlite3AlterBeginAddColumn
  - openStatTable
  - sampleClear
  - sampleSetRowid
  - sampleSetRowidInt64
  - sampleCopy
  - stat4Destructor
  - sampleIsBetterPost
  - sampleIsBetter
  - sampleInsert
  - samplePushPrevious
  - statPush
  - statGet
  - callStatGet
  - analyzeOneTable
  - loadAnalysis
  - analyzeDatabase
  - analyzeTable
  - sqlite3Analyze
  - analysisLoader
  - sqlite3DeleteIndexSamples
  - initAvgEq
  - findIndexOrPrimaryKey
  - loadStatTbl
  - loadStat4
  - sqlite3AnalysisLoad
  - resolveAttachExpr
  - attachFunc
  - detachFunc
  - codeAttach
  - sqlite3Detach
  - sqlite3Attach
  - sqlite3FixInit
  - sqlite3FixSrcList
  - sqlite3FixSelect
  - sqlite3FixExpr
  - sqlite3FixExprList
  - sqlite3FixTriggerStep
  - sqlite3_set_authorizer
  - sqliteAuthBadReturnCode
  - sqlite3AuthReadCol
  - sqlite3AuthRead
  - sqlite3AuthCheck
  - sqlite3AuthContextPush
  - sqlite3AuthContextPop
  - sqlite3BeginParse
  - sqlite3TableLock
  - codeTableLocks
  - sqlite3DbMaskAllZero
  - sqlite3FinishCoding
  - sqlite3NestedParse
  - sqlite3UserAuthTable
  - sqlite3FindTable
  - sqlite3LocateTable
  - sqlite3LocateTableItem
  - sqlite3FindIndex
  - freeIndex
  - sqlite3UnlinkAndDeleteIndex
  - sqlite3CollapseDatabaseArray
  - sqlite3ResetOneSchema
  - sqlite3ResetAllSchemasOfConnection
  - sqlite3CommitInternalChanges
  - sqliteDeleteColumnNames
  - TESTONLY
  - sqlite3NameFromToken
  - sqlite3OpenMasterTable
  - sqlite3FindDbName
  - sqlite3FindDb
  - sqlite3TwoPartName
  - sqlite3CheckObjectName
  - sqlite3PrimaryKeyIndex
  - sqlite3ColumnOfIndex
  - sqlite3StartTable
  - STRICMP
  - sqlite3AddColumn
  - sqlite3AddNotNull
  - sqlite3AffinityType
  - sqlite3AddColumnType
  - sqlite3AddDefaultValue
  - sqlite3AddPrimaryKey
  - sqlite3AddCheckConstraint
  - sqlite3AddCollateType
  - sqlite3LocateCollSeq
  - sqlite3ChangeCookie
  - identLength
  - identPut
  - createTableStmt
  - resizeIndexObject
  - estimateTableWidth
  - estimateIndexWidth
  - hasColumn
  - convertToWithoutRowidTable
  - sqlite3EndTable
  - sqlite3CreateView
  - sqlite3ViewGetColumnNames
  - sqliteViewResetAll
  - sqlite3RootPageMoved
  - destroyRootPage
  - destroyTable
  - sqlite3ClearStatTables
  - sqlite3CodeDropTable
  - sqlite3DropTable
  - sqlite3CreateForeignKey
  - sqlite3DeferForeignKey
  - sqlite3RefillIndex
  - sqlite3AllocateIndexObject
  - sqlite3CreateIndex
  - sqlite3DefaultRowEst
  - sqlite3DropIndex
  - sqlite3ArrayAllocate
  - sqlite3IdListAppend
  - sqlite3IdListDelete
  - sqlite3IdListIndex
  - sqlite3SrcListEnlarge
  - sqlite3SrcListAppend
  - sqlite3SrcListAssignCursors
  - sqlite3SrcListDelete
  - sqlite3SrcListAppendFromTerm
  - sqlite3SrcListIndexedBy
  - sqlite3SrcListShiftJoinType
  - sqlite3BeginTransaction
  - sqlite3CommitTransaction
  - sqlite3RollbackTransaction
  - sqlite3Savepoint
  - sqlite3OpenTempDatabase
  - sqlite3CodeVerifySchema
  - sqlite3CodeVerifyNamedSchema
  - sqlite3BeginWriteOperation
  - sqlite3MultiWrite
  - sqlite3MayAbort
  - sqlite3HaltConstraint
  - sqlite3UniqueConstraint
  - sqlite3RowidConstraint
  - collationMatch
  - reindexTable
  - reindexDatabases
  - sqlite3Reindex
  - sqlite3KeyInfoOfIndex
  - sqlite3WithAdd
  - sqlite3WithDelete
  - callCollNeeded
  - synthCollSeq
  - sqlite3GetCollSeq
  - sqlite3CheckCollSeq
  - findCollSeqEntry
  - sqlite3FindCollSeq
  - matchQuality
  - functionSearch
  - sqlite3FuncDefInsert
  - sqlite3FindFunction
  - sqlite3SchemaClear
  - sqlite3SchemaGet
  - sqlite3SrcListLookup
  - sqlite3IsReadOnly
  - sqlite3MaterializeView
  - sqlite3LimitWhere
  - sqlite3DeleteFrom
  - sqlite3GenerateRowDelete
  - sqlite3GenerateRowIndexDelete
  - sqlite3GenerateIndexKey
  - sqlite3ResolvePartIdxLabel
  - sqlite3GetFuncCollSeq
  - sqlite3SkipAccumulatorLoad
  - minmaxFunc
  - typeofFunc
  - lengthFunc
  - absFunc
  - instrFunc
  - printfFunc
  - substrFunc
  - roundFunc
  - contextMalloc
  - upperFunc
  - lowerFunc
  - randomFunc
  - randomBlob
  - last_insert_rowid
  - changes
  - total_changes
  - sqlite3Utf8Read
  - Utf8Read
  - Utf8Read
  - patternCompare
  - sqlite3_strglob
  - likeFunc
  - nullifFunc
  - versionFunc
  - sourceidFunc
  - errlogFunc
  - compileoptionusedFunc
  - compileoptiongetFunc
  - quoteFunc
  - unicodeFunc
  - charFunc
  - hexFunc
  - zeroblobFunc
  - replaceFunc
  - trimFunc
  - soundexFunc
  - loadExt
  - sumStep
  - sumFinalize
  - avgFinalize
  - totalFinalize
  - countStep
  - countFinalize
  - minmaxStep
  - minMaxFinalize
  - groupConcatStep
  - groupConcatFinalize
  - sqlite3RegisterBuiltinFunctions
  - setLikeOptFlag
  - sqlite3RegisterLikeFunctions
  - sqlite3IsLikeFunction
  - sqlite3RegisterGlobalFunctions
  - sqlite3FkLocateIndex
  - fkLookupParent
  - exprTableRegister
  - exprTableColumn
  - fkScanChildren
  - sqlite3FkReferences
  - fkTriggerDelete
  - sqlite3FkDropTable
  - fkChildIsModified
  - fkParentIsModified
  - isSetNullAction
  - sqlite3FkCheck
  - COLUMN_MASK
  - sqlite3FkOldmask
  - sqlite3FkRequired
  - fkActionTrigger
  - sqlite3FkActions
  - sqlite3FkDelete
  - sqlite3OpenTable
  - sqlite3IndexAffinityStr
  - sqlite3TableAffinity
  - readsTable
  - autoIncBegin
  - sqlite3AutoincrementBegin
  - autoIncStep
  - sqlite3AutoincrementEnd
  - autoIncBegin
  - sqlite3Insert
  - sqlite3GenerateConstraintChecks
  - sqlite3CompleteInsertion
  - sqlite3OpenTableAndIndices
  - xferCompatibleCollation
  - xferCompatibleIndex
  - xferOptimization
  - sqlite3_exec
  - SQLITE_EXTENSION_INIT2
  - SQLITE_EXTENSION_INIT2
  - sqlite3LoadExtension
  - sqlite3_load_extension
  - sqlite3CloseExtensions
  - sqlite3_enable_load_extension
  - sqlite3AutoExtList
  - sqlite3_auto_extension
  - sqlite3_cancel_auto_extension
  - sqlite3_reset_auto_extension
  - sqlite3AutoLoadExtensions
  - getSafetyLevel
  - sqlite3GetBoolean
  - getLockingMode
  - getAutoVacuum
  - getTempStore
  - invalidateTempStorage
  - changeTempStorage
  - returnSingleInt
  - setAllPagerFlags
  - actionName
  - sqlite3JournalModename
  - sqlite3Pragma
  - corruptSchema
  - sqlite3InitCallback
  - sqlite3Init
  - sqlite3ReadSchema
  - schemaIsValid
  - sqlite3SchemaToIndex
  - sqlite3ParserReset
  - sqlite3Prepare
  - sqlite3LockAndPrepare
  - sqlite3Reprepare
  - sqlite3_prepare
  - sqlite3_prepare_v2
  - sqlite3Prepare16
  - sqlite3_prepare16
  - sqlite3_prepare16_v2
  - SELECTTRACE
  - clearSelect
  - sqlite3SelectDestInit
  - sqlite3SelectNew
  - sqlite3SelectSetName
  - sqlite3SelectDelete
  - findRightmost
  - sqlite3JoinType
  - columnIndex
  - tableAndColumnIndex
  - addWhereTerm
  - setJoinExpr
  - sqliteProcessJoin
  - pushOntoSorter
  - codeOffset
  - codeDistinct
  - checkForMultiColumnSelectError
  - selectInnerLoop
  - sqlite3KeyInfoAlloc
  - sqlite3KeyInfoUnref
  - sqlite3KeyInfoRef
  - sqlite3KeyInfoIsWriteable
  - keyInfoFromExprList
  - selectOpName
  - explainTempTable
  - explainSetInteger
  - explainComposite
  - generateSortTail
  - columnType
  - columnType
  - columnTypeImpl
  - generateColumnTypes
  - generateColumnNames
  - selectColumnsFromExprList
  - selectAddColumnTypeAndCollation
  - sqlite3ResultSetOfSelect
  - sqlite3GetVdbe
  - computeLimitRegisters
  - multiSelectCollSeq
  - multiSelectOrderByKeyInfo
  - generateWithRecursiveQuery
  - multiSelectValues
  - multiSelect
  - sqlite3SelectWrongNumTermsError
  - generateOutputSubroutine
  - multiSelectOrderBy
  - substExpr
  - substExprList
  - substSelect
  - flattenSubquery
  - pushDownWhereTerms
  - minMaxQuery
  - isSimpleCount
  - sqlite3IndexedByLookup
  - convertCompoundSelectToSubquery
  - searchWith
  - sqlite3WithPush
  - withExpand
  - selectPopWith
  - selectExpander
  - exprWalkNoop
  - sqlite3SelectExpand
  - selectAddSubqueryTypeInfo
  - sqlite3SelectAddTypeInfo
  - sqlite3SelectPrep
  - resetAccumulator
  - finalizeAggFunctions
  - updateAccumulator
  - explainSimpleCount
  - sqlite3Select
  - sqlite3_get_table_cb
  - sqlite3_get_table
  - sqlite3_free_table
  - sqlite3DeleteTriggerStep
  - sqlite3TriggerList
  - sqlite3BeginTrigger
  - sqlite3FinishTrigger
  - TriggerStep *sqlite3TriggerSelectStep(sqlite3 *db, Select *pSelect)
  - triggerStepAllocate
  - "TriggerStep *sqlite3TriggerInsertStep(\n  sqlite3 *db,        /* The database
    connection */\n  Token *pTableName,  /* Name of the table into which we insert
    */\n  IdList *pColumn,    /* List of columns in pTableName to insert into */\n
    \ Select *pSelect,    /* A SELECT statement that supplies values */\n  u8 orconf
    \          /* The conflict algorithm (OE_Abort, OE_Replace, etc.) */\n)"
  - "TriggerStep *sqlite3TriggerUpdateStep(\n  sqlite3 *db,         /* The database
    connection */\n  Token *pTableName,   /* Name of the table to be updated */\n
    \ ExprList *pEList,    /* The SET clause: list of column and new values */\n  Expr
    *pWhere,        /* The WHERE clause */\n  u8 orconf            /* The conflict
    algorithm. (OE_Abort, OE_Ignore, etc) */\n)"
  - "TriggerStep *sqlite3TriggerDeleteStep(\n  sqlite3 *db,            /* Database
    connection */\n  Token *pTableName,      /* The table from which rows are deleted
    */\n  Expr *pWhere            /* The WHERE clause */\n)"
  - sqlite3DeleteTrigger
  - sqlite3DropTrigger
  - tableOfTrigger
  - sqlite3DropTriggerPtr
  - sqlite3UnlinkAndDeleteTrigger
  - checkColumnOverlap
  - sqlite3TriggersExist
  - targetSrcList
  - codeTriggerProgram
  - onErrorText
  - transferParseError
  - codeRowTrigger
  - getRowTrigger
  - sqlite3CodeRowTriggerDirect
  - sqlite3CodeRowTrigger
  - sqlite3TriggerColmask
  - sqlite3ColumnDefault
  - sqlite3Update
  - updateVirtualTable
  - vacuumFinalize
  - execSql
  - execExecSql
  - sqlite3Vacuum
  - sqlite3RunVacuum
  - createModule
  - sqlite3_create_module
  - sqlite3_create_module_v2
  - sqlite3VtabLock
  - sqlite3GetVTable
  - sqlite3VtabUnlock
  - vtabDisconnectAll
  - sqlite3VtabDisconnect
  - sqlite3VtabUnlockList
  - sqlite3VtabClear
  - addModuleArgument
  - sqlite3VtabBeginParse
  - addArgumentToVtab
  - sqlite3VtabFinishParse
  - sqlite3VtabArgInit
  - sqlite3VtabArgExtend
  - vtabCallConstructor
  - sqlite3VtabCallConnect
  - growVTrans
  - addToVTrans
  - sqlite3VtabCallCreate
  - sqlite3_declare_vtab
  - sqlite3VtabCallDestroy
  - callFinaliser
  - sqlite3VtabSync
  - sqlite3VtabRollback
  - sqlite3VtabCommit
  - sqlite3VtabBegin
  - sqlite3VtabSavepoint
  - sqlite3VtabOverloadFunction
  - sqlite3VtabMakeWritable
  - sqlite3_vtab_on_conflict
  - sqlite3_vtab_config
  - WHERETRACE
  - initMaskSet
  - sqlite3WhereExplainOneScan
  - sqlite3WhereAddScanStatus
  - explainAppendTerm
  - explainIndexRange
  - sqlite3WhereAddScanStatus
  - disableTerm
  - codeApplyAffinity
  - codeEqualityTerm
  - codeAllEqualityTerms
  - whereLikeOptimizationStringFixup
  - sqlite3WhereCodeOneLoopStart
  - whereOrInfoDelete
  - whereAndInfoDelete
  - whereClauseInsert
  - allowedOp
  - exprCommute
  - operatorMask
  - isLikeOrGlob
  - isMatchOfColumn
  - transferJoinMarkings
  - markTermAsChild
  - whereNthSubterm
  - whereCombineDisjuncts
  - exprAnalyzeOrTerm
  - termIsEquivalence
  - exprSelectUsage
  - exprAnalyze
  - sqlite3WhereSplit
  - sqlite3WhereClauseInit
  - sqlite3WhereClauseClear
  - sqlite3WhereExprUsage
  - sqlite3WhereExprListUsage
  - sqlite3WhereExprAnalyze
  - sqlite3WhereOutputRowCount
  - sqlite3WhereIsDistinct
  - sqlite3WhereIsOrdered
  - sqlite3WhereContinueLabel
  - sqlite3WhereBreakLabel
  - sqlite3WhereOkOnePass
  - whereOrMove
  - whereOrInsert
  - sqlite3WhereGetMask
  - createMask
  - whereScanNext
  - whereScanInit
  - sqlite3WhereFindTerm
  - findIndexCol
  - isDistinctRedundant
  - estLog
  - translateColumnToCopy
  - TRACE_IDX_INPUTS
  - TRACE_IDX_OUTPUTS
  - termCanDriveIndex
  - constructAutomaticIndex
  - allocateIndexInfo
  - vtabBestIndex
  - whereKeyStats
  - whereRangeAdjust
  - whereRangeSkipScanEst
  - whereRangeScanEst
  - whereEqualScanEst
  - whereInScanEst
  - whereTermPrint
  - whereLoopPrint
  - whereLoopInit
  - whereLoopClearUnion
  - whereLoopClear
  - whereLoopResize
  - whereLoopXfer
  - whereLoopDelete
  - whereInfoFree
  - whereLoopCheaperProperSubset
  - whereLoopAdjustCost
  - whereLoopFindLesser
  - whereLoopInsert
  - whereLoopOutputAdjust
  - ApplyCostMultiplier
  - whereLoopAddBtreeIndex
  - indexMightHelpWithOrderBy
  - columnsInIndex
  - whereUsablePartialIndex
  - whereLoopAddBtree
  - whereLoopAddVirtual
  - whereLoopAddOr
  - whereLoopAddAll
  - wherePathSatisfiesOrderBy
  - sqlite3WhereIsSorted
  - wherePathName
  - whereSortingCost
  - wherePathSolver
  - whereShortCut
  - sqlite3WhereBegin
  - sqlite3WhereEnd
  - yytestcase
  - parserDoubleLinkSelect
  - spanSet
  - spanExpr
  - spanBinaryExpr
  - spanUnaryPostfix
  - binaryToUnaryIfNull
  - spanUnaryPrefix
  - sqlite3ParserTrace
  - yyGrowStack
  - sqlite3ParserAlloc
  - yy_destructor
  - yy_pop_parser_stack
  - sqlite3ParserFree
  - sqlite3ParserStackPeak
  - yy_find_reduce_action
  - yyStackOverflow
  - yy_shift
  - yy_reduce
  - yy_parse_failed
  - yy_syntax_error
  - yy_accept
  - sqlite3Parser
  - charMap
  - charMap
  - keywordCode
  - sqlite3KeywordCode
  - IdChar
  - IdChar
  - sqlite3IsIdChar
  - sqlite3GetToken
  - sqlite3RunParser
  - IdChar
  - IdChar
  - sqlite3_complete
  - sqlite3_complete16
  - SQLITE_STDCALL::sqlite3_libversion
  - SQLITE_STDCALL::sqlite3_sourceid
  - sqlite3_libversion_number
  - sqlite3_threadsafe
  - sqlite3_initialize
  - sqlite3_shutdown
  - sqlite3_config
  - setupLookaside
  - sqlite3_db_mutex
  - sqlite3_db_release_memory
  - sqlite3_db_config
  - allSpaces
  - binCollFunc
  - nocaseCollatingFunc
  - sqlite3_last_insert_rowid
  - sqlite3_changes
  - sqlite3_total_changes
  - sqlite3CloseSavepoints
  - functionDestroy
  - disconnectAllVtab
  - connectionIsBusy
  - sqlite3Close
  - sqlite3_close
  - sqlite3_close_v2
  - sqlite3LeaveMutexAndCloseZombie
  - sqlite3RollbackAll
  - sqlite3ErrName
  - sqlite3ErrStr
  - sqliteDefaultBusyCallback
  - sqlite3InvokeBusyHandler
  - sqlite3_busy_handler
  - sqlite3_progress_handler
  - sqlite3_busy_timeout
  - sqlite3_interrupt
  - sqlite3CreateFunc
  - sqlite3_create_function
  - sqlite3_create_function_v2
  - sqlite3_create_function16
  - sqlite3_overload_function
  - SQLITE_STDCALL::sqlite3_trace
  - SQLITE_STDCALL::sqlite3_profile
  - SQLITE_STDCALL::sqlite3_commit_hook
  - SQLITE_STDCALL::sqlite3_update_hook
  - SQLITE_STDCALL::sqlite3_rollback_hook
  - sqlite3WalDefaultHook
  - sqlite3_wal_autocheckpoint
  - SQLITE_STDCALL::sqlite3_wal_hook
  - sqlite3_wal_checkpoint_v2
  - sqlite3_wal_checkpoint
  - sqlite3Checkpoint
  - sqlite3TempInMemory
  - SQLITE_STDCALL::sqlite3_errmsg
  - SQLITE_STDCALL::sqlite3_errmsg16
  - sqlite3_errcode
  - sqlite3_extended_errcode
  - SQLITE_STDCALL::sqlite3_errstr
  - createCollation
  - sqlite3_limit
  - sqlite3ParseUri
  - openDatabase
  - sqlite3_open
  - sqlite3_open_v2
  - sqlite3_open16
  - sqlite3_create_collation
  - sqlite3_create_collation_v2
  - sqlite3_create_collation16
  - sqlite3_collation_needed
  - sqlite3_collation_needed16
  - sqlite3_global_recover
  - sqlite3_get_autocommit
  - sqlite3CorruptError
  - sqlite3MisuseError
  - sqlite3CantopenError
  - sqlite3_thread_cleanup
  - sqlite3_table_column_metadata
  - sqlite3_sleep
  - sqlite3_extended_result_codes
  - sqlite3_file_control
  - sqlite3_test_control
  - SQLITE_STDCALL::sqlite3_uri_parameter
  - sqlite3_uri_boolean
  - sqlite3_uri_int64
  - sqlite3DbNameToBtree
  - SQLITE_STDCALL::sqlite3_db_filename
  - sqlite3_db_readonly
  - assertMutexHeld
  - checkListProperties
  - removeFromBlockedList
  - addToBlockedList
  - enterMutex
  - leaveMutex
  - sqlite3_unlock_notify
  - sqlite3ConnectionBlocked
  - sqlite3ConnectionUnlocked
  - sqlite3ConnectionClosed
  - fts3HashFirst
  - fts3HashNext
  - fts3HashData
  - fts3HashKey
  - fts3HashKeysize
  - fts3HashCount
  - SizeofArray
  - MIN
  - MAX
  - ALWAYS
  - NEVER
  - ALWAYS
  - NEVER
  - ALWAYS
  - NEVER
  - UNUSED_PARAMETER
  - TESTONLY
  - sqlite3Fts3DeferToken
  - sqlite3Fts3CacheDeferredDoclists
  - sqlite3Fts3DeferredTokenList
  - fts3GetVarint32
  - sqlite3Fts3Always
  - sqlite3Fts3Never
  - sqlite3Fts3PutVarint
  - GETVARINT_STEP
  - GETVARINT_INIT
  - sqlite3Fts3GetVarint
  - sqlite3Fts3GetVarint32
  - sqlite3Fts3VarintLen
  - sqlite3Fts3Dequote
  - fts3GetDeltaVarint
  - fts3GetReverseVarint
  - fts3DisconnectMethod
  - sqlite3Fts3ErrMsg
  - fts3DbExec
  - fts3DestroyMethod
  - fts3DeclareVtab
  - sqlite3Fts3CreateStatTable
  - fts3CreateTables
  - fts3DatabasePageSize
  - fts3IsSpecialColumn
  - fts3Appendf
  - fts3QuoteId
  - fts3ReadExprList
  - fts3WriteExprList
  - fts3GobbleInt
  - fts3PrefixParameter
  - fts3ContentColumns
  - fts3InitVtab
  - fts3ConnectMethod
  - fts3CreateMethod
  - fts3SetEstimatedRows
  - fts3BestIndexMethod
  - fts3OpenMethod
  - fts3CloseMethod
  - fts3CursorSeekStmt
  - fts3CursorSeek
  - fts3ScanInteriorNode
  - fts3SelectLeaf
  - fts3PutDeltaVarint
  - fts3PoslistCopy
  - fts3ColumnlistCopy
  - fts3ReadNextPos
  - fts3PutColNumber
  - fts3PoslistMerge
  - fts3PoslistPhraseMerge
  - fts3PoslistNearMerge
  - fts3GetDeltaVarint3
  - fts3PutDeltaVarint3
  - DOCID_CMP
  - fts3DoclistOrMerge
  - fts3DoclistPhraseMerge
  - sqlite3Fts3FirstFilter
  - fts3TermSelectFinishMerge
  - fts3TermSelectMerge
  - fts3SegReaderCursorAppend
  - fts3SegReaderCursor
  - sqlite3Fts3SegReaderCursor
  - fts3SegReaderCursorAddZero
  - fts3TermSegReaderCursor
  - fts3SegReaderCursorFree
  - fts3TermSelect
  - fts3DoclistCountDocids
  - fts3NextMethod
  - fts3DocidRange
  - fts3FilterMethod
  - fts3EofMethod
  - fts3RowidMethod
  - fts3ColumnMethod
  - fts3UpdateMethod
  - fts3SyncMethod
  - fts3SetHasStat
  - fts3BeginMethod
  - fts3CommitMethod
  - fts3RollbackMethod
  - fts3ReversePoslist
  - fts3FunctionArg
  - fts3SnippetFunc
  - fts3OffsetsFunc
  - fts3OptimizeFunc
  - fts3MatchinfoFunc
  - fts3FindFunctionMethod
  - fts3RenameMethod
  - fts3SavepointMethod
  - fts3ReleaseMethod
  - fts3RollbackToMethod
  - hashDestroy
  - sqlite3Fts3Init
  - fts3EvalAllocateReaders
  - fts3EvalPhraseMergeToken
  - fts3EvalPhraseLoad
  - fts3EvalDeferredPhrase
  - fts3EvalPhraseStart
  - sqlite3Fts3DoclistPrev
  - sqlite3Fts3DoclistNext
  - fts3EvalDlPhraseNext
  - incrPhraseTokenNext
  - fts3EvalIncrPhraseNext
  - fts3EvalPhraseNext
  - fts3EvalStartReaders
  - fts3EvalTokenCosts
  - fts3EvalAverageDocsize
  - fts3EvalSelectDeferred
  - fts3EvalStart
  - fts3EvalInvalidatePoslist
  - fts3EvalNearTrim
  - fts3EvalNextRow
  - fts3EvalNearTest
  - fts3EvalTestExpr
  - sqlite3Fts3EvalTestDeferred
  - fts3EvalNext
  - fts3EvalRestart
  - fts3EvalUpdateCounts
  - fts3EvalGatherStats
  - sqlite3Fts3EvalPhraseStats
  - sqlite3Fts3EvalPhrasePoslist
  - sqlite3Fts3EvalPhraseCleanup
  - sqlite3Fts3Corrupt
  - sqlite3_fts3_init
  - fts3auxConnectMethod
  - fts3auxDisconnectMethod
  - fts3auxBestIndexMethod
  - fts3auxOpenMethod
  - fts3auxCloseMethod
  - fts3auxGrowStatArray
  - fts3auxNextMethod
  - fts3auxFilterMethod
  - fts3auxEofMethod
  - fts3auxColumnMethod
  - fts3auxRowidMethod
  - sqlite3Fts3InitAux
  - fts3isspace
  - fts3MallocZero
  - sqlite3Fts3OpenTokenizer
  - getNextToken
  - fts3ReallocOrFree
  - getNextString
  - getNextNode
  - opPrecedence
  - insertBinaryOperator
  - fts3ExprParse
  - fts3ExprCheckDepth
  - fts3ExprBalance
  - fts3ExprParseUnbalanced
  - sqlite3Fts3ExprParse
  - fts3FreeExprNode
  - sqlite3Fts3ExprFree
  - queryTestTokenizer
  - exprToString
  - fts3ExprTest
  - sqlite3Fts3ExprInitTestInterface
  - fts3HashMalloc
  - fts3HashFree
  - sqlite3Fts3HashInit
  - sqlite3Fts3HashClear
  - fts3StrHash
  - fts3StrCompare
  - fts3BinHash
  - fts3BinCompare
  - (*ftsHashFunction(int keyClass))(const void*,int)
  - (*ftsCompareFunction(int keyClass))(const void*,int,const void*,int)
  - fts3HashInsertElement
  - fts3Rehash
  - fts3FindElementByHash
  - fts3RemoveElementByHash
  - "Fts3HashElem *sqlite3Fts3HashFindElem(\n  const Fts3Hash *pH, \n  const void
    *pKey, \n  int nKey\n)"
  - sqlite3Fts3HashFind
  - sqlite3Fts3HashInsert
  - porterCreate
  - porterDestroy
  - porterOpen
  - porterClose
  - isConsonant
  - isVowel
  - m_gt_0
  - m_eq_1
  - m_gt_1
  - hasVowel
  - doubleConsonant
  - star_oh
  - stem
  - copy_stemmer
  - porter_stemmer
  - isDelim
  - porterNext
  - sqlite3Fts3PorterTokenizerModule
  - scalarFunc
  - sqlite3Fts3IsIdChar
  - sqlite3Fts3NextToken
  - sqlite3Fts3InitTokenizer
  - testFunc
  - registerTokenizer
  - queryTokenizer
  - intTestFunc
  - sqlite3Fts3InitHashTable
  - simpleDelim
  - fts3_isalnum
  - simpleCreate
  - simpleDestroy
  - simpleOpen
  - simpleClose
  - simpleNext
  - sqlite3Fts3SimpleTokenizerModule
  - fts3tokQueryTokenizer
  - fts3tokDequoteArray
  - fts3tokConnectMethod
  - fts3tokDisconnectMethod
  - fts3tokBestIndexMethod
  - fts3tokOpenMethod
  - fts3tokResetCursor
  - fts3tokCloseMethod
  - fts3tokNextMethod
  - fts3tokFilterMethod
  - fts3tokEofMethod
  - fts3tokColumnMethod
  - fts3tokRowidMethod
  - sqlite3Fts3InitTok
  - fts3LogMerge
  - fts3SegReaderIsPending
  - fts3SegReaderIsRootOnly
  - fts3SqlStmt
  - fts3SelectDocsize
  - sqlite3Fts3SelectDoctotal
  - sqlite3Fts3SelectDocsize
  - fts3SqlExec
  - fts3Writelock
  - getAbsoluteLevel
  - sqlite3Fts3AllSegdirs
  - fts3PendingListAppendVarint
  - fts3PendingListAppend
  - fts3PendingListDelete
  - fts3PendingTermsAddOne
  - fts3PendingTermsAdd
  - fts3PendingTermsDocid
  - sqlite3Fts3PendingTermsClear
  - fts3InsertTerms
  - fts3InsertData
  - fts3DeleteAll
  - langidFromSelect
  - fts3DeleteTerms
  - fts3AllocateSegdirIdx
  - sqlite3Fts3ReadBlock
  - sqlite3Fts3SegmentsClose
  - fts3SegReaderIncrRead
  - fts3SegReaderRequire
  - fts3SegReaderSetEof
  - fts3SegReaderNext
  - fts3SegReaderFirstDocid
  - fts3SegReaderNextDocid
  - sqlite3Fts3MsrOvfl
  - sqlite3Fts3SegReaderFree
  - sqlite3Fts3SegReaderNew
  - SQLITE_CDECL::fts3CompareElemByTerm
  - sqlite3Fts3SegReaderPending
  - fts3SegReaderCmp
  - fts3SegReaderDoclistCmp
  - fts3SegReaderDoclistCmpRev
  - fts3SegReaderTermCmp
  - fts3SegReaderSort
  - fts3WriteSegment
  - sqlite3Fts3MaxLevel
  - fts3WriteSegdir
  - fts3PrefixCompress
  - fts3NodeAddTerm
  - fts3TreeFinishNode
  - fts3NodeWrite
  - fts3NodeFree
  - fts3SegWriterAdd
  - fts3SegWriterFlush
  - fts3SegWriterFree
  - fts3IsEmpty
  - fts3SegmentMaxLevel
  - fts3SegmentIsMaxLevel
  - fts3DeleteSegment
  - fts3DeleteSegdir
  - fts3ColumnFilter
  - fts3MsrBufferData
  - sqlite3Fts3MsrIncrNext
  - fts3SegReaderStart
  - sqlite3Fts3SegReaderStart
  - sqlite3Fts3MsrIncrStart
  - sqlite3Fts3MsrIncrRestart
  - sqlite3Fts3SegReaderStep
  - sqlite3Fts3SegReaderFinish
  - fts3ReadEndBlockField
  - fts3PromoteSegments
  - fts3SegmentMerge
  - sqlite3Fts3PendingTermsFlush
  - fts3EncodeIntArray
  - fts3DecodeIntArray
  - fts3InsertDocsize
  - fts3UpdateDocTotals
  - fts3DoOptimize
  - fts3DoRebuild
  - fts3IncrmergeCsr
  - blobGrowBuffer
  - nodeReaderNext
  - nodeReaderRelease
  - nodeReaderInit
  - fts3IncrmergePush
  - fts3AppendToNode
  - fts3IncrmergeAppend
  - fts3IncrmergeRelease
  - fts3TermCmp
  - fts3IsAppendable
  - fts3IncrmergeLoad
  - fts3IncrmergeOutputIdx
  - fts3IncrmergeWriter
  - fts3RemoveSegdirEntry
  - fts3RepackSegdirLevel
  - fts3StartNode
  - fts3TruncateNode
  - fts3TruncateSegment
  - fts3IncrmergeChomp
  - fts3IncrmergeHintStore
  - fts3IncrmergeHintLoad
  - fts3IncrmergeHintPush
  - fts3IncrmergeHintPop
  - sqlite3Fts3Incrmerge
  - fts3Getint
  - fts3DoIncrmerge
  - fts3DoAutoincrmerge
  - fts3ChecksumEntry
  - fts3ChecksumIndex
  - fts3IntegrityCheck
  - fts3DoIntegrityCheck
  - fts3SpecialInsert
  - sqlite3Fts3FreeDeferredDoclists
  - sqlite3Fts3FreeDeferredTokens
  - sqlite3Fts3CacheDeferredDoclists
  - sqlite3Fts3DeferredTokenList
  - sqlite3Fts3DeferToken
  - fts3DeleteByRowid
  - sqlite3Fts3UpdateMethod
  - sqlite3Fts3Optimize
  - fts3MIBufferNew
  - fts3MIBufferFree
  - (*fts3MIBufferAlloc(MatchinfoBuffer *p, u32 **paOut))(void*)
  - fts3MIBufferSetGlobal
  - sqlite3Fts3MIBufferFree
  - fts3GetDeltaPosition
  - fts3ExprIterate2
  - fts3ExprIterate
  - fts3ExprLoadDoclistsCb
  - fts3ExprLoadDoclists
  - fts3ExprPhraseCountCb
  - fts3ExprPhraseCount
  - fts3SnippetAdvance
  - fts3SnippetNextCandidate
  - fts3SnippetDetails
  - fts3SnippetFindPositions
  - fts3BestSnippet
  - fts3StringAppend
  - fts3SnippetShift
  - fts3SnippetText
  - fts3ColumnlistCount
  - fts3ExprLHits
  - fts3ExprLHitGather
  - fts3ExprGlobalHitsCb
  - fts3ExprLocalHitsCb
  - fts3MatchinfoCheck
  - fts3MatchinfoSize
  - fts3MatchinfoSelectDoctotal
  - fts3MatchinfoLcsCb
  - fts3LcsIteratorAdvance
  - fts3MatchinfoLcs
  - fts3MatchinfoValues
  - fts3GetMatchinfo
  - sqlite3Fts3Snippet
  - fts3ExprTermOffsetInit
  - sqlite3Fts3Offsets
  - sqlite3Fts3Matchinfo
  - READ_UTF8
  - WRITE_UTF8
  - unicodeDestroy
  - unicodeAddExceptions
  - unicodeIsException
  - unicodeIsAlnum
  - unicodeCreate
  - unicodeOpen
  - unicodeClose
  - unicodeNext
  - sqlite3Fts3UnicodeTokenizer
  - sqlite3FtsUnicodeIsalnum
  - remove_diacritic
  - sqlite3FtsUnicodeIsdiacritic
  - sqlite3FtsUnicodeFold
  - UNUSED_PARAMETER
  - RTREE_MINCELLS
  - RTREE_REINSERT
  - RTREE_OF_CURSOR
  - DCOORD
  - DCOORD
  - NCELL
  - MAX
  - MIN
  - readInt16
  - readCoord
  - readInt64
  - writeInt16
  - writeCoord
  - writeInt64
  - nodeReference
  - nodeZero
  - nodeHash
  - nodeHashLookup
  - nodeHashInsert
  - nodeHashDelete
  - nodeNew
  - nodeAcquire
  - nodeOverwriteCell
  - nodeDeleteCell
  - nodeInsertCell
  - nodeWrite
  - nodeRelease
  - nodeGetRowid
  - nodeGetCoord
  - nodeGetCell
  - rtreeCreate
  - rtreeConnect
  - rtreeReference
  - rtreeRelease
  - rtreeDisconnect
  - rtreeDestroy
  - rtreeOpen
  - freeCursorConstraints
  - rtreeClose
  - rtreeEof
  - RTREE_DECODE_COORD
  - RTREE_DECODE_COORD
  - rtreeCallbackConstraint
  - rtreeNonleafConstraint
  - rtreeLeafConstraint
  - nodeRowidIndex
  - nodeParentIndex
  - rtreeSearchPointCompare
  - rtreeSearchPointSwap
  - rtreeSearchPointFirst
  - rtreeNodeOfFirstSearchPoint
  - rtreeEnqueue
  - rtreeSearchPointNew
  - tracePoint
  - traceQueue
  - RTREE_QUEUE_TRACE
  - rtreeSearchPointPop
  - rtreeStepToLeaf
  - rtreeNext
  - rtreeRowid
  - rtreeColumn
  - findLeafNode
  - deserializeGeometry
  - rtreeFilter
  - setEstimatedRows
  - rtreeBestIndex
  - cellArea
  - cellMargin
  - cellUnion
  - cellContains
  - cellGrowth
  - cellOverlap
  - ChooseLeaf
  - AdjustTree
  - rowidWrite
  - parentWrite
  - SortByDistance
  - SortByDimension
  - splitNodeStartree
  - updateMapping
  - SplitNode
  - fixLeafParent
  - removeNode
  - fixBoundingBox
  - deleteCell
  - Reinsert
  - rtreeInsertCell
  - reinsertNodeContent
  - newRowid
  - rtreeDeleteRowid
  - rtreeValueDown
  - rtreeValueUp
  - rtreeUpdate
  - rtreeRename
  - rtreeQueryStat1
  - rtreeSqlInit
  - getIntFromStmt
  - getNodeSize
  - rtreeInit
  - rtreenode
  - rtreedepth
  - sqlite3RtreeInit
  - rtreeFreeCallback
  - rtreeMatchArgFree
  - geomCallback
  - sqlite3_rtree_geometry_callback
  - sqlite3_rtree_query_callback
  - sqlite3_rtree_init
  - xFree
  - icuLikeCompare
  - icuLikeFunc
  - icuFunctionError
  - icuRegexpDelete
  - icuRegexpFunc
  - icuCaseFunc16
  - icuCollationDel
  - icuCollationColl
  - icuLoadCollation
  - sqlite3IcuInit
  - sqlite3_icu_init
  - icuCreate
  - icuDestroy
  - icuOpen
  - icuClose
  - icuNext
  - sqlite3Fts3IcuTokenizerModule
  - SWAP
  - prepareAndCollectError
  - resetAndCollectError
  - prepareFreeAndCollectError
  - rbuObjIterFreeCols
  - rbuObjIterClearStatements
  - rbuObjIterFinalize
  - rbuObjIterNext
  - rbuObjIterFirst
  - rbuMPrintf
  - rbuMPrintfExec
  - rbuMalloc
  - rbuAllocateIterArrays
  - rbuStrndup
  - rbuFinalize
  - rbuTableType
  - rbuObjIterCacheIndexedCols
  - rbuObjIterCacheTableInfo
  - rbuObjIterGetCollist
  - rbuObjIterGetIndexCols
  - rbuObjIterGetOldlist
  - rbuObjIterGetWhere
  - rbuBadControlError
  - rbuObjIterGetSetlist
  - rbuObjIterGetBindlist
  - rbuWithoutRowidPK
  - rbuCreateImposterTable2
  - rbuCreateImposterTable
  - rbuObjIterPrepareTmpInsert
  - rbuTmpInsertFunc
  - rbuObjIterPrepareAll
  - rbuGetUpdateStmt
  - rbuOpenDbhandle
  - rbuOpenDatabase
  - rbuFileSuffix3
  - rbuShmChecksum
  - rbuSetupCheckpoint
  - rbuCaptureWalRead
  - rbuCaptureDbWrite
  - rbuCheckpointFrame
  - rbuLockDatabase
  - rbuMoveOalFile
  - rbuStepType
  - assertColumnName
  - rbuStep
  - rbuIncrSchemaCookie
  - rbuSaveState
  - sqlite3rbu_step
  - rbuFreeState
  - rbuLoadState
  - rbuStrCompare
  - rbuSetupOal
  - rbuDeleteOalFile
  - rbuCreateVfs
  - rbuDeleteVfs
  - sqlite3rbu_open
  - SQLITE_STDCALL::sqlite3rbu_db
  - rbuEditErrmsg
  - sqlite3rbu_close
  - sqlite3rbu_progress
  - rbuUnlockShm
  - rbuVfsClose
  - rbuGetU32
  - rbuVfsRead
  - rbuVfsWrite
  - rbuVfsTruncate
  - rbuVfsSync
  - rbuVfsFileSize
  - rbuVfsLock
  - rbuVfsUnlock
  - rbuVfsCheckReservedLock
  - rbuVfsFileControl
  - rbuVfsSectorSize
  - rbuVfsDeviceCharacteristics
  - rbuVfsShmLock
  - rbuVfsShmMap
  - rbuVfsShmBarrier
  - rbuVfsShmUnmap
  - rbuFindMaindb
  - rbuVfsOpen
  - rbuVfsDelete
  - rbuVfsAccess
  - rbuVfsFullPathname
  - rbuVfsDlOpen
  - rbuVfsDlError
  - "(*rbuVfsDlSym(\n  sqlite3_vfs *pVfs, \n  void *pArg, \n  const char *zSym\n))(void)"
  - rbuVfsDlClose
  - rbuVfsRandomness
  - rbuVfsSleep
  - rbuVfsCurrentTime
  - rbuVfsGetLastError
  - sqlite3rbu_destroy_vfs
  - sqlite3rbu_create_vfs
  - get2byte
  - statConnect
  - statDisconnect
  - statBestIndex
  - statOpen
  - statClearPage
  - statResetCsr
  - statClose
  - getLocalPayload
  - statDecodePage
  - statSizeAndOffset
  - statNext
  - statEof
  - statFilter
  - statColumn
  - statRowid
  - sqlite3DbstatRegister
  - sqlite3DbstatRegister
  source_file: /src/sleuthkit/tsk/auto/sqlite3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SQLITE_CORE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_AMALGAMATION
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_PRIVATE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: static
    - item_type: preproc_def
      name: OS_VXWORKS
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_OTHER
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_HOMEGROWN_RECURSIVE_MUTEX
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OMIT_LOAD_EXTENSION
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ENABLE_LOCKING_STYLE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_UTIME
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_VXWORKS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _LARGE_FILE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '64'
    - item_type: preproc_def
      name: _LARGEFILE_SOURCE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GCC_VERSION
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (__GNUC__*1000000+__GNUC_MINOR__*1000+__GNUC_PATCHLEVEL__)
    - item_type: preproc_def
      name: GCC_VERSION
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_EXTERN
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: extern
    - item_type: preproc_def
      name: SQLITE_VERSION
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"3.8.11.1"'
    - item_type: preproc_def
      name: SQLITE_VERSION_NUMBER
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3008011'
    - item_type: preproc_def
      name: SQLITE_SOURCE_ID
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f"'
    - item_type: preproc_def
      name: double
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_int64
    - item_type: preproc_def
      name: SQLITE_OK
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_ERROR
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_INTERNAL
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_PERM
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: SQLITE_ABORT
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: SQLITE_BUSY
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5   '
    - item_type: preproc_def
      name: SQLITE_LOCKED
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6   '
    - item_type: preproc_def
      name: SQLITE_NOMEM
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7   '
    - item_type: preproc_def
      name: SQLITE_READONLY
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8   '
    - item_type: preproc_def
      name: SQLITE_INTERRUPT
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9   '
    - item_type: preproc_def
      name: SQLITE_IOERR
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_CORRUPT
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11   '
    - item_type: preproc_def
      name: SQLITE_NOTFOUND
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12   '
    - item_type: preproc_def
      name: SQLITE_FULL
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13   '
    - item_type: preproc_def
      name: SQLITE_CANTOPEN
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14   '
    - item_type: preproc_def
      name: SQLITE_PROTOCOL
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15   '
    - item_type: preproc_def
      name: SQLITE_EMPTY
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16   '
    - item_type: preproc_def
      name: SQLITE_SCHEMA
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17   '
    - item_type: preproc_def
      name: SQLITE_TOOBIG
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18   '
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19   '
    - item_type: preproc_def
      name: SQLITE_MISMATCH
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20   '
    - item_type: preproc_def
      name: SQLITE_MISUSE
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21   '
    - item_type: preproc_def
      name: SQLITE_NOLFS
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22   '
    - item_type: preproc_def
      name: SQLITE_AUTH
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23   '
    - item_type: preproc_def
      name: SQLITE_FORMAT
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24   '
    - item_type: preproc_def
      name: SQLITE_RANGE
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25   '
    - item_type: preproc_def
      name: SQLITE_NOTADB
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26   '
    - item_type: preproc_def
      name: SQLITE_NOTICE
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27   '
    - item_type: preproc_def
      name: SQLITE_WARNING
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28   '
    - item_type: preproc_def
      name: SQLITE_ROW
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100  '
    - item_type: preproc_def
      name: SQLITE_DONE
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '101  '
    - item_type: preproc_def
      name: SQLITE_IOERR_READ
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (1<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHORT_READ
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (2<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_WRITE
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (3<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_FSYNC
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (4<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DIR_FSYNC
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (5<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_TRUNCATE
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (6<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_FSTAT
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (7<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_UNLOCK
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (8<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_RDLOCK
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (9<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DELETE
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (10<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_BLOCKED
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (11<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_NOMEM
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (12<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_ACCESS
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (13<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CHECKRESERVEDLOCK
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (14<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_LOCK
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (15<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CLOSE
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (16<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DIR_CLOSE
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (17<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMOPEN
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (18<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMSIZE
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (19<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMLOCK
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (20<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMMAP
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (21<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SEEK
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (22<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DELETE_NOENT
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (23<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_MMAP
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (24<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_GETTEMPPATH
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (25<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CONVPATH
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_IOERR | (26<<8))
    - item_type: preproc_def
      name: SQLITE_LOCKED_SHAREDCACHE
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_LOCKED |  (1<<8))
    - item_type: preproc_def
      name: SQLITE_BUSY_RECOVERY
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_BUSY   |  (1<<8))
    - item_type: preproc_def
      name: SQLITE_BUSY_SNAPSHOT
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_BUSY   |  (2<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_NOTEMPDIR
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CANTOPEN | (1<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_ISDIR
      pos:
        line_end: 698
        line_start: 697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CANTOPEN | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_FULLPATH
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CANTOPEN | (3<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_CONVPATH
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CANTOPEN | (4<<8))
    - item_type: preproc_def
      name: SQLITE_CORRUPT_VTAB
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CORRUPT | (1<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_RECOVERY
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_READONLY | (1<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_CANTLOCK
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_READONLY | (2<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_ROLLBACK
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_READONLY | (3<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_DBMOVED
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_READONLY | (4<<8))
    - item_type: preproc_def
      name: SQLITE_ABORT_ROLLBACK
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_ABORT | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_CHECK
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (1<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_COMMITHOOK
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_FOREIGNKEY
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (3<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_FUNCTION
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (4<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_NOTNULL
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (5<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_PRIMARYKEY
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (6<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_TRIGGER
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (7<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_UNIQUE
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (8<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_VTAB
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT | (9<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_ROWID
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_CONSTRAINT |(10<<8))
    - item_type: preproc_def
      name: SQLITE_NOTICE_RECOVER_WAL
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_NOTICE | (1<<8))
    - item_type: preproc_def
      name: SQLITE_NOTICE_RECOVER_ROLLBACK
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_NOTICE | (2<<8))
    - item_type: preproc_def
      name: SQLITE_WARNING_AUTOINDEX
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_WARNING | (1<<8))
    - item_type: preproc_def
      name: SQLITE_AUTH_USER
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_AUTH | (1<<8))
    - item_type: preproc_def
      name: SQLITE_OPEN_READONLY
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: SQLITE_OPEN_READWRITE
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: SQLITE_OPEN_CREATE
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: SQLITE_OPEN_DELETEONCLOSE
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: SQLITE_OPEN_EXCLUSIVE
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: SQLITE_OPEN_AUTOPROXY
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: SQLITE_OPEN_URI
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MEMORY
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MAIN_DB
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TEMP_DB
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TRANSIENT_DB
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MAIN_JOURNAL
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TEMP_JOURNAL
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_SUBJOURNAL
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MASTER_JOURNAL
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_NOMUTEX
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_FULLMUTEX
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_SHAREDCACHE
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_PRIVATECACHE
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_WAL
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC512
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC1K
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC2K
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC4K
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC8K
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC16K
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC32K
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC64K
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: SQLITE_IOCAP_SAFE_APPEND
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: SQLITE_IOCAP_SEQUENTIAL
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: SQLITE_IOCAP_POWERSAFE_OVERWRITE
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: SQLITE_IOCAP_IMMUTABLE
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: SQLITE_LOCK_NONE
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_LOCK_SHARED
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_LOCK_RESERVED
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_LOCK_PENDING
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_LOCK_EXCLUSIVE
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SYNC_NORMAL
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00002'
    - item_type: preproc_def
      name: SQLITE_SYNC_FULL
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00003'
    - item_type: preproc_def
      name: SQLITE_SYNC_DATAONLY
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00010'
    - item_type: preproc_def
      name: SQLITE_FCNTL_LOCKSTATE
      pos:
        line_end: 1190
        line_start: 1189
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FCNTL_GET_LOCKPROXYFILE
      pos:
        line_end: 1191
        line_start: 1190
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SET_LOCKPROXYFILE
      pos:
        line_end: 1192
        line_start: 1191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_FCNTL_LAST_ERRNO
      pos:
        line_end: 1193
        line_start: 1192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SIZE_HINT
      pos:
        line_end: 1194
        line_start: 1193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_FCNTL_CHUNK_SIZE
      pos:
        line_end: 1195
        line_start: 1194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_FCNTL_FILE_POINTER
      pos:
        line_end: 1196
        line_start: 1195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SYNC_OMITTED
      pos:
        line_end: 1197
        line_start: 1196
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WIN32_AV_RETRY
      pos:
        line_end: 1198
        line_start: 1197
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_FCNTL_PERSIST_WAL
      pos:
        line_end: 1199
        line_start: 1198
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_FCNTL_OVERWRITE
      pos:
        line_end: 1200
        line_start: 1199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_FCNTL_VFSNAME
      pos:
        line_end: 1201
        line_start: 1200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SQLITE_FCNTL_POWERSAFE_OVERWRITE
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13'
    - item_type: preproc_def
      name: SQLITE_FCNTL_PRAGMA
      pos:
        line_end: 1203
        line_start: 1202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: SQLITE_FCNTL_BUSYHANDLER
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: SQLITE_FCNTL_TEMPFILENAME
      pos:
        line_end: 1205
        line_start: 1204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_FCNTL_MMAP_SIZE
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: SQLITE_FCNTL_TRACE
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19'
    - item_type: preproc_def
      name: SQLITE_FCNTL_HAS_MOVED
      pos:
        line_end: 1208
        line_start: 1207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SYNC
      pos:
        line_end: 1209
        line_start: 1208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21'
    - item_type: preproc_def
      name: SQLITE_FCNTL_COMMIT_PHASETWO
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WIN32_SET_HANDLE
      pos:
        line_end: 1211
        line_start: 1210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WAL_BLOCK
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: SQLITE_FCNTL_ZIPVFS
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_FCNTL_RBU
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26'
    - item_type: preproc_def
      name: SQLITE_GET_LOCKPROXYFILE
      pos:
        line_end: 1217
        line_start: 1216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_FCNTL_GET_LOCKPROXYFILE
    - item_type: preproc_def
      name: SQLITE_SET_LOCKPROXYFILE
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_FCNTL_SET_LOCKPROXYFILE
    - item_type: preproc_def
      name: SQLITE_LAST_ERRNO
      pos:
        line_end: 1219
        line_start: 1218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_FCNTL_LAST_ERRNO
    - item_type: preproc_def
      name: SQLITE_ACCESS_EXISTS
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_ACCESS_READWRITE
      pos:
        line_end: 1453
        line_start: 1452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_ACCESS_READ
      pos:
        line_end: 1454
        line_start: 1453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_SHM_UNLOCK
      pos:
        line_end: 1478
        line_start: 1477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SHM_LOCK
      pos:
        line_end: 1479
        line_start: 1478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_SHM_SHARED
      pos:
        line_end: 1480
        line_start: 1479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SHM_EXCLUSIVE
      pos:
        line_end: 1481
        line_start: 1480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_SHM_NLOCK
      pos:
        line_end: 1491
        line_start: 1490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_CONFIG_SINGLETHREAD
      pos:
        line_end: 2014
        line_start: 2013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MULTITHREAD
      pos:
        line_end: 2015
        line_start: 2014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SERIALIZED
      pos:
        line_end: 2016
        line_start: 2015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MALLOC
      pos:
        line_end: 2017
        line_start: 2016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETMALLOC
      pos:
        line_end: 2018
        line_start: 2017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SCRATCH
      pos:
        line_end: 2019
        line_start: 2018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PAGECACHE
      pos:
        line_end: 2020
        line_start: 2019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_HEAP
      pos:
        line_end: 2021
        line_start: 2020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MEMSTATUS
      pos:
        line_end: 2022
        line_start: 2021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MUTEX
      pos:
        line_end: 2023
        line_start: 2022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETMUTEX
      pos:
        line_end: 2024
        line_start: 2023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_LOOKASIDE
      pos:
        line_end: 2026
        line_start: 2025
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE
      pos:
        line_end: 2027
        line_start: 2026
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETPCACHE
      pos:
        line_end: 2028
        line_start: 2027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_LOG
      pos:
        line_end: 2029
        line_start: 2028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_URI
      pos:
        line_end: 2030
        line_start: 2029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE2
      pos:
        line_end: 2031
        line_start: 2030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETPCACHE2
      pos:
        line_end: 2032
        line_start: 2031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_COVERING_INDEX_SCAN
      pos:
        line_end: 2033
        line_start: 2032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SQLLOG
      pos:
        line_end: 2034
        line_start: 2033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MMAP_SIZE
      pos:
        line_end: 2035
        line_start: 2034
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_WIN32_HEAPSIZE
      pos:
        line_end: 2036
        line_start: 2035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE_HDRSZ
      pos:
        line_end: 2037
        line_start: 2036
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PMASZ
      pos:
        line_end: 2038
        line_start: 2037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_LOOKASIDE
      pos:
        line_end: 2098
        line_start: 2097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1001  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_ENABLE_FKEY
      pos:
        line_end: 2099
        line_start: 2098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1002  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_ENABLE_TRIGGER
      pos:
        line_end: 2100
        line_start: 2099
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1003  '
    - item_type: preproc_def
      name: SQLITE_DENY
      pos:
        line_end: 2837
        line_start: 2836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_IGNORE
      pos:
        line_end: 2838
        line_start: 2837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_CREATE_INDEX
      pos:
        line_end: 2860
        line_start: 2859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TABLE
      pos:
        line_end: 2861
        line_start: 2860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_INDEX
      pos:
        line_end: 2862
        line_start: 2861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_TABLE
      pos:
        line_end: 2863
        line_start: 2862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_TRIGGER
      pos:
        line_end: 2864
        line_start: 2863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_VIEW
      pos:
        line_end: 2865
        line_start: 2864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TRIGGER
      pos:
        line_end: 2866
        line_start: 2865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7   '
    - item_type: preproc_def
      name: SQLITE_CREATE_VIEW
      pos:
        line_end: 2867
        line_start: 2866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8   '
    - item_type: preproc_def
      name: SQLITE_DELETE
      pos:
        line_end: 2868
        line_start: 2867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9   '
    - item_type: preproc_def
      name: SQLITE_DROP_INDEX
      pos:
        line_end: 2869
        line_start: 2868
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_DROP_TABLE
      pos:
        line_end: 2870
        line_start: 2869
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_INDEX
      pos:
        line_end: 2871
        line_start: 2870
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_TABLE
      pos:
        line_end: 2872
        line_start: 2871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_TRIGGER
      pos:
        line_end: 2873
        line_start: 2872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_VIEW
      pos:
        line_end: 2874
        line_start: 2873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15   '
    - item_type: preproc_def
      name: SQLITE_DROP_TRIGGER
      pos:
        line_end: 2875
        line_start: 2874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16   '
    - item_type: preproc_def
      name: SQLITE_DROP_VIEW
      pos:
        line_end: 2876
        line_start: 2875
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17   '
    - item_type: preproc_def
      name: SQLITE_INSERT
      pos:
        line_end: 2877
        line_start: 2876
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18   '
    - item_type: preproc_def
      name: SQLITE_PRAGMA
      pos:
        line_end: 2878
        line_start: 2877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19   '
    - item_type: preproc_def
      name: SQLITE_READ
      pos:
        line_end: 2879
        line_start: 2878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20   '
    - item_type: preproc_def
      name: SQLITE_SELECT
      pos:
        line_end: 2880
        line_start: 2879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21   '
    - item_type: preproc_def
      name: SQLITE_TRANSACTION
      pos:
        line_end: 2881
        line_start: 2880
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22   '
    - item_type: preproc_def
      name: SQLITE_UPDATE
      pos:
        line_end: 2882
        line_start: 2881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23   '
    - item_type: preproc_def
      name: SQLITE_ATTACH
      pos:
        line_end: 2883
        line_start: 2882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24   '
    - item_type: preproc_def
      name: SQLITE_DETACH
      pos:
        line_end: 2884
        line_start: 2883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25   '
    - item_type: preproc_def
      name: SQLITE_ALTER_TABLE
      pos:
        line_end: 2885
        line_start: 2884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26   '
    - item_type: preproc_def
      name: SQLITE_REINDEX
      pos:
        line_end: 2886
        line_start: 2885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27   '
    - item_type: preproc_def
      name: SQLITE_ANALYZE
      pos:
        line_end: 2887
        line_start: 2886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28   '
    - item_type: preproc_def
      name: SQLITE_CREATE_VTABLE
      pos:
        line_end: 2888
        line_start: 2887
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '29   '
    - item_type: preproc_def
      name: SQLITE_DROP_VTABLE
      pos:
        line_end: 2889
        line_start: 2888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30   '
    - item_type: preproc_def
      name: SQLITE_FUNCTION
      pos:
        line_end: 2890
        line_start: 2889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '31   '
    - item_type: preproc_def
      name: SQLITE_SAVEPOINT
      pos:
        line_end: 2891
        line_start: 2890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32   '
    - item_type: preproc_def
      name: SQLITE_COPY
      pos:
        line_end: 2892
        line_start: 2891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_RECURSIVE
      pos:
        line_end: 2893
        line_start: 2892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '33   '
    - item_type: preproc_def
      name: SQLITE_LIMIT_LENGTH
      pos:
        line_end: 3419
        line_start: 3418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_LIMIT_SQL_LENGTH
      pos:
        line_end: 3420
        line_start: 3419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_LIMIT_COLUMN
      pos:
        line_end: 3421
        line_start: 3420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_LIMIT_EXPR_DEPTH
      pos:
        line_end: 3422
        line_start: 3421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_LIMIT_COMPOUND_SELECT
      pos:
        line_end: 3423
        line_start: 3422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_LIMIT_VDBE_OP
      pos:
        line_end: 3424
        line_start: 3423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_LIMIT_FUNCTION_ARG
      pos:
        line_end: 3425
        line_start: 3424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_LIMIT_ATTACHED
      pos:
        line_end: 3426
        line_start: 3425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_LIMIT_LIKE_PATTERN_LENGTH
      pos:
        line_end: 3427
        line_start: 3426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_LIMIT_VARIABLE_NUMBER
      pos:
        line_end: 3428
        line_start: 3427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_LIMIT_TRIGGER_DEPTH
      pos:
        line_end: 3429
        line_start: 3428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_LIMIT_WORKER_THREADS
      pos:
        line_end: 3430
        line_start: 3429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_INTEGER
      pos:
        line_end: 4107
        line_start: 4106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FLOAT
      pos:
        line_end: 4108
        line_start: 4107
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_BLOB
      pos:
        line_end: 4109
        line_start: 4108
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_NULL
      pos:
        line_end: 4110
        line_start: 4109
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TEXT
      pos:
        line_end: 4114
        line_start: 4113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE3_TEXT
      pos:
        line_end: 4116
        line_start: 4115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_UTF8
      pos:
        line_end: 4476
        line_start: 4475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: SQLITE_UTF16LE
      pos:
        line_end: 4477
        line_start: 4476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: SQLITE_UTF16BE
      pos:
        line_end: 4478
        line_start: 4477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3    '
    - item_type: preproc_def
      name: SQLITE_UTF16
      pos:
        line_end: 4479
        line_start: 4478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4    '
    - item_type: preproc_def
      name: SQLITE_ANY
      pos:
        line_end: 4480
        line_start: 4479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5    '
    - item_type: preproc_def
      name: SQLITE_UTF16_ALIGNED
      pos:
        line_end: 4481
        line_start: 4480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8    '
    - item_type: preproc_def
      name: SQLITE_DETERMINISTIC
      pos:
        line_end: 4491
        line_start: 4490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x800'
    - item_type: preproc_def
      name: SQLITE_STATIC
      pos:
        line_end: 4731
        line_start: 4730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite3_destructor_type)0)
    - item_type: preproc_def
      name: SQLITE_TRANSIENT
      pos:
        line_end: 4732
        line_start: 4731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite3_destructor_type)-1)
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_EQ
      pos:
        line_end: 5860
        line_start: 5859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_GT
      pos:
        line_end: 5861
        line_start: 5860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_LE
      pos:
        line_end: 5862
        line_start: 5861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_LT
      pos:
        line_end: 5863
        line_start: 5862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_GE
      pos:
        line_end: 5864
        line_start: 5863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_MATCH
      pos:
        line_end: 5865
        line_start: 5864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '64'
    - item_type: preproc_def
      name: SQLITE_MUTEX_FAST
      pos:
        line_end: 6497
        line_start: 6496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MUTEX_RECURSIVE
      pos:
        line_end: 6498
        line_start: 6497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MASTER
      pos:
        line_end: 6499
        line_start: 6498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MEM
      pos:
        line_end: 6500
        line_start: 6499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MEM2
      pos:
        line_end: 6501
        line_start: 6500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_OPEN
      pos:
        line_end: 6502
        line_start: 6501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_PRNG
      pos:
        line_end: 6503
        line_start: 6502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_LRU
      pos:
        line_end: 6504
        line_start: 6503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_LRU2
      pos:
        line_end: 6505
        line_start: 6504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_PMEM
      pos:
        line_end: 6506
        line_start: 6505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP1
      pos:
        line_end: 6507
        line_start: 6506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP2
      pos:
        line_end: 6508
        line_start: 6507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP3
      pos:
        line_end: 6509
        line_start: 6508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS1
      pos:
        line_end: 6510
        line_start: 6509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS2
      pos:
        line_end: 6511
        line_start: 6510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS3
      pos:
        line_end: 6512
        line_start: 6511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13  '
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_FIRST
      pos:
        line_end: 6591
        line_start: 6590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_SAVE
      pos:
        line_end: 6592
        line_start: 6591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_RESTORE
      pos:
        line_end: 6593
        line_start: 6592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_RESET
      pos:
        line_end: 6594
        line_start: 6593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BITVEC_TEST
      pos:
        line_end: 6595
        line_start: 6594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_FAULT_INSTALL
      pos:
        line_end: 6596
        line_start: 6595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
      pos:
        line_end: 6597
        line_start: 6596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PENDING_BYTE
      pos:
        line_end: 6598
        line_start: 6597
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ASSERT
      pos:
        line_end: 6599
        line_start: 6598
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ALWAYS
      pos:
        line_end: 6600
        line_start: 6599
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_RESERVE
      pos:
        line_end: 6601
        line_start: 6600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_OPTIMIZATIONS
      pos:
        line_end: 6602
        line_start: 6601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ISKEYWORD
      pos:
        line_end: 6603
        line_start: 6602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_SCRATCHMALLOC
      pos:
        line_end: 6604
        line_start: 6603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_LOCALTIME_FAULT
      pos:
        line_end: 6605
        line_start: 6604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_EXPLAIN_STMT
      pos:
        line_end: 6606
        line_start: 6605
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19  '
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_NEVER_CORRUPT
      pos:
        line_end: 6607
        line_start: 6606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_VDBE_COVERAGE
      pos:
        line_end: 6608
        line_start: 6607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BYTEORDER
      pos:
        line_end: 6609
        line_start: 6608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ISINIT
      pos:
        line_end: 6610
        line_start: 6609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_SORTER_MMAP
      pos:
        line_end: 6611
        line_start: 6610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_IMPOSTER
      pos:
        line_end: 6612
        line_start: 6611
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_LAST
      pos:
        line_end: 6613
        line_start: 6612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_STATUS_MEMORY_USED
      pos:
        line_end: 6732
        line_start: 6731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_USED
      pos:
        line_end: 6733
        line_start: 6732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_OVERFLOW
      pos:
        line_end: 6734
        line_start: 6733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_USED
      pos:
        line_end: 6735
        line_start: 6734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_OVERFLOW
      pos:
        line_end: 6736
        line_start: 6735
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_STATUS_MALLOC_SIZE
      pos:
        line_end: 6737
        line_start: 6736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_STATUS_PARSER_STACK
      pos:
        line_end: 6738
        line_start: 6737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_SIZE
      pos:
        line_end: 6739
        line_start: 6738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_SIZE
      pos:
        line_end: 6740
        line_start: 6739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_STATUS_MALLOC_COUNT
      pos:
        line_end: 6741
        line_start: 6740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_USED
      pos:
        line_end: 6858
        line_start: 6857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_USED
      pos:
        line_end: 6859
        line_start: 6858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_SCHEMA_USED
      pos:
        line_end: 6860
        line_start: 6859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_STMT_USED
      pos:
        line_end: 6861
        line_start: 6860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_HIT
      pos:
        line_end: 6862
        line_start: 6861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
      pos:
        line_end: 6863
        line_start: 6862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
      pos:
        line_end: 6864
        line_start: 6863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_HIT
      pos:
        line_end: 6865
        line_start: 6864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_MISS
      pos:
        line_end: 6866
        line_start: 6865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_WRITE
      pos:
        line_end: 6867
        line_start: 6866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_DEFERRED_FKS
      pos:
        line_end: 6868
        line_start: 6867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_MAX
      pos:
        line_end: 6869
        line_start: 6868
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_FULLSCAN_STEP
      pos:
        line_end: 6935
        line_start: 6934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_SORT
      pos:
        line_end: 6936
        line_start: 6935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_AUTOINDEX
      pos:
        line_end: 6937
        line_start: 6936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_VM_STEP
      pos:
        line_end: 6938
        line_start: 6937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_PASSIVE
      pos:
        line_end: 7749
        line_start: 7748
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_FULL
      pos:
        line_end: 7750
        line_start: 7749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_RESTART
      pos:
        line_end: 7751
        line_start: 7750
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_TRUNCATE
      pos:
        line_end: 7752
        line_start: 7751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_VTAB_CONSTRAINT_SUPPORT
      pos:
        line_end: 7809
        line_start: 7808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ROLLBACK
      pos:
        line_end: 7835
        line_start: 7834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FAIL
      pos:
        line_end: 7837
        line_start: 7836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_REPLACE
      pos:
        line_end: 7839
        line_start: 7838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NLOOP
      pos:
        line_end: 7888
        line_start: 7887
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NVISIT
      pos:
        line_end: 7889
        line_start: 7888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_EST
      pos:
        line_end: 7890
        line_start: 7889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NAME
      pos:
        line_end: 7891
        line_start: 7890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_EXPLAIN
      pos:
        line_end: 7892
        line_start: 7891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_SELECTID
      pos:
        line_end: 7893
        line_start: 7892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: NOT_WITHIN
      pos:
        line_end: 8064
        line_start: 8063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: PARTLY_WITHIN
      pos:
        line_end: 8065
        line_start: 8064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: FULLY_WITHIN
      pos:
        line_end: 8066
        line_start: 8065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_MAX_LENGTH
      pos:
        line_end: 8112
        line_start: 8111
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000000000'
    - item_type: preproc_def
      name: SQLITE_MAX_COLUMN
      pos:
        line_end: 8133
        line_start: 8132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: SQLITE_MAX_SQL_LENGTH
      pos:
        line_end: 8144
        line_start: 8143
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000000000'
    - item_type: preproc_def
      name: SQLITE_MAX_EXPR_DEPTH
      pos:
        line_end: 8158
        line_start: 8157
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: SQLITE_MAX_COMPOUND_SELECT
      pos:
        line_end: 8170
        line_start: 8169
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '500'
    - item_type: preproc_def
      name: SQLITE_MAX_VDBE_OP
      pos:
        line_end: 8178
        line_start: 8177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25000'
    - item_type: preproc_def
      name: SQLITE_MAX_FUNCTION_ARG
      pos:
        line_end: 8185
        line_start: 8184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '127'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_CACHE_SIZE
      pos:
        line_end: 8198
        line_start: 8197
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
      pos:
        line_end: 8206
        line_start: 8205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: SQLITE_MAX_ATTACHED
      pos:
        line_end: 8215
        line_start: 8214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_MAX_VARIABLE_NUMBER
      pos:
        line_end: 8223
        line_start: 8222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '999'
    - item_type: preproc_def
      name: SQLITE_MAX_PAGE_SIZE
      pos:
        line_end: 8240
        line_start: 8239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_PAGE_SIZE
      pos:
        line_end: 8247
        line_start: 8246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_PAGE_SIZE
      pos:
        line_end: 8251
        line_start: 8250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_MAX_PAGE_SIZE
    - item_type: preproc_def
      name: SQLITE_MAX_DEFAULT_PAGE_SIZE
      pos:
        line_end: 8262
        line_start: 8261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: SQLITE_MAX_DEFAULT_PAGE_SIZE
      pos:
        line_end: 8266
        line_start: 8265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_MAX_PAGE_SIZE
    - item_type: preproc_def
      name: SQLITE_MAX_PAGE_COUNT
      pos:
        line_end: 8278
        line_start: 8277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1073741823'
    - item_type: preproc_def
      name: SQLITE_MAX_LIKE_PATTERN_LENGTH
      pos:
        line_end: 8286
        line_start: 8285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '50000'
    - item_type: preproc_def
      name: SQLITE_MAX_TRIGGER_DEPTH
      pos:
        line_end: 8297
        line_start: 8296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: SQLITE_NOINLINE
      pos:
        line_end: 8357
        line_start: 8356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: __attribute__((noinline))
    - item_type: preproc_def
      name: SQLITE_NOINLINE
      pos:
        line_end: 8359
        line_start: 8358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: __declspec(noinline)
    - item_type: preproc_def
      name: SQLITE_THREADSAFE
      pos:
        line_end: 8391
        line_start: 8390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: THREADSAFE
    - item_type: preproc_def
      name: SQLITE_THREADSAFE
      pos:
        line_end: 8393
        line_start: 8392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: SQLITE_POWERSAFE_OVERWRITE
      pos:
        line_end: 8402
        line_start: 8401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_MEMSTATUS
      pos:
        line_end: 8411
        line_start: 8410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SYSTEM_MALLOC
      pos:
        line_end: 8444
        line_start: 8443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MALLOC_SOFT_LIMIT
      pos:
        line_end: 8452
        line_start: 8451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 8462
        line_start: 8461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '600'
    - item_type: preproc_def
      name: NDEBUG
      pos:
        line_end: 8477
        line_start: 8476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ENABLE_EXPLAIN_COMMENTS
      pos:
        line_end: 8487
        line_start: 8486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TK_SEMI
      pos:
        line_end: 8708
        line_start: 8707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TK_EXPLAIN
      pos:
        line_end: 8709
        line_start: 8708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TK_QUERY
      pos:
        line_end: 8710
        line_start: 8709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TK_PLAN
      pos:
        line_end: 8711
        line_start: 8710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TK_BEGIN
      pos:
        line_end: 8712
        line_start: 8711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TK_TRANSACTION
      pos:
        line_end: 8713
        line_start: 8712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: TK_DEFERRED
      pos:
        line_end: 8714
        line_start: 8713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: TK_IMMEDIATE
      pos:
        line_end: 8715
        line_start: 8714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: TK_EXCLUSIVE
      pos:
        line_end: 8716
        line_start: 8715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: TK_COMMIT
      pos:
        line_end: 8717
        line_start: 8716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: TK_END
      pos:
        line_end: 8718
        line_start: 8717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: TK_ROLLBACK
      pos:
        line_end: 8719
        line_start: 8718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: TK_SAVEPOINT
      pos:
        line_end: 8720
        line_start: 8719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13'
    - item_type: preproc_def
      name: TK_RELEASE
      pos:
        line_end: 8721
        line_start: 8720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: TK_TO
      pos:
        line_end: 8722
        line_start: 8721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: TK_TABLE
      pos:
        line_end: 8723
        line_start: 8722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: TK_CREATE
      pos:
        line_end: 8724
        line_start: 8723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17'
    - item_type: preproc_def
      name: TK_IF
      pos:
        line_end: 8725
        line_start: 8724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: TK_NOT
      pos:
        line_end: 8726
        line_start: 8725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19'
    - item_type: preproc_def
      name: TK_EXISTS
      pos:
        line_end: 8727
        line_start: 8726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: TK_TEMP
      pos:
        line_end: 8728
        line_start: 8727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21'
    - item_type: preproc_def
      name: TK_LP
      pos:
        line_end: 8729
        line_start: 8728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: TK_RP
      pos:
        line_end: 8730
        line_start: 8729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23'
    - item_type: preproc_def
      name: TK_AS
      pos:
        line_end: 8731
        line_start: 8730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: TK_WITHOUT
      pos:
        line_end: 8732
        line_start: 8731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: TK_COMMA
      pos:
        line_end: 8733
        line_start: 8732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26'
    - item_type: preproc_def
      name: TK_ID
      pos:
        line_end: 8734
        line_start: 8733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27'
    - item_type: preproc_def
      name: TK_INDEXED
      pos:
        line_end: 8735
        line_start: 8734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28'
    - item_type: preproc_def
      name: TK_ABORT
      pos:
        line_end: 8736
        line_start: 8735
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '29'
    - item_type: preproc_def
      name: TK_ACTION
      pos:
        line_end: 8737
        line_start: 8736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30'
    - item_type: preproc_def
      name: TK_AFTER
      pos:
        line_end: 8738
        line_start: 8737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '31'
    - item_type: preproc_def
      name: TK_ANALYZE
      pos:
        line_end: 8739
        line_start: 8738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: TK_ASC
      pos:
        line_end: 8740
        line_start: 8739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '33'
    - item_type: preproc_def
      name: TK_ATTACH
      pos:
        line_end: 8741
        line_start: 8740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '34'
    - item_type: preproc_def
      name: TK_BEFORE
      pos:
        line_end: 8742
        line_start: 8741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '35'
    - item_type: preproc_def
      name: TK_BY
      pos:
        line_end: 8743
        line_start: 8742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '36'
    - item_type: preproc_def
      name: TK_CASCADE
      pos:
        line_end: 8744
        line_start: 8743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '37'
    - item_type: preproc_def
      name: TK_CAST
      pos:
        line_end: 8745
        line_start: 8744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '38'
    - item_type: preproc_def
      name: TK_COLUMNKW
      pos:
        line_end: 8746
        line_start: 8745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '39'
    - item_type: preproc_def
      name: TK_CONFLICT
      pos:
        line_end: 8747
        line_start: 8746
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '40'
    - item_type: preproc_def
      name: TK_DATABASE
      pos:
        line_end: 8748
        line_start: 8747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '41'
    - item_type: preproc_def
      name: TK_DESC
      pos:
        line_end: 8749
        line_start: 8748
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '42'
    - item_type: preproc_def
      name: TK_DETACH
      pos:
        line_end: 8750
        line_start: 8749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '43'
    - item_type: preproc_def
      name: TK_EACH
      pos:
        line_end: 8751
        line_start: 8750
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '44'
    - item_type: preproc_def
      name: TK_FAIL
      pos:
        line_end: 8752
        line_start: 8751
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '45'
    - item_type: preproc_def
      name: TK_FOR
      pos:
        line_end: 8753
        line_start: 8752
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '46'
    - item_type: preproc_def
      name: TK_IGNORE
      pos:
        line_end: 8754
        line_start: 8753
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '47'
    - item_type: preproc_def
      name: TK_INITIALLY
      pos:
        line_end: 8755
        line_start: 8754
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '48'
    - item_type: preproc_def
      name: TK_INSTEAD
      pos:
        line_end: 8756
        line_start: 8755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '49'
    - item_type: preproc_def
      name: TK_LIKE_KW
      pos:
        line_end: 8757
        line_start: 8756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '50'
    - item_type: preproc_def
      name: TK_MATCH
      pos:
        line_end: 8758
        line_start: 8757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '51'
    - item_type: preproc_def
      name: TK_NO
      pos:
        line_end: 8759
        line_start: 8758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '52'
    - item_type: preproc_def
      name: TK_KEY
      pos:
        line_end: 8760
        line_start: 8759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '53'
    - item_type: preproc_def
      name: TK_OF
      pos:
        line_end: 8761
        line_start: 8760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '54'
    - item_type: preproc_def
      name: TK_OFFSET
      pos:
        line_end: 8762
        line_start: 8761
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '55'
    - item_type: preproc_def
      name: TK_PRAGMA
      pos:
        line_end: 8763
        line_start: 8762
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '56'
    - item_type: preproc_def
      name: TK_RAISE
      pos:
        line_end: 8764
        line_start: 8763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '57'
    - item_type: preproc_def
      name: TK_RECURSIVE
      pos:
        line_end: 8765
        line_start: 8764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '58'
    - item_type: preproc_def
      name: TK_REPLACE
      pos:
        line_end: 8766
        line_start: 8765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '59'
    - item_type: preproc_def
      name: TK_RESTRICT
      pos:
        line_end: 8767
        line_start: 8766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '60'
    - item_type: preproc_def
      name: TK_ROW
      pos:
        line_end: 8768
        line_start: 8767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '61'
    - item_type: preproc_def
      name: TK_TRIGGER
      pos:
        line_end: 8769
        line_start: 8768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '62'
    - item_type: preproc_def
      name: TK_VACUUM
      pos:
        line_end: 8770
        line_start: 8769
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '63'
    - item_type: preproc_def
      name: TK_VIEW
      pos:
        line_end: 8771
        line_start: 8770
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '64'
    - item_type: preproc_def
      name: TK_VIRTUAL
      pos:
        line_end: 8772
        line_start: 8771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '65'
    - item_type: preproc_def
      name: TK_WITH
      pos:
        line_end: 8773
        line_start: 8772
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '66'
    - item_type: preproc_def
      name: TK_REINDEX
      pos:
        line_end: 8774
        line_start: 8773
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '67'
    - item_type: preproc_def
      name: TK_RENAME
      pos:
        line_end: 8775
        line_start: 8774
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '68'
    - item_type: preproc_def
      name: TK_CTIME_KW
      pos:
        line_end: 8776
        line_start: 8775
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '69'
    - item_type: preproc_def
      name: TK_ANY
      pos:
        line_end: 8777
        line_start: 8776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '70'
    - item_type: preproc_def
      name: TK_OR
      pos:
        line_end: 8778
        line_start: 8777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '71'
    - item_type: preproc_def
      name: TK_AND
      pos:
        line_end: 8779
        line_start: 8778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '72'
    - item_type: preproc_def
      name: TK_IS
      pos:
        line_end: 8780
        line_start: 8779
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '73'
    - item_type: preproc_def
      name: TK_BETWEEN
      pos:
        line_end: 8781
        line_start: 8780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '74'
    - item_type: preproc_def
      name: TK_IN
      pos:
        line_end: 8782
        line_start: 8781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '75'
    - item_type: preproc_def
      name: TK_ISNULL
      pos:
        line_end: 8783
        line_start: 8782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '76'
    - item_type: preproc_def
      name: TK_NOTNULL
      pos:
        line_end: 8784
        line_start: 8783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '77'
    - item_type: preproc_def
      name: TK_NE
      pos:
        line_end: 8785
        line_start: 8784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '78'
    - item_type: preproc_def
      name: TK_EQ
      pos:
        line_end: 8786
        line_start: 8785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '79'
    - item_type: preproc_def
      name: TK_GT
      pos:
        line_end: 8787
        line_start: 8786
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '80'
    - item_type: preproc_def
      name: TK_LE
      pos:
        line_end: 8788
        line_start: 8787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '81'
    - item_type: preproc_def
      name: TK_LT
      pos:
        line_end: 8789
        line_start: 8788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '82'
    - item_type: preproc_def
      name: TK_GE
      pos:
        line_end: 8790
        line_start: 8789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '83'
    - item_type: preproc_def
      name: TK_ESCAPE
      pos:
        line_end: 8791
        line_start: 8790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '84'
    - item_type: preproc_def
      name: TK_BITAND
      pos:
        line_end: 8792
        line_start: 8791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '85'
    - item_type: preproc_def
      name: TK_BITOR
      pos:
        line_end: 8793
        line_start: 8792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '86'
    - item_type: preproc_def
      name: TK_LSHIFT
      pos:
        line_end: 8794
        line_start: 8793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '87'
    - item_type: preproc_def
      name: TK_RSHIFT
      pos:
        line_end: 8795
        line_start: 8794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '88'
    - item_type: preproc_def
      name: TK_PLUS
      pos:
        line_end: 8796
        line_start: 8795
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '89'
    - item_type: preproc_def
      name: TK_MINUS
      pos:
        line_end: 8797
        line_start: 8796
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '90'
    - item_type: preproc_def
      name: TK_STAR
      pos:
        line_end: 8798
        line_start: 8797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '91'
    - item_type: preproc_def
      name: TK_SLASH
      pos:
        line_end: 8799
        line_start: 8798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '92'
    - item_type: preproc_def
      name: TK_REM
      pos:
        line_end: 8800
        line_start: 8799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '93'
    - item_type: preproc_def
      name: TK_CONCAT
      pos:
        line_end: 8801
        line_start: 8800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '94'
    - item_type: preproc_def
      name: TK_COLLATE
      pos:
        line_end: 8802
        line_start: 8801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '95'
    - item_type: preproc_def
      name: TK_BITNOT
      pos:
        line_end: 8803
        line_start: 8802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '96'
    - item_type: preproc_def
      name: TK_STRING
      pos:
        line_end: 8804
        line_start: 8803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '97'
    - item_type: preproc_def
      name: TK_JOIN_KW
      pos:
        line_end: 8805
        line_start: 8804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '98'
    - item_type: preproc_def
      name: TK_CONSTRAINT
      pos:
        line_end: 8806
        line_start: 8805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '99'
    - item_type: preproc_def
      name: TK_DEFAULT
      pos:
        line_end: 8807
        line_start: 8806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100'
    - item_type: preproc_def
      name: TK_NULL
      pos:
        line_end: 8808
        line_start: 8807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '101'
    - item_type: preproc_def
      name: TK_PRIMARY
      pos:
        line_end: 8809
        line_start: 8808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '102'
    - item_type: preproc_def
      name: TK_UNIQUE
      pos:
        line_end: 8810
        line_start: 8809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '103'
    - item_type: preproc_def
      name: TK_CHECK
      pos:
        line_end: 8811
        line_start: 8810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '104'
    - item_type: preproc_def
      name: TK_REFERENCES
      pos:
        line_end: 8812
        line_start: 8811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '105'
    - item_type: preproc_def
      name: TK_AUTOINCR
      pos:
        line_end: 8813
        line_start: 8812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '106'
    - item_type: preproc_def
      name: TK_ON
      pos:
        line_end: 8814
        line_start: 8813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '107'
    - item_type: preproc_def
      name: TK_INSERT
      pos:
        line_end: 8815
        line_start: 8814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '108'
    - item_type: preproc_def
      name: TK_DELETE
      pos:
        line_end: 8816
        line_start: 8815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '109'
    - item_type: preproc_def
      name: TK_UPDATE
      pos:
        line_end: 8817
        line_start: 8816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '110'
    - item_type: preproc_def
      name: TK_SET
      pos:
        line_end: 8818
        line_start: 8817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '111'
    - item_type: preproc_def
      name: TK_DEFERRABLE
      pos:
        line_end: 8819
        line_start: 8818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '112'
    - item_type: preproc_def
      name: TK_FOREIGN
      pos:
        line_end: 8820
        line_start: 8819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '113'
    - item_type: preproc_def
      name: TK_DROP
      pos:
        line_end: 8821
        line_start: 8820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '114'
    - item_type: preproc_def
      name: TK_UNION
      pos:
        line_end: 8822
        line_start: 8821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '115'
    - item_type: preproc_def
      name: TK_ALL
      pos:
        line_end: 8823
        line_start: 8822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '116'
    - item_type: preproc_def
      name: TK_EXCEPT
      pos:
        line_end: 8824
        line_start: 8823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '117'
    - item_type: preproc_def
      name: TK_INTERSECT
      pos:
        line_end: 8825
        line_start: 8824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '118'
    - item_type: preproc_def
      name: TK_SELECT
      pos:
        line_end: 8826
        line_start: 8825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '119'
    - item_type: preproc_def
      name: TK_VALUES
      pos:
        line_end: 8827
        line_start: 8826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '120'
    - item_type: preproc_def
      name: TK_DISTINCT
      pos:
        line_end: 8828
        line_start: 8827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '121'
    - item_type: preproc_def
      name: TK_DOT
      pos:
        line_end: 8829
        line_start: 8828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '122'
    - item_type: preproc_def
      name: TK_FROM
      pos:
        line_end: 8830
        line_start: 8829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '123'
    - item_type: preproc_def
      name: TK_JOIN
      pos:
        line_end: 8831
        line_start: 8830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '124'
    - item_type: preproc_def
      name: TK_USING
      pos:
        line_end: 8832
        line_start: 8831
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '125'
    - item_type: preproc_def
      name: TK_ORDER
      pos:
        line_end: 8833
        line_start: 8832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '126'
    - item_type: preproc_def
      name: TK_GROUP
      pos:
        line_end: 8834
        line_start: 8833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '127'
    - item_type: preproc_def
      name: TK_HAVING
      pos:
        line_end: 8835
        line_start: 8834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '128'
    - item_type: preproc_def
      name: TK_LIMIT
      pos:
        line_end: 8836
        line_start: 8835
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '129'
    - item_type: preproc_def
      name: TK_WHERE
      pos:
        line_end: 8837
        line_start: 8836
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '130'
    - item_type: preproc_def
      name: TK_INTO
      pos:
        line_end: 8838
        line_start: 8837
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '131'
    - item_type: preproc_def
      name: TK_INTEGER
      pos:
        line_end: 8839
        line_start: 8838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '132'
    - item_type: preproc_def
      name: TK_FLOAT
      pos:
        line_end: 8840
        line_start: 8839
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '133'
    - item_type: preproc_def
      name: TK_BLOB
      pos:
        line_end: 8841
        line_start: 8840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '134'
    - item_type: preproc_def
      name: TK_VARIABLE
      pos:
        line_end: 8842
        line_start: 8841
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '135'
    - item_type: preproc_def
      name: TK_CASE
      pos:
        line_end: 8843
        line_start: 8842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '136'
    - item_type: preproc_def
      name: TK_WHEN
      pos:
        line_end: 8844
        line_start: 8843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '137'
    - item_type: preproc_def
      name: TK_THEN
      pos:
        line_end: 8845
        line_start: 8844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '138'
    - item_type: preproc_def
      name: TK_ELSE
      pos:
        line_end: 8846
        line_start: 8845
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '139'
    - item_type: preproc_def
      name: TK_INDEX
      pos:
        line_end: 8847
        line_start: 8846
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '140'
    - item_type: preproc_def
      name: TK_ALTER
      pos:
        line_end: 8848
        line_start: 8847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '141'
    - item_type: preproc_def
      name: TK_ADD
      pos:
        line_end: 8849
        line_start: 8848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '142'
    - item_type: preproc_def
      name: TK_TO_TEXT
      pos:
        line_end: 8850
        line_start: 8849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '143'
    - item_type: preproc_def
      name: TK_TO_BLOB
      pos:
        line_end: 8851
        line_start: 8850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '144'
    - item_type: preproc_def
      name: TK_TO_NUMERIC
      pos:
        line_end: 8852
        line_start: 8851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '145'
    - item_type: preproc_def
      name: TK_TO_INT
      pos:
        line_end: 8853
        line_start: 8852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '146'
    - item_type: preproc_def
      name: TK_TO_REAL
      pos:
        line_end: 8854
        line_start: 8853
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '147'
    - item_type: preproc_def
      name: TK_ISNOT
      pos:
        line_end: 8855
        line_start: 8854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '148'
    - item_type: preproc_def
      name: TK_END_OF_FILE
      pos:
        line_end: 8856
        line_start: 8855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '149'
    - item_type: preproc_def
      name: TK_ILLEGAL
      pos:
        line_end: 8857
        line_start: 8856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '150'
    - item_type: preproc_def
      name: TK_SPACE
      pos:
        line_end: 8858
        line_start: 8857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '151'
    - item_type: preproc_def
      name: TK_UNCLOSED_STRING
      pos:
        line_end: 8859
        line_start: 8858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '152'
    - item_type: preproc_def
      name: TK_FUNCTION
      pos:
        line_end: 8860
        line_start: 8859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '153'
    - item_type: preproc_def
      name: TK_COLUMN
      pos:
        line_end: 8861
        line_start: 8860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '154'
    - item_type: preproc_def
      name: TK_AGG_FUNCTION
      pos:
        line_end: 8862
        line_start: 8861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '155'
    - item_type: preproc_def
      name: TK_AGG_COLUMN
      pos:
        line_end: 8863
        line_start: 8862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '156'
    - item_type: preproc_def
      name: TK_UMINUS
      pos:
        line_end: 8864
        line_start: 8863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '157'
    - item_type: preproc_def
      name: TK_UPLUS
      pos:
        line_end: 8865
        line_start: 8864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '158'
    - item_type: preproc_def
      name: TK_REGISTER
      pos:
        line_end: 8866
        line_start: 8865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '159'
    - item_type: preproc_def
      name: double
      pos:
        line_end: 8881
        line_start: 8880
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite_int64
    - item_type: preproc_def
      name: float
      pos:
        line_end: 8882
        line_start: 8881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite_int64
    - item_type: preproc_def
      name: LONGDOUBLE_TYPE
      pos:
        line_end: 8883
        line_start: 8882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite_int64
    - item_type: preproc_def
      name: SQLITE_BIG_DBL
      pos:
        line_end: 8885
        line_start: 8884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((sqlite3_int64)1)<<50)
    - item_type: preproc_def
      name: SQLITE_OMIT_DATETIME_FUNCS
      pos:
        line_end: 8887
        line_start: 8886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OMIT_TRACE
      pos:
        line_end: 8888
        line_start: 8887
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_BIG_DBL
      pos:
        line_end: 8893
        line_start: 8892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1e99)
    - item_type: preproc_def
      name: OMIT_TEMPDB
      pos:
        line_end: 8902
        line_start: 8901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OMIT_TEMPDB
      pos:
        line_end: 8904
        line_start: 8903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_FILE_FORMAT
      pos:
        line_end: 8913
        line_start: 8912
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_FILE_FORMAT
      pos:
        line_end: 8915
        line_start: 8914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_RECURSIVE_TRIGGERS
      pos:
        line_end: 8923
        line_start: 8922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_TEMP_STORE
      pos:
        line_end: 8931
        line_start: 8930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_TEMP_STORE_xc
      pos:
        line_end: 8932
        line_start: 8931
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_MAX_WORKER_THREADS
      pos:
        line_end: 8942
        line_start: 8941
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_WORKER_THREADS
      pos:
        line_end: 8945
        line_start: 8944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_WORKER_THREADS
      pos:
        line_end: 8948
        line_start: 8947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_WORKER_THREADS
      pos:
        line_end: 8952
        line_start: 8951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_DEFAULT_WORKER_THREADS
    - item_type: preproc_def
      name: SQLITE_DEFAULT_PCACHE_INITSZ
      pos:
        line_end: 8962
        line_start: 8961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100'
    - item_type: preproc_def
      name: SQLITE_EBCDIC
      pos:
        line_end: 8990
        line_start: 8989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ASCII
      pos:
        line_end: 8992
        line_start: 8991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: UINT32_TYPE
      pos:
        line_end: 9004
        line_start: 9003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: uint32_t
    - item_type: preproc_def
      name: UINT32_TYPE
      pos:
        line_end: 9006
        line_start: 9005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: unsigned int
    - item_type: preproc_def
      name: UINT16_TYPE
      pos:
        line_end: 9011
        line_start: 9010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: uint16_t
    - item_type: preproc_def
      name: UINT16_TYPE
      pos:
        line_end: 9013
        line_start: 9012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: unsigned short int
    - item_type: preproc_def
      name: INT16_TYPE
      pos:
        line_end: 9018
        line_start: 9017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: int16_t
    - item_type: preproc_def
      name: INT16_TYPE
      pos:
        line_end: 9020
        line_start: 9019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: short int
    - item_type: preproc_def
      name: UINT8_TYPE
      pos:
        line_end: 9025
        line_start: 9024
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: uint8_t
    - item_type: preproc_def
      name: UINT8_TYPE
      pos:
        line_end: 9027
        line_start: 9026
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: unsigned char
    - item_type: preproc_def
      name: INT8_TYPE
      pos:
        line_end: 9032
        line_start: 9031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: int8_t
    - item_type: preproc_def
      name: INT8_TYPE
      pos:
        line_end: 9034
        line_start: 9033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: signed char
    - item_type: preproc_def
      name: LONGDOUBLE_TYPE
      pos:
        line_end: 9038
        line_start: 9037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: long double
    - item_type: preproc_def
      name: SQLITE_MAX_U32
      pos:
        line_end: 9054
        line_start: 9053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((((u64)1)<<32)-1)
    - item_type: preproc_def
      name: SQLITE_PTRSIZE
      pos:
        line_end: 9098
        line_start: 9097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: __SIZEOF_POINTER__
    - item_type: preproc_def
      name: SQLITE_PTRSIZE
      pos:
        line_end: 9101
        line_start: 9100
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_PTRSIZE
      pos:
        line_end: 9103
        line_start: 9102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_BYTEORDER
      pos:
        line_end: 9125
        line_start: 9124
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1234'
    - item_type: preproc_def
      name: SQLITE_BIGENDIAN
      pos:
        line_end: 9126
        line_start: 9125
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_LITTLEENDIAN
      pos:
        line_end: 9127
        line_start: 9126
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_UTF16NATIVE
      pos:
        line_end: 9128
        line_start: 9127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_UTF16LE
    - item_type: preproc_def
      name: SQLITE_BYTEORDER
      pos:
        line_end: 9132
        line_start: 9131
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4321'
    - item_type: preproc_def
      name: SQLITE_BIGENDIAN
      pos:
        line_end: 9133
        line_start: 9132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_LITTLEENDIAN
      pos:
        line_end: 9134
        line_start: 9133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_UTF16NATIVE
      pos:
        line_end: 9135
        line_start: 9134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_UTF16BE
    - item_type: preproc_def
      name: SQLITE_BYTEORDER
      pos:
        line_end: 9138
        line_start: 9137
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0     '
    - item_type: preproc_def
      name: SQLITE_BIGENDIAN
      pos:
        line_end: 9139
        line_start: 9138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (*(char *)(&sqlite3one)==0)
    - item_type: preproc_def
      name: SQLITE_LITTLEENDIAN
      pos:
        line_end: 9140
        line_start: 9139
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (*(char *)(&sqlite3one)==1)
    - item_type: preproc_def
      name: SQLITE_UTF16NATIVE
      pos:
        line_end: 9141
        line_start: 9140
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
    - item_type: preproc_def
      name: LARGEST_INT64
      pos:
        line_end: 9149
        line_start: 9148
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0xffffffff|(((i64)0x7fffffff)<<32))
    - item_type: preproc_def
      name: SMALLEST_INT64
      pos:
        line_end: 9150
        line_start: 9149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((i64)-1) - LARGEST_INT64)
    - item_type: preproc_def
      name: SQLITE_MAX_MMAP_SIZE
      pos:
        line_end: 9183
        line_start: 9182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_MMAP_SIZE
      pos:
        line_end: 9193
        line_start: 9192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_MMAP_SIZE
      pos:
        line_end: 9203
        line_start: 9202
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x7fff0000  '
    - item_type: preproc_def
      name: SQLITE_MAX_MMAP_SIZE
      pos:
        line_end: 9205
        line_start: 9204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MAX_MMAP_SIZE_xc
      pos:
        line_end: 9207
        line_start: 9206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: SQLITE_DEFAULT_MMAP_SIZE
      pos:
        line_end: 9216
        line_start: 9215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_MMAP_SIZE_xc
      pos:
        line_end: 9217
        line_start: 9216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_DEFAULT_MMAP_SIZE
      pos:
        line_end: 9221
        line_start: 9220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_MAX_MMAP_SIZE
    - item_type: preproc_def
      name: SQLITE_ENABLE_STAT3_OR_STAT4
      pos:
        line_end: 9231
        line_start: 9230
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ENABLE_STAT3_OR_STAT4
      pos:
        line_end: 9233
        line_start: 9232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SELECTTRACE_ENABLED
      pos:
        line_end: 9243
        line_start: 9242
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SELECTTRACE_ENABLED
      pos:
        line_end: 9245
        line_start: 9244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MASTER_NAME
      pos:
        line_end: 9269
        line_start: 9268
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"sqlite_master"'
    - item_type: preproc_def
      name: TEMP_MASTER_NAME
      pos:
        line_end: 9270
        line_start: 9269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"sqlite_temp_master"'
    - item_type: preproc_def
      name: MASTER_ROOT
      pos:
        line_end: 9275
        line_start: 9274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_DYNAMIC
      pos:
        line_end: 9301
        line_start: 9300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite3_destructor_type)sqlite3MallocSize)
    - item_type: preproc_def
      name: SQLITE_WSD
      pos:
        line_end: 9318
        line_start: 9317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: const
    - item_type: preproc_def
      name: sqlite3GlobalConfig
      pos:
        line_end: 9320
        line_start: 9319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: GLOBAL(struct Sqlite3Config, sqlite3Config)
    - item_type: preproc_def
      name: SQLITE_WSD
      pos:
        line_end: 9325
        line_start: 9323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '#define GLOBAL(t,v) v'
    - item_type: preproc_def
      name: sqlite3GlobalConfig
      pos:
        line_end: 9326
        line_start: 9325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Config
    - item_type: preproc_def
      name: SQLITE_N_BTREE_META
      pos:
        line_end: 9426
        line_start: 9425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_AUTOVACUUM
      pos:
        line_end: 9433
        line_start: 9432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BTREE_AUTOVACUUM_NONE
      pos:
        line_end: 9436
        line_start: 9435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0        '
    - item_type: preproc_def
      name: BTREE_AUTOVACUUM_FULL
      pos:
        line_end: 9437
        line_start: 9436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1        '
    - item_type: preproc_def
      name: BTREE_AUTOVACUUM_INCR
      pos:
        line_end: 9438
        line_start: 9437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2        '
    - item_type: preproc_def
      name: BTREE_OMIT_JOURNAL
      pos:
        line_end: 9463
        line_start: 9462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: BTREE_MEMORY
      pos:
        line_end: 9464
        line_start: 9463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: BTREE_SINGLE
      pos:
        line_end: 9465
        line_start: 9464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: BTREE_UNORDERED
      pos:
        line_end: 9466
        line_start: 9465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: BTREE_INTKEY
      pos:
        line_end: 9515
        line_start: 9514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: BTREE_BLOBKEY
      pos:
        line_end: 9516
        line_start: 9515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: BTREE_FREE_PAGE_COUNT
      pos:
        line_end: 9545
        line_start: 9544
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BTREE_SCHEMA_VERSION
      pos:
        line_end: 9546
        line_start: 9545
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BTREE_FILE_FORMAT
      pos:
        line_end: 9547
        line_start: 9546
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BTREE_DEFAULT_CACHE_SIZE
      pos:
        line_end: 9548
        line_start: 9547
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BTREE_LARGEST_ROOT_PAGE
      pos:
        line_end: 9549
        line_start: 9548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BTREE_TEXT_ENCODING
      pos:
        line_end: 9550
        line_start: 9549
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BTREE_USER_VERSION
      pos:
        line_end: 9551
        line_start: 9550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BTREE_INCR_VACUUM
      pos:
        line_end: 9552
        line_start: 9551
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: BTREE_APPLICATION_ID
      pos:
        line_end: 9553
        line_start: 9552
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BTREE_DATA_VERSION
      pos:
        line_end: 9554
        line_start: 9553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15  '
    - item_type: preproc_def
      name: BTREE_BULKLOAD
      pos:
        line_end: 9569
        line_start: 9568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: BTREE_SEEK_EQ
      pos:
        line_end: 9570
        line_start: 9569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: P4_NOTUSED
      pos:
        line_end: 9790
        line_start: 9789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: P4_DYNAMIC
      pos:
        line_end: 9791
        line_start: 9790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-1)  '
    - item_type: preproc_def
      name: P4_STATIC
      pos:
        line_end: 9792
        line_start: 9791
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-2)  '
    - item_type: preproc_def
      name: P4_COLLSEQ
      pos:
        line_end: 9793
        line_start: 9792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-4)  '
    - item_type: preproc_def
      name: P4_FUNCDEF
      pos:
        line_end: 9794
        line_start: 9793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-5)  '
    - item_type: preproc_def
      name: P4_KEYINFO
      pos:
        line_end: 9795
        line_start: 9794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-6)  '
    - item_type: preproc_def
      name: P4_MEM
      pos:
        line_end: 9796
        line_start: 9795
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-8)  '
    - item_type: preproc_def
      name: P4_TRANSIENT
      pos:
        line_end: 9797
        line_start: 9796
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: P4_VTAB
      pos:
        line_end: 9798
        line_start: 9797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-10) '
    - item_type: preproc_def
      name: P4_MPRINTF
      pos:
        line_end: 9799
        line_start: 9798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-11) '
    - item_type: preproc_def
      name: P4_REAL
      pos:
        line_end: 9800
        line_start: 9799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-12) '
    - item_type: preproc_def
      name: P4_INT64
      pos:
        line_end: 9801
        line_start: 9800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-13) '
    - item_type: preproc_def
      name: P4_INT32
      pos:
        line_end: 9802
        line_start: 9801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-14) '
    - item_type: preproc_def
      name: P4_INTARRAY
      pos:
        line_end: 9803
        line_start: 9802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-15) '
    - item_type: preproc_def
      name: P4_SUBPROGRAM
      pos:
        line_end: 9804
        line_start: 9803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-18) '
    - item_type: preproc_def
      name: P4_ADVANCE
      pos:
        line_end: 9805
        line_start: 9804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-19) '
    - item_type: preproc_def
      name: P4_FUNCCTX
      pos:
        line_end: 9806
        line_start: 9805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-20) '
    - item_type: preproc_def
      name: P5_ConstraintNotNull
      pos:
        line_end: 9809
        line_start: 9808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: P5_ConstraintUnique
      pos:
        line_end: 9810
        line_start: 9809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: P5_ConstraintCheck
      pos:
        line_end: 9811
        line_start: 9810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: P5_ConstraintFK
      pos:
        line_end: 9812
        line_start: 9811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: COLNAME_NAME
      pos:
        line_end: 9818
        line_start: 9817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COLNAME_DECLTYPE
      pos:
        line_end: 9819
        line_start: 9818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COLNAME_DATABASE
      pos:
        line_end: 9820
        line_start: 9819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COLNAME_TABLE
      pos:
        line_end: 9821
        line_start: 9820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: COLNAME_COLUMN
      pos:
        line_end: 9822
        line_start: 9821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: COLNAME_N
      pos:
        line_end: 9824
        line_start: 9823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5      '
    - item_type: preproc_def
      name: COLNAME_N
      pos:
        line_end: 9827
        line_start: 9826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1      '
    - item_type: preproc_def
      name: COLNAME_N
      pos:
        line_end: 9829
        line_start: 9828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2      '
    - item_type: preproc_def
      name: OP_Savepoint
      pos:
        line_end: 9849
        line_start: 9848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_AutoCommit
      pos:
        line_end: 9850
        line_start: 9849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OP_Transaction
      pos:
        line_end: 9851
        line_start: 9850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OP_SorterNext
      pos:
        line_end: 9852
        line_start: 9851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: OP_PrevIfOpen
      pos:
        line_end: 9853
        line_start: 9852
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: OP_NextIfOpen
      pos:
        line_end: 9854
        line_start: 9853
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: OP_Prev
      pos:
        line_end: 9855
        line_start: 9854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: OP_Next
      pos:
        line_end: 9856
        line_start: 9855
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: OP_Checkpoint
      pos:
        line_end: 9857
        line_start: 9856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: OP_JournalMode
      pos:
        line_end: 9858
        line_start: 9857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: OP_Vacuum
      pos:
        line_end: 9859
        line_start: 9858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: OP_VFilter
      pos:
        line_end: 9860
        line_start: 9859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12 '
    - item_type: preproc_def
      name: OP_VUpdate
      pos:
        line_end: 9861
        line_start: 9860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13 '
    - item_type: preproc_def
      name: OP_Goto
      pos:
        line_end: 9862
        line_start: 9861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: OP_Gosub
      pos:
        line_end: 9863
        line_start: 9862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: OP_Return
      pos:
        line_end: 9864
        line_start: 9863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: OP_InitCoroutine
      pos:
        line_end: 9865
        line_start: 9864
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17'
    - item_type: preproc_def
      name: OP_EndCoroutine
      pos:
        line_end: 9866
        line_start: 9865
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: OP_Not
      pos:
        line_end: 9867
        line_start: 9866
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19 '
    - item_type: preproc_def
      name: OP_Yield
      pos:
        line_end: 9868
        line_start: 9867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: OP_HaltIfNull
      pos:
        line_end: 9869
        line_start: 9868
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21 '
    - item_type: preproc_def
      name: OP_Halt
      pos:
        line_end: 9870
        line_start: 9869
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: OP_Integer
      pos:
        line_end: 9871
        line_start: 9870
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23 '
    - item_type: preproc_def
      name: OP_Int64
      pos:
        line_end: 9872
        line_start: 9871
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24 '
    - item_type: preproc_def
      name: OP_String
      pos:
        line_end: 9873
        line_start: 9872
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25 '
    - item_type: preproc_def
      name: OP_Null
      pos:
        line_end: 9874
        line_start: 9873
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26 '
    - item_type: preproc_def
      name: OP_SoftNull
      pos:
        line_end: 9875
        line_start: 9874
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27 '
    - item_type: preproc_def
      name: OP_Blob
      pos:
        line_end: 9876
        line_start: 9875
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28 '
    - item_type: preproc_def
      name: OP_Variable
      pos:
        line_end: 9877
        line_start: 9876
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '29 '
    - item_type: preproc_def
      name: OP_Move
      pos:
        line_end: 9878
        line_start: 9877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30 '
    - item_type: preproc_def
      name: OP_Copy
      pos:
        line_end: 9879
        line_start: 9878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '31 '
    - item_type: preproc_def
      name: OP_SCopy
      pos:
        line_end: 9880
        line_start: 9879
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32 '
    - item_type: preproc_def
      name: OP_ResultRow
      pos:
        line_end: 9881
        line_start: 9880
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '33 '
    - item_type: preproc_def
      name: OP_CollSeq
      pos:
        line_end: 9882
        line_start: 9881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '34'
    - item_type: preproc_def
      name: OP_Function0
      pos:
        line_end: 9883
        line_start: 9882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '35 '
    - item_type: preproc_def
      name: OP_Function
      pos:
        line_end: 9884
        line_start: 9883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '36 '
    - item_type: preproc_def
      name: OP_AddImm
      pos:
        line_end: 9885
        line_start: 9884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '37 '
    - item_type: preproc_def
      name: OP_MustBeInt
      pos:
        line_end: 9886
        line_start: 9885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '38'
    - item_type: preproc_def
      name: OP_RealAffinity
      pos:
        line_end: 9887
        line_start: 9886
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '39'
    - item_type: preproc_def
      name: OP_Cast
      pos:
        line_end: 9888
        line_start: 9887
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '40 '
    - item_type: preproc_def
      name: OP_Permutation
      pos:
        line_end: 9889
        line_start: 9888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '41'
    - item_type: preproc_def
      name: OP_Compare
      pos:
        line_end: 9890
        line_start: 9889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '42 '
    - item_type: preproc_def
      name: OP_Jump
      pos:
        line_end: 9891
        line_start: 9890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '43'
    - item_type: preproc_def
      name: OP_Once
      pos:
        line_end: 9892
        line_start: 9891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '44'
    - item_type: preproc_def
      name: OP_If
      pos:
        line_end: 9893
        line_start: 9892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '45'
    - item_type: preproc_def
      name: OP_IfNot
      pos:
        line_end: 9894
        line_start: 9893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '46'
    - item_type: preproc_def
      name: OP_Column
      pos:
        line_end: 9895
        line_start: 9894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '47 '
    - item_type: preproc_def
      name: OP_Affinity
      pos:
        line_end: 9896
        line_start: 9895
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '48 '
    - item_type: preproc_def
      name: OP_MakeRecord
      pos:
        line_end: 9897
        line_start: 9896
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '49 '
    - item_type: preproc_def
      name: OP_Count
      pos:
        line_end: 9898
        line_start: 9897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '50 '
    - item_type: preproc_def
      name: OP_ReadCookie
      pos:
        line_end: 9899
        line_start: 9898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '51'
    - item_type: preproc_def
      name: OP_SetCookie
      pos:
        line_end: 9900
        line_start: 9899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '52'
    - item_type: preproc_def
      name: OP_ReopenIdx
      pos:
        line_end: 9901
        line_start: 9900
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '53 '
    - item_type: preproc_def
      name: OP_OpenRead
      pos:
        line_end: 9902
        line_start: 9901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '54 '
    - item_type: preproc_def
      name: OP_OpenWrite
      pos:
        line_end: 9903
        line_start: 9902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '55 '
    - item_type: preproc_def
      name: OP_OpenAutoindex
      pos:
        line_end: 9904
        line_start: 9903
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '56 '
    - item_type: preproc_def
      name: OP_OpenEphemeral
      pos:
        line_end: 9905
        line_start: 9904
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '57 '
    - item_type: preproc_def
      name: OP_SorterOpen
      pos:
        line_end: 9906
        line_start: 9905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '58'
    - item_type: preproc_def
      name: OP_SequenceTest
      pos:
        line_end: 9907
        line_start: 9906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '59 '
    - item_type: preproc_def
      name: OP_OpenPseudo
      pos:
        line_end: 9908
        line_start: 9907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '60 '
    - item_type: preproc_def
      name: OP_Close
      pos:
        line_end: 9909
        line_start: 9908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '61'
    - item_type: preproc_def
      name: OP_ColumnsUsed
      pos:
        line_end: 9910
        line_start: 9909
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '62'
    - item_type: preproc_def
      name: OP_SeekLT
      pos:
        line_end: 9911
        line_start: 9910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '63 '
    - item_type: preproc_def
      name: OP_SeekLE
      pos:
        line_end: 9912
        line_start: 9911
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '64 '
    - item_type: preproc_def
      name: OP_SeekGE
      pos:
        line_end: 9913
        line_start: 9912
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '65 '
    - item_type: preproc_def
      name: OP_SeekGT
      pos:
        line_end: 9914
        line_start: 9913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '66 '
    - item_type: preproc_def
      name: OP_Seek
      pos:
        line_end: 9915
        line_start: 9914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '67 '
    - item_type: preproc_def
      name: OP_NoConflict
      pos:
        line_end: 9916
        line_start: 9915
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '68 '
    - item_type: preproc_def
      name: OP_NotFound
      pos:
        line_end: 9917
        line_start: 9916
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '69 '
    - item_type: preproc_def
      name: OP_Found
      pos:
        line_end: 9918
        line_start: 9917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '70 '
    - item_type: preproc_def
      name: OP_Or
      pos:
        line_end: 9919
        line_start: 9918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '71 '
    - item_type: preproc_def
      name: OP_And
      pos:
        line_end: 9920
        line_start: 9919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '72 '
    - item_type: preproc_def
      name: OP_NotExists
      pos:
        line_end: 9921
        line_start: 9920
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '73 '
    - item_type: preproc_def
      name: OP_Sequence
      pos:
        line_end: 9922
        line_start: 9921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '74 '
    - item_type: preproc_def
      name: OP_NewRowid
      pos:
        line_end: 9923
        line_start: 9922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '75 '
    - item_type: preproc_def
      name: OP_IsNull
      pos:
        line_end: 9924
        line_start: 9923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '76 '
    - item_type: preproc_def
      name: OP_NotNull
      pos:
        line_end: 9925
        line_start: 9924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '77 '
    - item_type: preproc_def
      name: OP_Ne
      pos:
        line_end: 9926
        line_start: 9925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '78 '
    - item_type: preproc_def
      name: OP_Eq
      pos:
        line_end: 9927
        line_start: 9926
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '79 '
    - item_type: preproc_def
      name: OP_Gt
      pos:
        line_end: 9928
        line_start: 9927
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '80 '
    - item_type: preproc_def
      name: OP_Le
      pos:
        line_end: 9929
        line_start: 9928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '81 '
    - item_type: preproc_def
      name: OP_Lt
      pos:
        line_end: 9930
        line_start: 9929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '82 '
    - item_type: preproc_def
      name: OP_Ge
      pos:
        line_end: 9931
        line_start: 9930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '83 '
    - item_type: preproc_def
      name: OP_Insert
      pos:
        line_end: 9932
        line_start: 9931
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '84 '
    - item_type: preproc_def
      name: OP_BitAnd
      pos:
        line_end: 9933
        line_start: 9932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '85 '
    - item_type: preproc_def
      name: OP_BitOr
      pos:
        line_end: 9934
        line_start: 9933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '86 '
    - item_type: preproc_def
      name: OP_ShiftLeft
      pos:
        line_end: 9935
        line_start: 9934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '87 '
    - item_type: preproc_def
      name: OP_ShiftRight
      pos:
        line_end: 9936
        line_start: 9935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '88 '
    - item_type: preproc_def
      name: OP_Add
      pos:
        line_end: 9937
        line_start: 9936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '89 '
    - item_type: preproc_def
      name: OP_Subtract
      pos:
        line_end: 9938
        line_start: 9937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '90 '
    - item_type: preproc_def
      name: OP_Multiply
      pos:
        line_end: 9939
        line_start: 9938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '91 '
    - item_type: preproc_def
      name: OP_Divide
      pos:
        line_end: 9940
        line_start: 9939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '92 '
    - item_type: preproc_def
      name: OP_Remainder
      pos:
        line_end: 9941
        line_start: 9940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '93 '
    - item_type: preproc_def
      name: OP_Concat
      pos:
        line_end: 9942
        line_start: 9941
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '94 '
    - item_type: preproc_def
      name: OP_InsertInt
      pos:
        line_end: 9943
        line_start: 9942
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '95 '
    - item_type: preproc_def
      name: OP_BitNot
      pos:
        line_end: 9944
        line_start: 9943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '96 '
    - item_type: preproc_def
      name: OP_String8
      pos:
        line_end: 9945
        line_start: 9944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '97 '
    - item_type: preproc_def
      name: OP_Delete
      pos:
        line_end: 9946
        line_start: 9945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '98'
    - item_type: preproc_def
      name: OP_ResetCount
      pos:
        line_end: 9947
        line_start: 9946
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '99'
    - item_type: preproc_def
      name: OP_SorterCompare
      pos:
        line_end: 9948
        line_start: 9947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100 '
    - item_type: preproc_def
      name: OP_SorterData
      pos:
        line_end: 9949
        line_start: 9948
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '101 '
    - item_type: preproc_def
      name: OP_RowKey
      pos:
        line_end: 9950
        line_start: 9949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '102 '
    - item_type: preproc_def
      name: OP_RowData
      pos:
        line_end: 9951
        line_start: 9950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '103 '
    - item_type: preproc_def
      name: OP_Rowid
      pos:
        line_end: 9952
        line_start: 9951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '104 '
    - item_type: preproc_def
      name: OP_NullRow
      pos:
        line_end: 9953
        line_start: 9952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '105'
    - item_type: preproc_def
      name: OP_Last
      pos:
        line_end: 9954
        line_start: 9953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '106'
    - item_type: preproc_def
      name: OP_SorterSort
      pos:
        line_end: 9955
        line_start: 9954
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '107'
    - item_type: preproc_def
      name: OP_Sort
      pos:
        line_end: 9956
        line_start: 9955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '108'
    - item_type: preproc_def
      name: OP_Rewind
      pos:
        line_end: 9957
        line_start: 9956
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '109'
    - item_type: preproc_def
      name: OP_SorterInsert
      pos:
        line_end: 9958
        line_start: 9957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '110'
    - item_type: preproc_def
      name: OP_IdxInsert
      pos:
        line_end: 9959
        line_start: 9958
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '111 '
    - item_type: preproc_def
      name: OP_IdxDelete
      pos:
        line_end: 9960
        line_start: 9959
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '112 '
    - item_type: preproc_def
      name: OP_IdxRowid
      pos:
        line_end: 9961
        line_start: 9960
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '113 '
    - item_type: preproc_def
      name: OP_IdxLE
      pos:
        line_end: 9962
        line_start: 9961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '114 '
    - item_type: preproc_def
      name: OP_IdxGT
      pos:
        line_end: 9963
        line_start: 9962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '115 '
    - item_type: preproc_def
      name: OP_IdxLT
      pos:
        line_end: 9964
        line_start: 9963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '116 '
    - item_type: preproc_def
      name: OP_IdxGE
      pos:
        line_end: 9965
        line_start: 9964
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '117 '
    - item_type: preproc_def
      name: OP_Destroy
      pos:
        line_end: 9966
        line_start: 9965
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '118'
    - item_type: preproc_def
      name: OP_Clear
      pos:
        line_end: 9967
        line_start: 9966
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '119'
    - item_type: preproc_def
      name: OP_ResetSorter
      pos:
        line_end: 9968
        line_start: 9967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '120'
    - item_type: preproc_def
      name: OP_CreateIndex
      pos:
        line_end: 9969
        line_start: 9968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '121 '
    - item_type: preproc_def
      name: OP_CreateTable
      pos:
        line_end: 9970
        line_start: 9969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '122 '
    - item_type: preproc_def
      name: OP_ParseSchema
      pos:
        line_end: 9971
        line_start: 9970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '123'
    - item_type: preproc_def
      name: OP_LoadAnalysis
      pos:
        line_end: 9972
        line_start: 9971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '124'
    - item_type: preproc_def
      name: OP_DropTable
      pos:
        line_end: 9973
        line_start: 9972
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '125'
    - item_type: preproc_def
      name: OP_DropIndex
      pos:
        line_end: 9974
        line_start: 9973
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '126'
    - item_type: preproc_def
      name: OP_DropTrigger
      pos:
        line_end: 9975
        line_start: 9974
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '127'
    - item_type: preproc_def
      name: OP_IntegrityCk
      pos:
        line_end: 9976
        line_start: 9975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '128'
    - item_type: preproc_def
      name: OP_RowSetAdd
      pos:
        line_end: 9977
        line_start: 9976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '129 '
    - item_type: preproc_def
      name: OP_RowSetRead
      pos:
        line_end: 9978
        line_start: 9977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '130 '
    - item_type: preproc_def
      name: OP_RowSetTest
      pos:
        line_end: 9979
        line_start: 9978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '131 '
    - item_type: preproc_def
      name: OP_Program
      pos:
        line_end: 9980
        line_start: 9979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '132'
    - item_type: preproc_def
      name: OP_Real
      pos:
        line_end: 9981
        line_start: 9980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '133 '
    - item_type: preproc_def
      name: OP_Param
      pos:
        line_end: 9982
        line_start: 9981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '134'
    - item_type: preproc_def
      name: OP_FkCounter
      pos:
        line_end: 9983
        line_start: 9982
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '135 '
    - item_type: preproc_def
      name: OP_FkIfZero
      pos:
        line_end: 9984
        line_start: 9983
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '136 '
    - item_type: preproc_def
      name: OP_MemMax
      pos:
        line_end: 9985
        line_start: 9984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '137 '
    - item_type: preproc_def
      name: OP_IfPos
      pos:
        line_end: 9986
        line_start: 9985
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '138 '
    - item_type: preproc_def
      name: OP_IfNeg
      pos:
        line_end: 9987
        line_start: 9986
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '139 '
    - item_type: preproc_def
      name: OP_IfNotZero
      pos:
        line_end: 9988
        line_start: 9987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '140 '
    - item_type: preproc_def
      name: OP_DecrJumpZero
      pos:
        line_end: 9989
        line_start: 9988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '141 '
    - item_type: preproc_def
      name: OP_JumpZeroIncr
      pos:
        line_end: 9990
        line_start: 9989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '142 '
    - item_type: preproc_def
      name: OP_AggStep0
      pos:
        line_end: 9991
        line_start: 9990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '143 '
    - item_type: preproc_def
      name: OP_AggStep
      pos:
        line_end: 9992
        line_start: 9991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '144 '
    - item_type: preproc_def
      name: OP_AggFinal
      pos:
        line_end: 9993
        line_start: 9992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '145 '
    - item_type: preproc_def
      name: OP_IncrVacuum
      pos:
        line_end: 9994
        line_start: 9993
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '146'
    - item_type: preproc_def
      name: OP_Expire
      pos:
        line_end: 9995
        line_start: 9994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '147'
    - item_type: preproc_def
      name: OP_TableLock
      pos:
        line_end: 9996
        line_start: 9995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '148 '
    - item_type: preproc_def
      name: OP_VBegin
      pos:
        line_end: 9997
        line_start: 9996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '149'
    - item_type: preproc_def
      name: OP_VCreate
      pos:
        line_end: 9998
        line_start: 9997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '150'
    - item_type: preproc_def
      name: OP_VDestroy
      pos:
        line_end: 9999
        line_start: 9998
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '151'
    - item_type: preproc_def
      name: OP_VOpen
      pos:
        line_end: 10000
        line_start: 9999
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '152'
    - item_type: preproc_def
      name: OP_VColumn
      pos:
        line_end: 10001
        line_start: 10000
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '153 '
    - item_type: preproc_def
      name: OP_VNext
      pos:
        line_end: 10002
        line_start: 10001
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '154'
    - item_type: preproc_def
      name: OP_VRename
      pos:
        line_end: 10003
        line_start: 10002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '155'
    - item_type: preproc_def
      name: OP_Pagecount
      pos:
        line_end: 10004
        line_start: 10003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '156'
    - item_type: preproc_def
      name: OP_MaxPgcnt
      pos:
        line_end: 10005
        line_start: 10004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '157'
    - item_type: preproc_def
      name: OP_Init
      pos:
        line_end: 10006
        line_start: 10005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '158 '
    - item_type: preproc_def
      name: OP_Noop
      pos:
        line_end: 10007
        line_start: 10006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '159'
    - item_type: preproc_def
      name: OP_Explain
      pos:
        line_end: 10008
        line_start: 10007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '160'
    - item_type: preproc_def
      name: OPFLG_JUMP
      pos:
        line_end: 10015
        line_start: 10014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: OPFLG_IN1
      pos:
        line_end: 10016
        line_start: 10015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: OPFLG_IN2
      pos:
        line_end: 10017
        line_start: 10016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: OPFLG_IN3
      pos:
        line_end: 10018
        line_start: 10017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: OPFLG_OUT2
      pos:
        line_end: 10019
        line_start: 10018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: OPFLG_OUT3
      pos:
        line_end: 10020
        line_start: 10019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: OPFLG_INITIALIZER
      pos:
        line_end: 10021
        line_start: 10020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '{\

        '
    - item_type: preproc_def
      name: SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
      pos:
        line_end: 10209
        line_start: 10208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: PAGER_OMIT_JOURNAL
      pos:
        line_end: 10243
        line_start: 10242
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001    '
    - item_type: preproc_def
      name: PAGER_MEMORY
      pos:
        line_end: 10244
        line_start: 10243
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002    '
    - item_type: preproc_def
      name: PAGER_LOCKINGMODE_QUERY
      pos:
        line_end: 10249
        line_start: 10248
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: PAGER_LOCKINGMODE_NORMAL
      pos:
        line_end: 10250
        line_start: 10249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGER_LOCKINGMODE_EXCLUSIVE
      pos:
        line_end: 10251
        line_start: 10250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_QUERY
      pos:
        line_end: 10256
        line_start: 10255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(-1)  '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_DELETE
      pos:
        line_end: 10257
        line_start: 10256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_PERSIST
      pos:
        line_end: 10258
        line_start: 10257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_OFF
      pos:
        line_end: 10259
        line_start: 10258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_TRUNCATE
      pos:
        line_end: 10260
        line_start: 10259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_MEMORY
      pos:
        line_end: 10261
        line_start: 10260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: PAGER_JOURNALMODE_WAL
      pos:
        line_end: 10262
        line_start: 10261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5   '
    - item_type: preproc_def
      name: PAGER_GET_NOCONTENT
      pos:
        line_end: 10267
        line_start: 10266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: PAGER_GET_READONLY
      pos:
        line_end: 10268
        line_start: 10267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: PAGER_SYNCHRONOUS_OFF
      pos:
        line_end: 10273
        line_start: 10272
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: PAGER_SYNCHRONOUS_NORMAL
      pos:
        line_end: 10274
        line_start: 10273
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: PAGER_SYNCHRONOUS_FULL
      pos:
        line_end: 10275
        line_start: 10274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x03  '
    - item_type: preproc_def
      name: PAGER_SYNCHRONOUS_MASK
      pos:
        line_end: 10276
        line_start: 10275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x03  '
    - item_type: preproc_def
      name: PAGER_FULLFSYNC
      pos:
        line_end: 10277
        line_start: 10276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: PAGER_CKPT_FULLFSYNC
      pos:
        line_end: 10278
        line_start: 10277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: PAGER_CACHESPILL
      pos:
        line_end: 10279
        line_start: 10278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10  '
    - item_type: preproc_def
      name: PAGER_FLAGS_MASK
      pos:
        line_end: 10280
        line_start: 10279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1c  '
    - item_type: preproc_def
      name: PGHDR_CLEAN
      pos:
        line_end: 10452
        line_start: 10451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x001  '
    - item_type: preproc_def
      name: PGHDR_DIRTY
      pos:
        line_end: 10453
        line_start: 10452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x002  '
    - item_type: preproc_def
      name: PGHDR_WRITEABLE
      pos:
        line_end: 10454
        line_start: 10453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x004  '
    - item_type: preproc_def
      name: PGHDR_NEED_SYNC
      pos:
        line_end: 10456
        line_start: 10454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x008  '
    - item_type: preproc_def
      name: PGHDR_NEED_READ
      pos:
        line_end: 10457
        line_start: 10456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x010  '
    - item_type: preproc_def
      name: PGHDR_DONT_WRITE
      pos:
        line_end: 10458
        line_start: 10457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x020  '
    - item_type: preproc_def
      name: PGHDR_MMAP
      pos:
        line_end: 10459
        line_start: 10458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x040  '
    - item_type: preproc_def
      name: SQLITE_OS_UNIX
      pos:
        line_end: 10634
        line_start: 10633
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_WIN
      pos:
        line_end: 10636
        line_start: 10635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_OTHER
      pos:
        line_end: 10642
        line_start: 10641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_WIN
      pos:
        line_end: 10646
        line_start: 10645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_UNIX
      pos:
        line_end: 10647
        line_start: 10646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_WIN
      pos:
        line_end: 10649
        line_start: 10648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_UNIX
      pos:
        line_end: 10650
        line_start: 10649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_UNIX
      pos:
        line_end: 10653
        line_start: 10652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_WIN
      pos:
        line_end: 10657
        line_start: 10656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_SECTOR_SIZE
      pos:
        line_end: 10677
        line_start: 10676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: SQLITE_TEMP_FILE_PREFIX
      pos:
        line_end: 10702
        line_start: 10701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"etilqs_"'
    - item_type: preproc_def
      name: NO_LOCK
      pos:
        line_end: 10722
        line_start: 10721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SHARED_LOCK
      pos:
        line_end: 10723
        line_start: 10722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RESERVED_LOCK
      pos:
        line_end: 10724
        line_start: 10723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PENDING_LOCK
      pos:
        line_end: 10725
        line_start: 10724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: EXCLUSIVE_LOCK
      pos:
        line_end: 10726
        line_start: 10725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PENDING_BYTE
      pos:
        line_end: 10784
        line_start: 10783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0x40000000)
    - item_type: preproc_def
      name: PENDING_BYTE
      pos:
        line_end: 10786
        line_start: 10785
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3PendingByte
    - item_type: preproc_def
      name: RESERVED_BYTE
      pos:
        line_end: 10788
        line_start: 10787
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (PENDING_BYTE+1)
    - item_type: preproc_def
      name: SHARED_FIRST
      pos:
        line_end: 10789
        line_start: 10788
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (PENDING_BYTE+2)
    - item_type: preproc_def
      name: SHARED_SIZE
      pos:
        line_end: 10790
        line_start: 10789
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '510'
    - item_type: preproc_def
      name: SQLITE_FCNTL_DB_UNCHANGED
      pos:
        line_end: 10811
        line_start: 10810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xca093fa0'
    - item_type: preproc_def
      name: DB_SchemaLoaded
      pos:
        line_end: 10991
        line_start: 10990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: DB_UnresetViews
      pos:
        line_end: 10992
        line_start: 10991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: DB_Empty
      pos:
        line_end: 10993
        line_start: 10992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: SQLITE_N_LIMIT
      pos:
        line_end: 10999
        line_start: 10998
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_LIMIT_WORKER_THREADS+1)
    - item_type: preproc_def
      name: UAUTH_Unknown
      pos:
        line_end: 11060
        line_start: 11059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0     '
    - item_type: preproc_def
      name: UAUTH_Fail
      pos:
        line_end: 11061
        line_start: 11060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1     '
    - item_type: preproc_def
      name: UAUTH_User
      pos:
        line_end: 11062
        line_start: 11061
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2     '
    - item_type: preproc_def
      name: UAUTH_Admin
      pos:
        line_end: 11063
        line_start: 11062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3     '
    - item_type: preproc_def
      name: SQLITE_VdbeTrace
      pos:
        line_end: 11212
        line_start: 11211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: SQLITE_InternChanges
      pos:
        line_end: 11213
        line_start: 11212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: SQLITE_FullFSync
      pos:
        line_end: 11214
        line_start: 11213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: SQLITE_CkptFullFSync
      pos:
        line_end: 11215
        line_start: 11214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: SQLITE_CacheSpill
      pos:
        line_end: 11216
        line_start: 11215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: SQLITE_FullColNames
      pos:
        line_end: 11217
        line_start: 11216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: SQLITE_ShortColNames
      pos:
        line_end: 11218
        line_start: 11217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: SQLITE_CountRows
      pos:
        line_end: 11219
        line_start: 11218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: SQLITE_NullCallback
      pos:
        line_end: 11222
        line_start: 11221
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: SQLITE_SqlTrace
      pos:
        line_end: 11224
        line_start: 11223
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: SQLITE_VdbeListing
      pos:
        line_end: 11225
        line_start: 11224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: SQLITE_WriteSchema
      pos:
        line_end: 11226
        line_start: 11225
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: SQLITE_VdbeAddopTrace
      pos:
        line_end: 11227
        line_start: 11226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: SQLITE_IgnoreChecks
      pos:
        line_end: 11228
        line_start: 11227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: SQLITE_ReadUncommitted
      pos:
        line_end: 11229
        line_start: 11228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004000  '
    - item_type: preproc_def
      name: SQLITE_LegacyFileFmt
      pos:
        line_end: 11230
        line_start: 11229
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: SQLITE_RecoveryMode
      pos:
        line_end: 11231
        line_start: 11230
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: SQLITE_ReverseOrder
      pos:
        line_end: 11232
        line_start: 11231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: SQLITE_RecTriggers
      pos:
        line_end: 11233
        line_start: 11232
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: SQLITE_ForeignKeys
      pos:
        line_end: 11234
        line_start: 11233
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: SQLITE_AutoIndex
      pos:
        line_end: 11235
        line_start: 11234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00100000  '
    - item_type: preproc_def
      name: SQLITE_PreferBuiltin
      pos:
        line_end: 11236
        line_start: 11235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00200000  '
    - item_type: preproc_def
      name: SQLITE_LoadExtension
      pos:
        line_end: 11237
        line_start: 11236
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00400000  '
    - item_type: preproc_def
      name: SQLITE_EnableTrigger
      pos:
        line_end: 11238
        line_start: 11237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00800000  '
    - item_type: preproc_def
      name: SQLITE_DeferFKs
      pos:
        line_end: 11239
        line_start: 11238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01000000  '
    - item_type: preproc_def
      name: SQLITE_QueryOnly
      pos:
        line_end: 11240
        line_start: 11239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02000000  '
    - item_type: preproc_def
      name: SQLITE_VdbeEQP
      pos:
        line_end: 11241
        line_start: 11240
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04000000  '
    - item_type: preproc_def
      name: SQLITE_Vacuum
      pos:
        line_end: 11242
        line_start: 11241
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08000000  '
    - item_type: preproc_def
      name: SQLITE_CellSizeCk
      pos:
        line_end: 11243
        line_start: 11242
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10000000  '
    - item_type: preproc_def
      name: SQLITE_QueryFlattener
      pos:
        line_end: 11251
        line_start: 11250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001   '
    - item_type: preproc_def
      name: SQLITE_ColumnCache
      pos:
        line_end: 11252
        line_start: 11251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002   '
    - item_type: preproc_def
      name: SQLITE_GroupByOrder
      pos:
        line_end: 11253
        line_start: 11252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: SQLITE_FactorOutConst
      pos:
        line_end: 11254
        line_start: 11253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008   '
    - item_type: preproc_def
      name: SQLITE_DistinctOpt
      pos:
        line_end: 11256
        line_start: 11255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020   '
    - item_type: preproc_def
      name: SQLITE_CoverIdxScan
      pos:
        line_end: 11257
        line_start: 11256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040   '
    - item_type: preproc_def
      name: SQLITE_OrderByIdxJoin
      pos:
        line_end: 11258
        line_start: 11257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0080   '
    - item_type: preproc_def
      name: SQLITE_SubqCoroutine
      pos:
        line_end: 11259
        line_start: 11258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100   '
    - item_type: preproc_def
      name: SQLITE_Transitive
      pos:
        line_end: 11260
        line_start: 11259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200   '
    - item_type: preproc_def
      name: SQLITE_OmitNoopJoin
      pos:
        line_end: 11261
        line_start: 11260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0400   '
    - item_type: preproc_def
      name: SQLITE_Stat34
      pos:
        line_end: 11262
        line_start: 11261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0800   '
    - item_type: preproc_def
      name: SQLITE_AllOpts
      pos:
        line_end: 11263
        line_start: 11262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xffff   '
    - item_type: preproc_def
      name: SQLITE_MAGIC_OPEN
      pos:
        line_end: 11287
        line_start: 11286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xa029a697  '
    - item_type: preproc_def
      name: SQLITE_MAGIC_CLOSED
      pos:
        line_end: 11288
        line_start: 11287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x9f3c2d33  '
    - item_type: preproc_def
      name: SQLITE_MAGIC_SICK
      pos:
        line_end: 11289
        line_start: 11288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x4b771290  '
    - item_type: preproc_def
      name: SQLITE_MAGIC_BUSY
      pos:
        line_end: 11290
        line_start: 11289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xf03b7906  '
    - item_type: preproc_def
      name: SQLITE_MAGIC_ERROR
      pos:
        line_end: 11291
        line_start: 11290
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xb5357930  '
    - item_type: preproc_def
      name: SQLITE_MAGIC_ZOMBIE
      pos:
        line_end: 11292
        line_start: 11291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x64cffc7f  '
    - item_type: preproc_def
      name: SQLITE_FUNC_ENCMASK
      pos:
        line_end: 11338
        line_start: 11337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x003 '
    - item_type: preproc_def
      name: SQLITE_FUNC_LIKE
      pos:
        line_end: 11339
        line_start: 11338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x004 '
    - item_type: preproc_def
      name: SQLITE_FUNC_CASE
      pos:
        line_end: 11340
        line_start: 11339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x008 '
    - item_type: preproc_def
      name: SQLITE_FUNC_EPHEM
      pos:
        line_end: 11341
        line_start: 11340
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x010 '
    - item_type: preproc_def
      name: SQLITE_FUNC_NEEDCOLL
      pos:
        line_end: 11342
        line_start: 11341
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x020 '
    - item_type: preproc_def
      name: SQLITE_FUNC_LENGTH
      pos:
        line_end: 11343
        line_start: 11342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x040 '
    - item_type: preproc_def
      name: SQLITE_FUNC_TYPEOF
      pos:
        line_end: 11344
        line_start: 11343
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x080 '
    - item_type: preproc_def
      name: SQLITE_FUNC_COUNT
      pos:
        line_end: 11345
        line_start: 11344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x100 '
    - item_type: preproc_def
      name: SQLITE_FUNC_COALESCE
      pos:
        line_end: 11346
        line_start: 11345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x200 '
    - item_type: preproc_def
      name: SQLITE_FUNC_UNLIKELY
      pos:
        line_end: 11347
        line_start: 11346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x400 '
    - item_type: preproc_def
      name: SQLITE_FUNC_CONSTANT
      pos:
        line_end: 11348
        line_start: 11347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x800 '
    - item_type: preproc_def
      name: SQLITE_FUNC_MINMAX
      pos:
        line_end: 11349
        line_start: 11348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: SAVEPOINT_BEGIN
      pos:
        line_end: 11418
        line_start: 11417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SAVEPOINT_RELEASE
      pos:
        line_end: 11419
        line_start: 11418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SAVEPOINT_ROLLBACK
      pos:
        line_end: 11420
        line_start: 11419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COLFLAG_PRIMKEY
      pos:
        line_end: 11453
        line_start: 11452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001    '
    - item_type: preproc_def
      name: COLFLAG_HIDDEN
      pos:
        line_end: 11454
        line_start: 11453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002    '
    - item_type: preproc_def
      name: SQLITE_SO_ASC
      pos:
        line_end: 11476
        line_start: 11475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: SQLITE_SO_DESC
      pos:
        line_end: 11477
        line_start: 11476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_AFF_BLOB
      pos:
        line_end: 11493
        line_start: 11492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''A'''
    - item_type: preproc_def
      name: SQLITE_AFF_TEXT
      pos:
        line_end: 11494
        line_start: 11493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''B'''
    - item_type: preproc_def
      name: SQLITE_AFF_NUMERIC
      pos:
        line_end: 11495
        line_start: 11494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''C'''
    - item_type: preproc_def
      name: SQLITE_AFF_INTEGER
      pos:
        line_end: 11496
        line_start: 11495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''D'''
    - item_type: preproc_def
      name: SQLITE_AFF_REAL
      pos:
        line_end: 11497
        line_start: 11496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''E'''
    - item_type: preproc_def
      name: SQLITE_AFF_MASK
      pos:
        line_end: 11505
        line_start: 11504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x47'
    - item_type: preproc_def
      name: SQLITE_JUMPIFNULL
      pos:
        line_end: 11516
        line_start: 11515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10  '
    - item_type: preproc_def
      name: SQLITE_STOREP2
      pos:
        line_end: 11517
        line_start: 11516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20  '
    - item_type: preproc_def
      name: SQLITE_NULLEQ
      pos:
        line_end: 11518
        line_start: 11517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80  '
    - item_type: preproc_def
      name: SQLITE_NOTNULL
      pos:
        line_end: 11519
        line_start: 11518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x90  '
    - item_type: preproc_def
      name: TF_Readonly
      pos:
        line_end: 11620
        line_start: 11619
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TF_Ephemeral
      pos:
        line_end: 11621
        line_start: 11620
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: TF_HasPrimaryKey
      pos:
        line_end: 11622
        line_start: 11621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: TF_Autoincrement
      pos:
        line_end: 11623
        line_start: 11622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: TF_Virtual
      pos:
        line_end: 11624
        line_start: 11623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: TF_WithoutRowid
      pos:
        line_end: 11625
        line_start: 11624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20    '
    - item_type: preproc_def
      name: TF_NoVisibleRowid
      pos:
        line_end: 11626
        line_start: 11625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: TF_OOOHidden
      pos:
        line_end: 11627
        line_start: 11626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80    '
    - item_type: preproc_def
      name: OE_None
      pos:
        line_end: 11717
        line_start: 11716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: OE_Rollback
      pos:
        line_end: 11718
        line_start: 11717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: OE_Abort
      pos:
        line_end: 11719
        line_start: 11718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: OE_Fail
      pos:
        line_end: 11720
        line_start: 11719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: OE_Ignore
      pos:
        line_end: 11721
        line_start: 11720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: OE_Replace
      pos:
        line_end: 11722
        line_start: 11721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5   '
    - item_type: preproc_def
      name: OE_Restrict
      pos:
        line_end: 11724
        line_start: 11723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6   '
    - item_type: preproc_def
      name: OE_SetNull
      pos:
        line_end: 11725
        line_start: 11724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7   '
    - item_type: preproc_def
      name: OE_SetDflt
      pos:
        line_end: 11726
        line_start: 11725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8   '
    - item_type: preproc_def
      name: OE_Cascade
      pos:
        line_end: 11727
        line_start: 11726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9   '
    - item_type: preproc_def
      name: OE_Default
      pos:
        line_end: 11729
        line_start: 11728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: SQLITE_IDXTYPE_APPDEF
      pos:
        line_end: 11848
        line_start: 11847
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_IDXTYPE_UNIQUE
      pos:
        line_end: 11849
        line_start: 11848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_IDXTYPE_PRIMARYKEY
      pos:
        line_end: 11850
        line_start: 11849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: EP_FromJoin
      pos:
        line_end: 12054
        line_start: 12053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000001 '
    - item_type: preproc_def
      name: EP_Agg
      pos:
        line_end: 12055
        line_start: 12054
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000002 '
    - item_type: preproc_def
      name: EP_Resolved
      pos:
        line_end: 12056
        line_start: 12055
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000004 '
    - item_type: preproc_def
      name: EP_Error
      pos:
        line_end: 12057
        line_start: 12056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000008 '
    - item_type: preproc_def
      name: EP_Distinct
      pos:
        line_end: 12058
        line_start: 12057
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000010 '
    - item_type: preproc_def
      name: EP_VarSelect
      pos:
        line_end: 12059
        line_start: 12058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000020 '
    - item_type: preproc_def
      name: EP_DblQuoted
      pos:
        line_end: 12060
        line_start: 12059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000040 '
    - item_type: preproc_def
      name: EP_InfixFunc
      pos:
        line_end: 12061
        line_start: 12060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000080 '
    - item_type: preproc_def
      name: EP_Collate
      pos:
        line_end: 12062
        line_start: 12061
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000100 '
    - item_type: preproc_def
      name: EP_Generic
      pos:
        line_end: 12063
        line_start: 12062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000200 '
    - item_type: preproc_def
      name: EP_IntValue
      pos:
        line_end: 12064
        line_start: 12063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000400 '
    - item_type: preproc_def
      name: EP_xIsSelect
      pos:
        line_end: 12065
        line_start: 12064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x000800 '
    - item_type: preproc_def
      name: EP_Skip
      pos:
        line_end: 12066
        line_start: 12065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x001000 '
    - item_type: preproc_def
      name: EP_Reduced
      pos:
        line_end: 12067
        line_start: 12066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x002000 '
    - item_type: preproc_def
      name: EP_TokenOnly
      pos:
        line_end: 12068
        line_start: 12067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x004000 '
    - item_type: preproc_def
      name: EP_Static
      pos:
        line_end: 12069
        line_start: 12068
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x008000 '
    - item_type: preproc_def
      name: EP_MemToken
      pos:
        line_end: 12070
        line_start: 12069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x010000 '
    - item_type: preproc_def
      name: EP_NoReduce
      pos:
        line_end: 12071
        line_start: 12070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x020000 '
    - item_type: preproc_def
      name: EP_Unlikely
      pos:
        line_end: 12072
        line_start: 12071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x040000 '
    - item_type: preproc_def
      name: EP_ConstFunc
      pos:
        line_end: 12073
        line_start: 12072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x080000 '
    - item_type: preproc_def
      name: EP_CanBeNull
      pos:
        line_end: 12074
        line_start: 12073
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x100000 '
    - item_type: preproc_def
      name: EP_Subquery
      pos:
        line_end: 12075
        line_start: 12074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x200000 '
    - item_type: preproc_def
      name: EP_Propagate
      pos:
        line_end: 12080
        line_start: 12079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(EP_Collate|EP_Subquery) '
    - item_type: preproc_def
      name: EXPR_FULLSIZE
      pos:
        line_end: 12106
        line_start: 12105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 'sizeof(Expr)           '
    - item_type: preproc_def
      name: EXPR_REDUCEDSIZE
      pos:
        line_end: 12107
        line_start: 12106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 'offsetof(Expr,iTable)  '
    - item_type: preproc_def
      name: EXPR_TOKENONLYSIZE
      pos:
        line_end: 12108
        line_start: 12107
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 'offsetof(Expr,pLeft)   '
    - item_type: preproc_def
      name: EXPRDUP_REDUCE
      pos:
        line_end: 12114
        line_start: 12113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: BMS
      pos:
        line_end: 12198
        line_start: 12197
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((int)(sizeof(Bitmask)*8))
    - item_type: preproc_def
      name: JT_INNER
      pos:
        line_end: 12258
        line_start: 12257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001    '
    - item_type: preproc_def
      name: JT_CROSS
      pos:
        line_end: 12259
        line_start: 12258
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002    '
    - item_type: preproc_def
      name: JT_NATURAL
      pos:
        line_end: 12260
        line_start: 12259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004    '
    - item_type: preproc_def
      name: JT_LEFT
      pos:
        line_end: 12261
        line_start: 12260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008    '
    - item_type: preproc_def
      name: JT_RIGHT
      pos:
        line_end: 12262
        line_start: 12261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010    '
    - item_type: preproc_def
      name: JT_OUTER
      pos:
        line_end: 12263
        line_start: 12262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020    '
    - item_type: preproc_def
      name: JT_ERROR
      pos:
        line_end: 12264
        line_start: 12263
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040    '
    - item_type: preproc_def
      name: WHERE_ORDERBY_NORMAL
      pos:
        line_end: 12271
        line_start: 12270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0000 '
    - item_type: preproc_def
      name: WHERE_ORDERBY_MIN
      pos:
        line_end: 12272
        line_start: 12271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: WHERE_ORDERBY_MAX
      pos:
        line_end: 12273
        line_start: 12272
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: WHERE_ONEPASS_DESIRED
      pos:
        line_end: 12274
        line_start: 12273
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: WHERE_DUPLICATES_OK
      pos:
        line_end: 12275
        line_start: 12274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: WHERE_OMIT_OPEN_CLOSE
      pos:
        line_end: 12276
        line_start: 12275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: WHERE_FORCE_TABLE
      pos:
        line_end: 12277
        line_start: 12276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020 '
    - item_type: preproc_def
      name: WHERE_ONETABLE_ONLY
      pos:
        line_end: 12278
        line_start: 12277
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040 '
    - item_type: preproc_def
      name: WHERE_NO_AUTOINDEX
      pos:
        line_end: 12279
        line_start: 12278
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: WHERE_GROUPBY
      pos:
        line_end: 12280
        line_start: 12279
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: WHERE_DISTINCTBY
      pos:
        line_end: 12281
        line_start: 12280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: WHERE_WANT_DISTINCT
      pos:
        line_end: 12282
        line_start: 12281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: WHERE_SORTBYGROUP
      pos:
        line_end: 12283
        line_start: 12282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0800 '
    - item_type: preproc_def
      name: WHERE_REOPEN_IDX
      pos:
        line_end: 12284
        line_start: 12283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: WHERE_DISTINCT_NOOP
      pos:
        line_end: 12288
        line_start: 12287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: WHERE_DISTINCT_UNIQUE
      pos:
        line_end: 12289
        line_start: 12288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: WHERE_DISTINCT_ORDERED
      pos:
        line_end: 12290
        line_start: 12289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: WHERE_DISTINCT_UNORDERED
      pos:
        line_end: 12291
        line_start: 12290
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: NC_AllowAgg
      pos:
        line_end: 12332
        line_start: 12331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: NC_HasAgg
      pos:
        line_end: 12333
        line_start: 12332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: NC_IsCheck
      pos:
        line_end: 12334
        line_start: 12333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: NC_InAggFunc
      pos:
        line_end: 12335
        line_start: 12334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: NC_PartIdx
      pos:
        line_end: 12336
        line_start: 12335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: NC_MinMaxAgg
      pos:
        line_end: 12337
        line_start: 12336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: SF_Distinct
      pos:
        line_end: 12385
        line_start: 12384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: SF_All
      pos:
        line_end: 12386
        line_start: 12385
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: SF_Resolved
      pos:
        line_end: 12387
        line_start: 12386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: SF_Aggregate
      pos:
        line_end: 12388
        line_start: 12387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: SF_UsesEphemeral
      pos:
        line_end: 12389
        line_start: 12388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: SF_Expanded
      pos:
        line_end: 12390
        line_start: 12389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: SF_HasTypeInfo
      pos:
        line_end: 12391
        line_start: 12390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040  '
    - item_type: preproc_def
      name: SF_Compound
      pos:
        line_end: 12392
        line_start: 12391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0080  '
    - item_type: preproc_def
      name: SF_Values
      pos:
        line_end: 12393
        line_start: 12392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100  '
    - item_type: preproc_def
      name: SF_MultiValue
      pos:
        line_end: 12394
        line_start: 12393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: SF_NestedFrom
      pos:
        line_end: 12395
        line_start: 12394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0400  '
    - item_type: preproc_def
      name: SF_MaybeConvert
      pos:
        line_end: 12396
        line_start: 12395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0800  '
    - item_type: preproc_def
      name: SF_MinMaxAgg
      pos:
        line_end: 12397
        line_start: 12396
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: SF_Recursive
      pos:
        line_end: 12398
        line_start: 12397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x2000  '
    - item_type: preproc_def
      name: SF_Converted
      pos:
        line_end: 12399
        line_start: 12398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x4000  '
    - item_type: preproc_def
      name: SRT_Union
      pos:
        line_end: 12466
        line_start: 12465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SRT_Except
      pos:
        line_end: 12467
        line_start: 12466
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: SRT_Exists
      pos:
        line_end: 12468
        line_start: 12467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: SRT_Discard
      pos:
        line_end: 12469
        line_start: 12468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: SRT_Fifo
      pos:
        line_end: 12470
        line_start: 12469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: SRT_DistFifo
      pos:
        line_end: 12471
        line_start: 12470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: SRT_Queue
      pos:
        line_end: 12472
        line_start: 12471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7  '
    - item_type: preproc_def
      name: SRT_DistQueue
      pos:
        line_end: 12473
        line_start: 12472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: SRT_Output
      pos:
        line_end: 12478
        line_start: 12477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9  '
    - item_type: preproc_def
      name: SRT_Mem
      pos:
        line_end: 12479
        line_start: 12478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: SRT_Set
      pos:
        line_end: 12480
        line_start: 12479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11  '
    - item_type: preproc_def
      name: SRT_EphemTab
      pos:
        line_end: 12481
        line_start: 12480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12  '
    - item_type: preproc_def
      name: SRT_Coroutine
      pos:
        line_end: 12482
        line_start: 12481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13  '
    - item_type: preproc_def
      name: SRT_Table
      pos:
        line_end: 12483
        line_start: 12482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14  '
    - item_type: preproc_def
      name: SQLITE_N_COLCACHE
      pos:
        line_end: 12518
        line_start: 12517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: IN_DECLARE_VTAB
      pos:
        line_end: 12691
        line_start: 12690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IN_DECLARE_VTAB
      pos:
        line_end: 12693
        line_start: 12692
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (pParse->declareVtab)
    - item_type: preproc_def
      name: OPFLAG_NCHANGE
      pos:
        line_end: 12708
        line_start: 12707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: OPFLAG_EPHEM
      pos:
        line_end: 12709
        line_start: 12708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: OPFLAG_LASTROWID
      pos:
        line_end: 12710
        line_start: 12709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: OPFLAG_ISUPDATE
      pos:
        line_end: 12711
        line_start: 12710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: OPFLAG_APPEND
      pos:
        line_end: 12712
        line_start: 12711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: OPFLAG_USESEEKRESULT
      pos:
        line_end: 12713
        line_start: 12712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: OPFLAG_LENGTHARG
      pos:
        line_end: 12714
        line_start: 12713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: OPFLAG_TYPEOFARG
      pos:
        line_end: 12715
        line_start: 12714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80    '
    - item_type: preproc_def
      name: OPFLAG_BULKCSR
      pos:
        line_end: 12716
        line_start: 12715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: OPFLAG_SEEKEQ
      pos:
        line_end: 12717
        line_start: 12716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: OPFLAG_P2ISREG
      pos:
        line_end: 12718
        line_start: 12717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: OPFLAG_PERMUTE
      pos:
        line_end: 12719
        line_start: 12718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TRIGGER_BEFORE
      pos:
        line_end: 12757
        line_start: 12756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TRIGGER_AFTER
      pos:
        line_end: 12758
        line_start: 12757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STRACCUM_NOMEM
      pos:
        line_end: 12839
        line_start: 12838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STRACCUM_TOOBIG
      pos:
        line_end: 12840
        line_start: 12839
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CORRUPT_DB
      pos:
        line_end: 12929
        line_start: 12928
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (sqlite3Config.neverCorrupt==0)
    - item_type: preproc_def
      name: WRC_Continue
      pos:
        line_end: 12961
        line_start: 12960
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: WRC_Prune
      pos:
        line_end: 12962
        line_start: 12961
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: WRC_Abort
      pos:
        line_end: 12963
        line_start: 12962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_CORRUPT_BKPT
      pos:
        line_end: 13011
        line_start: 13010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3CorruptError(__LINE__)
    - item_type: preproc_def
      name: SQLITE_MISUSE_BKPT
      pos:
        line_end: 13012
        line_start: 13011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3MisuseError(__LINE__)
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_BKPT
      pos:
        line_end: 13013
        line_start: 13012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3CantopenError(__LINE__)
    - item_type: preproc_def
      name: SQLITE_ENABLE_FTS3
      pos:
        line_end: 13022
        line_start: 13021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: sqlite3StrICmp
      pos:
        line_end: 13063
        line_start: 13062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_stricmp
    - item_type: preproc_def
      name: sqlite3StrNICmp
      pos:
        line_end: 13065
        line_start: 13064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_strnicmp
    - item_type: preproc_def
      name: SQLITE_PRINTF_INTERNAL
      pos:
        line_end: 13150
        line_start: 13149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SQLITE_PRINTF_SQLFUNC
      pos:
        line_end: 13151
        line_start: 13150
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SQLITE_ECEL_DUP
      pos:
        line_end: 13319
        line_start: 13318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: SQLITE_ECEL_FACTOR
      pos:
        line_end: 13320
        line_start: 13319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: getVarint
      pos:
        line_end: 13488
        line_start: 13487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3GetVarint
    - item_type: preproc_def
      name: putVarint
      pos:
        line_end: 13489
        line_start: 13488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3PutVarint
    - item_type: preproc_def
      name: SQLITE_FAULTINJECTOR_MALLOC
      pos:
        line_end: 13738
        line_start: 13737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_FAULTINJECTOR_COUNT
      pos:
        line_end: 13739
        line_start: 13738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IN_INDEX_ROWID
      pos:
        line_end: 13757
        line_start: 13756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: IN_INDEX_EPH
      pos:
        line_end: 13758
        line_start: 13757
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: IN_INDEX_INDEX_ASC
      pos:
        line_end: 13759
        line_start: 13758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: IN_INDEX_INDEX_DESC
      pos:
        line_end: 13760
        line_start: 13759
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: IN_INDEX_NOOP
      pos:
        line_end: 13761
        line_start: 13760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5   '
    - item_type: preproc_def
      name: IN_INDEX_NOOP_OK
      pos:
        line_end: 13765
        line_start: 13764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: IN_INDEX_MEMBERSHIP
      pos:
        line_end: 13766
        line_start: 13765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: IN_INDEX_LOOP
      pos:
        line_end: 13767
        line_start: 13766
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: MEMTYPE_HEAP
      pos:
        line_end: 13861
        line_start: 13860
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: MEMTYPE_LOOKASIDE
      pos:
        line_end: 13862
        line_start: 13861
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: MEMTYPE_SCRATCH
      pos:
        line_end: 13863
        line_start: 13862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: MEMTYPE_PCACHE
      pos:
        line_end: 13864
        line_start: 13863
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: SQLITE_USE_URI
      pos:
        line_end: 14025
        line_start: 14024
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_ALLOW_COVERING_INDEX_SCAN
      pos:
        line_end: 14033
        line_start: 14032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SORTER_PMASZ
      pos:
        line_end: 14040
        line_start: 14039
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '250'
    - item_type: preproc_def
      name: SQLITE_MAX_SCHEMA_RETRY
      pos:
        line_end: 14623
        line_start: 14622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '50'
    - item_type: preproc_def
      name: CACHE_STALE
      pos:
        line_end: 14757
        line_start: 14756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MEMCELLSIZE
      pos:
        line_end: 14793
        line_start: 14792
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: offsetof(Mem,zMalloc)
    - item_type: preproc_def
      name: MEM_Null
      pos:
        line_end: 14807
        line_start: 14806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001   '
    - item_type: preproc_def
      name: MEM_Str
      pos:
        line_end: 14808
        line_start: 14807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002   '
    - item_type: preproc_def
      name: MEM_Int
      pos:
        line_end: 14809
        line_start: 14808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: MEM_Real
      pos:
        line_end: 14810
        line_start: 14809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008   '
    - item_type: preproc_def
      name: MEM_Blob
      pos:
        line_end: 14811
        line_start: 14810
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010   '
    - item_type: preproc_def
      name: MEM_AffMask
      pos:
        line_end: 14812
        line_start: 14811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x001f   '
    - item_type: preproc_def
      name: MEM_RowSet
      pos:
        line_end: 14813
        line_start: 14812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020   '
    - item_type: preproc_def
      name: MEM_Frame
      pos:
        line_end: 14814
        line_start: 14813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040   '
    - item_type: preproc_def
      name: MEM_Undefined
      pos:
        line_end: 14815
        line_start: 14814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0080   '
    - item_type: preproc_def
      name: MEM_Cleared
      pos:
        line_end: 14816
        line_start: 14815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100   '
    - item_type: preproc_def
      name: MEM_TypeMask
      pos:
        line_end: 14817
        line_start: 14816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01ff   '
    - item_type: preproc_def
      name: MEM_Term
      pos:
        line_end: 14825
        line_start: 14824
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200   '
    - item_type: preproc_def
      name: MEM_Dyn
      pos:
        line_end: 14826
        line_start: 14825
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0400   '
    - item_type: preproc_def
      name: MEM_Static
      pos:
        line_end: 14827
        line_start: 14826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0800   '
    - item_type: preproc_def
      name: MEM_Ephem
      pos:
        line_end: 14828
        line_start: 14827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000   '
    - item_type: preproc_def
      name: MEM_Agg
      pos:
        line_end: 14829
        line_start: 14828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x2000   '
    - item_type: preproc_def
      name: MEM_Zero
      pos:
        line_end: 14830
        line_start: 14829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x4000   '
    - item_type: preproc_def
      name: MEM_Zero
      pos:
        line_end: 14833
        line_start: 14832
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: VDBE_MAGIC_INIT
      pos:
        line_end: 14994
        line_start: 14993
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x26bceaa5    '
    - item_type: preproc_def
      name: VDBE_MAGIC_RUN
      pos:
        line_end: 14995
        line_start: 14994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xbdf20da3    '
    - item_type: preproc_def
      name: VDBE_MAGIC_HALT
      pos:
        line_end: 14996
        line_start: 14995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x519c2973    '
    - item_type: preproc_def
      name: VDBE_MAGIC_DEAD
      pos:
        line_end: 14997
        line_start: 14996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xb606c3c8    '
    - item_type: preproc_def
      name: sqlite3VdbeMemSetDouble
      pos:
        line_end: 15031
        line_start: 15030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3VdbeMemSetInt64
    - item_type: preproc_def
      name: wsdStatInit
      pos:
        line_end: 15148
        line_start: 15147
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3StatType *x = &GLOBAL(sqlite3StatType,sqlite3Stat)
    - item_type: preproc_def
      name: wsdStat
      pos:
        line_end: 15149
        line_start: 15148
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: x[0]
    - item_type: preproc_def
      name: wsdStat
      pos:
        line_end: 15152
        line_start: 15151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Stat
    - item_type: preproc_def
      name: HAVE_LOCALTIME_S
      pos:
        line_end: 15851
        line_start: 15850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _SQLITE_OS_C_
      pos:
        line_end: 16591
        line_start: 16590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: vfsList
      pos:
        line_end: 16881
        line_start: 16880
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: GLOBAL(sqlite3_vfs *, vfsList)
    - item_type: preproc_def
      name: wsdHooksInit
      pos:
        line_end: 17020
        line_start: 17018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: BenignMallocHooks *x = &GLOBAL(BenignMallocHooks,sqlite3Hooks)
    - item_type: preproc_def
      name: wsdHooks
      pos:
        line_end: 17021
        line_start: 17020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: x[0]
    - item_type: preproc_def
      name: wsdHooks
      pos:
        line_end: 17024
        line_start: 17023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Hooks
    - item_type: preproc_def
      name: SQLITE_USE_MALLOC_H
      pos:
        line_end: 17207
        line_start: 17206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_USE_MALLOC_USABLE_SIZE
      pos:
        line_end: 17208
        line_start: 17207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MALLOCSIZE
      pos:
        line_end: 17235
        line_start: 17234
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: _msize
    - item_type: preproc_def
      name: FOREGUARD
      pos:
        line_end: 17490
        line_start: 17489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80F5E153'
    - item_type: preproc_def
      name: REARGUARD
      pos:
        line_end: 17491
        line_start: 17490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xE4676B53'
    - item_type: preproc_def
      name: NCSIZE
      pos:
        line_end: 17496
        line_start: 17495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MX_SMALL
      pos:
        line_end: 17993
        line_start: 17992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: N_HASH
      pos:
        line_end: 17999
        line_start: 17998
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '61'
    - item_type: preproc_def
      name: mem3
      pos:
        line_end: 18094
        line_start: 18093
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: GLOBAL(struct Mem3Global, mem3)
    - item_type: preproc_def
      name: LOGMAX
      pos:
        line_end: 18721
        line_start: 18720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30'
    - item_type: preproc_def
      name: CTRL_LOGSIZE
      pos:
        line_end: 18726
        line_start: 18725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1f    '
    - item_type: preproc_def
      name: CTRL_FREE
      pos:
        line_end: 18727
        line_start: 18726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20    '
    - item_type: preproc_def
      name: mem5
      pos:
        line_end: 18778
        line_start: 18777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: GLOBAL(struct Mem5Global, mem5)
    - item_type: preproc_def
      name: SQLITE_MUTEX_NREF
      pos:
        line_end: 19635
        line_start: 19634
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MUTEX_NREF
      pos:
        line_end: 19637
        line_start: 19636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE3_MUTEX_INITIALIZER
      pos:
        line_end: 19655
        line_start: 19654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '{ PTHREAD_MUTEX_INITIALIZER, 0, 0, (pthread_t)0, 0 }'
    - item_type: preproc_def
      name: SQLITE3_MUTEX_INITIALIZER
      pos:
        line_end: 19657
        line_start: 19656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '{ PTHREAD_MUTEX_INITIALIZER }'
    - item_type: preproc_def
      name: TIMER_START
      pos:
        line_end: 20133
        line_start: 20132
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_start=sqlite3Hwtime()
    - item_type: preproc_def
      name: TIMER_END
      pos:
        line_end: 20134
        line_start: 20133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed=sqlite3Hwtime()-g_start
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 20135
        line_start: 20134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 20139
        line_start: 20138
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite_uint64)0)
    - item_type: preproc_def
      name: SQLITE_OS_WINNT
      pos:
        line_end: 20247
        line_start: 20246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_WINCE
      pos:
        line_end: 20255
        line_start: 20254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_WINCE
      pos:
        line_end: 20257
        line_start: 20256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_OS_WINRT
      pos:
        line_end: 20265
        line_start: 20264
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_WIN32_VOLATILE
      pos:
        line_end: 20275
        line_start: 20274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: volatile
    - item_type: preproc_def
      name: SQLITE_OS_WIN_THREADS
      pos:
        line_end: 20284
        line_start: 20283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_OS_WIN_THREADS
      pos:
        line_end: 20286
        line_start: 20285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_W32_MUTEX_INITIALIZER
      pos:
        line_end: 20319
        line_start: 20318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: SQLITE3_MUTEX_INITIALIZER
      pos:
        line_end: 20323
        line_start: 20321
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: "{ SQLITE_W32_MUTEX_INITIALIZER, 0, \\\n                                    0L,
        (DWORD)0, 0 }"
    - item_type: preproc_def
      name: SQLITE3_MUTEX_INITIALIZER
      pos:
        line_end: 20325
        line_start: 20324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '{ SQLITE_W32_MUTEX_INITIALIZER, 0 }'
    - item_type: preproc_def
      name: mem0
      pos:
        line_end: 20728
        line_start: 20727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: GLOBAL(struct Mem0Global, mem0)
    - item_type: preproc_def
      name: etRADIX
      pos:
        line_end: 21485
        line_start: 21484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: etFLOAT
      pos:
        line_end: 21486
        line_start: 21485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: etEXP
      pos:
        line_end: 21487
        line_start: 21486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3 '
    - item_type: preproc_def
      name: etGENERIC
      pos:
        line_end: 21488
        line_start: 21487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: etSIZE
      pos:
        line_end: 21489
        line_start: 21488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: etSTRING
      pos:
        line_end: 21490
        line_start: 21489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6 '
    - item_type: preproc_def
      name: etDYNSTRING
      pos:
        line_end: 21491
        line_start: 21490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7 '
    - item_type: preproc_def
      name: etPERCENT
      pos:
        line_end: 21492
        line_start: 21491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8 '
    - item_type: preproc_def
      name: etCHARX
      pos:
        line_end: 21493
        line_start: 21492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9 '
    - item_type: preproc_def
      name: etSQLESCAPE
      pos:
        line_end: 21495
        line_start: 21494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10 '
    - item_type: preproc_def
      name: etSQLESCAPE2
      pos:
        line_end: 21497
        line_start: 21495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11 '
    - item_type: preproc_def
      name: etTOKEN
      pos:
        line_end: 21498
        line_start: 21497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12 '
    - item_type: preproc_def
      name: etSRCLIST
      pos:
        line_end: 21499
        line_start: 21498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13 '
    - item_type: preproc_def
      name: etPOINTER
      pos:
        line_end: 21500
        line_start: 21499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14 '
    - item_type: preproc_def
      name: etSQLESCAPE3
      pos:
        line_end: 21501
        line_start: 21500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15 '
    - item_type: preproc_def
      name: etORDINAL
      pos:
        line_end: 21502
        line_start: 21501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16 '
    - item_type: preproc_def
      name: etINVALID
      pos:
        line_end: 21504
        line_start: 21503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: FLAG_SIGNED
      pos:
        line_end: 21528
        line_start: 21527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1     '
    - item_type: preproc_def
      name: FLAG_INTERN
      pos:
        line_end: 21529
        line_start: 21528
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2     '
    - item_type: preproc_def
      name: FLAG_STRING
      pos:
        line_end: 21530
        line_start: 21529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4     '
    - item_type: preproc_def
      name: SQLITE_PRINT_BUF_SIZE
      pos:
        line_end: 21632
        line_start: 21631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '70'
    - item_type: preproc_def
      name: etBUFSIZE
      pos:
        line_end: 21634
        line_start: 21633
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 'SQLITE_PRINT_BUF_SIZE  '
    - item_type: preproc_def
      name: wsdPrng
      pos:
        line_end: 23021
        line_start: 23020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: p[0]
    - item_type: preproc_def
      name: wsdPrng
      pos:
        line_end: 23023
        line_start: 23022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Prng
    - item_type: preproc_def
      name: SQLITE_THREADS_IMPLEMENTED
      pos:
        line_end: 23151
        line_start: 23150
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_THREADS_IMPLEMENTED
      pos:
        line_end: 23219
        line_start: 23218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: UpperToLower
      pos:
        line_end: 24152
        line_start: 24151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3UpperToLower
    - item_type: preproc_def
      name: SLOT_2_0
      pos:
        line_end: 24680
        line_start: 24679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x001fc07f'
    - item_type: preproc_def
      name: SLOT_4_2_0
      pos:
        line_end: 24681
        line_start: 24680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xf01fc07f'
    - item_type: preproc_def
      name: TWOPOWER32
      pos:
        line_end: 25160
        line_start: 25159
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((i64)1)<<32)
    - item_type: preproc_def
      name: TWOPOWER31
      pos:
        line_end: 25161
        line_start: 25160
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((i64)1)<<31)
    - item_type: preproc_def
      name: SQLITE_ENABLE_LOCKING_STYLE
      pos:
        line_end: 25829
        line_start: 25828
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ENABLE_LOCKING_STYLE
      pos:
        line_end: 25831
        line_start: 25830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_GETHOSTUUID
      pos:
        line_end: 25859
        line_start: 25858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FSFLAGS_IS_MSDOS
      pos:
        line_end: 25883
        line_start: 25882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SQLITE_UNIX_THREADS
      pos:
        line_end: 25891
        line_start: 25890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_FILE_PERMISSIONS
      pos:
        line_end: 25898
        line_start: 25897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0644'
    - item_type: preproc_def
      name: SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
      pos:
        line_end: 25905
        line_start: 25904
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0755'
    - item_type: preproc_def
      name: MAX_PATHNAME
      pos:
        line_end: 25911
        line_start: 25910
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '512'
    - item_type: preproc_def
      name: UNIXFILE_EXCL
      pos:
        line_end: 26010
        line_start: 26009
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01     '
    - item_type: preproc_def
      name: UNIXFILE_RDONLY
      pos:
        line_end: 26011
        line_start: 26010
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02     '
    - item_type: preproc_def
      name: UNIXFILE_PERSIST_WAL
      pos:
        line_end: 26012
        line_start: 26011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04     '
    - item_type: preproc_def
      name: UNIXFILE_DIRSYNC
      pos:
        line_end: 26014
        line_start: 26013
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08     '
    - item_type: preproc_def
      name: UNIXFILE_DIRSYNC
      pos:
        line_end: 26016
        line_start: 26015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UNIXFILE_PSOW
      pos:
        line_end: 26018
        line_start: 26017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10     '
    - item_type: preproc_def
      name: UNIXFILE_DELETE
      pos:
        line_end: 26019
        line_start: 26018
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20     '
    - item_type: preproc_def
      name: UNIXFILE_URI
      pos:
        line_end: 26020
        line_start: 26019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x40     '
    - item_type: preproc_def
      name: UNIXFILE_NOLOCK
      pos:
        line_end: 26021
        line_start: 26020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80     '
    - item_type: preproc_def
      name: UNIXFILE_WARNED
      pos:
        line_end: 26022
        line_start: 26021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100     '
    - item_type: preproc_def
      name: UNIXFILE_BLOCK
      pos:
        line_end: 26023
        line_start: 26022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200     '
    - item_type: preproc_def
      name: TIMER_START
      pos:
        line_end: 26164
        line_start: 26163
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_start=sqlite3Hwtime()
    - item_type: preproc_def
      name: TIMER_END
      pos:
        line_end: 26165
        line_start: 26164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed=sqlite3Hwtime()-g_start
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 26166
        line_start: 26165
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 26170
        line_start: 26169
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite_uint64)0)
    - item_type: preproc_def
      name: O_LARGEFILE
      pos:
        line_end: 26232
        line_start: 26231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: O_LARGEFILE
      pos:
        line_end: 26236
        line_start: 26235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: O_NOFOLLOW
      pos:
        line_end: 26239
        line_start: 26238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 26242
        line_start: 26241
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: threadid
      pos:
        line_end: 26250
        line_start: 26249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: pthread_self()
    - item_type: preproc_def
      name: threadid
      pos:
        line_end: 26252
        line_start: 26251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_MREMAP
      pos:
        line_end: 26260
        line_start: 26259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MREMAP
      pos:
        line_end: 26262
        line_start: 26261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: lseek
      pos:
        line_end: 26271
        line_start: 26270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: lseek64
    - item_type: preproc_def
      name: SQLITE_MINIMUM_FILE_DESCRIPTOR
      pos:
        line_end: 26519
        line_start: 26518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: osFcntl
      pos:
        line_end: 26678
        line_start: 26677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: lockTrace
    - item_type: preproc_def
      name: DOTLOCK_SUFFIX
      pos:
        line_end: 28024
        line_start: 28023
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '".lock"'
    - item_type: preproc_def
      name: afpfsByteRangeLock2FSCTL
      pos:
        line_end: 28611
        line_start: 28610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: _IOWR('z', 23, struct ByteRangeLockPB2)
    - item_type: preproc_def
      name: fdatasync
      pos:
        line_end: 29363
        line_start: 29362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: fsync
    - item_type: preproc_def
      name: HAVE_FULLFSYNC
      pos:
        line_end: 29372
        line_start: 29371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FULLFSYNC
      pos:
        line_end: 29374
        line_start: 29373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: UNIX_SHM_BASE
      pos:
        line_end: 30058
        line_start: 30057
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '((22+SQLITE_SHM_NLOCK)*4)         '
    - item_type: preproc_def
      name: UNIX_SHM_DMS
      pos:
        line_end: 30059
        line_start: 30058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(UNIX_SHM_BASE+SQLITE_SHM_NLOCK)  '
    - item_type: preproc_def
      name: unixShmMap
      pos:
        line_end: 30680
        line_start: 30679
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixShmLock
      pos:
        line_end: 30681
        line_start: 30680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixShmBarrier
      pos:
        line_end: 30682
        line_start: 30681
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixShmUnmap
      pos:
        line_end: 30683
        line_start: 30682
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixDlOpen
      pos:
        line_end: 32070
        line_start: 32069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixDlError
      pos:
        line_end: 32071
        line_start: 32070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixDlSym
      pos:
        line_end: 32072
        line_start: 32071
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: unixDlClose
      pos:
        line_end: 32073
        line_start: 32072
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_HOSTIDLEN
      pos:
        line_end: 32573
        line_start: 32572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16  '
    - item_type: preproc_def
      name: PROXY_CONCHVERSION
      pos:
        line_end: 32612
        line_start: 32611
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: PROXY_HEADERLEN
      pos:
        line_end: 32613
        line_start: 32612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: PROXY_PATHINDEX
      pos:
        line_end: 32614
        line_start: 32613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (PROXY_HEADERLEN+PROXY_HOSTIDLEN)
    - item_type: preproc_def
      name: PROXY_MAXCONCHLEN
      pos:
        line_end: 32615
        line_start: 32614
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (PROXY_HEADERLEN+PROXY_HOSTIDLEN+MAXPATHLEN)
    - item_type: preproc_def
      name: TIMER_START
      pos:
        line_end: 33684
        line_start: 33683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_start=sqlite3Hwtime()
    - item_type: preproc_def
      name: TIMER_END
      pos:
        line_end: 33685
        line_start: 33684
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed=sqlite3Hwtime()-g_start
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 33686
        line_start: 33685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: g_elapsed
    - item_type: preproc_def
      name: TIMER_ELAPSED
      pos:
        line_end: 33690
        line_start: 33689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((sqlite_uint64)0)
    - item_type: preproc_def
      name: NTDDI_WIN8
      pos:
        line_end: 33797
        line_start: 33796
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x06020000'
    - item_type: preproc_def
      name: NTDDI_WINBLUE
      pos:
        line_end: 33801
        line_start: 33800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x06030000'
    - item_type: preproc_def
      name: SQLITE_WIN32_GETVERSIONEX
      pos:
        line_end: 33810
        line_start: 33809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_WIN32_GETVERSIONEX
      pos:
        line_end: 33812
        line_start: 33811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: MAX_PATH
      pos:
        line_end: 33820
        line_start: 33819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (260)
    - item_type: preproc_def
      name: SQLITE_WIN32_MAX_PATH_CHARS
      pos:
        line_end: 33828
        line_start: 33827
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (MAX_PATH)
    - item_type: preproc_def
      name: UNICODE_STRING_MAX_CHARS
      pos:
        line_end: 33835
        line_start: 33834
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (32767)
    - item_type: preproc_def
      name: SQLITE_WINNT_MAX_PATH_CHARS
      pos:
        line_end: 33843
        line_start: 33842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (UNICODE_STRING_MAX_CHARS)
    - item_type: preproc_def
      name: SQLITE_WIN32_MAX_PATH_BYTES
      pos:
        line_end: 33852
        line_start: 33851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_WIN32_MAX_PATH_CHARS*4)
    - item_type: preproc_def
      name: SQLITE_WINNT_MAX_PATH_BYTES
      pos:
        line_end: 33861
        line_start: 33859
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (sizeof(WCHAR) * SQLITE_WINNT_MAX_PATH_CHARS)
    - item_type: preproc_def
      name: SQLITE_WIN32_MAX_ERRMSG_CHARS
      pos:
        line_end: 33868
        line_start: 33867
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1024)
    - item_type: preproc_def
      name: INVALID_FILE_ATTRIBUTES
      pos:
        line_end: 33936
        line_start: 33935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((DWORD)-1)
    - item_type: preproc_def
      name: FILE_FLAG_MASK
      pos:
        line_end: 33940
        line_start: 33939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0xFF3C0000)
    - item_type: preproc_def
      name: FILE_ATTRIBUTE_MASK
      pos:
        line_end: 33944
        line_start: 33943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0x0003FFF7)
    - item_type: preproc_def
      name: WINFILE_RDONLY
      pos:
        line_end: 34004
        line_start: 34003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02   '
    - item_type: preproc_def
      name: WINFILE_PERSIST_WAL
      pos:
        line_end: 34005
        line_start: 34004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04   '
    - item_type: preproc_def
      name: WINFILE_PSOW
      pos:
        line_end: 34006
        line_start: 34005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10   '
    - item_type: preproc_def
      name: SQLITE_WIN32_DBG_BUF_SIZE
      pos:
        line_end: 34012
        line_start: 34011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((int)(4096-sizeof(DWORD)))
    - item_type: preproc_def
      name: SQLITE_WIN32_DATA_DIRECTORY_TYPE
      pos:
        line_end: 34020
        line_start: 34019
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1)
    - item_type: preproc_def
      name: SQLITE_WIN32_TEMP_DIRECTORY_TYPE
      pos:
        line_end: 34028
        line_start: 34027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (2)
    - item_type: preproc_def
      name: SQLITE_WIN32_HEAP_CREATE
      pos:
        line_end: 34052
        line_start: 34051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (TRUE)
    - item_type: preproc_def
      name: SQLITE_WIN32_HEAP_INIT_SIZE
      pos:
        line_end: 34060
        line_start: 34058
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: "((SQLITE_DEFAULT_CACHE_SIZE) * \\\n                                       (SQLITE_DEFAULT_PAGE_SIZE)
        + 4194304)"
    - item_type: preproc_def
      name: SQLITE_WIN32_HEAP_MAX_SIZE
      pos:
        line_end: 34067
        line_start: 34066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0)
    - item_type: preproc_def
      name: SQLITE_WIN32_HEAP_FLAGS
      pos:
        line_end: 34075
        line_start: 34074
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0)
    - item_type: preproc_def
      name: WINMEM_MAGIC1
      pos:
        line_end: 34096
        line_start: 34095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x42b2830b'
    - item_type: preproc_def
      name: WINMEM_MAGIC2
      pos:
        line_end: 34097
        line_start: 34096
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xbd4d7cf4'
    - item_type: preproc_def
      name: SYSCALL
      pos:
        line_end: 34152
        line_start: 34151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_syscall_ptr
    - item_type: preproc_def
      name: SQLITE_WIN32_IOERR_RETRY
      pos:
        line_end: 35637
        line_start: 35636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_WIN32_IOERR_RETRY_DELAY
      pos:
        line_end: 35640
        line_start: 35639
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: INVALID_SET_FILE_POINTER
      pos:
        line_end: 36099
        line_start: 36098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((DWORD)-1)
    - item_type: preproc_def
      name: MX_CLOSE_ATTEMPT
      pos:
        line_end: 36179
        line_start: 36178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: WINCE_DELETION_ATTEMPTS
      pos:
        line_end: 36201
        line_start: 36200
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LOCKFILE_FAIL_IMMEDIATELY
      pos:
        line_end: 36608
        line_start: 36607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LOCKFILE_EXCLUSIVE_LOCK
      pos:
        line_end: 36612
        line_start: 36611
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_LOCKFILE_FLAGS
      pos:
        line_end: 36624
        line_start: 36622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: "(LOCKFILE_FAIL_IMMEDIATELY | \\\n                                  LOCKFILE_EXCLUSIVE_LOCK)"
    - item_type: preproc_def
      name: SQLITE_LOCKFILEEX_FLAGS
      pos:
        line_end: 36632
        line_start: 36631
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (LOCKFILE_FAIL_IMMEDIATELY)
    - item_type: preproc_def
      name: WIN_SHM_BASE
      pos:
        line_end: 37207
        line_start: 37206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '((22+SQLITE_SHM_NLOCK)*4)        '
    - item_type: preproc_def
      name: WIN_SHM_DMS
      pos:
        line_end: 37208
        line_start: 37207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(WIN_SHM_BASE+SQLITE_SHM_NLOCK)  '
    - item_type: preproc_def
      name: _SHM_UNLCK
      pos:
        line_end: 37213
        line_start: 37212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _SHM_RDLCK
      pos:
        line_end: 37214
        line_start: 37213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: _SHM_WRLCK
      pos:
        line_end: 37215
        line_start: 37214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: winShmMap
      pos:
        line_end: 37732
        line_start: 37731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winShmLock
      pos:
        line_end: 37733
        line_start: 37732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winShmBarrier
      pos:
        line_end: 37734
        line_start: 37733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winShmUnmap
      pos:
        line_end: 37735
        line_start: 37734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winDlOpen
      pos:
        line_end: 39093
        line_start: 39092
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winDlError
      pos:
        line_end: 39094
        line_start: 39093
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winDlSym
      pos:
        line_end: 39095
        line_start: 39094
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: winDlClose
      pos:
        line_end: 39096
        line_start: 39095
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BITVEC_SZ
      pos:
        line_end: 39408
        line_start: 39407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '512'
    - item_type: preproc_def
      name: BITVEC_USIZE
      pos:
        line_end: 39412
        line_start: 39411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))
    - item_type: preproc_def
      name: BITVEC_TELEM
      pos:
        line_end: 39418
        line_start: 39417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: u8
    - item_type: preproc_def
      name: BITVEC_SZELEM
      pos:
        line_end: 39420
        line_start: 39419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITVEC_NELEM
      pos:
        line_end: 39422
        line_start: 39421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (BITVEC_USIZE/sizeof(BITVEC_TELEM))
    - item_type: preproc_def
      name: BITVEC_NBIT
      pos:
        line_end: 39424
        line_start: 39423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (BITVEC_NELEM*BITVEC_SZELEM)
    - item_type: preproc_def
      name: BITVEC_NINT
      pos:
        line_end: 39427
        line_start: 39426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (BITVEC_USIZE/sizeof(u32))
    - item_type: preproc_def
      name: BITVEC_MXHASH
      pos:
        line_end: 39430
        line_start: 39429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (BITVEC_NINT/2)
    - item_type: preproc_def
      name: BITVEC_NPTR
      pos:
        line_end: 39437
        line_start: 39436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (BITVEC_USIZE/sizeof(Bitvec *))
    - item_type: preproc_def
      name: PCACHE_DIRTYLIST_REMOVE
      pos:
        line_end: 39817
        line_start: 39816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: PCACHE_DIRTYLIST_ADD
      pos:
        line_end: 39818
        line_start: 39817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: PCACHE_DIRTYLIST_FRONT
      pos:
        line_end: 39819
        line_start: 39818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3    '
    - item_type: preproc_def
      name: N_SORT_BUCKET
      pos:
        line_end: 40340
        line_start: 40339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: pcache1
      pos:
        line_end: 40669
        line_start: 40668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (GLOBAL(struct PCacheGlobal, pcache1_g))
    - item_type: preproc_def
      name: PCACHE1_MIGHT_USE_GROUP_MUTEX
      pos:
        line_end: 40677
        line_start: 40676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PCACHE1_MIGHT_USE_GROUP_MUTEX
      pos:
        line_end: 40681
        line_start: 40680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ROWSET_ALLOCATION_SIZE
      pos:
        line_end: 41756
        line_start: 41755
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: ROWSET_ENTRY_PER_CHUNK
      pos:
        line_end: 41762
        line_start: 41760
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((ROWSET_ALLOCATION_SIZE-8)/sizeof(struct RowSetEntry))
    - item_type: preproc_def
      name: ROWSET_SORTED
      pos:
        line_end: 41809
        line_start: 41808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01   '
    - item_type: preproc_def
      name: ROWSET_NEXT
      pos:
        line_end: 41810
        line_start: 41809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02   '
    - item_type: preproc_def
      name: WAL_SYNC_TRANSACTIONS
      pos:
        line_end: 42247
        line_start: 42246
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20   '
    - item_type: preproc_def
      name: SQLITE_SYNC_MASK
      pos:
        line_end: 42248
        line_start: 42247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x13   '
    - item_type: preproc_def
      name: WAL_SAVEPOINT_NDATA
      pos:
        line_end: 42271
        line_start: 42270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: sqlite3DebugPrintf
      pos:
        line_end: 42456
        line_start: 42455
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: printf
    - item_type: preproc_def
      name: PAGER_OPEN
      pos:
        line_end: 42690
        line_start: 42689
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGER_READER
      pos:
        line_end: 42691
        line_start: 42690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PAGER_WRITER_LOCKED
      pos:
        line_end: 42692
        line_start: 42691
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PAGER_WRITER_CACHEMOD
      pos:
        line_end: 42693
        line_start: 42692
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PAGER_WRITER_DBMOD
      pos:
        line_end: 42694
        line_start: 42693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PAGER_WRITER_FINISHED
      pos:
        line_end: 42695
        line_start: 42694
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PAGER_ERROR
      pos:
        line_end: 42696
        line_start: 42695
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: UNKNOWN_LOCK
      pos:
        line_end: 42746
        line_start: 42745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (EXCLUSIVE_LOCK+1)
    - item_type: preproc_def
      name: MAX_SECTOR_SIZE
      pos:
        line_end: 42768
        line_start: 42767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: SPILLFLAG_OFF
      pos:
        line_end: 42798
        line_start: 42797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: SPILLFLAG_ROLLBACK
      pos:
        line_end: 42799
        line_start: 42798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: SPILLFLAG_NOSYNC
      pos:
        line_end: 42800
        line_start: 42799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: PAGER_STAT_HIT
      pos:
        line_end: 43052
        line_start: 43051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGER_STAT_MISS
      pos:
        line_end: 43053
        line_start: 43052
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PAGER_STAT_WRITE
      pos:
        line_end: 43054
        line_start: 43053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MEMDB
      pos:
        line_end: 43118
        line_start: 43117
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MEMDB
      pos:
        line_end: 43120
        line_start: 43119
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: pPager->memDb
    - item_type: preproc_def
      name: PAGER_MAX_PGNO
      pos:
        line_end: 43136
        line_start: 43135
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2147483647'
    - item_type: preproc_def
      name: DIRECT_MODE
      pos:
        line_end: 48308
        line_start: 48307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DIRECT_MODE
      pos:
        line_end: 48312
        line_start: 48311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: isDirectMode
    - item_type: preproc_def
      name: WAL_MAX_VERSION
      pos:
        line_end: 49882
        line_start: 49881
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3007000'
    - item_type: preproc_def
      name: WALINDEX_MAX_VERSION
      pos:
        line_end: 49883
        line_start: 49882
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3007000'
    - item_type: preproc_def
      name: WAL_WRITE_LOCK
      pos:
        line_end: 49889
        line_start: 49888
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: WAL_ALL_BUT_WRITE
      pos:
        line_end: 49890
        line_start: 49889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WAL_CKPT_LOCK
      pos:
        line_end: 49891
        line_start: 49890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WAL_RECOVER_LOCK
      pos:
        line_end: 49892
        line_start: 49891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: WAL_NREADER
      pos:
        line_end: 49894
        line_start: 49893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (SQLITE_SHM_NLOCK-3)
    - item_type: preproc_def
      name: READMARK_NOT_USED
      pos:
        line_end: 49980
        line_start: 49979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: WALINDEX_LOCK_OFFSET
      pos:
        line_end: 49988
        line_start: 49987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (sizeof(WalIndexHdr)*2 + sizeof(WalCkptInfo))
    - item_type: preproc_def
      name: WALINDEX_LOCK_RESERVED
      pos:
        line_end: 49989
        line_start: 49988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: WALINDEX_HDR_SIZE
      pos:
        line_end: 49990
        line_start: 49989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (WALINDEX_LOCK_OFFSET+WALINDEX_LOCK_RESERVED)
    - item_type: preproc_def
      name: WAL_FRAME_HDRSIZE
      pos:
        line_end: 49993
        line_start: 49992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: WAL_HDRSIZE
      pos:
        line_end: 49997
        line_start: 49996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: WAL_MAGIC
      pos:
        line_end: 50008
        line_start: 50007
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x377f0682'
    - item_type: preproc_def
      name: WAL_NORMAL_MODE
      pos:
        line_end: 50053
        line_start: 50052
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: WAL_EXCLUSIVE_MODE
      pos:
        line_end: 50054
        line_start: 50053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1     '
    - item_type: preproc_def
      name: WAL_HEAPMEMORY_MODE
      pos:
        line_end: 50055
        line_start: 50054
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: WAL_RDWR
      pos:
        line_end: 50060
        line_start: 50059
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0    '
    - item_type: preproc_def
      name: WAL_RDONLY
      pos:
        line_end: 50061
        line_start: 50060
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: WAL_SHM_RDONLY
      pos:
        line_end: 50062
        line_start: 50061
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: HASHTABLE_NPAGE
      pos:
        line_end: 50105
        line_start: 50104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4096                 '
    - item_type: preproc_def
      name: HASHTABLE_HASH_1
      pos:
        line_end: 50106
        line_start: 50105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '383                  '
    - item_type: preproc_def
      name: HASHTABLE_NSLOT
      pos:
        line_end: 50107
        line_start: 50106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(HASHTABLE_NPAGE*2)  '
    - item_type: preproc_def
      name: HASHTABLE_NPAGE_ONE
      pos:
        line_end: 50114
        line_start: 50113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (HASHTABLE_NPAGE - (WALINDEX_HDR_SIZE/sizeof(u32)))
    - item_type: preproc_def
      name: WALINDEX_PGSZ
      pos:
        line_end: 50119
        line_start: 50116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: "(                                         \\\n    sizeof(ht_slot)*HASHTABLE_NSLOT
        + HASHTABLE_NPAGE*sizeof(u32) \\\n)"
    - item_type: preproc_def
      name: WAL_RETRY
      pos:
        line_end: 51704
        line_start: 51703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: SQLITE_FILE_HEADER
      pos:
        line_end: 53045
        line_start: 53044
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"SQLite format 3"'
    - item_type: preproc_def
      name: PTF_INTKEY
      pos:
        line_end: 53052
        line_start: 53051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PTF_ZERODATA
      pos:
        line_end: 53053
        line_start: 53052
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PTF_LEAFDATA
      pos:
        line_end: 53054
        line_start: 53053
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PTF_LEAF
      pos:
        line_end: 53055
        line_start: 53054
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EXTRA_SIZE
      pos:
        line_end: 53106
        line_start: 53105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sizeof(MemPage)
    - item_type: preproc_def
      name: READ_LOCK
      pos:
        line_end: 53123
        line_start: 53122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WRITE_LOCK
      pos:
        line_end: 53124
        line_start: 53123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TRANS_NONE
      pos:
        line_end: 53171
        line_start: 53170
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TRANS_READ
      pos:
        line_end: 53172
        line_start: 53171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TRANS_WRITE
      pos:
        line_end: 53173
        line_start: 53172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BTS_READ_ONLY
      pos:
        line_end: 53251
        line_start: 53250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001   '
    - item_type: preproc_def
      name: BTS_PAGESIZE_FIXED
      pos:
        line_end: 53252
        line_start: 53251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002   '
    - item_type: preproc_def
      name: BTS_SECURE_DELETE
      pos:
        line_end: 53253
        line_start: 53252
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: BTS_INITIALLY_EMPTY
      pos:
        line_end: 53254
        line_start: 53253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0008   '
    - item_type: preproc_def
      name: BTS_NO_WAL
      pos:
        line_end: 53255
        line_start: 53254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0010   '
    - item_type: preproc_def
      name: BTS_EXCLUSIVE
      pos:
        line_end: 53256
        line_start: 53255
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0020   '
    - item_type: preproc_def
      name: BTS_PENDING
      pos:
        line_end: 53257
        line_start: 53256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040   '
    - item_type: preproc_def
      name: BTCURSOR_MAX_DEPTH
      pos:
        line_end: 53282
        line_start: 53281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: BTCF_WriteFlag
      pos:
        line_end: 53333
        line_start: 53332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01   '
    - item_type: preproc_def
      name: BTCF_ValidNKey
      pos:
        line_end: 53334
        line_start: 53333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02   '
    - item_type: preproc_def
      name: BTCF_ValidOvfl
      pos:
        line_end: 53335
        line_start: 53334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04   '
    - item_type: preproc_def
      name: BTCF_AtLast
      pos:
        line_end: 53336
        line_start: 53335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08   '
    - item_type: preproc_def
      name: BTCF_Incrblob
      pos:
        line_end: 53337
        line_start: 53336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10   '
    - item_type: preproc_def
      name: BTCF_Multiple
      pos:
        line_end: 53338
        line_start: 53337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20   '
    - item_type: preproc_def
      name: CURSOR_INVALID
      pos:
        line_end: 53370
        line_start: 53369
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CURSOR_VALID
      pos:
        line_end: 53371
        line_start: 53370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CURSOR_SKIPNEXT
      pos:
        line_end: 53372
        line_start: 53371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CURSOR_REQUIRESEEK
      pos:
        line_end: 53373
        line_start: 53372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CURSOR_FAULT
      pos:
        line_end: 53374
        line_start: 53373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PTRMAP_ROOTPAGE
      pos:
        line_end: 53431
        line_start: 53430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PTRMAP_FREEPAGE
      pos:
        line_end: 53432
        line_start: 53431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PTRMAP_OVERFLOW1
      pos:
        line_end: 53433
        line_start: 53432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PTRMAP_OVERFLOW2
      pos:
        line_end: 53434
        line_start: 53433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PTRMAP_BTREE
      pos:
        line_end: 53435
        line_start: 53434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ISAUTOVACUUM
      pos:
        line_end: 53453
        line_start: 53452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (pBt->autoVacuum)
    - item_type: preproc_def
      name: ISAUTOVACUUM
      pos:
        line_end: 53455
        line_start: 53454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: get4byte
      pos:
        line_end: 53489
        line_start: 53488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Get4byte
    - item_type: preproc_def
      name: put4byte
      pos:
        line_end: 53490
        line_start: 53489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Put4byte
    - item_type: preproc_def
      name: BTALLOC_ANY
      pos:
        line_end: 53843
        line_start: 53842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0           '
    - item_type: preproc_def
      name: BTALLOC_EXACT
      pos:
        line_end: 53844
        line_start: 53843
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1           '
    - item_type: preproc_def
      name: BTALLOC_LE
      pos:
        line_end: 53845
        line_start: 53844
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2           '
    - item_type: preproc_def
      name: NN
      pos:
        line_end: 60476
        line_start: 60475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1             '
    - item_type: preproc_def
      name: NB
      pos:
        line_end: 60477
        line_start: 60476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(NN*2+1)      '
    - item_type: preproc_def
      name: MAX_6BYTE
      pos:
        line_end: 68852
        line_start: 68851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((((i64)0x00008000)<<32)-1)
    - item_type: preproc_def
      name: MAX_ROWID
      pos:
        line_end: 76186
        line_start: 76185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: MAX_ROWID
      pos:
        line_end: 76192
        line_start: 76191
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (i64)( (((u64)0x7fffffff)<<32) | (u64)0xffffffff )
    - item_type: preproc_def
      name: SQLITE_DEBUG_SORTER_THREADS
      pos:
        line_end: 79410
        line_start: 79409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MAX_PMASZ
      pos:
        line_end: 79418
        line_start: 79417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1<<29)
    - item_type: preproc_def
      name: SORTER_TYPE_INTEGER
      pos:
        line_end: 79601
        line_start: 79600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SORTER_TYPE_TEXT
      pos:
        line_end: 79602
        line_start: 79601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SORTER_MAX_MERGE_COUNT
      pos:
        line_end: 79723
        line_start: 79722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: nWorker
      pos:
        line_end: 80204
        line_start: 80203
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INCRINIT_NORMAL
      pos:
        line_end: 81325
        line_start: 81324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INCRINIT_TASK
      pos:
        line_end: 81326
        line_start: 81325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INCRINIT_ROOT
      pos:
        line_end: 81327
        line_start: 81326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: JOURNAL_CHUNKSIZE
      pos:
        line_end: 82282
        line_start: 82281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ((int)(1024-sizeof(FileChunk*)))
    - item_type: preproc_def
      name: IsStat4
      pos:
        line_end: 89324
        line_start: 89323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IsStat3
      pos:
        line_end: 89325
        line_start: 89324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IsStat4
      pos:
        line_end: 89327
        line_start: 89326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IsStat3
      pos:
        line_end: 89328
        line_start: 89327
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IsStat4
      pos:
        line_end: 89330
        line_start: 89329
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IsStat3
      pos:
        line_end: 89331
        line_start: 89330
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_STAT4_SAMPLES
      pos:
        line_end: 89333
        line_start: 89332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IsStat34
      pos:
        line_end: 89335
        line_start: 89334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(IsStat3+IsStat4)  '
    - item_type: preproc_def
      name: SQLITE_STAT4_SAMPLES
      pos:
        line_end: 89435
        line_start: 89434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: STAT_GET_STAT1
      pos:
        line_end: 89968
        line_start: 89967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0          '
    - item_type: preproc_def
      name: STAT_GET_ROWID
      pos:
        line_end: 89969
        line_start: 89968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1          '
    - item_type: preproc_def
      name: STAT_GET_NEQ
      pos:
        line_end: 89970
        line_start: 89969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2          '
    - item_type: preproc_def
      name: STAT_GET_NLT
      pos:
        line_end: 89971
        line_start: 89970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3          '
    - item_type: preproc_def
      name: STAT_GET_NDLT
      pos:
        line_end: 89972
        line_start: 89971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4          '
    - item_type: preproc_def
      name: SAVE_SZ
      pos:
        line_end: 92189
        line_start: 92188
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (sizeof(Parse) - offsetof(Parse,nVar))
    - item_type: preproc_def
      name: FUNC_PERFECT_MATCH
      pos:
        line_end: 96502
        line_start: 96501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: pTrigger
      pos:
        line_end: 97012
        line_start: 97011
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 97013
        line_start: 97012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 97017
        line_start: 97016
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: noopFunc
      pos:
        line_end: 98039
        line_start: 98038
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 'versionFunc   '
    - item_type: preproc_def
      name: pTrigger
      pos:
        line_end: 101305
        line_start: 101304
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: tmask
      pos:
        line_end: 101306
        line_start: 101305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 101307
        line_start: 101306
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 101311
        line_start: 101310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_CORE
      pos:
        line_end: 103004
        line_start: 103003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: sqlite3_aggregate_context
      pos:
        line_end: 103296
        line_start: 103295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->aggregate_context
    - item_type: preproc_def
      name: sqlite3_aggregate_count
      pos:
        line_end: 103298
        line_start: 103297
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->aggregate_count
    - item_type: preproc_def
      name: sqlite3_bind_blob
      pos:
        line_end: 103300
        line_start: 103299
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_blob
    - item_type: preproc_def
      name: sqlite3_bind_double
      pos:
        line_end: 103301
        line_start: 103300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_double
    - item_type: preproc_def
      name: sqlite3_bind_int
      pos:
        line_end: 103302
        line_start: 103301
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_int
    - item_type: preproc_def
      name: sqlite3_bind_int64
      pos:
        line_end: 103303
        line_start: 103302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_int64
    - item_type: preproc_def
      name: sqlite3_bind_null
      pos:
        line_end: 103304
        line_start: 103303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_null
    - item_type: preproc_def
      name: sqlite3_bind_parameter_count
      pos:
        line_end: 103305
        line_start: 103304
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_parameter_count
    - item_type: preproc_def
      name: sqlite3_bind_parameter_index
      pos:
        line_end: 103306
        line_start: 103305
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_parameter_index
    - item_type: preproc_def
      name: sqlite3_bind_parameter_name
      pos:
        line_end: 103307
        line_start: 103306
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_parameter_name
    - item_type: preproc_def
      name: sqlite3_bind_text
      pos:
        line_end: 103308
        line_start: 103307
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_text
    - item_type: preproc_def
      name: sqlite3_bind_text16
      pos:
        line_end: 103309
        line_start: 103308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_text16
    - item_type: preproc_def
      name: sqlite3_bind_value
      pos:
        line_end: 103310
        line_start: 103309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_value
    - item_type: preproc_def
      name: sqlite3_busy_handler
      pos:
        line_end: 103311
        line_start: 103310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->busy_handler
    - item_type: preproc_def
      name: sqlite3_busy_timeout
      pos:
        line_end: 103312
        line_start: 103311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->busy_timeout
    - item_type: preproc_def
      name: sqlite3_changes
      pos:
        line_end: 103313
        line_start: 103312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->changes
    - item_type: preproc_def
      name: sqlite3_close
      pos:
        line_end: 103314
        line_start: 103313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->close
    - item_type: preproc_def
      name: sqlite3_collation_needed
      pos:
        line_end: 103315
        line_start: 103314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->collation_needed
    - item_type: preproc_def
      name: sqlite3_collation_needed16
      pos:
        line_end: 103316
        line_start: 103315
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->collation_needed16
    - item_type: preproc_def
      name: sqlite3_column_blob
      pos:
        line_end: 103317
        line_start: 103316
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_blob
    - item_type: preproc_def
      name: sqlite3_column_bytes
      pos:
        line_end: 103318
        line_start: 103317
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_bytes
    - item_type: preproc_def
      name: sqlite3_column_bytes16
      pos:
        line_end: 103319
        line_start: 103318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_bytes16
    - item_type: preproc_def
      name: sqlite3_column_count
      pos:
        line_end: 103320
        line_start: 103319
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_count
    - item_type: preproc_def
      name: sqlite3_column_database_name
      pos:
        line_end: 103321
        line_start: 103320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_database_name
    - item_type: preproc_def
      name: sqlite3_column_database_name16
      pos:
        line_end: 103322
        line_start: 103321
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_database_name16
    - item_type: preproc_def
      name: sqlite3_column_decltype
      pos:
        line_end: 103323
        line_start: 103322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_decltype
    - item_type: preproc_def
      name: sqlite3_column_decltype16
      pos:
        line_end: 103324
        line_start: 103323
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_decltype16
    - item_type: preproc_def
      name: sqlite3_column_double
      pos:
        line_end: 103325
        line_start: 103324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_double
    - item_type: preproc_def
      name: sqlite3_column_int
      pos:
        line_end: 103326
        line_start: 103325
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_int
    - item_type: preproc_def
      name: sqlite3_column_int64
      pos:
        line_end: 103327
        line_start: 103326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_int64
    - item_type: preproc_def
      name: sqlite3_column_name
      pos:
        line_end: 103328
        line_start: 103327
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_name
    - item_type: preproc_def
      name: sqlite3_column_name16
      pos:
        line_end: 103329
        line_start: 103328
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_name16
    - item_type: preproc_def
      name: sqlite3_column_origin_name
      pos:
        line_end: 103330
        line_start: 103329
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_origin_name
    - item_type: preproc_def
      name: sqlite3_column_origin_name16
      pos:
        line_end: 103331
        line_start: 103330
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_origin_name16
    - item_type: preproc_def
      name: sqlite3_column_table_name
      pos:
        line_end: 103332
        line_start: 103331
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_table_name
    - item_type: preproc_def
      name: sqlite3_column_table_name16
      pos:
        line_end: 103333
        line_start: 103332
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_table_name16
    - item_type: preproc_def
      name: sqlite3_column_text
      pos:
        line_end: 103334
        line_start: 103333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_text
    - item_type: preproc_def
      name: sqlite3_column_text16
      pos:
        line_end: 103335
        line_start: 103334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_text16
    - item_type: preproc_def
      name: sqlite3_column_type
      pos:
        line_end: 103336
        line_start: 103335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_type
    - item_type: preproc_def
      name: sqlite3_column_value
      pos:
        line_end: 103337
        line_start: 103336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->column_value
    - item_type: preproc_def
      name: sqlite3_commit_hook
      pos:
        line_end: 103338
        line_start: 103337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->commit_hook
    - item_type: preproc_def
      name: sqlite3_complete
      pos:
        line_end: 103339
        line_start: 103338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->complete
    - item_type: preproc_def
      name: sqlite3_complete16
      pos:
        line_end: 103340
        line_start: 103339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->complete16
    - item_type: preproc_def
      name: sqlite3_create_collation
      pos:
        line_end: 103341
        line_start: 103340
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_collation
    - item_type: preproc_def
      name: sqlite3_create_collation16
      pos:
        line_end: 103342
        line_start: 103341
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_collation16
    - item_type: preproc_def
      name: sqlite3_create_function
      pos:
        line_end: 103343
        line_start: 103342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_function
    - item_type: preproc_def
      name: sqlite3_create_function16
      pos:
        line_end: 103344
        line_start: 103343
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_function16
    - item_type: preproc_def
      name: sqlite3_create_module
      pos:
        line_end: 103345
        line_start: 103344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_module
    - item_type: preproc_def
      name: sqlite3_create_module_v2
      pos:
        line_end: 103346
        line_start: 103345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_module_v2
    - item_type: preproc_def
      name: sqlite3_data_count
      pos:
        line_end: 103347
        line_start: 103346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->data_count
    - item_type: preproc_def
      name: sqlite3_db_handle
      pos:
        line_end: 103348
        line_start: 103347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_handle
    - item_type: preproc_def
      name: sqlite3_declare_vtab
      pos:
        line_end: 103349
        line_start: 103348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->declare_vtab
    - item_type: preproc_def
      name: sqlite3_enable_shared_cache
      pos:
        line_end: 103350
        line_start: 103349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->enable_shared_cache
    - item_type: preproc_def
      name: sqlite3_errcode
      pos:
        line_end: 103351
        line_start: 103350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->errcode
    - item_type: preproc_def
      name: sqlite3_errmsg
      pos:
        line_end: 103352
        line_start: 103351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->errmsg
    - item_type: preproc_def
      name: sqlite3_errmsg16
      pos:
        line_end: 103353
        line_start: 103352
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->errmsg16
    - item_type: preproc_def
      name: sqlite3_exec
      pos:
        line_end: 103354
        line_start: 103353
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->exec
    - item_type: preproc_def
      name: sqlite3_expired
      pos:
        line_end: 103356
        line_start: 103355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->expired
    - item_type: preproc_def
      name: sqlite3_finalize
      pos:
        line_end: 103358
        line_start: 103357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->finalize
    - item_type: preproc_def
      name: sqlite3_free
      pos:
        line_end: 103359
        line_start: 103358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->free
    - item_type: preproc_def
      name: sqlite3_free_table
      pos:
        line_end: 103360
        line_start: 103359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->free_table
    - item_type: preproc_def
      name: sqlite3_get_autocommit
      pos:
        line_end: 103361
        line_start: 103360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->get_autocommit
    - item_type: preproc_def
      name: sqlite3_get_auxdata
      pos:
        line_end: 103362
        line_start: 103361
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->get_auxdata
    - item_type: preproc_def
      name: sqlite3_get_table
      pos:
        line_end: 103363
        line_start: 103362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->get_table
    - item_type: preproc_def
      name: sqlite3_global_recover
      pos:
        line_end: 103365
        line_start: 103364
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->global_recover
    - item_type: preproc_def
      name: sqlite3_interrupt
      pos:
        line_end: 103367
        line_start: 103366
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->interruptx
    - item_type: preproc_def
      name: sqlite3_last_insert_rowid
      pos:
        line_end: 103368
        line_start: 103367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->last_insert_rowid
    - item_type: preproc_def
      name: sqlite3_libversion
      pos:
        line_end: 103369
        line_start: 103368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->libversion
    - item_type: preproc_def
      name: sqlite3_libversion_number
      pos:
        line_end: 103370
        line_start: 103369
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->libversion_number
    - item_type: preproc_def
      name: sqlite3_malloc
      pos:
        line_end: 103371
        line_start: 103370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->malloc
    - item_type: preproc_def
      name: sqlite3_mprintf
      pos:
        line_end: 103372
        line_start: 103371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mprintf
    - item_type: preproc_def
      name: sqlite3_open
      pos:
        line_end: 103373
        line_start: 103372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->open
    - item_type: preproc_def
      name: sqlite3_open16
      pos:
        line_end: 103374
        line_start: 103373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->open16
    - item_type: preproc_def
      name: sqlite3_prepare
      pos:
        line_end: 103375
        line_start: 103374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare
    - item_type: preproc_def
      name: sqlite3_prepare16
      pos:
        line_end: 103376
        line_start: 103375
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare16
    - item_type: preproc_def
      name: sqlite3_prepare_v2
      pos:
        line_end: 103377
        line_start: 103376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare_v2
    - item_type: preproc_def
      name: sqlite3_prepare16_v2
      pos:
        line_end: 103378
        line_start: 103377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare16_v2
    - item_type: preproc_def
      name: sqlite3_profile
      pos:
        line_end: 103379
        line_start: 103378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->profile
    - item_type: preproc_def
      name: sqlite3_progress_handler
      pos:
        line_end: 103380
        line_start: 103379
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->progress_handler
    - item_type: preproc_def
      name: sqlite3_realloc
      pos:
        line_end: 103381
        line_start: 103380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->realloc
    - item_type: preproc_def
      name: sqlite3_reset
      pos:
        line_end: 103382
        line_start: 103381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->reset
    - item_type: preproc_def
      name: sqlite3_result_blob
      pos:
        line_end: 103383
        line_start: 103382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_blob
    - item_type: preproc_def
      name: sqlite3_result_double
      pos:
        line_end: 103384
        line_start: 103383
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_double
    - item_type: preproc_def
      name: sqlite3_result_error
      pos:
        line_end: 103385
        line_start: 103384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_error
    - item_type: preproc_def
      name: sqlite3_result_error16
      pos:
        line_end: 103386
        line_start: 103385
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_error16
    - item_type: preproc_def
      name: sqlite3_result_int
      pos:
        line_end: 103387
        line_start: 103386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_int
    - item_type: preproc_def
      name: sqlite3_result_int64
      pos:
        line_end: 103388
        line_start: 103387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_int64
    - item_type: preproc_def
      name: sqlite3_result_null
      pos:
        line_end: 103389
        line_start: 103388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_null
    - item_type: preproc_def
      name: sqlite3_result_text
      pos:
        line_end: 103390
        line_start: 103389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_text
    - item_type: preproc_def
      name: sqlite3_result_text16
      pos:
        line_end: 103391
        line_start: 103390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_text16
    - item_type: preproc_def
      name: sqlite3_result_text16be
      pos:
        line_end: 103392
        line_start: 103391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_text16be
    - item_type: preproc_def
      name: sqlite3_result_text16le
      pos:
        line_end: 103393
        line_start: 103392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_text16le
    - item_type: preproc_def
      name: sqlite3_result_value
      pos:
        line_end: 103394
        line_start: 103393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_value
    - item_type: preproc_def
      name: sqlite3_rollback_hook
      pos:
        line_end: 103395
        line_start: 103394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->rollback_hook
    - item_type: preproc_def
      name: sqlite3_set_authorizer
      pos:
        line_end: 103396
        line_start: 103395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->set_authorizer
    - item_type: preproc_def
      name: sqlite3_set_auxdata
      pos:
        line_end: 103397
        line_start: 103396
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->set_auxdata
    - item_type: preproc_def
      name: sqlite3_snprintf
      pos:
        line_end: 103398
        line_start: 103397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->snprintf
    - item_type: preproc_def
      name: sqlite3_step
      pos:
        line_end: 103399
        line_start: 103398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->step
    - item_type: preproc_def
      name: sqlite3_table_column_metadata
      pos:
        line_end: 103400
        line_start: 103399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->table_column_metadata
    - item_type: preproc_def
      name: sqlite3_thread_cleanup
      pos:
        line_end: 103401
        line_start: 103400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->thread_cleanup
    - item_type: preproc_def
      name: sqlite3_total_changes
      pos:
        line_end: 103402
        line_start: 103401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->total_changes
    - item_type: preproc_def
      name: sqlite3_trace
      pos:
        line_end: 103403
        line_start: 103402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->trace
    - item_type: preproc_def
      name: sqlite3_transfer_bindings
      pos:
        line_end: 103405
        line_start: 103404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->transfer_bindings
    - item_type: preproc_def
      name: sqlite3_update_hook
      pos:
        line_end: 103407
        line_start: 103406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->update_hook
    - item_type: preproc_def
      name: sqlite3_user_data
      pos:
        line_end: 103408
        line_start: 103407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->user_data
    - item_type: preproc_def
      name: sqlite3_value_blob
      pos:
        line_end: 103409
        line_start: 103408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_blob
    - item_type: preproc_def
      name: sqlite3_value_bytes
      pos:
        line_end: 103410
        line_start: 103409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_bytes
    - item_type: preproc_def
      name: sqlite3_value_bytes16
      pos:
        line_end: 103411
        line_start: 103410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_bytes16
    - item_type: preproc_def
      name: sqlite3_value_double
      pos:
        line_end: 103412
        line_start: 103411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_double
    - item_type: preproc_def
      name: sqlite3_value_int
      pos:
        line_end: 103413
        line_start: 103412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_int
    - item_type: preproc_def
      name: sqlite3_value_int64
      pos:
        line_end: 103414
        line_start: 103413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_int64
    - item_type: preproc_def
      name: sqlite3_value_numeric_type
      pos:
        line_end: 103415
        line_start: 103414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_numeric_type
    - item_type: preproc_def
      name: sqlite3_value_text
      pos:
        line_end: 103416
        line_start: 103415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_text
    - item_type: preproc_def
      name: sqlite3_value_text16
      pos:
        line_end: 103417
        line_start: 103416
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_text16
    - item_type: preproc_def
      name: sqlite3_value_text16be
      pos:
        line_end: 103418
        line_start: 103417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_text16be
    - item_type: preproc_def
      name: sqlite3_value_text16le
      pos:
        line_end: 103419
        line_start: 103418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_text16le
    - item_type: preproc_def
      name: sqlite3_value_type
      pos:
        line_end: 103420
        line_start: 103419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_type
    - item_type: preproc_def
      name: sqlite3_vmprintf
      pos:
        line_end: 103421
        line_start: 103420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vmprintf
    - item_type: preproc_def
      name: sqlite3_overload_function
      pos:
        line_end: 103422
        line_start: 103421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->overload_function
    - item_type: preproc_def
      name: sqlite3_prepare_v2
      pos:
        line_end: 103423
        line_start: 103422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare_v2
    - item_type: preproc_def
      name: sqlite3_prepare16_v2
      pos:
        line_end: 103424
        line_start: 103423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->prepare16_v2
    - item_type: preproc_def
      name: sqlite3_clear_bindings
      pos:
        line_end: 103425
        line_start: 103424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->clear_bindings
    - item_type: preproc_def
      name: sqlite3_bind_zeroblob
      pos:
        line_end: 103426
        line_start: 103425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_zeroblob
    - item_type: preproc_def
      name: sqlite3_blob_bytes
      pos:
        line_end: 103427
        line_start: 103426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_bytes
    - item_type: preproc_def
      name: sqlite3_blob_close
      pos:
        line_end: 103428
        line_start: 103427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_close
    - item_type: preproc_def
      name: sqlite3_blob_open
      pos:
        line_end: 103429
        line_start: 103428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_open
    - item_type: preproc_def
      name: sqlite3_blob_read
      pos:
        line_end: 103430
        line_start: 103429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_read
    - item_type: preproc_def
      name: sqlite3_blob_write
      pos:
        line_end: 103431
        line_start: 103430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_write
    - item_type: preproc_def
      name: sqlite3_create_collation_v2
      pos:
        line_end: 103432
        line_start: 103431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_collation_v2
    - item_type: preproc_def
      name: sqlite3_file_control
      pos:
        line_end: 103433
        line_start: 103432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->file_control
    - item_type: preproc_def
      name: sqlite3_memory_highwater
      pos:
        line_end: 103434
        line_start: 103433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->memory_highwater
    - item_type: preproc_def
      name: sqlite3_memory_used
      pos:
        line_end: 103435
        line_start: 103434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->memory_used
    - item_type: preproc_def
      name: sqlite3_mutex_alloc
      pos:
        line_end: 103436
        line_start: 103435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mutex_alloc
    - item_type: preproc_def
      name: sqlite3_mutex_enter
      pos:
        line_end: 103437
        line_start: 103436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mutex_enter
    - item_type: preproc_def
      name: sqlite3_mutex_free
      pos:
        line_end: 103438
        line_start: 103437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mutex_free
    - item_type: preproc_def
      name: sqlite3_mutex_leave
      pos:
        line_end: 103439
        line_start: 103438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mutex_leave
    - item_type: preproc_def
      name: sqlite3_mutex_try
      pos:
        line_end: 103440
        line_start: 103439
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->mutex_try
    - item_type: preproc_def
      name: sqlite3_open_v2
      pos:
        line_end: 103441
        line_start: 103440
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->open_v2
    - item_type: preproc_def
      name: sqlite3_release_memory
      pos:
        line_end: 103442
        line_start: 103441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->release_memory
    - item_type: preproc_def
      name: sqlite3_result_error_nomem
      pos:
        line_end: 103443
        line_start: 103442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_error_nomem
    - item_type: preproc_def
      name: sqlite3_result_error_toobig
      pos:
        line_end: 103444
        line_start: 103443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_error_toobig
    - item_type: preproc_def
      name: sqlite3_sleep
      pos:
        line_end: 103445
        line_start: 103444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->sleep
    - item_type: preproc_def
      name: sqlite3_soft_heap_limit
      pos:
        line_end: 103446
        line_start: 103445
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->soft_heap_limit
    - item_type: preproc_def
      name: sqlite3_vfs_find
      pos:
        line_end: 103447
        line_start: 103446
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vfs_find
    - item_type: preproc_def
      name: sqlite3_vfs_register
      pos:
        line_end: 103448
        line_start: 103447
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vfs_register
    - item_type: preproc_def
      name: sqlite3_vfs_unregister
      pos:
        line_end: 103449
        line_start: 103448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vfs_unregister
    - item_type: preproc_def
      name: sqlite3_threadsafe
      pos:
        line_end: 103450
        line_start: 103449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->xthreadsafe
    - item_type: preproc_def
      name: sqlite3_result_zeroblob
      pos:
        line_end: 103451
        line_start: 103450
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_zeroblob
    - item_type: preproc_def
      name: sqlite3_result_error_code
      pos:
        line_end: 103452
        line_start: 103451
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_error_code
    - item_type: preproc_def
      name: sqlite3_test_control
      pos:
        line_end: 103453
        line_start: 103452
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->test_control
    - item_type: preproc_def
      name: sqlite3_randomness
      pos:
        line_end: 103454
        line_start: 103453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->randomness
    - item_type: preproc_def
      name: sqlite3_context_db_handle
      pos:
        line_end: 103455
        line_start: 103454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->context_db_handle
    - item_type: preproc_def
      name: sqlite3_extended_result_codes
      pos:
        line_end: 103456
        line_start: 103455
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->extended_result_codes
    - item_type: preproc_def
      name: sqlite3_limit
      pos:
        line_end: 103457
        line_start: 103456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->limit
    - item_type: preproc_def
      name: sqlite3_next_stmt
      pos:
        line_end: 103458
        line_start: 103457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->next_stmt
    - item_type: preproc_def
      name: sqlite3_sql
      pos:
        line_end: 103459
        line_start: 103458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->sql
    - item_type: preproc_def
      name: sqlite3_status
      pos:
        line_end: 103460
        line_start: 103459
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->status
    - item_type: preproc_def
      name: sqlite3_backup_finish
      pos:
        line_end: 103461
        line_start: 103460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->backup_finish
    - item_type: preproc_def
      name: sqlite3_backup_init
      pos:
        line_end: 103462
        line_start: 103461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->backup_init
    - item_type: preproc_def
      name: sqlite3_backup_pagecount
      pos:
        line_end: 103463
        line_start: 103462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->backup_pagecount
    - item_type: preproc_def
      name: sqlite3_backup_remaining
      pos:
        line_end: 103464
        line_start: 103463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->backup_remaining
    - item_type: preproc_def
      name: sqlite3_backup_step
      pos:
        line_end: 103465
        line_start: 103464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->backup_step
    - item_type: preproc_def
      name: sqlite3_compileoption_get
      pos:
        line_end: 103466
        line_start: 103465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->compileoption_get
    - item_type: preproc_def
      name: sqlite3_compileoption_used
      pos:
        line_end: 103467
        line_start: 103466
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->compileoption_used
    - item_type: preproc_def
      name: sqlite3_create_function_v2
      pos:
        line_end: 103468
        line_start: 103467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->create_function_v2
    - item_type: preproc_def
      name: sqlite3_db_config
      pos:
        line_end: 103469
        line_start: 103468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_config
    - item_type: preproc_def
      name: sqlite3_db_mutex
      pos:
        line_end: 103470
        line_start: 103469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_mutex
    - item_type: preproc_def
      name: sqlite3_db_status
      pos:
        line_end: 103471
        line_start: 103470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_status
    - item_type: preproc_def
      name: sqlite3_extended_errcode
      pos:
        line_end: 103472
        line_start: 103471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->extended_errcode
    - item_type: preproc_def
      name: sqlite3_log
      pos:
        line_end: 103473
        line_start: 103472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->log
    - item_type: preproc_def
      name: sqlite3_soft_heap_limit64
      pos:
        line_end: 103474
        line_start: 103473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->soft_heap_limit64
    - item_type: preproc_def
      name: sqlite3_sourceid
      pos:
        line_end: 103475
        line_start: 103474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->sourceid
    - item_type: preproc_def
      name: sqlite3_stmt_status
      pos:
        line_end: 103476
        line_start: 103475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->stmt_status
    - item_type: preproc_def
      name: sqlite3_strnicmp
      pos:
        line_end: 103477
        line_start: 103476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->strnicmp
    - item_type: preproc_def
      name: sqlite3_unlock_notify
      pos:
        line_end: 103478
        line_start: 103477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->unlock_notify
    - item_type: preproc_def
      name: sqlite3_wal_autocheckpoint
      pos:
        line_end: 103479
        line_start: 103478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->wal_autocheckpoint
    - item_type: preproc_def
      name: sqlite3_wal_checkpoint
      pos:
        line_end: 103480
        line_start: 103479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->wal_checkpoint
    - item_type: preproc_def
      name: sqlite3_wal_hook
      pos:
        line_end: 103481
        line_start: 103480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->wal_hook
    - item_type: preproc_def
      name: sqlite3_blob_reopen
      pos:
        line_end: 103482
        line_start: 103481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->blob_reopen
    - item_type: preproc_def
      name: sqlite3_vtab_config
      pos:
        line_end: 103483
        line_start: 103482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vtab_config
    - item_type: preproc_def
      name: sqlite3_vtab_on_conflict
      pos:
        line_end: 103484
        line_start: 103483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vtab_on_conflict
    - item_type: preproc_def
      name: sqlite3_close_v2
      pos:
        line_end: 103486
        line_start: 103485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->close_v2
    - item_type: preproc_def
      name: sqlite3_db_filename
      pos:
        line_end: 103487
        line_start: 103486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_filename
    - item_type: preproc_def
      name: sqlite3_db_readonly
      pos:
        line_end: 103488
        line_start: 103487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_readonly
    - item_type: preproc_def
      name: sqlite3_db_release_memory
      pos:
        line_end: 103489
        line_start: 103488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->db_release_memory
    - item_type: preproc_def
      name: sqlite3_errstr
      pos:
        line_end: 103490
        line_start: 103489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->errstr
    - item_type: preproc_def
      name: sqlite3_stmt_busy
      pos:
        line_end: 103491
        line_start: 103490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->stmt_busy
    - item_type: preproc_def
      name: sqlite3_stmt_readonly
      pos:
        line_end: 103492
        line_start: 103491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->stmt_readonly
    - item_type: preproc_def
      name: sqlite3_stricmp
      pos:
        line_end: 103493
        line_start: 103492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->stricmp
    - item_type: preproc_def
      name: sqlite3_uri_boolean
      pos:
        line_end: 103494
        line_start: 103493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->uri_boolean
    - item_type: preproc_def
      name: sqlite3_uri_int64
      pos:
        line_end: 103495
        line_start: 103494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->uri_int64
    - item_type: preproc_def
      name: sqlite3_uri_parameter
      pos:
        line_end: 103496
        line_start: 103495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->uri_parameter
    - item_type: preproc_def
      name: sqlite3_uri_vsnprintf
      pos:
        line_end: 103497
        line_start: 103496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->vsnprintf
    - item_type: preproc_def
      name: sqlite3_wal_checkpoint_v2
      pos:
        line_end: 103498
        line_start: 103497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->wal_checkpoint_v2
    - item_type: preproc_def
      name: sqlite3_auto_extension
      pos:
        line_end: 103500
        line_start: 103499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->auto_extension
    - item_type: preproc_def
      name: sqlite3_bind_blob64
      pos:
        line_end: 103501
        line_start: 103500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_blob64
    - item_type: preproc_def
      name: sqlite3_bind_text64
      pos:
        line_end: 103502
        line_start: 103501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_text64
    - item_type: preproc_def
      name: sqlite3_cancel_auto_extension
      pos:
        line_end: 103503
        line_start: 103502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->cancel_auto_extension
    - item_type: preproc_def
      name: sqlite3_load_extension
      pos:
        line_end: 103504
        line_start: 103503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->load_extension
    - item_type: preproc_def
      name: sqlite3_malloc64
      pos:
        line_end: 103505
        line_start: 103504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->malloc64
    - item_type: preproc_def
      name: sqlite3_msize
      pos:
        line_end: 103506
        line_start: 103505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->msize
    - item_type: preproc_def
      name: sqlite3_realloc64
      pos:
        line_end: 103507
        line_start: 103506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->realloc64
    - item_type: preproc_def
      name: sqlite3_reset_auto_extension
      pos:
        line_end: 103508
        line_start: 103507
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->reset_auto_extension
    - item_type: preproc_def
      name: sqlite3_result_blob64
      pos:
        line_end: 103509
        line_start: 103508
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_blob64
    - item_type: preproc_def
      name: sqlite3_result_text64
      pos:
        line_end: 103510
        line_start: 103509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_text64
    - item_type: preproc_def
      name: sqlite3_strglob
      pos:
        line_end: 103511
        line_start: 103510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->strglob
    - item_type: preproc_def
      name: sqlite3_value_dup
      pos:
        line_end: 103513
        line_start: 103512
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_dup
    - item_type: preproc_def
      name: sqlite3_value_free
      pos:
        line_end: 103514
        line_start: 103513
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->value_free
    - item_type: preproc_def
      name: sqlite3_result_zeroblob64
      pos:
        line_end: 103515
        line_start: 103514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->result_zeroblob64
    - item_type: preproc_def
      name: sqlite3_bind_zeroblob64
      pos:
        line_end: 103516
        line_start: 103515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3_api->bind_zeroblob64
    - item_type: preproc_def
      name: SQLITE_EXTENSION_INIT1
      pos:
        line_end: 103522
        line_start: 103521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: const sqlite3_api_routines *sqlite3_api=0;
    - item_type: preproc_def
      name: SQLITE_EXTENSION_INIT3
      pos:
        line_end: 103525
        line_start: 103523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: extern const sqlite3_api_routines *sqlite3_api;
    - item_type: preproc_def
      name: sqlite3_column_database_name
      pos:
        line_end: 103549
        line_start: 103548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_database_name16
      pos:
        line_end: 103550
        line_start: 103549
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_table_name
      pos:
        line_end: 103551
        line_start: 103550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_table_name16
      pos:
        line_end: 103552
        line_start: 103551
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_origin_name
      pos:
        line_end: 103553
        line_start: 103552
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_origin_name16
      pos:
        line_end: 103554
        line_start: 103553
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_set_authorizer
      pos:
        line_end: 103558
        line_start: 103557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_bind_text16
      pos:
        line_end: 103562
        line_start: 103561
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_collation_needed16
      pos:
        line_end: 103563
        line_start: 103562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_decltype16
      pos:
        line_end: 103564
        line_start: 103563
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_name16
      pos:
        line_end: 103565
        line_start: 103564
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_text16
      pos:
        line_end: 103566
        line_start: 103565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_complete16
      pos:
        line_end: 103567
        line_start: 103566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_create_collation16
      pos:
        line_end: 103568
        line_start: 103567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_create_function16
      pos:
        line_end: 103569
        line_start: 103568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_errmsg16
      pos:
        line_end: 103570
        line_start: 103569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_open16
      pos:
        line_end: 103571
        line_start: 103570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_prepare16
      pos:
        line_end: 103572
        line_start: 103571
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_prepare16_v2
      pos:
        line_end: 103573
        line_start: 103572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_result_error16
      pos:
        line_end: 103574
        line_start: 103573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_result_text16
      pos:
        line_end: 103575
        line_start: 103574
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_result_text16be
      pos:
        line_end: 103576
        line_start: 103575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_result_text16le
      pos:
        line_end: 103577
        line_start: 103576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_value_text16
      pos:
        line_end: 103578
        line_start: 103577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_value_text16be
      pos:
        line_end: 103579
        line_start: 103578
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_value_text16le
      pos:
        line_end: 103580
        line_start: 103579
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_database_name16
      pos:
        line_end: 103581
        line_start: 103580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_table_name16
      pos:
        line_end: 103582
        line_start: 103581
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_origin_name16
      pos:
        line_end: 103583
        line_start: 103582
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_complete
      pos:
        line_end: 103587
        line_start: 103586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_complete16
      pos:
        line_end: 103588
        line_start: 103587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_decltype16
      pos:
        line_end: 103592
        line_start: 103591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_column_decltype
      pos:
        line_end: 103593
        line_start: 103592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_progress_handler
      pos:
        line_end: 103597
        line_start: 103596
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_create_module
      pos:
        line_end: 103601
        line_start: 103600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_create_module_v2
      pos:
        line_end: 103602
        line_start: 103601
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_declare_vtab
      pos:
        line_end: 103603
        line_start: 103602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_vtab_config
      pos:
        line_end: 103604
        line_start: 103603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_vtab_on_conflict
      pos:
        line_end: 103605
        line_start: 103604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_enable_shared_cache
      pos:
        line_end: 103609
        line_start: 103608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_profile
      pos:
        line_end: 103613
        line_start: 103612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_trace
      pos:
        line_end: 103614
        line_start: 103613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_free_table
      pos:
        line_end: 103618
        line_start: 103617
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_get_table
      pos:
        line_end: 103619
        line_start: 103618
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_bind_zeroblob
      pos:
        line_end: 103623
        line_start: 103622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_bytes
      pos:
        line_end: 103624
        line_start: 103623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_close
      pos:
        line_end: 103625
        line_start: 103624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_open
      pos:
        line_end: 103626
        line_start: 103625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_read
      pos:
        line_end: 103627
        line_start: 103626
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_write
      pos:
        line_end: 103628
        line_start: 103627
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: sqlite3_blob_reopen
      pos:
        line_end: 103629
        line_start: 103628
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: wsdAutoextInit
      pos:
        line_end: 104158
        line_start: 104156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3AutoExtList *x = &GLOBAL(sqlite3AutoExtList,sqlite3Autoext)
    - item_type: preproc_def
      name: wsdAutoext
      pos:
        line_end: 104159
        line_start: 104158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: x[0]
    - item_type: preproc_def
      name: wsdAutoext
      pos:
        line_end: 104162
        line_start: 104161
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Autoext
    - item_type: preproc_def
      name: SQLITE_ENABLE_LOCKING_STYLE
      pos:
        line_end: 104314
        line_start: 104313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ENABLE_LOCKING_STYLE
      pos:
        line_end: 104316
        line_start: 104315
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PragTyp_HEADER_VALUE
      pos:
        line_end: 104334
        line_start: 104333
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PragTyp_AUTO_VACUUM
      pos:
        line_end: 104335
        line_start: 104334
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PragTyp_FLAG
      pos:
        line_end: 104336
        line_start: 104335
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PragTyp_BUSY_TIMEOUT
      pos:
        line_end: 104337
        line_start: 104336
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PragTyp_CACHE_SIZE
      pos:
        line_end: 104338
        line_start: 104337
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PragTyp_CASE_SENSITIVE_LIKE
      pos:
        line_end: 104339
        line_start: 104338
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PragTyp_COLLATION_LIST
      pos:
        line_end: 104340
        line_start: 104339
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: PragTyp_COMPILE_OPTIONS
      pos:
        line_end: 104341
        line_start: 104340
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PragTyp_DATA_STORE_DIRECTORY
      pos:
        line_end: 104342
        line_start: 104341
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PragTyp_DATABASE_LIST
      pos:
        line_end: 104343
        line_start: 104342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: PragTyp_DEFAULT_CACHE_SIZE
      pos:
        line_end: 104344
        line_start: 104343
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: PragTyp_ENCODING
      pos:
        line_end: 104345
        line_start: 104344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: PragTyp_FOREIGN_KEY_CHECK
      pos:
        line_end: 104346
        line_start: 104345
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: PragTyp_FOREIGN_KEY_LIST
      pos:
        line_end: 104347
        line_start: 104346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13'
    - item_type: preproc_def
      name: PragTyp_INCREMENTAL_VACUUM
      pos:
        line_end: 104348
        line_start: 104347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: PragTyp_INDEX_INFO
      pos:
        line_end: 104349
        line_start: 104348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: PragTyp_INDEX_LIST
      pos:
        line_end: 104350
        line_start: 104349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PragTyp_INTEGRITY_CHECK
      pos:
        line_end: 104351
        line_start: 104350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17'
    - item_type: preproc_def
      name: PragTyp_JOURNAL_MODE
      pos:
        line_end: 104352
        line_start: 104351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: PragTyp_JOURNAL_SIZE_LIMIT
      pos:
        line_end: 104353
        line_start: 104352
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19'
    - item_type: preproc_def
      name: PragTyp_LOCK_PROXY_FILE
      pos:
        line_end: 104354
        line_start: 104353
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PragTyp_LOCKING_MODE
      pos:
        line_end: 104355
        line_start: 104354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21'
    - item_type: preproc_def
      name: PragTyp_PAGE_COUNT
      pos:
        line_end: 104356
        line_start: 104355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: PragTyp_MMAP_SIZE
      pos:
        line_end: 104357
        line_start: 104356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23'
    - item_type: preproc_def
      name: PragTyp_PAGE_SIZE
      pos:
        line_end: 104358
        line_start: 104357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: PragTyp_SECURE_DELETE
      pos:
        line_end: 104359
        line_start: 104358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: PragTyp_SHRINK_MEMORY
      pos:
        line_end: 104360
        line_start: 104359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26'
    - item_type: preproc_def
      name: PragTyp_SOFT_HEAP_LIMIT
      pos:
        line_end: 104361
        line_start: 104360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27'
    - item_type: preproc_def
      name: PragTyp_STATS
      pos:
        line_end: 104362
        line_start: 104361
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28'
    - item_type: preproc_def
      name: PragTyp_SYNCHRONOUS
      pos:
        line_end: 104363
        line_start: 104362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '29'
    - item_type: preproc_def
      name: PragTyp_TABLE_INFO
      pos:
        line_end: 104364
        line_start: 104363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30'
    - item_type: preproc_def
      name: PragTyp_TEMP_STORE
      pos:
        line_end: 104365
        line_start: 104364
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '31'
    - item_type: preproc_def
      name: PragTyp_TEMP_STORE_DIRECTORY
      pos:
        line_end: 104366
        line_start: 104365
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: PragTyp_THREADS
      pos:
        line_end: 104367
        line_start: 104366
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '33'
    - item_type: preproc_def
      name: PragTyp_WAL_AUTOCHECKPOINT
      pos:
        line_end: 104368
        line_start: 104367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '34'
    - item_type: preproc_def
      name: PragTyp_WAL_CHECKPOINT
      pos:
        line_end: 104369
        line_start: 104368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '35'
    - item_type: preproc_def
      name: PragTyp_ACTIVATE_EXTENSIONS
      pos:
        line_end: 104370
        line_start: 104369
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '36'
    - item_type: preproc_def
      name: PragTyp_HEXKEY
      pos:
        line_end: 104371
        line_start: 104370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '37'
    - item_type: preproc_def
      name: PragTyp_KEY
      pos:
        line_end: 104372
        line_start: 104371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '38'
    - item_type: preproc_def
      name: PragTyp_REKEY
      pos:
        line_end: 104373
        line_start: 104372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '39'
    - item_type: preproc_def
      name: PragTyp_LOCK_STATUS
      pos:
        line_end: 104374
        line_start: 104373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '40'
    - item_type: preproc_def
      name: PragTyp_PARSER_TRACE
      pos:
        line_end: 104375
        line_start: 104374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '41'
    - item_type: preproc_def
      name: PragFlag_NeedSchema
      pos:
        line_end: 104376
        line_start: 104375
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PragFlag_ReadOnly
      pos:
        line_end: 104377
        line_start: 104376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SQLITE_INTEGRITY_CHECK_ERROR_MAX
      pos:
        line_end: 106153
        line_start: 106152
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100'
    - item_type: preproc_def
      name: temp_master_schema
      pos:
        line_end: 106920
        line_start: 106919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SORTFLAG_UseSorter
      pos:
        line_end: 107703
        line_start: 107702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01   '
    - item_type: preproc_def
      name: selectPopWith
      pos:
        line_end: 111799
        line_start: 111798
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: pTrigger
      pos:
        line_end: 114747
        line_start: 114746
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 114748
        line_start: 114747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: tmask
      pos:
        line_end: 114749
        line_start: 114748
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: isView
      pos:
        line_end: 114753
        line_start: 114752
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: WHERETRACE_ENABLED
      pos:
        line_end: 116936
        line_start: 116935
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WHERE_LOOP_XFER_SZ
      pos:
        line_end: 117046
        line_start: 117045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: offsetof(WhereLoop,nLSlot)
    - item_type: preproc_def
      name: N_OR_COST
      pos:
        line_end: 117067
        line_start: 117066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TERM_DYNAMIC
      pos:
        line_end: 117173
        line_start: 117172
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01   '
    - item_type: preproc_def
      name: TERM_VIRTUAL
      pos:
        line_end: 117174
        line_start: 117173
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x02   '
    - item_type: preproc_def
      name: TERM_CODED
      pos:
        line_end: 117175
        line_start: 117174
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x04   '
    - item_type: preproc_def
      name: TERM_COPIED
      pos:
        line_end: 117176
        line_start: 117175
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x08   '
    - item_type: preproc_def
      name: TERM_ORINFO
      pos:
        line_end: 117177
        line_start: 117176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x10   '
    - item_type: preproc_def
      name: TERM_ANDINFO
      pos:
        line_end: 117178
        line_start: 117177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x20   '
    - item_type: preproc_def
      name: TERM_OR_OK
      pos:
        line_end: 117179
        line_start: 117178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x40   '
    - item_type: preproc_def
      name: TERM_VNULL
      pos:
        line_end: 117181
        line_start: 117180
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x80   '
    - item_type: preproc_def
      name: TERM_VNULL
      pos:
        line_end: 117183
        line_start: 117182
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00   '
    - item_type: preproc_def
      name: TERM_LIKEOPT
      pos:
        line_end: 117185
        line_start: 117184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x100  '
    - item_type: preproc_def
      name: TERM_LIKECOND
      pos:
        line_end: 117186
        line_start: 117185
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x200  '
    - item_type: preproc_def
      name: TERM_LIKE
      pos:
        line_end: 117187
        line_start: 117186
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x400  '
    - item_type: preproc_def
      name: TERM_IS
      pos:
        line_end: 117188
        line_start: 117187
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x800  '
    - item_type: preproc_def
      name: WO_IN
      pos:
        line_end: 117398
        line_start: 117397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: WO_EQ
      pos:
        line_end: 117399
        line_start: 117398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: WO_LT
      pos:
        line_end: 117400
        line_start: 117399
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (WO_EQ<<(TK_LT-TK_EQ))
    - item_type: preproc_def
      name: WO_LE
      pos:
        line_end: 117401
        line_start: 117400
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (WO_EQ<<(TK_LE-TK_EQ))
    - item_type: preproc_def
      name: WO_GT
      pos:
        line_end: 117402
        line_start: 117401
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (WO_EQ<<(TK_GT-TK_EQ))
    - item_type: preproc_def
      name: WO_GE
      pos:
        line_end: 117403
        line_start: 117402
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (WO_EQ<<(TK_GE-TK_EQ))
    - item_type: preproc_def
      name: WO_MATCH
      pos:
        line_end: 117404
        line_start: 117403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: WO_IS
      pos:
        line_end: 117405
        line_start: 117404
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: WO_ISNULL
      pos:
        line_end: 117406
        line_start: 117405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: WO_OR
      pos:
        line_end: 117407
        line_start: 117406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0200       '
    - item_type: preproc_def
      name: WO_AND
      pos:
        line_end: 117408
        line_start: 117407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0400       '
    - item_type: preproc_def
      name: WO_EQUIV
      pos:
        line_end: 117409
        line_start: 117408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0800       '
    - item_type: preproc_def
      name: WO_NOOP
      pos:
        line_end: 117410
        line_start: 117409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1000       '
    - item_type: preproc_def
      name: WO_ALL
      pos:
        line_end: 117412
        line_start: 117411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x1fff       '
    - item_type: preproc_def
      name: WO_SINGLE
      pos:
        line_end: 117413
        line_start: 117412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x01ff       '
    - item_type: preproc_def
      name: WHERE_COLUMN_EQ
      pos:
        line_end: 117420
        line_start: 117419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: WHERE_COLUMN_RANGE
      pos:
        line_end: 117421
        line_start: 117420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: WHERE_COLUMN_IN
      pos:
        line_end: 117422
        line_start: 117421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: WHERE_COLUMN_NULL
      pos:
        line_end: 117423
        line_start: 117422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: WHERE_CONSTRAINT
      pos:
        line_end: 117424
        line_start: 117423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x0000000f  '
    - item_type: preproc_def
      name: WHERE_TOP_LIMIT
      pos:
        line_end: 117425
        line_start: 117424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: WHERE_BTM_LIMIT
      pos:
        line_end: 117426
        line_start: 117425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: WHERE_BOTH_LIMIT
      pos:
        line_end: 117427
        line_start: 117426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000030  '
    - item_type: preproc_def
      name: WHERE_IDX_ONLY
      pos:
        line_end: 117428
        line_start: 117427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: WHERE_IPK
      pos:
        line_end: 117429
        line_start: 117428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: WHERE_INDEXED
      pos:
        line_end: 117430
        line_start: 117429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: WHERE_VIRTUALTABLE
      pos:
        line_end: 117431
        line_start: 117430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: WHERE_IN_ABLE
      pos:
        line_end: 117432
        line_start: 117431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: WHERE_ONEROW
      pos:
        line_end: 117433
        line_start: 117432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: WHERE_MULTI_OR
      pos:
        line_end: 117434
        line_start: 117433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: WHERE_AUTO_INDEX
      pos:
        line_end: 117435
        line_start: 117434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: WHERE_SKIPSCAN
      pos:
        line_end: 117436
        line_start: 117435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: WHERE_UNQ_WANTED
      pos:
        line_end: 117437
        line_start: 117436
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: WHERE_PARTIALIDX
      pos:
        line_end: 117438
        line_start: 117437
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: YYNOERRORRECOVERY
      pos:
        line_end: 124706
        line_start: 124705
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INTERFACE
      pos:
        line_end: 124855
        line_start: 124854
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYCODETYPE
      pos:
        line_end: 124891
        line_start: 124890
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: unsigned char
    - item_type: preproc_def
      name: YYNOCODE
      pos:
        line_end: 124892
        line_start: 124891
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '254'
    - item_type: preproc_def
      name: YYACTIONTYPE
      pos:
        line_end: 124893
        line_start: 124892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: unsigned short int
    - item_type: preproc_def
      name: YYWILDCARD
      pos:
        line_end: 124894
        line_start: 124893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '70'
    - item_type: preproc_def
      name: sqlite3ParserTOKENTYPE
      pos:
        line_end: 124895
        line_start: 124894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: Token
    - item_type: preproc_def
      name: YYSTACKDEPTH
      pos:
        line_end: 124916
        line_start: 124915
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100'
    - item_type: preproc_def
      name: sqlite3ParserARG_SDECL
      pos:
        line_end: 124918
        line_start: 124917
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: Parse *pParse;
    - item_type: preproc_def
      name: sqlite3ParserARG_PDECL
      pos:
        line_end: 124919
        line_start: 124918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ',Parse *pParse'
    - item_type: preproc_def
      name: sqlite3ParserARG_FETCH
      pos:
        line_end: 124920
        line_start: 124919
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: Parse *pParse = yypParser->pParse
    - item_type: preproc_def
      name: sqlite3ParserARG_STORE
      pos:
        line_end: 124921
        line_start: 124920
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: yypParser->pParse = pParse
    - item_type: preproc_def
      name: YYNSTATE
      pos:
        line_end: 124922
        line_start: 124921
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '642'
    - item_type: preproc_def
      name: YYNRULE
      pos:
        line_end: 124923
        line_start: 124922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '327'
    - item_type: preproc_def
      name: YYFALLBACK
      pos:
        line_end: 124924
        line_start: 124923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_NO_ACTION
      pos:
        line_end: 124925
        line_start: 124924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (YYNSTATE+YYNRULE+2)
    - item_type: preproc_def
      name: YY_ACCEPT_ACTION
      pos:
        line_end: 124926
        line_start: 124925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (YYNSTATE+YYNRULE+1)
    - item_type: preproc_def
      name: YY_ERROR_ACTION
      pos:
        line_end: 124927
        line_start: 124926
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (YYNSTATE+YYNRULE)
    - item_type: preproc_def
      name: YY_ACTTAB_COUNT
      pos:
        line_end: 124993
        line_start: 124992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1497)
    - item_type: preproc_def
      name: YY_SHIFT_USE_DFLT
      pos:
        line_end: 125298
        line_start: 125297
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (-86)
    - item_type: preproc_def
      name: YY_SHIFT_COUNT
      pos:
        line_end: 125299
        line_start: 125298
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (429)
    - item_type: preproc_def
      name: YY_SHIFT_MIN
      pos:
        line_end: 125300
        line_start: 125299
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (-85)
    - item_type: preproc_def
      name: YY_SHIFT_MAX
      pos:
        line_end: 125301
        line_start: 125300
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1383)
    - item_type: preproc_def
      name: YY_REDUCE_USE_DFLT
      pos:
        line_end: 125347
        line_start: 125346
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (-110)
    - item_type: preproc_def
      name: YY_REDUCE_COUNT
      pos:
        line_end: 125348
        line_start: 125347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (305)
    - item_type: preproc_def
      name: YY_REDUCE_MIN
      pos:
        line_end: 125349
        line_start: 125348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (-109)
    - item_type: preproc_def
      name: YY_REDUCE_MAX
      pos:
        line_end: 125350
        line_start: 125349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1323)
    - item_type: preproc_def
      name: TOKEN
      pos:
        line_end: 128068
        line_start: 128067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (yyminor.yy0)
    - item_type: preproc_def
      name: SQLITE_N_KEYWORD
      pos:
        line_end: 128608
        line_start: 128607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '124'
    - item_type: preproc_def
      name: tkSEMI
      pos:
        line_end: 129117
        line_start: 129116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: tkWS
      pos:
        line_end: 129118
        line_start: 129117
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: tkOTHER
      pos:
        line_end: 129119
        line_start: 129118
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: tkEXPLAIN
      pos:
        line_end: 129121
        line_start: 129120
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: tkCREATE
      pos:
        line_end: 129122
        line_start: 129121
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: tkTEMP
      pos:
        line_end: 129123
        line_start: 129122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: tkTRIGGER
      pos:
        line_end: 129124
        line_start: 129123
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: tkEND
      pos:
        line_end: 129125
        line_start: 129124
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_DEBUG_OS_TRACE
      pos:
        line_end: 129526
        line_start: 129525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: NDELAY
      pos:
        line_end: 130843
        line_start: 130842
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ArraySize(delays)
    - item_type: preproc_def
      name: NDEBUG
      pos:
        line_end: 133897
        line_start: 133896
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS3_HASH_STRING
      pos:
        line_end: 134153
        line_start: 134152
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS3_HASH_BINARY
      pos:
        line_end: 134154
        line_start: 134153
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: fts3HashInit
      pos:
        line_end: 134168
        line_start: 134167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3HashInit
    - item_type: preproc_def
      name: fts3HashInsert
      pos:
        line_end: 134169
        line_start: 134168
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3HashInsert
    - item_type: preproc_def
      name: fts3HashFind
      pos:
        line_end: 134170
        line_start: 134169
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3HashFind
    - item_type: preproc_def
      name: fts3HashClear
      pos:
        line_end: 134171
        line_start: 134170
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3HashClear
    - item_type: preproc_def
      name: fts3HashFindElem
      pos:
        line_end: 134172
        line_start: 134171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3HashFindElem
    - item_type: preproc_def
      name: SQLITE_FTS3_MAX_EXPR_DEPTH
      pos:
        line_end: 134210
        line_start: 134209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: FTS3_MERGE_COUNT
      pos:
        line_end: 134219
        line_start: 134218
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FTS3_MAX_PENDING_DATA
      pos:
        line_end: 134229
        line_start: 134228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (1*1024*1024)
    - item_type: preproc_def
      name: FTS3_VARINT_MAX
      pos:
        line_end: 134250
        line_start: 134249
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FTS3_SEGDIR_MAXLEVEL
      pos:
        line_end: 134267
        line_start: 134266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FTS3_SEGDIR_MAXLEVEL_STR
      pos:
        line_end: 134268
        line_start: 134267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"1024"'
    - item_type: preproc_def
      name: POS_COLUMN
      pos:
        line_end: 134281
        line_start: 134280
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(1)     '
    - item_type: preproc_def
      name: POS_END
      pos:
        line_end: 134288
        line_start: 134281
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(0)     '
    - item_type: preproc_def
      name: NDEBUG
      pos:
        line_end: 134325
        line_start: 134324
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS_CORRUPT_VTAB
      pos:
        line_end: 134343
        line_start: 134342
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: sqlite3Fts3Corrupt()
    - item_type: preproc_def
      name: FTS_CORRUPT_VTAB
      pos:
        line_end: 134345
        line_start: 134344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: SQLITE_CORRUPT_VTAB
    - item_type: preproc_def
      name: FTS3_EVAL_FILTER
      pos:
        line_end: 134474
        line_start: 134473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FTS3_EVAL_NEXT
      pos:
        line_end: 134475
        line_start: 134474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS3_EVAL_MATCHINFO
      pos:
        line_end: 134476
        line_start: 134475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FTS3_FULLSCAN_SEARCH
      pos:
        line_end: 134493
        line_start: 134492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0    '
    - item_type: preproc_def
      name: FTS3_DOCID_SEARCH
      pos:
        line_end: 134494
        line_start: 134493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: FTS3_FULLTEXT_SEARCH
      pos:
        line_end: 134495
        line_start: 134494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: FTS3_HAVE_LANGID
      pos:
        line_end: 134503
        line_start: 134502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00010000      '
    - item_type: preproc_def
      name: FTS3_HAVE_DOCID_GE
      pos:
        line_end: 134504
        line_start: 134503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00020000      '
    - item_type: preproc_def
      name: FTS3_HAVE_DOCID_LE
      pos:
        line_end: 134505
        line_start: 134504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00040000      '
    - item_type: preproc_def
      name: FTSQUERY_NEAR
      pos:
        line_end: 134607
        line_start: 134606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTSQUERY_NOT
      pos:
        line_end: 134608
        line_start: 134607
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FTSQUERY_AND
      pos:
        line_end: 134609
        line_start: 134608
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FTSQUERY_OR
      pos:
        line_end: 134610
        line_start: 134609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FTSQUERY_PHRASE
      pos:
        line_end: 134611
        line_start: 134610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FTS3_SEGCURSOR_PENDING
      pos:
        line_end: 134648
        line_start: 134647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: FTS3_SEGCURSOR_ALL
      pos:
        line_end: 134649
        line_start: 134648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: FTS3_SEGMENT_REQUIRE_POS
      pos:
        line_end: 134659
        line_start: 134658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FTS3_SEGMENT_IGNORE_EMPTY
      pos:
        line_end: 134660
        line_start: 134659
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: FTS3_SEGMENT_COLUMN_FILTER
      pos:
        line_end: 134661
        line_start: 134660
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: FTS3_SEGMENT_PREFIX
      pos:
        line_end: 134662
        line_start: 134661
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: FTS3_SEGMENT_SCAN
      pos:
        line_end: 134663
        line_start: 134662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: FTS3_SEGMENT_FIRST
      pos:
        line_end: 134664
        line_start: 134663
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: SQLITE_CORE
      pos:
        line_end: 134777
        line_start: 134776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: POSITION_LIST_END
      pos:
        line_end: 136506
        line_start: 136505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: LARGEST_INT64
      pos:
        line_end: 137589
        line_start: 137588
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32))
    - item_type: preproc_def
      name: SMALLEST_INT64
      pos:
        line_end: 137590
        line_start: 137589
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (((sqlite3_int64)-1) - LARGEST_INT64)
    - item_type: preproc_def
      name: MAX_INCR_PHRASE_TOKENS
      pos:
        line_end: 138688
        line_start: 138687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FTS3_AUX_SCHEMA
      pos:
        line_end: 140443
        line_start: 140441
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"CREATE TABLE x(term, col, documents, occurrences, languageid
        HIDDEN)"'
    - item_type: preproc_def
      name: FTS4AUX_EQ_CONSTRAINT
      pos:
        line_end: 140535
        line_start: 140534
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS4AUX_GE_CONSTRAINT
      pos:
        line_end: 140536
        line_start: 140535
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FTS4AUX_LE_CONSTRAINT
      pos:
        line_end: 140537
        line_start: 140536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: sqlite3_fts3_enable_parentheses
      pos:
        line_end: 141016
        line_start: 141015
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: sqlite3_fts3_enable_parentheses
      pos:
        line_end: 141018
        line_start: 141017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_FTS3_DEFAULT_NEAR_PARAM
      pos:
        line_end: 141025
        line_start: 141024
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FTS3_TOK_SCHEMA
      pos:
        line_end: 144163
        line_start: 144162
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"CREATE TABLE x(input, token, start, end, position)"'
    - item_type: preproc_def
      name: FTS_MAX_APPENDABLE_HEIGHT
      pos:
        line_end: 144502
        line_start: 144501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FTS3_NODE_PADDING
      pos:
        line_end: 144514
        line_start: 144513
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (FTS3_VARINT_MAX*2)
    - item_type: preproc_def
      name: FTS3_NODE_CHUNKSIZE
      pos:
        line_end: 144536
        line_start: 144535
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: test_fts3_node_chunksize
    - item_type: preproc_def
      name: FTS3_NODE_CHUNK_THRESHOLD
      pos:
        line_end: 144537
        line_start: 144536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: test_fts3_node_chunk_threshold
    - item_type: preproc_def
      name: FTS3_NODE_CHUNKSIZE
      pos:
        line_end: 144539
        line_start: 144538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(4*1024) '
    - item_type: preproc_def
      name: FTS3_NODE_CHUNK_THRESHOLD
      pos:
        line_end: 144540
        line_start: 144539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: (FTS3_NODE_CHUNKSIZE*4)
    - item_type: preproc_def
      name: FTS_STAT_DOCTOTAL
      pos:
        line_end: 144547
        line_start: 144546
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FTS_STAT_INCRMERGEHINT
      pos:
        line_end: 144548
        line_start: 144547
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FTS_STAT_AUTOINCRMERGE
      pos:
        line_end: 144549
        line_start: 144548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SQL_DELETE_CONTENT
      pos:
        line_end: 144707
        line_start: 144706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SQL_IS_EMPTY
      pos:
        line_end: 144708
        line_start: 144707
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SQL_DELETE_ALL_CONTENT
      pos:
        line_end: 144709
        line_start: 144708
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: SQL_DELETE_ALL_SEGMENTS
      pos:
        line_end: 144710
        line_start: 144709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SQL_DELETE_ALL_SEGDIR
      pos:
        line_end: 144711
        line_start: 144710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SQL_DELETE_ALL_DOCSIZE
      pos:
        line_end: 144712
        line_start: 144711
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SQL_DELETE_ALL_STAT
      pos:
        line_end: 144713
        line_start: 144712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SQL_SELECT_CONTENT_BY_ROWID
      pos:
        line_end: 144714
        line_start: 144713
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SQL_NEXT_SEGMENT_INDEX
      pos:
        line_end: 144715
        line_start: 144714
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SQL_INSERT_SEGMENTS
      pos:
        line_end: 144716
        line_start: 144715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQL_NEXT_SEGMENTS_ID
      pos:
        line_end: 144717
        line_start: 144716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SQL_INSERT_SEGDIR
      pos:
        line_end: 144718
        line_start: 144717
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '11'
    - item_type: preproc_def
      name: SQL_SELECT_LEVEL
      pos:
        line_end: 144719
        line_start: 144718
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SQL_SELECT_LEVEL_RANGE
      pos:
        line_end: 144720
        line_start: 144719
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '13'
    - item_type: preproc_def
      name: SQL_SELECT_LEVEL_COUNT
      pos:
        line_end: 144721
        line_start: 144720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '14'
    - item_type: preproc_def
      name: SQL_SELECT_SEGDIR_MAX_LEVEL
      pos:
        line_end: 144722
        line_start: 144721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '15'
    - item_type: preproc_def
      name: SQL_DELETE_SEGDIR_LEVEL
      pos:
        line_end: 144723
        line_start: 144722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SQL_DELETE_SEGMENTS_RANGE
      pos:
        line_end: 144724
        line_start: 144723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SQL_CONTENT_INSERT
      pos:
        line_end: 144725
        line_start: 144724
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '18'
    - item_type: preproc_def
      name: SQL_DELETE_DOCSIZE
      pos:
        line_end: 144726
        line_start: 144725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '19'
    - item_type: preproc_def
      name: SQL_REPLACE_DOCSIZE
      pos:
        line_end: 144727
        line_start: 144726
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SQL_SELECT_DOCSIZE
      pos:
        line_end: 144728
        line_start: 144727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '21'
    - item_type: preproc_def
      name: SQL_SELECT_STAT
      pos:
        line_end: 144729
        line_start: 144728
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '22'
    - item_type: preproc_def
      name: SQL_REPLACE_STAT
      pos:
        line_end: 144730
        line_start: 144729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '23'
    - item_type: preproc_def
      name: SQL_SELECT_ALL_PREFIX_LEVEL
      pos:
        line_end: 144732
        line_start: 144731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '24'
    - item_type: preproc_def
      name: SQL_DELETE_ALL_TERMS_SEGDIR
      pos:
        line_end: 144733
        line_start: 144732
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '25'
    - item_type: preproc_def
      name: SQL_DELETE_SEGDIR_RANGE
      pos:
        line_end: 144734
        line_start: 144733
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '26'
    - item_type: preproc_def
      name: SQL_SELECT_ALL_LANGID
      pos:
        line_end: 144735
        line_start: 144734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '27'
    - item_type: preproc_def
      name: SQL_FIND_MERGE_LEVEL
      pos:
        line_end: 144736
        line_start: 144735
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '28'
    - item_type: preproc_def
      name: SQL_MAX_LEAF_NODE_ESTIMATE
      pos:
        line_end: 144737
        line_start: 144736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '29'
    - item_type: preproc_def
      name: SQL_DELETE_SEGDIR_ENTRY
      pos:
        line_end: 144738
        line_start: 144737
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '30'
    - item_type: preproc_def
      name: SQL_SHIFT_SEGDIR_ENTRY
      pos:
        line_end: 144739
        line_start: 144738
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '31'
    - item_type: preproc_def
      name: SQL_SELECT_SEGDIR
      pos:
        line_end: 144740
        line_start: 144739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '32'
    - item_type: preproc_def
      name: SQL_CHOMP_SEGDIR
      pos:
        line_end: 144741
        line_start: 144740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '33'
    - item_type: preproc_def
      name: SQL_SEGMENT_IS_APPENDABLE
      pos:
        line_end: 144742
        line_start: 144741
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '34'
    - item_type: preproc_def
      name: SQL_SELECT_INDEXES
      pos:
        line_end: 144743
        line_start: 144742
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '35'
    - item_type: preproc_def
      name: SQL_SELECT_MXLEVEL
      pos:
        line_end: 144744
        line_start: 144743
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '36'
    - item_type: preproc_def
      name: SQL_SELECT_LEVEL_RANGE2
      pos:
        line_end: 144746
        line_start: 144745
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '37'
    - item_type: preproc_def
      name: SQL_UPDATE_LEVEL_IDX
      pos:
        line_end: 144747
        line_start: 144746
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '38'
    - item_type: preproc_def
      name: SQL_UPDATE_LEVEL
      pos:
        line_end: 144748
        line_start: 144747
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '39'
    - item_type: preproc_def
      name: FTS3_MATCHINFO_NPHRASE
      pos:
        line_end: 150164
        line_start: 150163
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''p''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_NCOL
      pos:
        line_end: 150165
        line_start: 150164
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''c''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_NDOC
      pos:
        line_end: 150166
        line_start: 150165
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''n''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_AVGLENGTH
      pos:
        line_end: 150167
        line_start: 150166
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''a''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_LENGTH
      pos:
        line_end: 150168
        line_start: 150167
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''l''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_LCS
      pos:
        line_end: 150169
        line_start: 150168
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''s''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_HITS
      pos:
        line_end: 150170
        line_start: 150169
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''x''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_LHITS
      pos:
        line_end: 150171
        line_start: 150170
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''y''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_LHITS_BM
      pos:
        line_end: 150172
        line_start: 150171
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '''b''        '
    - item_type: preproc_def
      name: FTS3_MATCHINFO_DEFAULT
      pos:
        line_end: 150177
        line_start: 150176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"pcx"'
    - item_type: preproc_def
      name: LCS_ITERATOR_FINISHED
      pos:
        line_end: 151211
        line_start: 151210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: 0x7FFFFFFF;
    - item_type: preproc_def
      name: RTREE_MAX_DIMENSIONS
      pos:
        line_end: 152707
        line_start: 152706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: HASHSIZE
      pos:
        line_end: 152713
        line_start: 152712
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '97'
    - item_type: preproc_def
      name: RTREE_DEFAULT_ROWEST
      pos:
        line_end: 152722
        line_start: 152721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1048576'
    - item_type: preproc_def
      name: RTREE_MIN_ROWEST
      pos:
        line_end: 152723
        line_start: 152722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '100'
    - item_type: preproc_def
      name: RTREE_COORD_REAL32
      pos:
        line_end: 152768
        line_start: 152767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RTREE_COORD_INT32
      pos:
        line_end: 152769
        line_start: 152768
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RTREE_ZERO
      pos:
        line_end: 152779
        line_start: 152778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RTREE_ZERO
      pos:
        line_end: 152783
        line_start: 152782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0.0'
    - item_type: preproc_def
      name: RTREE_MAXCELLS
      pos:
        line_end: 152814
        line_start: 152813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '51'
    - item_type: preproc_def
      name: RTREE_MAX_DEPTH
      pos:
        line_end: 152823
        line_start: 152822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '40'
    - item_type: preproc_def
      name: RTREE_CACHE_SZ
      pos:
        line_end: 152831
        line_start: 152830
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RTREE_EQ
      pos:
        line_end: 152896
        line_start: 152895
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x41  '
    - item_type: preproc_def
      name: RTREE_LE
      pos:
        line_end: 152897
        line_start: 152896
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x42  '
    - item_type: preproc_def
      name: RTREE_LT
      pos:
        line_end: 152898
        line_start: 152897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x43  '
    - item_type: preproc_def
      name: RTREE_GE
      pos:
        line_end: 152899
        line_start: 152898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x44  '
    - item_type: preproc_def
      name: RTREE_GT
      pos:
        line_end: 152900
        line_start: 152899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x45  '
    - item_type: preproc_def
      name: RTREE_MATCH
      pos:
        line_end: 152901
        line_start: 152900
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x46  '
    - item_type: preproc_def
      name: RTREE_QUERY
      pos:
        line_end: 152902
        line_start: 152901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x47  '
    - item_type: preproc_def
      name: RTREE_GEOMETRY_MAGIC
      pos:
        line_end: 152956
        line_start: 152955
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0x891245AB'
    - item_type: preproc_def
      name: c
      pos:
        line_end: 153556
        line_start: 153550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: ".u = ((u32)a[0]<<24) + ((u32)a[1]<<16)                     \\\n
        \          +((u32)a[2]<<8) + a[3];                              \\\n    r
        = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \\\n}"
    - item_type: preproc_def
      name: RNDTOWARDS
      pos:
        line_end: 155391
        line_start: 155390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(1.0 - 1.0/8388608.0)  '
    - item_type: preproc_def
      name: RNDAWAY
      pos:
        line_end: 155392
        line_start: 155391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '(1.0 + 1.0/8388608.0)  '
    - item_type: preproc_def
      name: N_STATEMENT
      pos:
        line_end: 155642
        line_start: 155641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_MAX_LIKE_PATTERN_LENGTH
      pos:
        line_end: 156182
        line_start: 156181
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '50000'
    - item_type: preproc_def
      name: SQLITE_RBU_UPDATE_CACHESIZE
      pos:
        line_end: 157420
        line_start: 157419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '16'
    - item_type: preproc_def
      name: RBU_STATE_STAGE
      pos:
        line_end: 157473
        line_start: 157472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RBU_STATE_TBL
      pos:
        line_end: 157474
        line_start: 157473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RBU_STATE_IDX
      pos:
        line_end: 157475
        line_start: 157474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RBU_STATE_ROW
      pos:
        line_end: 157476
        line_start: 157475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RBU_STATE_PROGRESS
      pos:
        line_end: 157477
        line_start: 157476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RBU_STATE_CKPT
      pos:
        line_end: 157478
        line_start: 157477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RBU_STATE_COOKIE
      pos:
        line_end: 157479
        line_start: 157478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '7'
    - item_type: preproc_def
      name: RBU_STATE_OALSZ
      pos:
        line_end: 157480
        line_start: 157479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '8'
    - item_type: preproc_def
      name: RBU_STAGE_OAL
      pos:
        line_end: 157482
        line_start: 157481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RBU_STAGE_MOVE
      pos:
        line_end: 157483
        line_start: 157482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RBU_STAGE_CAPTURE
      pos:
        line_end: 157484
        line_start: 157483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RBU_STAGE_CKPT
      pos:
        line_end: 157485
        line_start: 157484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RBU_STAGE_DONE
      pos:
        line_end: 157486
        line_start: 157485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RBU_CREATE_STATE
      pos:
        line_end: 157490
        line_start: 157488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '"CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY,
        v)"'
    - item_type: preproc_def
      name: WAL_LOCK_WRITE
      pos:
        line_end: 157510
        line_start: 157509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: WAL_LOCK_CKPT
      pos:
        line_end: 157511
        line_start: 157510
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WAL_LOCK_READ0
      pos:
        line_end: 157512
        line_start: 157511
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RBU_PK_NOTABLE
      pos:
        line_end: 157591
        line_start: 157590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RBU_PK_NONE
      pos:
        line_end: 157592
        line_start: 157591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RBU_PK_IPK
      pos:
        line_end: 157593
        line_start: 157592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RBU_PK_EXTERNAL
      pos:
        line_end: 157594
        line_start: 157593
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RBU_PK_WITHOUT_ROWID
      pos:
        line_end: 157595
        line_start: 157594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RBU_PK_VTAB
      pos:
        line_end: 157596
        line_start: 157595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RBU_INSERT
      pos:
        line_end: 157603
        line_start: 157602
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '1          '
    - item_type: preproc_def
      name: RBU_DELETE
      pos:
        line_end: 157604
        line_start: 157603
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '2          '
    - item_type: preproc_def
      name: RBU_IDX_DELETE
      pos:
        line_end: 157605
        line_start: 157604
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '3          '
    - item_type: preproc_def
      name: RBU_IDX_INSERT
      pos:
        line_end: 157606
        line_start: 157605
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '4          '
    - item_type: preproc_def
      name: RBU_UPDATE
      pos:
        line_end: 157607
        line_start: 157606
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: '5          '
    - item_type: preproc_def
      name: VTAB_SCHEMA
      pos:
        line_end: 161048
        line_start: 161046
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type_or_value: "\"CREATE TABLE xx( \"                                                       \\\n
        \ \"  name       STRING,           "
    structs:
    - fields:
      - name: '*pMethods'
        type: struct sqlite3_io_methods
      item_type: struct
      name: sqlite3_file
      pos:
        line_end: 851
        line_start: 849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: int
      - name: (*xClose)(sqlite3_file*)
        type: int
      - name: (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst)
        type: int
      - name: (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst)
        type: int
      - name: (*xTruncate)(sqlite3_file*, sqlite3_int64 size)
        type: int
      - name: (*xSync)(sqlite3_file*, int flags)
        type: int
      - name: (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize)
        type: int
      - name: (*xLock)(sqlite3_file*, int)
        type: int
      - name: (*xUnlock)(sqlite3_file*, int)
        type: int
      - name: (*xCheckReservedLock)(sqlite3_file*, int *pResOut)
        type: int
      - name: (*xFileControl)(sqlite3_file*, int op, void *pArg)
        type: int
      - name: (*xSectorSize)(sqlite3_file*)
        type: int
      - name: (*xDeviceCharacteristics)(sqlite3_file*)
        type: int
      - name: (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**)
        type: int
      - name: (*xShmLock)(sqlite3_file*, int offset, int n, int flags)
        type: int
      - name: (*xShmBarrier)(sqlite3_file*)
        type: void
      - name: (*xShmUnmap)(sqlite3_file*, int deleteFlag)
        type: int
      - name: (*xFetch)(sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp)
        type: int
      - name: (*xUnfetch)(sqlite3_file*, sqlite3_int64 iOfst, void *p)
        type: int
      item_type: struct
      name: sqlite3_io_methods
      pos:
        line_end: 968
        line_start: 944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: int
      - name: szOsFile
        type: int
      - name: mxPathname
        type: int
      - name: '*pNext'
        type: sqlite3_vfs
      - name: '*zName'
        type: char
      - name: '*pAppData'
        type: void
      - name: "(*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*,\n               int
          flags, int *pOutFlags)"
        type: int
      - name: (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir)
        type: int
      - name: (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut)
        type: int
      - name: (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut)
        type: int
      - name: '*(*xDlOpen)(sqlite3_vfs*, const char *zFilename)'
        type: void
      - name: (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg)
        type: void
      - name: (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void)
        type: void
      - name: (*xDlClose)(sqlite3_vfs*, void*)
        type: void
      - name: (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut)
        type: int
      - name: (*xSleep)(sqlite3_vfs*, int microseconds)
        type: int
      - name: (*xCurrentTime)(sqlite3_vfs*, double*)
        type: int
      - name: (*xGetLastError)(sqlite3_vfs*, int, char *)
        type: int
      - name: (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*)
        type: int
      - name: (*xSetSystemCall)(sqlite3_vfs*, const char *zName, sqlite3_syscall_ptr)
        type: int
      - name: (*xGetSystemCall)(sqlite3_vfs*, const char *zName)
        type: sqlite3_syscall_ptr
      - name: '*(*xNextSystemCall)(sqlite3_vfs*, const char *zName)'
        type: char
      item_type: struct
      name: sqlite3_vfs
      pos:
        line_end: 1429
        line_start: 1392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*(*xMalloc)(int)'
        type: void
      - name: (*xFree)(void*)
        type: void
      - name: '*(*xRealloc)(void*,int)'
        type: void
      - name: (*xSize)(void*)
        type: int
      - name: (*xRoundup)(int)
        type: int
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*pAppData'
        type: void
      item_type: struct
      name: sqlite3_mem_methods
      pos:
        line_end: 1696
        line_start: 1687
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: int
      - name: "(*xCreate)(sqlite3*, void *pAux,\n               int argc, const char
          *const*argv,\n               sqlite3_vtab **ppVTab, char**)"
        type: int
      - name: "(*xConnect)(sqlite3*, void *pAux,\n               int argc, const char
          *const*argv,\n               sqlite3_vtab **ppVTab, char**)"
        type: int
      - name: (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*)
        type: int
      - name: (*xDisconnect)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xDestroy)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
        type: int
      - name: (*xClose)(sqlite3_vtab_cursor*)
        type: int
      - name: "(*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr,\n
          \               int argc, sqlite3_value **argv)"
        type: int
      - name: (*xNext)(sqlite3_vtab_cursor*)
        type: int
      - name: (*xEof)(sqlite3_vtab_cursor*)
        type: int
      - name: (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int)
        type: int
      - name: (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid)
        type: int
      - name: (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *)
        type: int
      - name: (*xBegin)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xSync)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xCommit)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xRollback)(sqlite3_vtab *pVTab)
        type: int
      - name: "(*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName,\n
          \                      void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),\n
          \                      void **ppArg)"
        type: int
      - name: (*xRename)(sqlite3_vtab *pVtab, const char *zNew)
        type: int
      - name: (*xSavepoint)(sqlite3_vtab *pVTab, int)
        type: int
      - name: (*xRelease)(sqlite3_vtab *pVTab, int)
        type: int
      - name: (*xRollbackTo)(sqlite3_vtab *pVTab, int)
        type: int
      item_type: struct
      name: sqlite3_module
      pos:
        line_end: 5756
        line_start: 5723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nConstraint
        type: int
      - name: '*aConstraint'
        type: "struct sqlite3_index_constraint {\n     int iColumn;              /*
          Column on left-hand side of constraint */\n     unsigned char op;         /*
          Constraint operator */\n     unsigned char usable;     /* True if this constraint
          is usable */\n     int iTermOffset;          /* Used internally - xBestIndex
          should ignore */\n  }"
      - name: nOrderBy
        type: int
      - name: '*aOrderBy'
        type: "struct sqlite3_index_orderby {\n     int iColumn;              /* Column
          number */\n     unsigned char desc;       /* True for DESC.  False for ASC.
          */\n  }"
      - name: '*aConstraintUsage'
        type: "struct sqlite3_index_constraint_usage {\n    int argvIndex;           /*
          if >0, constraint is part of argv to xFilter */\n    unsigned char omit;
          \     /* Do not code a test for this constraint */\n  }"
      - name: idxNum
        type: int
      - name: '*idxStr'
        type: char
      - name: needToFreeIdxStr
        type: int
      - name: orderByConsumed
        type: int
      - name: estimatedCost
        type: double
      - name: estimatedRows
        type: sqlite3_int64
      item_type: struct
      name: sqlite3_index_info
      pos:
        line_end: 5849
        line_start: 5823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iColumn
        type: int
      - name: op
        type: unsigned char
      - name: usable
        type: unsigned char
      - name: iTermOffset
        type: int
      item_type: struct
      name: sqlite3_index_constraint
      pos:
        line_end: 5831
        line_start: 5826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iColumn
        type: int
      - name: desc
        type: unsigned char
      item_type: struct
      name: sqlite3_index_orderby
      pos:
        line_end: 5836
        line_start: 5833
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: argvIndex
        type: int
      - name: omit
        type: unsigned char
      item_type: struct
      name: sqlite3_index_constraint_usage
      pos:
        line_end: 5841
        line_start: 5838
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pModule'
        type: sqlite3_module
      - name: nRef
        type: int
      - name: '*zErrMsg'
        type: char
      item_type: struct
      name: sqlite3_vtab
      pos:
        line_end: 5929
        line_start: 5924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVtab'
        type: sqlite3_vtab
      item_type: struct
      name: sqlite3_vtab_cursor
      pos:
        line_end: 5951
        line_start: 5948
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: (*xMutexInit)(void)
        type: int
      - name: (*xMutexEnd)(void)
        type: int
      - name: '*(*xMutexAlloc)(int)'
        type: sqlite3_mutex
      - name: (*xMutexFree)(sqlite3_mutex *)
        type: void
      - name: (*xMutexEnter)(sqlite3_mutex *)
        type: void
      - name: (*xMutexTry)(sqlite3_mutex *)
        type: int
      - name: (*xMutexLeave)(sqlite3_mutex *)
        type: void
      - name: (*xMutexHeld)(sqlite3_mutex *)
        type: int
      - name: (*xMutexNotheld)(sqlite3_mutex *)
        type: int
      item_type: struct
      name: sqlite3_mutex_methods
      pos:
        line_end: 6450
        line_start: 6440
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pBuf'
        type: void
      - name: '*pExtra'
        type: void
      item_type: struct
      name: sqlite3_pcache_page
      pos:
        line_end: 6966
        line_start: 6963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: int
      - name: '*pArg'
        type: void
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*(*xCreate)(int szPage, int szExtra, int bPurgeable)'
        type: sqlite3_pcache
      - name: (*xCachesize)(sqlite3_pcache*, int nCachesize)
        type: void
      - name: (*xPagecount)(sqlite3_pcache*)
        type: int
      - name: '*(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)'
        type: sqlite3_pcache_page
      - name: (*xUnpin)(sqlite3_pcache*, sqlite3_pcache_page*, int discard)
        type: void
      - name: "(*xRekey)(sqlite3_pcache*, sqlite3_pcache_page*, \n      unsigned oldKey,
          unsigned newKey)"
        type: void
      - name: (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
        type: void
      - name: (*xDestroy)(sqlite3_pcache*)
        type: void
      - name: (*xShrink)(sqlite3_pcache*)
        type: void
      item_type: struct
      name: sqlite3_pcache_methods2
      pos:
        line_end: 7143
        line_start: 7128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pArg'
        type: void
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*(*xCreate)(int szPage, int bPurgeable)'
        type: sqlite3_pcache
      - name: (*xCachesize)(sqlite3_pcache*, int nCachesize)
        type: void
      - name: (*xPagecount)(sqlite3_pcache*)
        type: int
      - name: '*(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)'
        type: void
      - name: (*xUnpin)(sqlite3_pcache*, void*, int discard)
        type: void
      - name: (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey)
        type: void
      - name: (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
        type: void
      - name: (*xDestroy)(sqlite3_pcache*)
        type: void
      item_type: struct
      name: sqlite3_pcache_methods
      pos:
        line_end: 7163
        line_start: 7151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pContext'
        type: void
      - name: nParam
        type: int
      - name: '*aParam'
        type: sqlite3_rtree_dbl
      - name: '*pUser'
        type: void
      - name: (*xDelUser)(void *)
        type: void
      item_type: struct
      name: sqlite3_rtree_geometry
      pos:
        line_end: 8014
        line_start: 8008
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pContext'
        type: void
      - name: nParam
        type: int
      - name: '*aParam'
        type: sqlite3_rtree_dbl
      - name: '*pUser'
        type: void
      - name: (*xDelUser)(void*)
        type: void
      - name: '*aCoord'
        type: sqlite3_rtree_dbl
      - name: '*anQueue'
        type: unsigned int
      - name: nCoord
        type: int
      - name: iLevel
        type: int
      - name: mxLevel
        type: int
      - name: iRowid
        type: sqlite3_int64
      - name: rParentScore
        type: sqlite3_rtree_dbl
      - name: eParentWithin
        type: int
      - name: eWithin
        type: int
      - name: rScore
        type: sqlite3_rtree_dbl
      - name: '**apSqlParam'
        type: sqlite3_value
      item_type: struct
      name: sqlite3_rtree_query_info
      pos:
        line_end: 8058
        line_start: 8040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: htsize
        type: unsigned int
      - name: count
        type: unsigned int
      - name: '*first'
        type: HashElem
      - name: '*ht'
        type: "struct _ht {              /* the hash table */\n    int count;                 /*
          Number of entries with this hash */\n    HashElem *chain;           /* Pointer
          to first entry with this hash */\n  }"
      item_type: struct
      name: Hash
      pos:
        line_end: 8656
        line_start: 8648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: count
        type: int
      - name: '*chain'
        type: HashElem
      item_type: struct
      name: _ht
      pos:
        line_end: 8655
        line_start: 8652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*next'
        type: HashElem
      - name: '*data'
        type: void
      - name: '*pKey'
        type: char
      item_type: struct
      name: HashElem
      pos:
        line_end: 8668
        line_start: 8664
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: (*xFunc)(void *,int)
        type: int
      - name: '*pArg'
        type: void
      - name: nBusy
        type: int
      item_type: struct
      name: BusyHandler
      pos:
        line_end: 9261
        line_start: 9257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: opcode
        type: u8
      - name: p4type
        type: signed char
      - name: opflags
        type: u8
      - name: p5
        type: u8
      - name: p1
        type: int
      - name: p2
        type: int
      - name: p3
        type: int
      - name: p4
        type: "union p4union {     /* fourth parameter */\n    int i;                 /*
          Integer value if p4type==P4_INT32 */\n    void *p;               /* Generic
          pointer */\n    char *z;               /* Pointer to data for string (char
          array) types */\n    i64 *pI64;             /* Used when p4type is P4_INT64
          */\n    double *pReal;         /* Used when p4type is P4_REAL */\n    FuncDef
          *pFunc;        /* Used when p4type is P4_FUNCDEF */\n    sqlite3_context
          *pCtx; /* Used when p4type is P4_FUNCCTX */\n    CollSeq *pColl;        /*
          Used when p4type is P4_COLLSEQ */\n    Mem *pMem;             /* Used when
          p4type is P4_MEM */\n    VTable *pVtab;         /* Used when p4type is P4_VTAB
          */\n    KeyInfo *pKeyInfo;     /* Used when p4type is P4_KEYINFO */\n    int
          *ai;               /* Used when p4type is P4_INTARRAY */\n    SubProgram
          *pProgram;  /* Used when p4type is P4_SUBPROGRAM */\n    int (*xAdvance)(BtCursor
          *, int *);\n  }"
      item_type: struct
      name: VdbeOp
      pos:
        line_end: 9757
        line_start: 9723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*aOp'
        type: VdbeOp
      - name: nOp
        type: int
      - name: nMem
        type: int
      - name: nCsr
        type: int
      - name: nOnce
        type: int
      - name: '*token'
        type: void
      - name: '*pNext'
        type: SubProgram
      item_type: struct
      name: SubProgram
      pos:
        line_end: 9772
        line_start: 9764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: opcode
        type: u8
      - name: p1
        type: signed char
      - name: p2
        type: signed char
      - name: p3
        type: signed char
      item_type: struct
      name: VdbeOpList
      pos:
        line_end: 9783
        line_start: 9778
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pPage'
        type: sqlite3_pcache_page
      - name: '*pData'
        type: void
      - name: '*pExtra'
        type: void
      - name: '*pDirty'
        type: PgHdr
      - name: '*pPager'
        type: Pager
      - name: pgno
        type: Pgno
      - name: flags
        type: u16
      - name: nRef
        type: i16
      - name: '*pCache'
        type: PCache
      - name: '*pDirtyNext'
        type: PgHdr
      - name: '*pDirtyPrev'
        type: PgHdr
      item_type: struct
      name: PgHdr
      pos:
        line_end: 10448
        line_start: 10427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*pBt'
        type: Btree
      - name: safety_level
        type: u8
      - name: '*pSchema'
        type: Schema
      item_type: struct
      name: Db
      pos:
        line_end: 10938
        line_start: 10933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: schema_cookie
        type: int
      - name: iGeneration
        type: int
      - name: tblHash
        type: Hash
      - name: idxHash
        type: Hash
      - name: trigHash
        type: Hash
      - name: fkeyHash
        type: Hash
      - name: '*pSeqTab'
        type: Table
      - name: file_format
        type: u8
      - name: enc
        type: u8
      - name: schemaFlags
        type: u16
      - name: cache_size
        type: int
      item_type: struct
      name: Schema
      pos:
        line_end: 10969
        line_start: 10957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: sz
        type: u16
      - name: bEnabled
        type: u8
      - name: bMalloced
        type: u8
      - name: nOut
        type: int
      - name: mxOut
        type: int
      - name: anStat[3]
        type: int
      - name: '*pFree'
        type: LookasideSlot
      - name: '*pStart'
        type: void
      - name: '*pEnd'
        type: void
      item_type: struct
      name: Lookaside
      pos:
        line_end: 11030
        line_start: 11020
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: LookasideSlot
      item_type: struct
      name: LookasideSlot
      pos:
        line_end: 11033
        line_start: 11031
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*a[23]'
        type: FuncDef
      item_type: struct
      name: FuncDefHash
      pos:
        line_end: 11043
        line_start: 11041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: authLevel
        type: u8
      - name: nAuthPW
        type: int
      - name: '*zAuthPW'
        type: char
      - name: '*zAuthUser'
        type: char
      item_type: struct
      name: sqlite3_userauth
      pos:
        line_end: 11056
        line_start: 11051
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: '*pVdbe'
        type: struct Vdbe
      - name: '*pDfltColl'
        type: CollSeq
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*aDb'
        type: Db
      - name: nDb
        type: int
      - name: flags
        type: int
      - name: lastRowid
        type: i64
      - name: szMmap
        type: i64
      - name: openFlags
        type: unsigned int
      - name: errCode
        type: int
      - name: errMask
        type: int
      - name: dbOptFlags
        type: u16
      - name: enc
        type: u8
      - name: autoCommit
        type: u8
      - name: temp_store
        type: u8
      - name: mallocFailed
        type: u8
      - name: dfltLockMode
        type: u8
      - name: nextAutovac
        type: signed char
      - name: suppressErr
        type: u8
      - name: vtabOnConflict
        type: u8
      - name: isTransactionSavepoint
        type: u8
      - name: nextPagesize
        type: int
      - name: magic
        type: u32
      - name: nChange
        type: int
      - name: nTotalChange
        type: int
      - name: aLimit[SQLITE_N_LIMIT]
        type: int
      - name: nMaxSorterMmap
        type: int
      - name: init
        type: "struct sqlite3InitInfo {      /* Information used during initialization
          */\n    int newTnum;                /* Rootpage of table being initialized
          */\n    u8 iDb;                     /* Which db file is being initialized
          */\n    u8 busy;                    /* TRUE if currently initializing */\n
          \   u8 orphanTrigger;           /* Last statement is orphaned TEMP trigger
          */\n    u8 imposterTable;           /* Building an imposter table */\n  }"
      - name: nVdbeActive
        type: int
      - name: nVdbeRead
        type: int
      - name: nVdbeWrite
        type: int
      - name: nVdbeExec
        type: int
      - name: nVDestroy
        type: int
      - name: nExtension
        type: int
      - name: '**aExtension'
        type: void
      - name: (*xTrace)(void*,const char*)
        type: void
      - name: '*pTraceArg'
        type: void
      - name: (*xProfile)(void*,const char*,u64)
        type: void
      - name: '*pProfileArg'
        type: void
      - name: '*pCommitArg'
        type: void
      - name: (*xCommitCallback)(void*)
        type: int
      - name: '*pRollbackArg'
        type: void
      - name: (*xRollbackCallback)(void*)
        type: void
      - name: '*pUpdateArg'
        type: void
      - name: (*xUpdateCallback)(void*,int, const char*,const char*,sqlite_int64)
        type: void
      - name: (*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*)
        type: void
      - name: (*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*)
        type: void
      - name: '*pCollNeededArg'
        type: void
      - name: '*pErr'
        type: sqlite3_value
      - name: u1
        type: "union {\n    volatile int isInterrupted; /* True if sqlite3_interrupt
          has been called */\n    double notUsed1;            /* Spacer */\n  }"
      - name: lookaside
        type: Lookaside
      - name: aFunc
        type: FuncDefHash
      - name: aCollSeq
        type: Hash
      - name: busyHandler
        type: BusyHandler
      - name: aDbStatic[2]
        type: Db
      - name: '*pSavepoint'
        type: Savepoint
      - name: busyTimeout
        type: int
      - name: nSavepoint
        type: int
      - name: nStatement
        type: int
      - name: nDeferredCons
        type: i64
      - name: nDeferredImmCons
        type: i64
      - name: '*pnBytesFreed'
        type: int
      item_type: struct
      name: sqlite3
      pos:
        line_end: 11200
        line_start: 11087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: newTnum
        type: int
      - name: iDb
        type: u8
      - name: busy
        type: u8
      - name: orphanTrigger
        type: u8
      - name: imposterTable
        type: u8
      item_type: struct
      name: sqlite3InitInfo
      pos:
        line_end: 11122
        line_start: 11116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nArg
        type: i16
      - name: funcFlags
        type: u16
      - name: '*pUserData'
        type: void
      - name: '*pNext'
        type: FuncDef
      - name: (*xFunc)(sqlite3_context*,int,sqlite3_value**)
        type: void
      - name: (*xStep)(sqlite3_context*,int,sqlite3_value**)
        type: void
      - name: (*xFinalize)(sqlite3_context*)
        type: void
      - name: '*zName'
        type: char
      - name: '*pHash'
        type: FuncDef
      - name: '*pDestructor'
        type: FuncDestructor
      item_type: struct
      name: FuncDef
      pos:
        line_end: 11310
        line_start: 11299
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nRef
        type: int
      - name: (*xDestroy)(void *)
        type: void
      - name: '*pUserData'
        type: void
      item_type: struct
      name: FuncDestructor
      pos:
        line_end: 11330
        line_start: 11326
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: nDeferredCons
        type: i64
      - name: nDeferredImmCons
        type: i64
      - name: '*pNext'
        type: Savepoint
      item_type: struct
      name: Savepoint
      pos:
        line_end: 11411
        line_start: 11406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pModule'
        type: sqlite3_module
      - name: '*zName'
        type: char
      - name: '*pAux'
        type: void
      - name: (*xDestroy)(void *)
        type: void
      item_type: struct
      name: Module
      pos:
        line_end: 11432
        line_start: 11427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*pDflt'
        type: Expr
      - name: '*zDflt'
        type: char
      - name: '*zType'
        type: char
      - name: '*zColl'
        type: char
      - name: notNull
        type: u8
      - name: affinity
        type: char
      - name: szEst
        type: u8
      - name: colFlags
        type: u8
      item_type: struct
      name: Column
      pos:
        line_end: 11448
        line_start: 11438
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: enc
        type: u8
      - name: '*pUser'
        type: void
      - name: (*xCmp)(void*,int, const void*, int, const void*)
        type: int
      - name: (*xDel)(void*)
        type: void
      item_type: struct
      name: CollSeq
      pos:
        line_end: 11470
        line_start: 11464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*pMod'
        type: Module
      - name: '*pVtab'
        type: sqlite3_vtab
      - name: nRef
        type: int
      - name: bConstraint
        type: u8
      - name: iSavepoint
        type: int
      - name: '*pNext'
        type: VTable
      item_type: struct
      name: VTable
      pos:
        line_end: 11570
        line_start: 11562
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*aCol'
        type: Column
      - name: '*pIndex'
        type: Index
      - name: '*pSelect'
        type: Select
      - name: '*pFKey'
        type: FKey
      - name: '*zColAff'
        type: char
      - name: tnum
        type: int
      - name: iPKey
        type: i16
      - name: nCol
        type: i16
      - name: nRef
        type: u16
      - name: nRowLogEst
        type: LogEst
      - name: szTabRow
        type: LogEst
      - name: tabFlags
        type: u8
      - name: keyConf
        type: u8
      - name: '*pTrigger'
        type: Trigger
      - name: '*pSchema'
        type: Schema
      - name: '*pNextZombie'
        type: Table
      item_type: struct
      name: Table
      pos:
        line_end: 11608
        line_start: 11576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pFrom'
        type: Table
      - name: '*pNextFrom'
        type: FKey
      - name: '*zTo'
        type: char
      - name: '*pNextTo'
        type: FKey
      - name: '*pPrevTo'
        type: FKey
      - name: nCol
        type: int
      - name: isDeferred
        type: u8
      - name: aAction[2]
        type: u8
      - name: '*apTrigger[2]'
        type: Trigger
      - name: aCol[1]
        type: "struct sColMap {      /* Mapping of columns in pFrom to columns in
          zTo */\n    int iFrom;            /* Index of column in pFrom */\n    char
          *zCol;           /* Name of column in zTo.  If NULL use PRIMARY KEY */\n
          \ }"
      item_type: struct
      name: FKey
      pos:
        line_end: 11689
        line_start: 11674
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iFrom
        type: int
      - name: '*zCol'
        type: char
      item_type: struct
      name: sColMap
      pos:
        line_end: 11688
        line_start: 11685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nRef
        type: u32
      - name: enc
        type: u8
      - name: nField
        type: u16
      - name: nXField
        type: u16
      - name: '*db'
        type: sqlite3
      - name: '*aSortOrder'
        type: u8
      - name: '*aColl[1]'
        type: CollSeq
      item_type: struct
      name: KeyInfo
      pos:
        line_end: 11748
        line_start: 11740
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pKeyInfo'
        type: KeyInfo
      - name: nField
        type: u16
      - name: default_rc
        type: i8
      - name: errCode
        type: u8
      - name: '*aMem'
        type: Mem
      - name: r1
        type: int
      - name: r2
        type: int
      item_type: struct
      name: UnpackedRecord
      pos:
        line_end: 11775
        line_start: 11767
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*aiColumn'
        type: i16
      - name: '*aiRowLogEst'
        type: LogEst
      - name: '*pTable'
        type: Table
      - name: '*zColAff'
        type: char
      - name: '*pNext'
        type: Index
      - name: '*pSchema'
        type: Schema
      - name: '*aSortOrder'
        type: u8
      - name: '**azColl'
        type: char
      - name: '*pPartIdxWhere'
        type: Expr
      - name: tnum
        type: int
      - name: szIdxRow
        type: LogEst
      - name: nKeyCol
        type: u16
      - name: nColumn
        type: u16
      - name: onError
        type: u8
      - name: idxType
        type: unsigned
      - name: bUnordered
        type: unsigned
      - name: uniqNotNull
        type: unsigned
      - name: isResized
        type: unsigned
      - name: isCovering
        type: unsigned
      - name: noSkipScan
        type: unsigned
      item_type: struct
      name: Index
      pos:
        line_end: 11842
        line_start: 11812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*p'
        type: void
      - name: n
        type: int
      - name: '*anEq'
        type: tRowcnt
      - name: '*anLt'
        type: tRowcnt
      - name: '*anDLt'
        type: tRowcnt
      item_type: struct
      name: IndexSample
      pos:
        line_end: 11868
        line_start: 11862
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*z'
        type: char
      - name: n
        type: unsigned int
      item_type: struct
      name: Token
      pos:
        line_end: 11881
        line_start: 11878
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: directMode
        type: u8
      - name: useSortingIdx
        type: u8
      - name: sortingIdx
        type: int
      - name: sortingIdxPTab
        type: int
      - name: nSortingColumn
        type: int
      - name: mnReg
        type: int
      - name: '*pGroupBy'
        type: ExprList
      - name: '*aCol'
        type: "struct AggInfo_col {    /* For each column used in source tables */\n
          \   Table *pTab;             /* Source table */\n    int iTable;              /*
          Cursor number of the source table */\n    int iColumn;             /* Column
          number within the source table */\n    int iSorterColumn;       /* Column
          number in the sorting index */\n    int iMem;                /* Memory location
          that acts as accumulator */\n    Expr *pExpr;             /* The original
          expression */\n  }"
      - name: nColumn
        type: int
      - name: nAccumulator
        type: int
      - name: '*aFunc'
        type: "struct AggInfo_func {   /* For each aggregate function */\n    Expr
          *pExpr;             /* Expression encoding the function */\n    FuncDef
          *pFunc;          /* The aggregate function implementation */\n    int iMem;
          \               /* Memory location that acts as accumulator */\n    int
          iDistinct;           /* Ephemeral table used to enforce DISTINCT */\n  }"
      - name: nFunc
        type: int
      item_type: struct
      name: AggInfo
      pos:
        line_end: 11925
        line_start: 11896
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTab'
        type: Table
      - name: iTable
        type: int
      - name: iColumn
        type: int
      - name: iSorterColumn
        type: int
      - name: iMem
        type: int
      - name: '*pExpr'
        type: Expr
      item_type: struct
      name: AggInfo_col
      pos:
        line_end: 11913
        line_start: 11906
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pExpr'
        type: Expr
      - name: '*pFunc'
        type: FuncDef
      - name: iMem
        type: int
      - name: iDistinct
        type: int
      item_type: struct
      name: AggInfo_func
      pos:
        line_end: 11923
        line_start: 11918
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: op
        type: u8
      - name: affinity
        type: char
      - name: flags
        type: u32
      - name: u
        type: "union {\n    char *zToken;          /* Token value. Zero terminated
          and dequoted */\n    int iValue;            /* Non-negative integer value
          if EP_IntValue */\n  }"
      - name: '*pLeft'
        type: Expr
      - name: '*pRight'
        type: Expr
      - name: x
        type: "union {\n    ExprList *pList;     /* op = IN, EXISTS, SELECT, CASE,
          FUNCTION, BETWEEN */\n    Select *pSelect;     /* EP_xIsSelect and op =
          IN, EXISTS, SELECT */\n  }"
      - name: iTable
        type: int
      - name: iColumn
        type: ynVar
      - name: iAgg
        type: i16
      - name: iRightJoinTable
        type: i16
      - name: op2
        type: u8
      - name: '*pAggInfo'
        type: AggInfo
      - name: '*pTab'
        type: Table
      item_type: struct
      name: Expr
      pos:
        line_end: 12048
        line_start: 12006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nExpr
        type: int
      - name: '*a'
        type: "struct ExprList_item { /* For each expression in the list */\n    Expr
          *pExpr;            /* The list of expressions */\n    char *zName;            /*
          Token associated with this expression */\n    char *zSpan;            /*
          Original text of the expression */\n    u8 sortOrder;           /* 1 for
          DESC or 0 for ASC */\n    unsigned done :1;       /* A flag to indicate
          when processing is finished */\n    unsigned bSpanIsTab :1; /* zSpan holds
          DB.TABLE.COLUMN */\n    unsigned reusable :1;   /* Constant expression is
          reusable */\n    union {\n      struct {\n        u16 iOrderByCol;      /*
          For ORDER BY, column number in result set */\n        u16 iAlias;           /*
          Index into Parse.aAlias[] for zName */\n      } x;\n      int iConstExprReg;
          \     /* Register in which Expr value is cached */\n    } u;\n  }"
      item_type: struct
      name: ExprList
      pos:
        line_end: 12149
        line_start: 12131
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pExpr'
        type: Expr
      - name: '*zName'
        type: char
      - name: '*zSpan'
        type: char
      - name: sortOrder
        type: u8
      - name: done
        type: unsigned
      - name: bSpanIsTab
        type: unsigned
      - name: reusable
        type: unsigned
      - name: u
        type: "union {\n      struct {\n        u16 iOrderByCol;      /* For ORDER
          BY, column number in result set */\n        u16 iAlias;           /* Index
          into Parse.aAlias[] for zName */\n      } x;\n      int iConstExprReg;      /*
          Register in which Expr value is cached */\n    }"
      item_type: struct
      name: ExprList_item
      pos:
        line_end: 12148
        line_start: 12133
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pExpr'
        type: Expr
      - name: '*zStart'
        type: char
      - name: '*zEnd'
        type: char
      item_type: struct
      name: ExprSpan
      pos:
        line_end: 12160
        line_start: 12156
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*a'
        type: "struct IdList_item {\n    char *zName;      /* Name of the identifier
          */\n    int idx;          /* Index in some Table.aCol[] of a column named
          zName */\n  }"
      - name: nId
        type: int
      item_type: struct
      name: IdList
      pos:
        line_end: 12183
        line_start: 12177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: idx
        type: int
      item_type: struct
      name: IdList_item
      pos:
        line_end: 12181
        line_start: 12178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nSrc
        type: int
      - name: nAlloc
        type: u32
      - name: a[1]
        type: "struct SrcList_item {\n    Schema *pSchema;  /* Schema to which this
          item is fixed */\n    char *zDatabase;  /* Name of database holding this
          table */\n    char *zName;      /* Name of the table */\n    char *zAlias;
          \    /* The \"B\" part of a \"A AS B\" phrase.  zName is the \"A\" */\n
          \   Table *pTab;      /* An SQL table corresponding to zName */\n    Select
          *pSelect;  /* A SELECT statement used in place of a table name */\n    int
          addrFillSub;  /* Address of subroutine to manifest a subquery */\n    int
          regReturn;    /* Register holding return address of addrFillSub */\n    int
          regResult;    /* Registers holding results of a co-routine */\n    u8 jointype;
          \     /* Type of join between this able and the previous */\n    unsigned
          notIndexed :1;    /* True if there is a NOT INDEXED clause */\n    unsigned
          isCorrelated :1;  /* True if sub-query is correlated */\n    unsigned viaCoroutine
          :1;  /* Implemented as a co-routine */\n    unsigned isRecursive :1;   /*
          True for recursive reference in WITH */\n#ifndef SQLITE_OMIT_EXPLAIN\n    u8
          iSelectId;     /* If pSelect!=0, the id of the sub-select in EQP */\n#endif\n
          \   int iCursor;      /* The VDBE cursor number used to access this table
          */\n    Expr *pOn;        /* The ON clause of a join */\n    IdList *pUsing;
          \  /* The USING clause of a join */\n    Bitmask colUsed;  /* Bit N (1<<N)
          set if column N of pTab is used */\n    char *zIndexedBy; /* Identifier
          from \"INDEXED BY <zIndex>\" clause */\n    Index *pIndex;    /* Index structure
          corresponding to zIndex, if any */\n  }"
      item_type: struct
      name: SrcList
      pos:
        line_end: 12252
        line_start: 12224
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pSchema'
        type: Schema
      - name: '*zDatabase'
        type: char
      - name: '*zName'
        type: char
      - name: '*zAlias'
        type: char
      - name: '*pTab'
        type: Table
      - name: '*pSelect'
        type: Select
      - name: addrFillSub
        type: int
      - name: regReturn
        type: int
      - name: regResult
        type: int
      - name: jointype
        type: u8
      - name: notIndexed
        type: unsigned
      - name: isCorrelated
        type: unsigned
      - name: viaCoroutine
        type: unsigned
      - name: isRecursive
        type: unsigned
      - name: iCursor
        type: int
      - name: '*pOn'
        type: Expr
      - name: '*pUsing'
        type: IdList
      - name: colUsed
        type: Bitmask
      - name: '*zIndexedBy'
        type: char
      - name: '*pIndex'
        type: Index
      item_type: struct
      name: SrcList_item
      pos:
        line_end: 12251
        line_start: 12227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParse'
        type: Parse
      - name: '*pSrcList'
        type: SrcList
      - name: '*pEList'
        type: ExprList
      - name: '*pAggInfo'
        type: AggInfo
      - name: '*pNext'
        type: NameContext
      - name: nRef
        type: int
      - name: nErr
        type: int
      - name: ncFlags
        type: u16
      item_type: struct
      name: NameContext
      pos:
        line_end: 12322
        line_start: 12313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pEList'
        type: ExprList
      - name: op
        type: u8
      - name: selFlags
        type: u16
      - name: iLimit
        type: int
      - name: addrOpenEphm[2]
        type: int
      - name: nSelectRow
        type: u64
      - name: '*pSrc'
        type: SrcList
      - name: '*pWhere'
        type: Expr
      - name: '*pGroupBy'
        type: ExprList
      - name: '*pHaving'
        type: Expr
      - name: '*pOrderBy'
        type: ExprList
      - name: '*pPrior'
        type: Select
      - name: '*pNext'
        type: Select
      - name: '*pLimit'
        type: Expr
      - name: '*pOffset'
        type: Expr
      - name: '*pWith'
        type: With
      item_type: struct
      name: Select
      pos:
        line_end: 12378
        line_start: 12358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eDest
        type: u8
      - name: affSdst
        type: char
      - name: iSDParm
        type: int
      - name: iSdst
        type: int
      - name: nSdst
        type: int
      - name: '*pOrderBy'
        type: ExprList
      item_type: struct
      name: SelectDest
      pos:
        line_end: 12495
        line_start: 12488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: AutoincInfo
      - name: '*pTab'
        type: Table
      - name: iDb
        type: int
      - name: regCtr
        type: int
      item_type: struct
      name: AutoincInfo
      pos:
        line_end: 12511
        line_start: 12506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTrigger'
        type: Trigger
      - name: '*pNext'
        type: TriggerPrg
      - name: '*pProgram'
        type: SubProgram
      - name: orconf
        type: int
      - name: aColmask[2]
        type: u32
      item_type: struct
      name: TriggerPrg
      pos:
        line_end: 12544
        line_start: 12538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*zErrMsg'
        type: char
      - name: '*pVdbe'
        type: Vdbe
      - name: rc
        type: int
      - name: colNamesSet
        type: u8
      - name: checkSchema
        type: u8
      - name: nested
        type: u8
      - name: nTempReg
        type: u8
      - name: isMultiWrite
        type: u8
      - name: mayAbort
        type: u8
      - name: hasCompound
        type: u8
      - name: okConstFactor
        type: u8
      - name: aTempReg[8]
        type: int
      - name: nRangeReg
        type: int
      - name: iRangeReg
        type: int
      - name: nErr
        type: int
      - name: nTab
        type: int
      - name: nMem
        type: int
      - name: nSet
        type: int
      - name: nOnce
        type: int
      - name: nOpAlloc
        type: int
      - name: iFixedOp
        type: int
      - name: ckBase
        type: int
      - name: iPartIdxTab
        type: int
      - name: iCacheLevel
        type: int
      - name: iCacheCnt
        type: int
      - name: nLabel
        type: int
      - name: '*aLabel'
        type: int
      - name: aColCache[SQLITE_N_COLCACHE]
        type: "struct yColCache {\n    int iTable;           /* Table cursor number
          */\n    i16 iColumn;          /* Table column number */\n    u8 tempReg;
          \          /* iReg is a temp register that needs to be freed */\n    int
          iLevel;           /* Nesting level */\n    int iReg;             /* Reg
          with value of this column. 0 means none. */\n    int lru;              /*
          Least recently used entry has the smallest value */\n  }"
      - name: '*pConstExpr'
        type: ExprList
      - name: constraintName
        type: Token
      - name: writeMask
        type: yDbMask
      - name: cookieMask
        type: yDbMask
      - name: cookieValue[SQLITE_MAX_ATTACHED+2]
        type: int
      - name: regRowid
        type: int
      - name: regRoot
        type: int
      - name: nMaxArg
        type: int
      - name: '*pAinc'
        type: AutoincInfo
      - name: '*pToplevel'
        type: Parse
      - name: '*pTriggerTab'
        type: Table
      - name: addrCrTab
        type: int
      - name: nQueryLoop
        type: u32
      - name: oldmask
        type: u32
      - name: newmask
        type: u32
      - name: eTriggerOp
        type: u8
      - name: eOrconf
        type: u8
      - name: disableTriggers
        type: u8
      - name: nVar
        type: int
      - name: nzVar
        type: int
      - name: iPkSortOrder
        type: u8
      - name: bFreeWith
        type: u8
      - name: explain
        type: u8
      - name: nAlias
        type: int
      - name: nHeight
        type: int
      - name: '**azVar'
        type: char
      - name: '*pReprepare'
        type: Vdbe
      - name: '*zTail'
        type: char
      - name: '*pNewTable'
        type: Table
      - name: '*pNewTrigger'
        type: Trigger
      - name: '*zAuthContext'
        type: char
      - name: sNameToken
        type: Token
      - name: sLastToken
        type: Token
      - name: '*pZombieTab'
        type: Table
      - name: '*pTriggerPrg'
        type: TriggerPrg
      - name: '*pWith'
        type: With
      item_type: struct
      name: Parse
      pos:
        line_end: 12684
        line_start: 12581
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iTable
        type: int
      - name: iColumn
        type: i16
      - name: tempReg
        type: u8
      - name: iLevel
        type: int
      - name: iReg
        type: int
      - name: lru
        type: int
      item_type: struct
      name: yColCache
      pos:
        line_end: 12617
        line_start: 12610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zAuthContext'
        type: char
      - name: '*pParse'
        type: Parse
      item_type: struct
      name: AuthContext
      pos:
        line_end: 12702
        line_start: 12699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*table'
        type: char
      - name: op
        type: u8
      - name: tr_tm
        type: u8
      - name: '*pWhen'
        type: Expr
      - name: '*pColumns'
        type: IdList
      - name: '*pSchema'
        type: Schema
      - name: '*pTabSchema'
        type: Schema
      - name: '*step_list'
        type: TriggerStep
      - name: '*pNext'
        type: Trigger
      item_type: struct
      name: Trigger
      pos:
        line_end: 12747
        line_start: 12735
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: op
        type: u8
      - name: orconf
        type: u8
      - name: '*pTrig'
        type: Trigger
      - name: '*pSelect'
        type: Select
      - name: '*zTarget'
        type: char
      - name: '*pWhere'
        type: Expr
      - name: '*pExprList'
        type: ExprList
      - name: '*pIdList'
        type: IdList
      - name: '*pNext'
        type: TriggerStep
      - name: '*pLast'
        type: TriggerStep
      item_type: struct
      name: TriggerStep
      pos:
        line_end: 12808
        line_start: 12797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParse'
        type: Parse
      - name: '*pSchema'
        type: Schema
      - name: bVarOnly
        type: int
      - name: '*zDb'
        type: char
      - name: '*zType'
        type: char
      - name: '*pName'
        type: Token
      item_type: struct
      name: DbFixer
      pos:
        line_end: 12823
        line_start: 12816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*zBase'
        type: char
      - name: '*zText'
        type: char
      - name: nChar
        type: int
      - name: nAlloc
        type: int
      - name: mxAlloc
        type: int
      - name: accError
        type: u8
      item_type: struct
      name: StrAccum
      pos:
        line_end: 12837
        line_start: 12829
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '**pzErrMsg'
        type: char
      - name: iDb
        type: int
      - name: rc
        type: int
      item_type: struct
      name: InitData
      pos:
        line_end: 12850
        line_start: 12845
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: bMemstat
        type: int
      - name: bCoreMutex
        type: int
      - name: bFullMutex
        type: int
      - name: bOpenUri
        type: int
      - name: bUseCis
        type: int
      - name: mxStrlen
        type: int
      - name: neverCorrupt
        type: int
      - name: szLookaside
        type: int
      - name: nLookaside
        type: int
      - name: m
        type: sqlite3_mem_methods
      - name: mutex
        type: sqlite3_mutex_methods
      - name: pcache2
        type: sqlite3_pcache_methods2
      - name: '*pHeap'
        type: void
      - name: nHeap
        type: int
      - name: mnReq
        type: int
      - name: szMmap
        type: sqlite3_int64
      - name: mxMmap
        type: sqlite3_int64
      - name: '*pScratch'
        type: void
      - name: szScratch
        type: int
      - name: nScratch
        type: int
      - name: '*pPage'
        type: void
      - name: szPage
        type: int
      - name: nPage
        type: int
      - name: mxParserStack
        type: int
      - name: sharedCacheEnabled
        type: int
      - name: szPma
        type: u32
      - name: isInit
        type: int
      - name: inProgress
        type: int
      - name: isMutexInit
        type: int
      - name: isMallocInit
        type: int
      - name: isPCacheInit
        type: int
      - name: nRefInitMutex
        type: int
      - name: '*pInitMutex'
        type: sqlite3_mutex
      - name: (*xLog)(void*,int,const char*)
        type: void
      - name: '*pLogArg'
        type: void
      - name: bLocaltimeFault
        type: int
      item_type: struct
      name: Sqlite3Config
      pos:
        line_end: 12910
        line_start: 12857
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: (*xExprCallback)(Walker*, Expr*)
        type: int
      - name: (*xSelectCallback)(Walker*,Select*)
        type: int
      - name: (*xSelectCallback2)(Walker*,Select*)
        type: void
      - name: '*pParse'
        type: Parse
      - name: walkerDepth
        type: int
      - name: eCode
        type: u8
      - name: u
        type: "union {                                   /* Extra data for callback
          */\n    NameContext *pNC;                          /* Naming context */\n
          \   int n;                                     /* A counter */\n    int
          iCur;                                  /* A cursor number */\n    SrcList
          *pSrcList;                         /* FROM clause */\n    struct SrcCount
          *pSrcCount;                /* Counting column references */\n  }"
      item_type: struct
      name: Walker
      pos:
        line_end: 12947
        line_start: 12933
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nCte
        type: int
      - name: '*pOuter'
        type: With
      - name: a[1]
        type: "struct Cte {                    /* For each CTE in the WITH clause....
          */\n    char *zName;                    /* Name of this CTE */\n    ExprList
          *pCols;                /* List of explicit column names, or NULL */\n    Select
          *pSelect;                /* The definition of this CTE */\n    const char
          *zErr;               /* Error message for circular references */\n  }"
      item_type: struct
      name: With
      pos:
        line_end: 12977
        line_start: 12968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*pCols'
        type: ExprList
      - name: '*pSelect'
        type: Select
      - name: '*zErr'
        type: char
      item_type: struct
      name: Cte
      pos:
        line_end: 12976
        line_start: 12971
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iLevel
        type: int
      - name: bLine[100]
        type: u8
      item_type: struct
      name: TreeView
      pos:
        line_end: 12987
        line_start: 12984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nArg
        type: int
      - name: nUsed
        type: int
      - name: '**apArg'
        type: sqlite3_value
      item_type: struct
      name: PrintfArguments
      pos:
        line_end: 13147
        line_start: 13143
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pCursor'
        type: BtCursor
      - name: '*pBt'
        type: Btree
      - name: '*pKeyInfo'
        type: KeyInfo
      - name: seekResult
        type: int
      - name: pseudoTableReg
        type: int
      - name: nField
        type: i16
      - name: nHdrParsed
        type: u16
      - name: iDb
        type: i8
      - name: nullRow
        type: u8
      - name: deferredMoveto
        type: u8
      - name: isEphemeral
        type: Bool
      - name: useRandomRowid
        type: Bool
      - name: isTable
        type: Bool
      - name: isOrdered
        type: Bool
      - name: pgnoRoot
        type: Pgno
      - name: '*pVtabCursor'
        type: sqlite3_vtab_cursor
      - name: seqCount
        type: i64
      - name: movetoTarget
        type: i64
      - name: '*pSorter'
        type: VdbeSorter
      - name: cacheStatus
        type: u32
      - name: payloadSize
        type: u32
      - name: szRow
        type: u32
      - name: iHdrOffset
        type: u32
      - name: '*aRow'
        type: u8
      - name: '*aOffset'
        type: u32
      - name: aType[1]
        type: u32
      item_type: struct
      name: VdbeCursor
      pos:
        line_end: 14705
        line_start: 14659
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*v'
        type: Vdbe
      - name: '*pParent'
        type: VdbeFrame
      - name: '*aOp'
        type: Op
      - name: '*anExec'
        type: i64
      - name: '*aMem'
        type: Mem
      - name: '*aOnceFlag'
        type: u8
      - name: '**apCsr'
        type: VdbeCursor
      - name: '*token'
        type: void
      - name: lastRowid
        type: i64
      - name: nCursor
        type: int
      - name: pc
        type: int
      - name: nOp
        type: int
      - name: nMem
        type: int
      - name: nOnceFlag
        type: int
      - name: nChildMem
        type: int
      - name: nChildCsr
        type: int
      - name: nChange
        type: int
      - name: nDbChange
        type: int
      item_type: struct
      name: VdbeFrame
      pos:
        line_end: 14749
        line_start: 14730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: u
        type: "union MemValue {\n    double r;           /* Real value used when MEM_Real
          is set in flags */\n    i64 i;              /* Integer value used when MEM_Int
          is set in flags */\n    int nZero;          /* Used when bit MEM_Zero is
          set in flags */\n    FuncDef *pDef;      /* Used only when flags==MEM_Agg
          */\n    RowSet *pRowSet;    /* Used only when flags==MEM_RowSet */\n    VdbeFrame
          *pFrame;  /* Used when flags==MEM_Frame */\n  }"
      - name: flags
        type: u16
      - name: enc
        type: u8
      - name: n
        type: int
      - name: '*z'
        type: char
      - name: '*zMalloc'
        type: char
      - name: szMalloc
        type: int
      - name: uTemp
        type: u32
      - name: '*db'
        type: sqlite3
      - name: (*xDel)(void*)
        type: void
      item_type: struct
      name: Mem
      pos:
        line_end: 14786
        line_start: 14763
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iOp
        type: int
      - name: iArg
        type: int
      - name: '*pAux'
        type: void
      - name: (*xDelete)(void *)
        type: void
      - name: '*pNext'
        type: AuxData
      item_type: struct
      name: AuxData
      pos:
        line_end: 14862
        line_start: 14856
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pOut'
        type: Mem
      - name: '*pFunc'
        type: FuncDef
      - name: '*pMem'
        type: Mem
      - name: '*pVdbe'
        type: Vdbe
      - name: iOp
        type: int
      - name: isError
        type: int
      - name: skipFlag
        type: u8
      - name: fErrorOrAux
        type: u8
      - name: argc
        type: u8
      - name: '*argv[1]'
        type: sqlite3_value
      item_type: struct
      name: sqlite3_context
      pos:
        line_end: 14888
        line_start: 14877
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVdbe'
        type: Vdbe
      - name: str
        type: StrAccum
      - name: nIndent
        type: int
      - name: aIndent[100]
        type: u16
      - name: zBase[100]
        type: char
      item_type: struct
      name: Explain
      pos:
        line_end: 14900
        line_start: 14894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: addrExplain
        type: int
      - name: addrLoop
        type: int
      - name: addrVisit
        type: int
      - name: iSelectID
        type: int
      - name: nEst
        type: LogEst
      - name: '*zName'
        type: char
      item_type: struct
      name: ScanStatus
      pos:
        line_end: 14915
        line_start: 14908
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*aOp'
        type: Op
      - name: '*aMem'
        type: Mem
      - name: '**apArg'
        type: Mem
      - name: '*aColName'
        type: Mem
      - name: '*pResultSet'
        type: Mem
      - name: '*pParse'
        type: Parse
      - name: nMem
        type: int
      - name: nOp
        type: int
      - name: nCursor
        type: int
      - name: magic
        type: u32
      - name: '*zErrMsg'
        type: char
      - name: '*pPrev'
        type: Vdbe
      - name: '**apCsr'
        type: VdbeCursor
      - name: '*aVar'
        type: Mem
      - name: '**azVar'
        type: char
      - name: nVar
        type: ynVar
      - name: nzVar
        type: ynVar
      - name: cacheCtr
        type: u32
      - name: pc
        type: int
      - name: rc
        type: int
      - name: nResColumn
        type: u16
      - name: errorAction
        type: u8
      - name: minWriteFileFormat
        type: u8
      - name: explain
        type: bft
      - name: changeCntOn
        type: bft
      - name: expired
        type: bft
      - name: runOnlyOnce
        type: bft
      - name: usesStmtJournal
        type: bft
      - name: readOnly
        type: bft
      - name: bIsReader
        type: bft
      - name: isPrepareV2
        type: bft
      - name: doingRerun
        type: bft
      - name: nChange
        type: int
      - name: btreeMask
        type: yDbMask
      - name: lockMask
        type: yDbMask
      - name: iStatement
        type: int
      - name: aCounter[5]
        type: u32
      - name: iCurrentTime
        type: i64
      - name: nFkConstraint
        type: i64
      - name: nStmtDefCons
        type: i64
      - name: nStmtDefImmCons
        type: i64
      - name: '*zSql'
        type: char
      - name: '*pFree'
        type: void
      - name: '*pFrame'
        type: VdbeFrame
      - name: '*pDelFrame'
        type: VdbeFrame
      - name: nFrame
        type: int
      - name: expmask
        type: u32
      - name: '*pProgram'
        type: SubProgram
      - name: nOnceFlag
        type: int
      - name: '*aOnceFlag'
        type: u8
      - name: '*pAuxData'
        type: AuxData
      item_type: struct
      name: Vdbe
      pos:
        line_end: 14988
        line_start: 14924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iJD
        type: sqlite3_int64
      - name: Y
        type: int
      - name: h
        type: int
      - name: tz
        type: int
      - name: s
        type: double
      - name: validYMD
        type: char
      - name: validHMS
        type: char
      - name: validJD
        type: char
      - name: validTZ
        type: char
      item_type: struct
      name: DateTime
      pos:
        line_end: 15500
        line_start: 15490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iSize
        type: i64
      - name: '*pNext'
        type: struct MemBlockHdr
      - name: nBacktrace
        type: char
      - name: nBacktraceSlots
        type: char
      - name: nTitle
        type: u8
      - name: eType
        type: u8
      - name: iForeGuard
        type: int
      item_type: struct
      name: MemBlockHdr
      pos:
        line_end: 17484
        line_start: 17476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*pFirst'
        type: struct MemBlockHdr
      - name: '*pLast'
        type: struct MemBlockHdr
      - name: nBacktrace
        type: int
      - name: (*xBacktrace)(int, int, void **)
        type: void
      - name: nTitle
        type: int
      - name: zTitle[100]
        type: char
      - name: disallow
        type: int
      - name: nAlloc[NCSIZE]
        type: int
      - name: nCurrent[NCSIZE]
        type: int
      - name: mxCurrent[NCSIZE]
        type: int
      item_type: struct
      name: mem
      pos:
        line_end: 17544
        line_start: 17503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: u
        type: "union {\n    struct {\n      u32 prevSize;   /* Size of previous chunk
          in Mem3Block elements */\n      u32 size4x;     /* 4x the size of current
          chunk in Mem3Block elements */\n    } hdr;\n    struct {\n      u32 next;
          \      /* Index in mem3.aPool[] of next free chunk */\n      u32 prev;       /*
          Index in mem3.aPool[] of previous free chunk */\n    } list;\n  }"
      item_type: struct
      name: Mem3Block
      pos:
        line_end: 18044
        line_start: 18033
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: next
        type: int
      - name: prev
        type: int
      item_type: struct
      name: Mem5Link
      pos:
        line_end: 18713
        line_start: 18710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: id
        type: int
      - name: cnt
        type: int
      item_type: struct
      name: sqlite3_debug_mutex
      pos:
        line_end: 19466
        line_start: 19463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: sqlite3_mutex
      pos:
        line_end: 19652
        line_start: 19642
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: mutex
        type: CRITICAL_SECTION
      - name: id
        type: int
      item_type: struct
      name: sqlite3_mutex
      pos:
        line_end: 20311
        line_start: 20303
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: struct ScratchFreeslot
      item_type: struct
      name: ScratchFreeslot
      pos:
        line_end: 20692
        line_start: 20690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: fmttype
        type: char
      - name: base
        type: etByte
      - name: flags
        type: etByte
      - name: type
        type: etByte
      - name: charset
        type: etByte
      - name: prefix
        type: etByte
      item_type: struct
      name: et_info
      pos:
        line_end: 21522
        line_start: 21515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: tid
        type: pthread_t
      - name: done
        type: int
      - name: '*pOut'
        type: void
      - name: '*(*xTask)(void*)'
        type: void
      - name: '*pIn'
        type: void
      item_type: struct
      name: SQLiteThread
      pos:
        line_end: 23160
        line_start: 23154
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*tid'
        type: void
      - name: id
        type: unsigned
      - name: '*(*xTask)(void*)'
        type: void
      - name: '*pIn'
        type: void
      - name: '*pResult'
        type: void
      item_type: struct
      name: SQLiteThread
      pos:
        line_end: 23228
        line_start: 23222
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*(*xTask)(void*)'
        type: void
      - name: '*pIn'
        type: void
      - name: '*pResult'
        type: void
      item_type: struct
      name: SQLiteThread
      pos:
        line_end: 23326
        line_start: 23322
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: fd
        type: int
      - name: flags
        type: int
      - name: '*pNext'
        type: UnixUnusedFd
      item_type: struct
      name: UnixUnusedFd
      pos:
        line_end: 25938
        line_start: 25934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pMethod'
        type: sqlite3_io_methods
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: '*pInode'
        type: unixInodeInfo
      - name: h
        type: int
      - name: eFileLock
        type: unsigned char
      - name: ctrlFlags
        type: unsigned short int
      - name: lastErrno
        type: int
      - name: '*lockingContext'
        type: void
      - name: '*pUnused'
        type: UnixUnusedFd
      - name: '*zPath'
        type: char
      - name: '*pShm'
        type: unixShm
      - name: szChunk
        type: int
      item_type: struct
      name: unixFile
      pos:
        line_end: 25998
        line_start: 25945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: pCurrent
        type: sqlite3_syscall_ptr
      - name: pDefault
        type: sqlite3_syscall_ptr
      item_type: struct
      name: unix_syscall
      pos:
        line_end: 26312
        line_start: 26308
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: struct vxworksFileId
      - name: nRef
        type: int
      - name: nName
        type: int
      - name: '*zCanonicalName'
        type: char
      item_type: struct
      name: vxworksFileId
      pos:
        line_end: 26802
        line_start: 26797
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: dev
        type: dev_t
      item_type: struct
      name: unixFileId
      pos:
        line_end: 27019
        line_start: 27012
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: fileId
        type: struct unixFileId
      - name: nShared
        type: int
      - name: eFileLock
        type: unsigned char
      - name: bProcessLock
        type: unsigned char
      - name: nRef
        type: int
      - name: '*pShmNode'
        type: unixShmNode
      - name: nLock
        type: int
      - name: '*pUnused'
        type: UnixUnusedFd
      - name: '*pNext'
        type: unixInodeInfo
      - name: '*pPrev'
        type: unixInodeInfo
      item_type: struct
      name: unixInodeInfo
      pos:
        line_end: 27048
        line_start: 27030
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: reserved
        type: int
      - name: '*dbPath'
        type: char
      item_type: struct
      name: afpLockingContext
      pos:
        line_end: 28598
        line_start: 28595
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: offset
        type: unsigned long long
      - name: length
        type: unsigned long long
      - name: retRangeStart
        type: unsigned long long
      - name: unLockFlag
        type: unsigned char
      - name: startEndFlag
        type: unsigned char
      - name: fd
        type: int
      item_type: struct
      name: ByteRangeLockPB2
      pos:
        line_end: 28608
        line_start: 28600
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pInode'
        type: unixInodeInfo
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*zFilename'
        type: char
      - name: h
        type: int
      - name: szRegion
        type: int
      - name: nRegion
        type: u16
      - name: isReadonly
        type: u8
      - name: '**apRegion'
        type: char
      - name: nRef
        type: int
      - name: '*pFirst'
        type: unixShm
      item_type: struct
      name: unixShmNode
      pos:
        line_end: 30030
        line_start: 30014
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pShmNode'
        type: unixShmNode
      - name: '*pNext'
        type: unixShm
      - name: hasMutex
        type: u8
      - name: id
        type: u8
      - name: sharedMask
        type: u16
      - name: exclMask
        type: u16
      item_type: struct
      name: unixShm
      pos:
        line_end: 30052
        line_start: 30045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zFilesystem'
        type: char
      - name: '*pMethods'
        type: sqlite3_io_methods
      item_type: struct
      name: Mapping
      pos:
        line_end: 31105
        line_start: 31102
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*conchFile'
        type: unixFile
      - name: '*conchFilePath'
        type: char
      - name: '*lockProxy'
        type: unixFile
      - name: '*lockProxyPath'
        type: char
      - name: '*dbPath'
        type: char
      - name: conchHeld
        type: int
      - name: nFails
        type: int
      - name: '*oldLockingContext'
        type: void
      - name: '*pOldMethod'
        type: sqlite3_io_methods
      item_type: struct
      name: proxyLockingContext
      pos:
        line_end: 32397
        line_start: 32387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nReaders
        type: int
      - name: bPending
        type: BOOL
      - name: bReserved
        type: BOOL
      - name: bExclusive
        type: BOOL
      item_type: struct
      name: winceLock
      pos:
        line_end: 33962
        line_start: 33957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pMethod'
        type: sqlite3_io_methods
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: h
        type: HANDLE
      - name: locktype
        type: u8
      - name: sharedLockByte
        type: short
      - name: ctrlFlags
        type: u8
      - name: lastErrno
        type: DWORD
      - name: '*zPath'
        type: char
      - name: szChunk
        type: int
      item_type: struct
      name: winFile
      pos:
        line_end: 33998
        line_start: 33970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: hHeap
        type: HANDLE
      - name: bOwned
        type: BOOL
      item_type: struct
      name: winMemData
      pos:
        line_end: 34092
        line_start: 34083
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: pCurrent
        type: sqlite3_syscall_ptr
      - name: pDefault
        type: sqlite3_syscall_ptr
      item_type: struct
      name: win_syscall
      pos:
        line_end: 34172
        line_start: 34168
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*zFilename'
        type: char
      - name: hFile
        type: winFile
      - name: szRegion
        type: int
      - name: nRegion
        type: int
      - name: '*aRegion'
        type: "struct ShmRegion {\n    HANDLE hMap;             /* File handle from
          CreateFileMapping */\n    void *pMap;\n  }"
      - name: lastErrno
        type: DWORD
      - name: nRef
        type: int
      - name: '*pFirst'
        type: winShm
      - name: '*pNext'
        type: winShmNode
      item_type: struct
      name: winShmNode
      pos:
        line_end: 37170
        line_start: 37151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: hMap
        type: HANDLE
      - name: '*pMap'
        type: void
      item_type: struct
      name: ShmRegion
      pos:
        line_end: 37161
        line_start: 37158
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pShmNode'
        type: winShmNode
      - name: '*pNext'
        type: winShm
      - name: hasMutex
        type: u8
      - name: sharedMask
        type: u16
      - name: exclMask
        type: u16
      item_type: struct
      name: winShm
      pos:
        line_end: 37201
        line_start: 37192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iSize
        type: u32
      - name: nSet
        type: u32
      - name: iDivisor
        type: u32
      - name: u
        type: "union {\n    BITVEC_TELEM aBitmap[BITVEC_NELEM];    /* Bitmap representation
          */\n    u32 aHash[BITVEC_NINT];      /* Hash table representation */\n    Bitvec
          *apSub[BITVEC_NPTR];  /* Recursive representation */\n  }"
      item_type: struct
      name: Bitvec
      pos:
        line_end: 39474
        line_start: 39460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pDirty'
        type: PgHdr
      - name: '*pSynced'
        type: PgHdr
      - name: nRef
        type: int
      - name: szCache
        type: int
      - name: szPage
        type: int
      - name: szExtra
        type: int
      - name: bPurgeable
        type: u8
      - name: eCreate
        type: u8
      - name: (*xStress)(void*,PgHdr*)
        type: int
      - name: '*pStress'
        type: void
      - name: '*pCache'
        type: sqlite3_pcache
      item_type: struct
      name: PCache
      pos:
        line_end: 39811
        line_start: 39799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*mutex'
        type: sqlite3_mutex
      - name: nMaxPage
        type: unsigned int
      - name: nMinPage
        type: unsigned int
      - name: mxPinned
        type: unsigned int
      - name: nCurrentPage
        type: unsigned int
      - name: '*pLruHead'
        type: PgHdr1
      item_type: struct
      name: PGroup
      pos:
        line_end: 40572
        line_start: 40565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pGroup'
        type: PGroup
      - name: szPage
        type: int
      - name: szExtra
        type: int
      - name: szAlloc
        type: int
      - name: bPurgeable
        type: int
      - name: nMin
        type: unsigned int
      - name: nMax
        type: unsigned int
      - name: n90pct
        type: unsigned int
      - name: iMaxKey
        type: unsigned int
      - name: nRecyclable
        type: unsigned int
      - name: nPage
        type: unsigned int
      - name: nHash
        type: unsigned int
      - name: '**apHash'
        type: PgHdr1
      - name: '*pFree'
        type: PgHdr1
      - name: '*pBulk'
        type: void
      item_type: struct
      name: PCache1
      pos:
        line_end: 40607
        line_start: 40582
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: page
        type: sqlite3_pcache_page
      - name: iKey
        type: unsigned int
      - name: isPinned
        type: u8
      - name: isBulkLocal
        type: u8
      - name: '*pNext'
        type: PgHdr1
      - name: '*pCache'
        type: PCache1
      - name: '*pLruNext'
        type: PgHdr1
      - name: '*pLruPrev'
        type: PgHdr1
      item_type: struct
      name: PgHdr1
      pos:
        line_end: 40624
        line_start: 40615
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: PgFreeslot
      item_type: struct
      name: PgFreeslot
      pos:
        line_end: 40632
        line_start: 40630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: v
        type: i64
      - name: '*pRight'
        type: struct RowSetEntry
      - name: '*pLeft'
        type: struct RowSetEntry
      item_type: struct
      name: RowSetEntry
      pos:
        line_end: 41775
        line_start: 41771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNextChunk'
        type: struct RowSetChunk
      - name: aEntry[ROWSET_ENTRY_PER_CHUNK]
        type: struct RowSetEntry
      item_type: struct
      name: RowSetChunk
      pos:
        line_end: 41786
        line_start: 41783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pChunk'
        type: struct RowSetChunk
      - name: '*db'
        type: sqlite3
      - name: '*pEntry'
        type: struct RowSetEntry
      - name: '*pLast'
        type: struct RowSetEntry
      - name: '*pFresh'
        type: struct RowSetEntry
      - name: '*pForest'
        type: struct RowSetEntry
      - name: nFresh
        type: u16
      - name: rsFlags
        type: u16
      - name: iBatch
        type: int
      item_type: struct
      name: RowSet
      pos:
        line_end: 41803
        line_start: 41793
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iOffset
        type: i64
      - name: iHdrOffset
        type: i64
      - name: '*pInSavepoint'
        type: Bitvec
      - name: nOrig
        type: Pgno
      - name: iSubRec
        type: Pgno
      item_type: struct
      name: PagerSavepoint
      pos:
        line_end: 42792
        line_start: 42783
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: exclusiveMode
        type: u8
      - name: journalMode
        type: u8
      - name: useJournal
        type: u8
      - name: noSync
        type: u8
      - name: fullSync
        type: u8
      - name: ckptSyncFlags
        type: u8
      - name: walSyncFlags
        type: u8
      - name: syncFlags
        type: u8
      - name: tempFile
        type: u8
      - name: noLock
        type: u8
      - name: readOnly
        type: u8
      - name: memDb
        type: u8
      - name: eState
        type: u8
      - name: eLock
        type: u8
      - name: changeCountDone
        type: u8
      - name: setMaster
        type: u8
      - name: doNotSpill
        type: u8
      - name: subjInMemory
        type: u8
      - name: bUseFetch
        type: u8
      - name: hasBeenUsed
        type: u8
      - name: dbSize
        type: Pgno
      - name: dbOrigSize
        type: Pgno
      - name: dbFileSize
        type: Pgno
      - name: dbHintSize
        type: Pgno
      - name: errCode
        type: int
      - name: nRec
        type: int
      - name: cksumInit
        type: u32
      - name: nSubRec
        type: u32
      - name: '*pInJournal'
        type: Bitvec
      - name: '*fd'
        type: sqlite3_file
      - name: '*jfd'
        type: sqlite3_file
      - name: '*sjfd'
        type: sqlite3_file
      - name: journalOff
        type: i64
      - name: journalHdr
        type: i64
      - name: '*pBackup'
        type: sqlite3_backup
      - name: '*aSavepoint'
        type: PagerSavepoint
      - name: nSavepoint
        type: int
      - name: iDataVersion
        type: u32
      - name: dbFileVers[16]
        type: char
      - name: nMmapOut
        type: int
      - name: szMmap
        type: sqlite3_int64
      - name: '*pMmapFreelist'
        type: PgHdr
      - name: nExtra
        type: u16
      - name: nReserve
        type: i16
      - name: vfsFlags
        type: u32
      - name: sectorSize
        type: u32
      - name: pageSize
        type: int
      - name: mxPgno
        type: Pgno
      - name: journalSizeLimit
        type: i64
      - name: '*zFilename'
        type: char
      - name: '*zJournal'
        type: char
      - name: (*xBusyHandler)(void*)
        type: int
      - name: '*pBusyHandlerArg'
        type: void
      - name: aStat[3]
        type: int
      - name: (*xReiniter)(DbPage*)
        type: void
      - name: '*pTmpSpace'
        type: char
      - name: '*pPCache'
        type: PCache
      item_type: struct
      name: Pager
      pos:
        line_end: 43044
        line_start: 42957
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: u32
      - name: unused
        type: u32
      - name: iChange
        type: u32
      - name: isInit
        type: u8
      - name: bigEndCksum
        type: u8
      - name: szPage
        type: u16
      - name: mxFrame
        type: u32
      - name: nPage
        type: u32
      - name: aFrameCksum[2]
        type: u32
      - name: aSalt[2]
        type: u32
      - name: aCksum[2]
        type: u32
      item_type: struct
      name: WalIndexHdr
      pos:
        line_end: 49924
        line_start: 49912
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nBackfill
        type: u32
      - name: aReadMark[WAL_NREADER]
        type: u32
      item_type: struct
      name: WalCkptInfo
      pos:
        line_end: 49978
        line_start: 49975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: '*pDbFd'
        type: sqlite3_file
      - name: '*pWalFd'
        type: sqlite3_file
      - name: iCallback
        type: u32
      - name: mxWalSize
        type: i64
      - name: nWiData
        type: int
      - name: szFirstBlock
        type: int
      - name: '**apWiData'
        type: u32
      - name: szPage
        type: u32
      - name: readLock
        type: i16
      - name: syncFlags
        type: u8
      - name: exclusiveMode
        type: u8
      - name: writeLock
        type: u8
      - name: ckptLock
        type: u8
      - name: readOnly
        type: u8
      - name: truncateOnCommit
        type: u8
      - name: syncHeader
        type: u8
      - name: padToSectorBoundary
        type: u8
      - name: hdr
        type: WalIndexHdr
      - name: '*zWalName'
        type: char
      - name: nCkpt
        type: u32
      item_type: struct
      name: Wal
      pos:
        line_end: 50047
        line_start: 50022
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iPrior
        type: int
      - name: nSegment
        type: int
      - name: aSegment[1]
        type: "struct WalSegment {\n    int iNext;                    /* Next slot
          in aIndex[] not yet returned */\n    ht_slot *aIndex;              /* i0,
          i1, i2... such that aPgno[iN] ascend */\n    u32 *aPgno;                   /*
          Array of page numbers. */\n    int nEntry;                   /* Nr. of entries
          in aPgno[] and aIndex[] */\n    int iZero;                    /* Frame number
          associated with aPgno[0] */\n  }"
      item_type: struct
      name: WalIterator
      pos:
        line_end: 50094
        line_start: 50084
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iNext
        type: int
      - name: '*aIndex'
        type: ht_slot
      - name: '*aPgno'
        type: u32
      - name: nEntry
        type: int
      - name: iZero
        type: int
      item_type: struct
      name: WalSegment
      pos:
        line_end: 50093
        line_start: 50087
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nList
        type: int
      - name: '*aList'
        type: ht_slot
      item_type: struct
      name: Sublist
      pos:
        line_end: 51068
        line_start: 51065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pWal'
        type: Wal
      - name: '*pFd'
        type: sqlite3_file
      - name: iSyncPoint
        type: sqlite3_int64
      - name: syncFlags
        type: int
      - name: szPage
        type: int
      item_type: struct
      name: WalWriter
      pos:
        line_end: 52320
        line_start: 52314
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: isInit
        type: u8
      - name: nOverflow
        type: u8
      - name: intKey
        type: u8
      - name: intKeyLeaf
        type: u8
      - name: noPayload
        type: u8
      - name: leaf
        type: u8
      - name: hdrOffset
        type: u8
      - name: childPtrSize
        type: u8
      - name: max1bytePayload
        type: u8
      - name: bBusy
        type: u8
      - name: maxLocal
        type: u16
      - name: minLocal
        type: u16
      - name: cellOffset
        type: u16
      - name: nFree
        type: u16
      - name: nCell
        type: u16
      - name: maskPage
        type: u16
      - name: aiOvfl[5]
        type: u16
      - name: '*apOvfl[5]'
        type: u8
      - name: '*pBt'
        type: BtShared
      - name: '*aData'
        type: u8
      - name: '*aDataEnd'
        type: u8
      - name: '*aCellIdx'
        type: u8
      - name: '*aDataOfst'
        type: u8
      - name: '*pDbPage'
        type: DbPage
      - name: (*xCellSize)(MemPage*,u8*)
        type: u16
      - name: (*xParseCell)(MemPage*,u8*,CellInfo*)
        type: void
      - name: pgno
        type: Pgno
      item_type: struct
      name: MemPage
      pos:
        line_end: 53098
        line_start: 53069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pBtree'
        type: Btree
      - name: iTable
        type: Pgno
      - name: eLock
        type: u8
      - name: '*pNext'
        type: BtLock
      item_type: struct
      name: BtLock
      pos:
        line_end: 53119
        line_start: 53114
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*pBt'
        type: BtShared
      - name: inTrans
        type: u8
      - name: sharable
        type: u8
      - name: locked
        type: u8
      - name: hasIncrblobCur
        type: u8
      - name: wantToLock
        type: int
      - name: nBackup
        type: int
      - name: iDataVersion
        type: u32
      - name: '*pNext'
        type: Btree
      - name: '*pPrev'
        type: Btree
      item_type: struct
      name: Btree
      pos:
        line_end: 53161
        line_start: 53146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pPager'
        type: Pager
      - name: '*db'
        type: sqlite3
      - name: '*pCursor'
        type: BtCursor
      - name: '*pPage1'
        type: MemPage
      - name: openFlags
        type: u8
      - name: inTransaction
        type: u8
      - name: max1bytePayload
        type: u8
      - name: btsFlags
        type: u16
      - name: maxLocal
        type: u16
      - name: minLocal
        type: u16
      - name: maxLeaf
        type: u16
      - name: minLeaf
        type: u16
      - name: pageSize
        type: u32
      - name: usableSize
        type: u32
      - name: nTransaction
        type: int
      - name: nPage
        type: u32
      - name: '*pSchema'
        type: void
      - name: (*xFreeSchema)(void*)
        type: void
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*pHasContent'
        type: Bitvec
      - name: '*pTmpSpace'
        type: u8
      item_type: struct
      name: BtShared
      pos:
        line_end: 53245
        line_start: 53209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nKey
        type: i64
      - name: '*pPayload'
        type: u8
      - name: nPayload
        type: u32
      - name: nLocal
        type: u16
      - name: iOverflow
        type: u16
      - name: nSize
        type: u16
      item_type: struct
      name: CellInfo
      pos:
        line_end: 53270
        line_start: 53263
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pBtree'
        type: Btree
      - name: '*pBt'
        type: BtShared
      - name: '*pNext'
        type: BtCursor
      - name: '*aOverflow'
        type: Pgno
      - name: info
        type: CellInfo
      - name: nKey
        type: i64
      - name: '*pKey'
        type: void
      - name: pgnoRoot
        type: Pgno
      - name: nOvflAlloc
        type: int
      - name: skipNext
        type: int
      - name: curFlags
        type: u8
      - name: curPagerFlags
        type: u8
      - name: eState
        type: u8
      - name: hints
        type: u8
      - name: iPage
        type: i8
      - name: curIntKey
        type: u8
      - name: '*pKeyInfo'
        type: struct KeyInfo
      - name: '*padding1'
        type: void
      - name: aiIdx[BTCURSOR_MAX_DEPTH]
        type: u16
      - name: '*apPage[BTCURSOR_MAX_DEPTH]'
        type: MemPage
      item_type: struct
      name: BtCursor
      pos:
        line_end: 53327
        line_start: 53302
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pBt'
        type: BtShared
      - name: '*pPager'
        type: Pager
      - name: '*aPgRef'
        type: u8
      - name: nPage
        type: Pgno
      - name: mxErr
        type: int
      - name: nErr
        type: int
      - name: mallocFailed
        type: int
      - name: '*zPfx'
        type: char
      - name: v1
        type: int
      - name: errMsg
        type: StrAccum
      - name: '*heap'
        type: u32
      item_type: struct
      name: IntegrityCk
      pos:
        line_end: 53481
        line_start: 53469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nCell
        type: int
      - name: '*pRef'
        type: MemPage
      - name: '**apCell'
        type: u8
      - name: '*szCell'
        type: u16
      item_type: struct
      name: CellArray
      pos:
        line_end: 60154
        line_start: 60149
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '* pDestDb'
        type: sqlite3
      - name: '*pDest'
        type: Btree
      - name: iDestSchema
        type: u32
      - name: bDestLocked
        type: int
      - name: iNext
        type: Pgno
      - name: '* pSrcDb'
        type: sqlite3
      - name: '*pSrc'
        type: Btree
      - name: rc
        type: int
      - name: nRemaining
        type: Pgno
      - name: nPagecount
        type: Pgno
      - name: isAttached
        type: int
      - name: '*pNext'
        type: sqlite3_backup
      item_type: struct
      name: sqlite3_backup
      pos:
        line_end: 63438
        line_start: 63418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParse'
        type: Parse
      - name: '*pIdx'
        type: Index
      - name: '**ppRec'
        type: UnpackedRecord
      - name: iVal
        type: int
      item_type: struct
      name: ValueNewStat4Ctx
      pos:
        line_end: 65293
        line_start: 65288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*v'
        type: Vdbe
      - name: '**apSub'
        type: SubProgram
      - name: nSub
        type: int
      - name: iAddr
        type: int
      - name: iSub
        type: int
      item_type: struct
      name: VdbeOpIter
      pos:
        line_end: 66276
        line_start: 66270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: flags
        type: int
      - name: nByte
        type: int
      - name: iOffset
        type: int
      - name: iCol
        type: int
      - name: '*pCsr'
        type: BtCursor
      - name: '*pStmt'
        type: sqlite3_stmt
      - name: '*db'
        type: sqlite3
      item_type: struct
      name: Incrblob
      pos:
        line_end: 78817
        line_start: 78809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pFd'
        type: sqlite3_file
      - name: iEof
        type: i64
      item_type: struct
      name: SorterFile
      pos:
        line_end: 79438
        line_start: 79435
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pList'
        type: SorterRecord
      - name: '*aMemory'
        type: u8
      - name: szPMA
        type: int
      item_type: struct
      name: SorterList
      pos:
        line_end: 79452
        line_start: 79448
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nTree
        type: int
      - name: '*pTask'
        type: SortSubtask
      - name: '*aTree'
        type: int
      - name: '*aReadr'
        type: PmaReader
      item_type: struct
      name: MergeEngine
      pos:
        line_end: 79523
        line_start: 79518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pThread'
        type: SQLiteThread
      - name: bDone
        type: int
      - name: '*pSorter'
        type: VdbeSorter
      - name: '*pUnpacked'
        type: UnpackedRecord
      - name: list
        type: SorterList
      - name: nPMA
        type: int
      - name: xCompare
        type: SorterCompare
      - name: file
        type: SorterFile
      - name: file2
        type: SorterFile
      item_type: struct
      name: SortSubtask
      pos:
        line_end: 79567
        line_start: 79557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: mnPmaSize
        type: int
      - name: mxPmaSize
        type: int
      - name: mxKeysize
        type: int
      - name: pgsz
        type: int
      - name: '*pReader'
        type: PmaReader
      - name: '*pMerger'
        type: MergeEngine
      - name: '*db'
        type: sqlite3
      - name: '*pKeyInfo'
        type: KeyInfo
      - name: '*pUnpacked'
        type: UnpackedRecord
      - name: list
        type: SorterList
      - name: iMemory
        type: int
      - name: nMemory
        type: int
      - name: bUsePMA
        type: u8
      - name: bUseThreads
        type: u8
      - name: iPrev
        type: u8
      - name: nTask
        type: u8
      - name: typeMask
        type: u8
      - name: aTask[1]
        type: SortSubtask
      item_type: struct
      name: VdbeSorter
      pos:
        line_end: 79598
        line_start: 79579
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iReadOff
        type: i64
      - name: iEof
        type: i64
      - name: nAlloc
        type: int
      - name: nKey
        type: int
      - name: '*pFd'
        type: sqlite3_file
      - name: '*aAlloc'
        type: u8
      - name: '*aKey'
        type: u8
      - name: '*aBuffer'
        type: u8
      - name: nBuffer
        type: int
      - name: '*aMap'
        type: u8
      - name: '*pIncr'
        type: IncrMerger
      item_type: struct
      name: PmaReader
      pos:
        line_end: 79624
        line_start: 79612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTask'
        type: SortSubtask
      - name: '*pMerger'
        type: MergeEngine
      - name: iStartOff
        type: i64
      - name: mxSz
        type: int
      - name: bEof
        type: int
      - name: bUseThread
        type: int
      - name: aFile[2]
        type: SorterFile
      item_type: struct
      name: IncrMerger
      pos:
        line_end: 79666
        line_start: 79658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eFWErr
        type: int
      - name: '*aBuffer'
        type: u8
      - name: nBuffer
        type: int
      - name: iBufStart
        type: int
      - name: iBufEnd
        type: int
      - name: iWriteOff
        type: i64
      - name: '*pFd'
        type: sqlite3_file
      item_type: struct
      name: PmaWriter
      pos:
        line_end: 79684
        line_start: 79676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nVal
        type: int
      - name: u
        type: "union {\n    SorterRecord *pNext;          /* Pointer to next record
          in list */\n    int iNext;                    /* Offset within aMemory of
          next record */\n  }"
      item_type: struct
      name: SorterRecord
      pos:
        line_end: 79711
        line_start: 79704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pMethod'
        type: sqlite3_io_methods
      - name: nBuf
        type: int
      - name: '*zBuf'
        type: char
      - name: iSize
        type: int
      - name: flags
        type: int
      - name: '*pVfs'
        type: sqlite3_vfs
      - name: '*pReal'
        type: sqlite3_file
      - name: '*zJournal'
        type: char
      item_type: struct
      name: JournalFile
      pos:
        line_end: 82034
        line_start: 82025
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pNext'
        type: FileChunk
      - name: zChunk[JOURNAL_CHUNKSIZE]
        type: u8
      item_type: struct
      name: FileChunk
      pos:
        line_end: 82289
        line_start: 82286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iOffset
        type: sqlite3_int64
      - name: '*pChunk'
        type: FileChunk
      item_type: struct
      name: FilePoint
      pos:
        line_end: 82298
        line_start: 82295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pMethod'
        type: sqlite3_io_methods
      - name: '*pFirst'
        type: FileChunk
      - name: endpoint
        type: FilePoint
      - name: readpoint
        type: FilePoint
      item_type: struct
      name: MemJournal
      pos:
        line_end: 82309
        line_start: 82304
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pSrc'
        type: SrcList
      - name: nThis
        type: int
      - name: nOther
        type: int
      item_type: struct
      name: SrcCount
      pos:
        line_end: 88025
        line_start: 88021
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: '*zCols'
        type: char
      item_type: struct
      name: "aTable[] = {\n    { \"sqlite_stat1\", \"tbl,idx,stat\" },\n#if defined(SQLITE_ENABLE_STAT4)\n
        \   { \"sqlite_stat4\", \"tbl,idx,neq,nlt,ndlt,sample\" },\n    { \"sqlite_stat3\",
        0 },\n#elif defined(SQLITE_ENABLE_STAT3)\n    { \"sqlite_stat3\", \"tbl,idx,neq,nlt,ndlt,sample\"
        },\n    { \"sqlite_stat4\", 0 },\n#else\n    { \"sqlite_stat3\", 0 },\n    {
        \"sqlite_stat4\", 0 },\n#endif\n  }"
      pos:
        line_end: 89359
        line_start: 89356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*anEq'
        type: tRowcnt
      - name: '*anDLt'
        type: tRowcnt
      item_type: struct
      name: Stat4Sample
      pos:
        line_end: 89458
        line_start: 89444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nRow
        type: tRowcnt
      - name: nPSample
        type: tRowcnt
      - name: nCol
        type: int
      - name: nKeyCol
        type: int
      - name: mxSample
        type: int
      - name: current
        type: Stat4Sample
      - name: iPrn
        type: u32
      - name: '*aBest'
        type: Stat4Sample
      - name: iMin
        type: int
      - name: nSample
        type: int
      - name: iGet
        type: int
      - name: '*a'
        type: Stat4Sample
      - name: '*db'
        type: sqlite3
      item_type: struct
      name: Stat4Accum
      pos:
        line_end: 89473
        line_start: 89459
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*db'
        type: sqlite3
      - name: '*zDatabase'
        type: char
      item_type: struct
      name: analysisInfo
      pos:
        line_end: 90595
        line_start: 90592
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iDb
        type: int
      - name: iTab
        type: int
      - name: isWriteLock
        type: u8
      - name: '*zName'
        type: char
      item_type: struct
      name: TableLock
      pos:
        line_end: 91968
        line_start: 91963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: matchAll
        type: u8
      - name: matchOne
        type: u8
      - name: matchSet
        type: u8
      - name: noCase
        type: u8
      item_type: struct
      name: compareInfo
      pos:
        line_end: 98147
        line_start: 98142
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: rSum
        type: double
      - name: iSum
        type: i64
      - name: cnt
        type: i64
      - name: overflow
        type: u8
      - name: approx
        type: u8
      item_type: struct
      name: SumCtx
      pos:
        line_end: 98974
        line_start: 98968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: n
        type: i64
      item_type: struct
      name: CountCtx
      pos:
        line_end: 99041
        line_start: 99039
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '* (*aggregate_context)(sqlite3_context*,int nBytes)'
        type: void
      - name: (*aggregate_count)(sqlite3_context*)
        type: int
      - name: (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*))
        type: int
      - name: (*bind_double)(sqlite3_stmt*,int,double)
        type: int
      - name: (*bind_int)(sqlite3_stmt*,int,int)
        type: int
      - name: (*bind_int64)(sqlite3_stmt*,int,sqlite_int64)
        type: int
      - name: (*bind_null)(sqlite3_stmt*,int)
        type: int
      - name: (*bind_parameter_count)(sqlite3_stmt*)
        type: int
      - name: (*bind_parameter_index)(sqlite3_stmt*,const char*zName)
        type: int
      - name: '* (*bind_parameter_name)(sqlite3_stmt*,int)'
        type: char
      - name: (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*))
        type: int
      - name: (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*))
        type: int
      - name: (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*)
        type: int
      - name: (*busy_handler)(sqlite3*,int(*)(void*,int),void*)
        type: int
      - name: (*busy_timeout)(sqlite3*,int ms)
        type: int
      - name: (*changes)(sqlite3*)
        type: int
      - name: (*close)(sqlite3*)
        type: int
      - name: "(*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,\n                           int
          eTextRep,const char*))"
        type: int
      - name: "(*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,\n                             int
          eTextRep,const void*))"
        type: int
      - name: '* (*column_blob)(sqlite3_stmt*,int iCol)'
        type: void
      - name: (*column_bytes)(sqlite3_stmt*,int iCol)
        type: int
      - name: (*column_bytes16)(sqlite3_stmt*,int iCol)
        type: int
      - name: (*column_count)(sqlite3_stmt*pStmt)
        type: int
      - name: '* (*column_database_name)(sqlite3_stmt*,int)'
        type: char
      - name: '* (*column_database_name16)(sqlite3_stmt*,int)'
        type: void
      - name: '* (*column_decltype)(sqlite3_stmt*,int i)'
        type: char
      - name: '* (*column_decltype16)(sqlite3_stmt*,int)'
        type: void
      - name: (*column_double)(sqlite3_stmt*,int iCol)
        type: double
      - name: (*column_int)(sqlite3_stmt*,int iCol)
        type: int
      - name: (*column_int64)(sqlite3_stmt*,int iCol)
        type: sqlite_int64
      - name: '* (*column_name)(sqlite3_stmt*,int)'
        type: char
      - name: '* (*column_name16)(sqlite3_stmt*,int)'
        type: void
      - name: '* (*column_origin_name)(sqlite3_stmt*,int)'
        type: char
      - name: '* (*column_origin_name16)(sqlite3_stmt*,int)'
        type: void
      - name: '* (*column_table_name)(sqlite3_stmt*,int)'
        type: char
      - name: '* (*column_table_name16)(sqlite3_stmt*,int)'
        type: void
      - name: '* (*column_text)(sqlite3_stmt*,int iCol)'
        type: unsigned char
      - name: '* (*column_text16)(sqlite3_stmt*,int iCol)'
        type: void
      - name: (*column_type)(sqlite3_stmt*,int iCol)
        type: int
      - name: '* (*column_value)(sqlite3_stmt*,int iCol)'
        type: sqlite3_value
      - name: '* (*commit_hook)(sqlite3*,int(*)(void*),void*)'
        type: void
      - name: (*complete)(const char*sql)
        type: int
      - name: (*complete16)(const void*sql)
        type: int
      - name: "(*create_collation)(sqlite3*,const char*,int,void*,\n                           int(*)(void*,int,const
          void*,int,const void*))"
        type: int
      - name: "(*create_collation16)(sqlite3*,const void*,int,void*,\n                             int(*)(void*,int,const
          void*,int,const void*))"
        type: int
      - name: "(*create_function)(sqlite3*,const char*,int,int,void*,\n                          void
          (*xFunc)(sqlite3_context*,int,sqlite3_value**),\n                          void
          (*xStep)(sqlite3_context*,int,sqlite3_value**),\n                          void
          (*xFinal)(sqlite3_context*))"
        type: int
      - name: "(*create_function16)(sqlite3*,const void*,int,int,void*,\n                            void
          (*xFunc)(sqlite3_context*,int,sqlite3_value**),\n                            void
          (*xStep)(sqlite3_context*,int,sqlite3_value**),\n                            void
          (*xFinal)(sqlite3_context*))"
        type: int
      - name: (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*)
        type: int
      - name: (*data_count)(sqlite3_stmt*pStmt)
        type: int
      - name: '* (*db_handle)(sqlite3_stmt*)'
        type: sqlite3
      - name: (*declare_vtab)(sqlite3*,const char*)
        type: int
      - name: (*enable_shared_cache)(int)
        type: int
      - name: (*errcode)(sqlite3*db)
        type: int
      - name: '* (*errmsg)(sqlite3*)'
        type: char
      - name: '* (*errmsg16)(sqlite3*)'
        type: void
      - name: (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**)
        type: int
      - name: (*expired)(sqlite3_stmt*)
        type: int
      - name: (*finalize)(sqlite3_stmt*pStmt)
        type: int
      - name: (*free)(void*)
        type: void
      - name: (*free_table)(char**result)
        type: void
      - name: (*get_autocommit)(sqlite3*)
        type: int
      - name: '* (*get_auxdata)(sqlite3_context*,int)'
        type: void
      - name: (*get_table)(sqlite3*,const char*,char***,int*,int*,char**)
        type: int
      - name: (*global_recover)(void)
        type: int
      - name: (*interruptx)(sqlite3*)
        type: void
      - name: (*last_insert_rowid)(sqlite3*)
        type: sqlite_int64
      - name: '* (*libversion)(void)'
        type: char
      - name: (*libversion_number)(void)
        type: int
      - name: '*(*malloc)(int)'
        type: void
      - name: '* (*mprintf)(const char*,...)'
        type: char
      - name: (*open)(const char*,sqlite3**)
        type: int
      - name: (*open16)(const void*,sqlite3**)
        type: int
      - name: (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**)
        type: int
      - name: (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**)
        type: int
      - name: '* (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*)'
        type: void
      - name: (*progress_handler)(sqlite3*,int,int(*)(void*),void*)
        type: void
      - name: '*(*realloc)(void*,int)'
        type: void
      - name: (*reset)(sqlite3_stmt*pStmt)
        type: int
      - name: (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*))
        type: void
      - name: (*result_double)(sqlite3_context*,double)
        type: void
      - name: (*result_error)(sqlite3_context*,const char*,int)
        type: void
      - name: (*result_error16)(sqlite3_context*,const void*,int)
        type: void
      - name: (*result_int)(sqlite3_context*,int)
        type: void
      - name: (*result_int64)(sqlite3_context*,sqlite_int64)
        type: void
      - name: (*result_null)(sqlite3_context*)
        type: void
      - name: (*result_text)(sqlite3_context*,const char*,int,void(*)(void*))
        type: void
      - name: (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*))
        type: void
      - name: (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*))
        type: void
      - name: (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*))
        type: void
      - name: (*result_value)(sqlite3_context*,sqlite3_value*)
        type: void
      - name: '* (*rollback_hook)(sqlite3*,void(*)(void*),void*)'
        type: void
      - name: "(*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,\n
          \                        const char*,const char*),void*)"
        type: int
      - name: (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*))
        type: void
      - name: '* (*snprintf)(int,char*,const char*,...)'
        type: char
      - name: (*step)(sqlite3_stmt*)
        type: int
      - name: "(*table_column_metadata)(sqlite3*,const char*,const char*,const char*,\n
          \                               char const**,char const**,int*,int*,int*)"
        type: int
      - name: (*thread_cleanup)(void)
        type: void
      - name: (*total_changes)(sqlite3*)
        type: int
      - name: '* (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*)'
        type: void
      - name: (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*)
        type: int
      - name: "* (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,\n
          \                                        sqlite_int64),void*)"
        type: void
      - name: '* (*user_data)(sqlite3_context*)'
        type: void
      - name: '* (*value_blob)(sqlite3_value*)'
        type: void
      - name: (*value_bytes)(sqlite3_value*)
        type: int
      - name: (*value_bytes16)(sqlite3_value*)
        type: int
      - name: (*value_double)(sqlite3_value*)
        type: double
      - name: (*value_int)(sqlite3_value*)
        type: int
      - name: (*value_int64)(sqlite3_value*)
        type: sqlite_int64
      - name: (*value_numeric_type)(sqlite3_value*)
        type: int
      - name: '* (*value_text)(sqlite3_value*)'
        type: unsigned char
      - name: '* (*value_text16)(sqlite3_value*)'
        type: void
      - name: '* (*value_text16be)(sqlite3_value*)'
        type: void
      - name: '* (*value_text16le)(sqlite3_value*)'
        type: void
      - name: (*value_type)(sqlite3_value*)
        type: int
      - name: '*(*vmprintf)(const char*,va_list)'
        type: char
      - name: (*overload_function)(sqlite3*, const char *zFuncName, int nArg)
        type: int
      - name: (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**)
        type: int
      - name: (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**)
        type: int
      - name: (*clear_bindings)(sqlite3_stmt*)
        type: int
      - name: "(*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,\n
          \                         void (*xDestroy)(void *))"
        type: int
      - name: (*bind_zeroblob)(sqlite3_stmt*,int,int)
        type: int
      - name: (*blob_bytes)(sqlite3_blob*)
        type: int
      - name: (*blob_close)(sqlite3_blob*)
        type: int
      - name: "(*blob_open)(sqlite3*,const char*,const char*,const char*,sqlite3_int64,\n
          \                  int,sqlite3_blob**)"
        type: int
      - name: (*blob_read)(sqlite3_blob*,void*,int,int)
        type: int
      - name: (*blob_write)(sqlite3_blob*,const void*,int,int)
        type: int
      - name: "(*create_collation_v2)(sqlite3*,const char*,int,void*,\n                             int(*)(void*,int,const
          void*,int,const void*),\n                             void(*)(void*))"
        type: int
      - name: (*file_control)(sqlite3*,const char*,int,void*)
        type: int
      - name: (*memory_highwater)(int)
        type: sqlite3_int64
      - name: (*memory_used)(void)
        type: sqlite3_int64
      - name: '*(*mutex_alloc)(int)'
        type: sqlite3_mutex
      - name: (*mutex_enter)(sqlite3_mutex*)
        type: void
      - name: (*mutex_free)(sqlite3_mutex*)
        type: void
      - name: (*mutex_leave)(sqlite3_mutex*)
        type: void
      - name: (*mutex_try)(sqlite3_mutex*)
        type: int
      - name: (*open_v2)(const char*,sqlite3**,int,const char*)
        type: int
      - name: (*release_memory)(int)
        type: int
      - name: (*result_error_nomem)(sqlite3_context*)
        type: void
      - name: (*result_error_toobig)(sqlite3_context*)
        type: void
      - name: (*sleep)(int)
        type: int
      - name: (*soft_heap_limit)(int)
        type: void
      - name: '*(*vfs_find)(const char*)'
        type: sqlite3_vfs
      - name: (*vfs_register)(sqlite3_vfs*,int)
        type: int
      - name: (*vfs_unregister)(sqlite3_vfs*)
        type: int
      - name: (*xthreadsafe)(void)
        type: int
      - name: (*result_zeroblob)(sqlite3_context*,int)
        type: void
      - name: (*result_error_code)(sqlite3_context*,int)
        type: void
      - name: (*test_control)(int, ...)
        type: int
      - name: (*randomness)(int,void*)
        type: void
      - name: '*(*context_db_handle)(sqlite3_context*)'
        type: sqlite3
      - name: (*extended_result_codes)(sqlite3*,int)
        type: int
      - name: (*limit)(sqlite3*,int,int)
        type: int
      - name: '*(*next_stmt)(sqlite3*,sqlite3_stmt*)'
        type: sqlite3_stmt
      - name: '*(*sql)(sqlite3_stmt*)'
        type: char
      - name: (*status)(int,int*,int*,int)
        type: int
      - name: (*backup_finish)(sqlite3_backup*)
        type: int
      - name: '*(*backup_init)(sqlite3*,const char*,sqlite3*,const char*)'
        type: sqlite3_backup
      - name: (*backup_pagecount)(sqlite3_backup*)
        type: int
      - name: (*backup_remaining)(sqlite3_backup*)
        type: int
      - name: (*backup_step)(sqlite3_backup*,int)
        type: int
      - name: '*(*compileoption_get)(int)'
        type: char
      - name: (*compileoption_used)(const char*)
        type: int
      - name: "(*create_function_v2)(sqlite3*,const char*,int,int,void*,\n                            void
          (*xFunc)(sqlite3_context*,int,sqlite3_value**),\n                            void
          (*xStep)(sqlite3_context*,int,sqlite3_value**),\n                            void
          (*xFinal)(sqlite3_context*),\n                            void(*xDestroy)(void*))"
        type: int
      - name: (*db_config)(sqlite3*,int,...)
        type: int
      - name: '*(*db_mutex)(sqlite3*)'
        type: sqlite3_mutex
      - name: (*db_status)(sqlite3*,int,int*,int*,int)
        type: int
      - name: (*extended_errcode)(sqlite3*)
        type: int
      - name: (*log)(int,const char*,...)
        type: void
      - name: (*soft_heap_limit64)(sqlite3_int64)
        type: sqlite3_int64
      - name: '*(*sourceid)(void)'
        type: char
      - name: (*stmt_status)(sqlite3_stmt*,int,int)
        type: int
      - name: (*strnicmp)(const char*,const char*,int)
        type: int
      - name: (*unlock_notify)(sqlite3*,void(*)(void**,int),void*)
        type: int
      - name: (*wal_autocheckpoint)(sqlite3*,int)
        type: int
      - name: (*wal_checkpoint)(sqlite3*,const char*)
        type: int
      - name: '*(*wal_hook)(sqlite3*,int(*)(void*,sqlite3*,const char*,int),void*)'
        type: void
      - name: (*blob_reopen)(sqlite3_blob*,sqlite3_int64)
        type: int
      - name: (*vtab_config)(sqlite3*,int op,...)
        type: int
      - name: (*vtab_on_conflict)(sqlite3*)
        type: int
      - name: (*close_v2)(sqlite3*)
        type: int
      - name: '*(*db_filename)(sqlite3*,const char*)'
        type: char
      - name: (*db_readonly)(sqlite3*,const char*)
        type: int
      - name: (*db_release_memory)(sqlite3*)
        type: int
      - name: '*(*errstr)(int)'
        type: char
      - name: (*stmt_busy)(sqlite3_stmt*)
        type: int
      - name: (*stmt_readonly)(sqlite3_stmt*)
        type: int
      - name: (*stricmp)(const char*,const char*)
        type: int
      - name: (*uri_boolean)(const char*,const char*,int)
        type: int
      - name: (*uri_int64)(const char*,const char*,sqlite3_int64)
        type: sqlite3_int64
      - name: '*(*uri_parameter)(const char*,const char*)'
        type: char
      - name: '*(*vsnprintf)(int,char*,const char*,va_list)'
        type: char
      - name: (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*)
        type: int
      - name: (*auto_extension)(void(*)(void))
        type: int
      - name: "(*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,\n                     void(*)(void*))"
        type: int
      - name: "(*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,\n                      void(*)(void*),unsigned
          char)"
        type: int
      - name: (*cancel_auto_extension)(void(*)(void))
        type: int
      - name: (*load_extension)(sqlite3*,const char*,const char*,char**)
        type: int
      - name: '*(*malloc64)(sqlite3_uint64)'
        type: void
      - name: (*msize)(void*)
        type: sqlite3_uint64
      - name: '*(*realloc64)(void*,sqlite3_uint64)'
        type: void
      - name: (*reset_auto_extension)(void)
        type: void
      - name: "(*result_blob64)(sqlite3_context*,const void*,sqlite3_uint64,\n                        void(*)(void*))"
        type: void
      - name: "(*result_text64)(sqlite3_context*,const char*,sqlite3_uint64,\n                         void(*)(void*),
          unsigned char)"
        type: void
      - name: (*strglob)(const char*,const char*)
        type: int
      - name: '*(*value_dup)(const sqlite3_value*)'
        type: sqlite3_value
      - name: (*value_free)(sqlite3_value*)
        type: void
      - name: (*result_zeroblob64)(sqlite3_context*,sqlite3_uint64)
        type: int
      - name: (*bind_zeroblob64)(sqlite3_stmt*, int, sqlite3_uint64)
        type: int
      item_type: struct
      name: sqlite3_api_routines
      pos:
        line_end: 103281
        line_start: 103040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*const zName'
        type: char
      - name: ePragTyp
        type: u8
      - name: mPragFlag
        type: u8
      - name: iArg
        type: u32
      item_type: struct
      name: sPragmaNames
      pos:
        line_end: 104382
        line_start: 104377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: enc
        type: u8
      item_type: struct
      name: EncName
      pos:
        line_end: 106410
        line_start: 106407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: isTnct
        type: u8
      - name: eTnctType
        type: u8
      - name: tabTnct
        type: int
      - name: addrTnct
        type: int
      item_type: struct
      name: DistinctCtx
      pos:
        line_end: 107686
        line_start: 107681
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pOrderBy'
        type: ExprList
      - name: nOBSat
        type: int
      - name: iECursor
        type: int
      - name: regReturn
        type: int
      - name: labelBkOut
        type: int
      - name: addrSortIndex
        type: int
      - name: sortFlags
        type: u8
      item_type: struct
      name: SortCtx
      pos:
        line_end: 107701
        line_start: 107693
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: i
        type: u8
      - name: nChar
        type: u8
      - name: code
        type: u8
      item_type: struct
      name: "aKeyword[] = {\n    /* natural */ { 0,  7, JT_NATURAL                },\n
        \   /* left    */ { 6,  4, JT_LEFT|JT_OUTER          },\n    /* outer   */
        { 10, 5, JT_OUTER                  },\n    /* right   */ { 14, 5, JT_RIGHT|JT_OUTER
        \        },\n    /* full    */ { 19, 4, JT_LEFT|JT_RIGHT|JT_OUTER },\n    /*
        inner   */ { 23, 5, JT_INNER                  },\n    /* cross   */ { 28,
        5, JT_INNER|JT_CROSS         },\n  }"
      pos:
        line_end: 107844
        line_start: 107840
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '**azResult'
        type: char
      - name: '*zErrMsg'
        type: char
      - name: nAlloc
        type: u32
      - name: nRow
        type: u32
      - name: nColumn
        type: u32
      - name: nData
        type: u32
      - name: rc
        type: int
      item_type: struct
      name: TabResult
      pos:
        line_end: 113293
        line_start: 113285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pVTable'
        type: VTable
      - name: '*pTab'
        type: Table
      - name: '*pPrior'
        type: VtabCtx
      - name: bDeclared
        type: int
      item_type: struct
      name: VtabCtx
      pos:
        line_end: 115761
        line_start: 115756
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iLeftJoin
        type: int
      - name: iTabCur
        type: int
      - name: iIdxCur
        type: int
      - name: addrBrk
        type: int
      - name: addrNxt
        type: int
      - name: addrSkip
        type: int
      - name: addrCont
        type: int
      - name: addrFirst
        type: int
      - name: addrBody
        type: int
      - name: iLikeRepCntr
        type: int
      - name: addrLikeRep
        type: int
      - name: iFrom
        type: u8
      - name: op
        type: u8
      - name: p1
        type: int
      - name: u
        type: "union {               /* Information that depends on pWLoop->wsFlags
          */\n    struct {\n      int nIn;              /* Number of entries in aInLoop[]
          */\n      struct InLoop {\n        int iCur;              /* The VDBE cursor
          used by this IN operator */\n        int addrInTop;         /* Top of the
          IN loop */\n        u8 eEndLoopOp;         /* IN Loop terminator. OP_Next
          or OP_Prev */\n      } *aInLoop;           /* Information about each nested
          IN operator */\n    } in;                 /* Used when pWLoop->wsFlags&WHERE_IN_ABLE
          */\n    Index *pCovidx;       /* Possible covering index for WHERE_MULTI_OR
          */\n  }"
      - name: '*pWLoop'
        type: struct WhereLoop
      - name: notReady
        type: Bitmask
      item_type: struct
      name: WhereLevel
      pos:
        line_end: 117001
        line_start: 116970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iCur
        type: int
      - name: addrInTop
        type: int
      - name: eEndLoopOp
        type: u8
      item_type: struct
      name: InLoop
      pos:
        line_end: 116992
        line_start: 116988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: prereq
        type: Bitmask
      - name: maskSelf
        type: Bitmask
      - name: iTab
        type: u8
      - name: iSortIdx
        type: u8
      - name: rSetup
        type: LogEst
      - name: rRun
        type: LogEst
      - name: nOut
        type: LogEst
      - name: u
        type: "union {\n    struct {               /* Information for internal btree
          tables */\n      u16 nEq;               /* Number of equality constraints
          */\n      Index *pIndex;         /* Index used, or NULL */\n    } btree;\n
          \   struct {               /* Information for virtual tables */\n      int
          idxNum;            /* Index number */\n      u8 needFree;           /* True
          if sqlite3_free(idxStr) is needed */\n      i8 isOrdered;          /* True
          if satisfies ORDER BY */\n      u16 omitMask;          /* Terms that may
          be omitted */\n      char *idxStr;          /* Index identifier string */\n
          \   } vtab;\n  }"
      - name: wsFlags
        type: u32
      - name: nLTerm
        type: u16
      - name: nSkip
        type: u16
      - name: nLSlot
        type: u16
      - name: '**aLTerm'
        type: WhereTerm
      - name: '*pNextLoop'
        type: WhereLoop
      - name: '*aLTermSpace[3]'
        type: WhereTerm
      item_type: struct
      name: WhereLoop
      pos:
        line_end: 117050
        line_start: 117017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: prereq
        type: Bitmask
      - name: rRun
        type: LogEst
      - name: nOut
        type: LogEst
      item_type: struct
      name: WhereOrCost
      pos:
        line_end: 117060
        line_start: 117056
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: n
        type: u16
      - name: a[N_OR_COST]
        type: WhereOrCost
      item_type: struct
      name: WhereOrSet
      pos:
        line_end: 117070
        line_start: 117067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: maskLoop
        type: Bitmask
      - name: revLoop
        type: Bitmask
      - name: nRow
        type: LogEst
      - name: rCost
        type: LogEst
      - name: rUnsorted
        type: LogEst
      - name: isOrdered
        type: i8
      - name: '**aLoop'
        type: WhereLoop
      item_type: struct
      name: WherePath
      pos:
        line_end: 117098
        line_start: 117090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pExpr'
        type: Expr
      - name: iParent
        type: int
      - name: leftCursor
        type: int
      - name: u
        type: "union {\n    int leftColumn;         /* Column number of X in \"X <op>
          <expr>\" */\n    WhereOrInfo *pOrInfo;   /* Extra information if (eOperator
          & WO_OR)!=0 */\n    WhereAndInfo *pAndInfo; /* Extra information if (eOperator&
          WO_AND)!=0 */\n  }"
      - name: truthProb
        type: LogEst
      - name: eOperator
        type: u16
      - name: wtFlags
        type: u16
      - name: nChild
        type: u8
      - name: '*pWC'
        type: WhereClause
      - name: prereqRight
        type: Bitmask
      - name: prereqAll
        type: Bitmask
      item_type: struct
      name: WhereTerm
      pos:
        line_end: 117167
        line_start: 117151
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pOrigWC'
        type: WhereClause
      - name: '*pWC'
        type: WhereClause
      - name: '*zCollName'
        type: char
      - name: idxaff
        type: char
      - name: nEquiv
        type: unsigned char
      - name: iEquiv
        type: unsigned char
      - name: opMask
        type: u32
      - name: k
        type: int
      - name: aEquiv[22]
        type: int
      item_type: struct
      name: WhereScan
      pos:
        line_end: 117203
        line_start: 117193
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pWInfo'
        type: WhereInfo
      - name: '*pOuter'
        type: WhereClause
      - name: op
        type: u8
      - name: nTerm
        type: int
      - name: nSlot
        type: int
      - name: '*a'
        type: WhereTerm
      item_type: struct
      name: WhereClause
      pos:
        line_end: 117229
        line_start: 117217
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: wc
        type: WhereClause
      - name: indexable
        type: Bitmask
      item_type: struct
      name: WhereOrInfo
      pos:
        line_end: 117238
        line_start: 117235
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: wc
        type: WhereClause
      item_type: struct
      name: WhereAndInfo
      pos:
        line_end: 117246
        line_start: 117244
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: n
        type: int
      - name: ix[BMS]
        type: int
      item_type: struct
      name: WhereMaskSet
      pos:
        line_end: 117277
        line_start: 117274
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pWInfo'
        type: WhereInfo
      - name: '*pWC'
        type: WhereClause
      - name: '*pOrderBy'
        type: ExprList
      - name: '*pNew'
        type: WhereLoop
      - name: '*pOrSet'
        type: WhereOrSet
      item_type: struct
      name: WhereLoopBuilder
      pos:
        line_end: 117298
        line_start: 117288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParse'
        type: Parse
      - name: '*pTabList'
        type: SrcList
      - name: '*pOrderBy'
        type: ExprList
      - name: '*pResultSet'
        type: ExprList
      - name: '*pLoops'
        type: WhereLoop
      - name: revMask
        type: Bitmask
      - name: nRowOut
        type: LogEst
      - name: wctrlFlags
        type: u16
      - name: nOBSat
        type: i8
      - name: sorted
        type: u8
      - name: okOnePass
        type: u8
      - name: untestedTerms
        type: u8
      - name: eDistinct
        type: u8
      - name: nLevel
        type: u8
      - name: iTop
        type: int
      - name: iContinue
        type: int
      - name: iBreak
        type: int
      - name: savedNQueryLoop
        type: int
      - name: aiCurOnePass[2]
        type: int
      - name: sMaskSet
        type: WhereMaskSet
      - name: sWC
        type: WhereClause
      - name: a[1]
        type: WhereLevel
      item_type: struct
      name: WhereInfo
      pos:
        line_end: 117333
        line_start: 117310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pLimit'
        type: Expr
      - name: '*pOffset'
        type: Expr
      item_type: struct
      name: LimitVal
      pos:
        line_end: 124719
        line_start: 124716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eOperator
        type: Token
      - name: bNot
        type: int
      item_type: struct
      name: LikeOp
      pos:
        line_end: 124728
        line_start: 124725
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: a
        type: int
      - name: '* b'
        type: IdList
      item_type: struct
      name: TrigEvent
      pos:
        line_end: 124739
        line_start: 124739
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: type
        type: int
      - name: key
        type: Token
      item_type: struct
      name: AttachKey
      pos:
        line_end: 124744
        line_start: 124744
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: stateno
        type: YYACTIONTYPE
      - name: major
        type: YYCODETYPE
      - name: minor
        type: YYMINORTYPE
      item_type: struct
      name: yyStackEntry
      pos:
        line_end: 125554
        line_start: 125548
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: yyidx
        type: int
      - name: yyerrcnt
        type: int
      item_type: struct
      name: yyParser
      pos:
        line_end: 125572
        line_start: 125559
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: lhs
        type: YYCODETYPE
      - name: nrhs
        type: unsigned char
      item_type: struct
      name: "yyRuleInfo[] = {\n  { 144, 1 },\n  { 145, 2 },\n  { 145, 1 },\n  { 146,
        1 },\n  { 146, 3 },\n  { 147, 0 },\n  { 147, 1 },\n  { 147, 3 },\n  { 148,
        1 },\n  { 149, 3 },\n  { 151, 0 },\n  { 151, 1 },\n  { 151, 2 },\n  { 150,
        0 },\n  { 150, 1 },\n  { 150, 1 },\n  { 150, 1 },\n  { 149, 2 },\n  { 149,
        2 },\n  { 149, 2 },\n  { 153, 1 },\n  { 153, 0 },\n  { 149, 2 },\n  { 149,
        3 },\n  { 149, 5 },\n  { 149, 2 },\n  { 154, 6 },\n  { 156, 1 },\n  { 158,
        0 },\n  { 158, 3 },\n  { 157, 1 },\n  { 157, 0 },\n  { 155, 5 },\n  { 155,
        2 },\n  { 162, 0 },\n  { 162, 2 },\n  { 160, 3 },\n  { 160, 1 },\n  { 164,
        3 },\n  { 165, 1 },\n  { 152, 1 },\n  { 152, 1 },\n  { 152, 1 },\n  { 166,
        0 },\n  { 166, 1 },\n  { 168, 1 },\n  { 168, 4 },\n  { 168, 6 },\n  { 169,
        1 },\n  { 169, 2 },\n  { 170, 1 },\n  { 170, 1 },\n  { 167, 2 },\n  { 167,
        0 },\n  { 173, 2 },\n  { 173, 2 },\n  { 173, 4 },\n  { 173, 3 },\n  { 173,
        3 },\n  { 173, 2 },\n  { 173, 2 },\n  { 173, 3 },\n  { 173, 5 },\n  { 173,
        2 },\n  { 173, 4 },\n  { 173, 4 },\n  { 173, 1 },\n  { 173, 2 },\n  { 178,
        0 },\n  { 178, 1 },\n  { 180, 0 },\n  { 180, 2 },\n  { 182, 2 },\n  { 182,
        3 },\n  { 182, 3 },\n  { 182, 3 },\n  { 183, 2 },\n  { 183, 2 },\n  { 183,
        1 },\n  { 183, 1 },\n  { 183, 2 },\n  { 181, 3 },\n  { 181, 2 },\n  { 184,
        0 },\n  { 184, 2 },\n  { 184, 2 },\n  { 161, 0 },\n  { 161, 2 },\n  { 185,
        3 },\n  { 185, 1 },\n  { 186, 1 },\n  { 186, 0 },\n  { 187, 2 },\n  { 187,
        7 },\n  { 187, 5 },\n  { 187, 5 },\n  { 187, 10 },\n  { 189, 0 },\n  { 189,
        1 },\n  { 176, 0 },\n  { 176, 3 },\n  { 190, 0 },\n  { 190, 2 },\n  { 191,
        1 },\n  { 191, 1 },\n  { 191, 1 },\n  { 149, 4 },\n  { 193, 2 },\n  { 193,
        0 },\n  { 149, 8 },\n  { 149, 4 },\n  { 149, 1 },\n  { 163, 2 },\n  { 195,
        1 },\n  { 195, 3 },\n  { 198, 1 },\n  { 198, 2 },\n  { 198, 1 },\n  { 196,
        9 },\n  { 196, 1 },\n  { 207, 4 },\n  { 207, 5 },\n  { 199, 1 },\n  { 199,
        1 },\n  { 199, 0 },\n  { 210, 2 },\n  { 210, 0 },\n  { 200, 3 },\n  { 200,
        2 },\n  { 200, 4 },\n  { 211, 2 },\n  { 211, 1 },\n  { 211, 0 },\n  { 201,
        0 },\n  { 201, 2 },\n  { 213, 2 },\n  { 213, 0 },\n  { 212, 7 },\n  { 212,
        7 },\n  { 212, 7 },\n  { 159, 0 },\n  { 159, 2 },\n  { 194, 2 },\n  { 214,
        1 },\n  { 214, 2 },\n  { 214, 3 },\n  { 214, 4 },\n  { 216, 2 },\n  { 216,
        0 },\n  { 215, 0 },\n  { 215, 3 },\n  { 215, 2 },\n  { 217, 4 },\n  { 217,
        0 },\n  { 205, 0 },\n  { 205, 3 },\n  { 220, 4 },\n  { 220, 2 },\n  { 177,
        1 },\n  { 177, 1 },\n  { 177, 0 },\n  { 203, 0 },\n  { 203, 3 },\n  { 204,
        0 },\n  { 204, 2 },\n  { 206, 0 },\n  { 206, 2 },\n  { 206, 4 },\n  { 206,
        4 },\n  { 149, 6 },\n  { 202, 0 },\n  { 202, 2 },\n  { 149, 8 },\n  { 221,
        5 },\n  { 221, 3 },\n  { 149, 6 },\n  { 149, 7 },\n  { 222, 2 },\n  { 222,
        1 },\n  { 223, 0 },\n  { 223, 3 },\n  { 219, 3 },\n  { 219, 1 },\n  { 175,
        1 },\n  { 175, 3 },\n  { 174, 1 },\n  { 175, 1 },\n  { 175, 1 },\n  { 175,
        3 },\n  { 175, 5 },\n  { 174, 1 },\n  { 174, 1 },\n  { 175, 1 },\n  { 175,
        3 },\n  { 175, 6 },\n  { 175, 5 },\n  { 175, 4 },\n  { 174, 1 },\n  { 175,
        3 },\n  { 175, 3 },\n  { 175, 3 },\n  { 175, 3 },\n  { 175, 3 },\n  { 175,
        3 },\n  { 175, 3 },\n  { 175, 3 },\n  { 224, 1 },\n  { 224, 2 },\n  { 175,
        3 },\n  { 175, 5 },\n  { 175, 2 },\n  { 175, 3 },\n  { 175, 3 },\n  { 175,
        4 },\n  { 175, 2 },\n  { 175, 2 },\n  { 175, 2 },\n  { 175, 2 },\n  { 225,
        1 },\n  { 225, 2 },\n  { 175, 5 },\n  { 226, 1 },\n  { 226, 2 },\n  { 175,
        5 },\n  { 175, 3 },\n  { 175, 5 },\n  { 175, 4 },\n  { 175, 4 },\n  { 175,
        5 },\n  { 228, 5 },\n  { 228, 4 },\n  { 229, 2 },\n  { 229, 0 },\n  { 227,
        1 },\n  { 227, 0 },\n  { 209, 1 },\n  { 209, 0 },\n  { 208, 3 },\n  { 208,
        1 },\n  { 149, 12 },\n  { 230, 1 },\n  { 230, 0 },\n  { 179, 0 },\n  { 179,
        3 },\n  { 188, 5 },\n  { 188, 3 },\n  { 231, 0 },\n  { 231, 2 },\n  { 149,
        4 },\n  { 149, 1 },\n  { 149, 2 },\n  { 149, 3 },\n  { 149, 5 },\n  { 149,
        6 },\n  { 149, 5 },\n  { 149, 6 },\n  { 232, 1 },\n  { 232, 1 },\n  { 232,
        1 },\n  { 232, 1 },\n  { 232, 1 },\n  { 171, 2 },\n  { 171, 1 },\n  { 172,
        2 },\n  { 149, 5 },\n  { 233, 11 },\n  { 235, 1 },\n  { 235, 1 },\n  { 235,
        2 },\n  { 235, 0 },\n  { 236, 1 },\n  { 236, 1 },\n  { 236, 3 },\n  { 237,
        0 },\n  { 237, 3 },\n  { 238, 0 },\n  { 238, 2 },\n  { 234, 3 },\n  { 234,
        2 },\n  { 240, 1 },\n  { 240, 3 },\n  { 241, 0 },\n  { 241, 3 },\n  { 241,
        2 },\n  { 239, 7 },\n  { 239, 5 },\n  { 239, 5 },\n  { 239, 1 },\n  { 175,
        4 },\n  { 175, 6 },\n  { 192, 1 },\n  { 192, 1 },\n  { 192, 1 },\n  { 149,
        4 },\n  { 149, 6 },\n  { 149, 3 },\n  { 243, 0 },\n  { 243, 2 },\n  { 242,
        1 },\n  { 242, 0 },\n  { 149, 1 },\n  { 149, 3 },\n  { 149, 1 },\n  { 149,
        3 },\n  { 149, 6 },\n  { 149, 6 },\n  { 244, 1 },\n  { 245, 0 },\n  { 245,
        1 },\n  { 149, 1 },\n  { 149, 4 },\n  { 246, 8 },\n  { 247, 1 },\n  { 247,
        3 },\n  { 248, 0 },\n  { 248, 2 },\n  { 249, 1 },\n  { 249, 3 },\n  { 250,
        1 },\n  { 251, 0 },\n  { 251, 4 },\n  { 251, 2 },\n  { 197, 0 },\n  { 197,
        2 },\n  { 197, 3 },\n  { 252, 6 },\n  { 252, 8 },\n}"
      pos:
        line_end: 126400
        line_start: 126397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: op
        type: int
      - name: mask
        type: u32
      item_type: struct
      name: "aFlagOp[] = {\n        { SQLITE_DBCONFIG_ENABLE_FKEY,    SQLITE_ForeignKeys
        \   },\n        { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger  },\n
        \     }"
      pos:
        line_end: 130216
        line_start: 130213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*z'
        type: char
      - name: mode
        type: int
      item_type: struct
      name: OpenMode
      pos:
        line_end: 132009
        line_start: 132006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iVersion
        type: int
      - name: "(*xCreate)(\n    int argc,                           /* Size of argv
          array */\n    const char *const*argv,             /* Tokenizer argument
          strings */\n    sqlite3_tokenizer **ppTokenizer     /* OUT: Created tokenizer
          */\n  )"
        type: int
      - name: (*xDestroy)(sqlite3_tokenizer *pTokenizer)
        type: int
      - name: "(*xOpen)(\n    sqlite3_tokenizer *pTokenizer,       /* Tokenizer object
          */\n    const char *pInput, int nBytes,      /* Input buffer */\n    sqlite3_tokenizer_cursor
          **ppCursor  /* OUT: Created tokenizer cursor */\n  )"
        type: int
      - name: (*xClose)(sqlite3_tokenizer_cursor *pCursor)
        type: int
      - name: "(*xNext)(\n    sqlite3_tokenizer_cursor *pCursor,   /* Tokenizer cursor
          */\n    const char **ppToken, int *pnBytes,  /* OUT: Normalized text for
          token */\n    int *piStartOffset,  /* OUT: Byte offset of token in input
          buffer */\n    int *piEndOffset,    /* OUT: Byte offset of end of token
          in input buffer */\n    int *piPosition      /* OUT: Number of tokens returned
          before this one */\n  )"
        type: int
      - name: (*xLanguageid)(sqlite3_tokenizer_cursor *pCsr, int iLangid)
        type: int
      item_type: struct
      name: sqlite3_tokenizer_module
      pos:
        line_end: 134063
        line_start: 133970
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pModule'
        type: sqlite3_tokenizer_module
      item_type: struct
      name: sqlite3_tokenizer
      pos:
        line_end: 134068
        line_start: 134065
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTokenizer'
        type: sqlite3_tokenizer
      item_type: struct
      name: sqlite3_tokenizer_cursor
      pos:
        line_end: 134073
        line_start: 134070
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: keyClass
        type: char
      - name: copyKey
        type: char
      - name: count
        type: int
      - name: '*first'
        type: Fts3HashElem
      - name: htsize
        type: int
      - name: '*ht'
        type: "struct _fts3ht {        /* the hash table */\n    int count;               /*
          Number of entries with this hash */\n    Fts3HashElem *chain;     /* Pointer
          to first entry with this hash */\n  }"
      item_type: struct
      name: Fts3Hash
      pos:
        line_end: 134126
        line_start: 134116
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: count
        type: int
      - name: '*chain'
        type: Fts3HashElem
      item_type: struct
      name: _fts3ht
      pos:
        line_end: 134125
        line_start: 134122
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*next'
        type: Fts3HashElem
      - name: '*data'
        type: void
      - name: '*pKey'
        type: void
      - name: nKey
        type: int
      item_type: struct
      name: Fts3HashElem
      pos:
        line_end: 134138
        line_start: 134134
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab
      - name: '*db'
        type: sqlite3
      - name: '*zDb'
        type: char
      - name: '*zName'
        type: char
      - name: nColumn
        type: int
      - name: '**azColumn'
        type: char
      - name: '*abNotindexed'
        type: u8
      - name: '*pTokenizer'
        type: sqlite3_tokenizer
      - name: '*zContentTbl'
        type: char
      - name: '*zLanguageid'
        type: char
      - name: nAutoincrmerge
        type: int
      - name: nLeafAdd
        type: u32
      - name: '*aStmt[40]'
        type: sqlite3_stmt
      - name: '*zReadExprlist'
        type: char
      - name: '*zWriteExprlist'
        type: char
      - name: nNodeSize
        type: int
      - name: bFts4
        type: u8
      - name: bHasStat
        type: u8
      - name: bHasDocsize
        type: u8
      - name: bDescIdx
        type: u8
      - name: bIgnoreSavepoint
        type: u8
      - name: nPgsz
        type: int
      - name: '*zSegmentsTbl'
        type: char
      - name: '*pSegments'
        type: sqlite3_blob
      - name: nIndex
        type: int
      - name: '*aIndex'
        type: "struct Fts3Index {\n    int nPrefix;                  /* Prefix length
          (0 for main terms index) */\n    Fts3Hash hPending;            /* Pending
          terms table for this index */\n  }"
      - name: nMaxPendingData
        type: int
      - name: nPendingData
        type: int
      - name: iPrevDocid
        type: sqlite_int64
      - name: iPrevLangid
        type: int
      item_type: struct
      name: Fts3Table
      pos:
        line_end: 134442
        line_start: 134368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nPrefix
        type: int
      - name: hPending
        type: Fts3Hash
      item_type: struct
      name: Fts3Index
      pos:
        line_end: 134421
        line_start: 134418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab_cursor
      - name: eSearch
        type: i16
      - name: isEof
        type: u8
      - name: isRequireSeek
        type: u8
      - name: '*pStmt'
        type: sqlite3_stmt
      - name: '*pExpr'
        type: Fts3Expr
      - name: iLangid
        type: int
      - name: nPhrase
        type: int
      - name: '*pDeferred'
        type: Fts3DeferredToken
      - name: iPrevId
        type: sqlite3_int64
      - name: '*pNextId'
        type: char
      - name: '*aDoclist'
        type: char
      - name: nDoclist
        type: int
      - name: bDesc
        type: u8
      - name: eEvalmode
        type: int
      - name: nRowAvg
        type: int
      - name: nDoc
        type: sqlite3_int64
      - name: iMinDocid
        type: i64
      - name: iMaxDocid
        type: i64
      - name: isMatchinfoNeeded
        type: int
      - name: '*pMIBuffer'
        type: MatchinfoBuffer
      item_type: struct
      name: Fts3Cursor
      pos:
        line_end: 134471
        line_start: 134449
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*aAll'
        type: char
      - name: nAll
        type: int
      - name: '*pNextDocid'
        type: char
      - name: iDocid
        type: sqlite3_int64
      - name: bFreeList
        type: int
      - name: '*pList'
        type: char
      - name: nList
        type: int
      item_type: struct
      name: Fts3Doclist
      pos:
        line_end: 134515
        line_start: 134506
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*z'
        type: char
      - name: n
        type: int
      - name: isPrefix
        type: int
      - name: bFirst
        type: int
      - name: '*pDeferred'
        type: Fts3DeferredToken
      - name: '*pSegcsr'
        type: Fts3MultiSegReader
      item_type: struct
      name: Fts3PhraseToken
      pos:
        line_end: 134534
        line_start: 134523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: doclist
        type: Fts3Doclist
      - name: bIncr
        type: int
      - name: iDoclistToken
        type: int
      - name: '*pOrPoslist'
        type: char
      - name: iOrDocid
        type: i64
      - name: nToken
        type: int
      - name: iColumn
        type: int
      - name: aToken[1]
        type: Fts3PhraseToken
      item_type: struct
      name: Fts3Phrase
      pos:
        line_end: 134553
        line_start: 134536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eType
        type: int
      - name: nNear
        type: int
      - name: '*pParent'
        type: Fts3Expr
      - name: '*pLeft'
        type: Fts3Expr
      - name: '*pRight'
        type: Fts3Expr
      - name: '*pPhrase'
        type: Fts3Phrase
      - name: iDocid
        type: sqlite3_int64
      - name: bEof
        type: u8
      - name: bStart
        type: u8
      - name: bDeferred
        type: u8
      - name: iPhrase
        type: int
      - name: '*aMI'
        type: u32
      item_type: struct
      name: Fts3Expr
      pos:
        line_end: 134593
        line_start: 134576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zTerm'
        type: char
      - name: nTerm
        type: int
      - name: iCol
        type: int
      - name: flags
        type: int
      item_type: struct
      name: Fts3SegFilter
      pos:
        line_end: 134671
        line_start: 134666
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '**apSegment'
        type: Fts3SegReader
      - name: nSegment
        type: int
      - name: nAdvance
        type: int
      - name: '*pFilter'
        type: Fts3SegFilter
      - name: '*aBuffer'
        type: char
      - name: nBuffer
        type: int
      - name: iColFilter
        type: int
      - name: bRestart
        type: int
      - name: nCost
        type: int
      - name: bLookup
        type: int
      - name: '*zTerm'
        type: char
      - name: nTerm
        type: int
      - name: '*aDoclist'
        type: char
      - name: nDoclist
        type: int
      item_type: struct
      name: Fts3MultiSegReader
      pos:
        line_end: 134694
        line_start: 134673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zOpt'
        type: char
      - name: nOpt
        type: int
      item_type: struct
      name: Fts4Option
      pos:
        line_end: 135680
        line_start: 135677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*aaOutput[16]'
        type: char
      - name: anOutput[16]
        type: int
      item_type: struct
      name: TermSelect
      pos:
        line_end: 136821
        line_start: 136818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: (*xFunc)(sqlite3_context*,int,sqlite3_value**)
        type: void
      item_type: struct
      name: Overloaded
      pos:
        line_end: 138149
        line_start: 138146
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: bIgnore
        type: int
      - name: iDocid
        type: sqlite3_int64
      - name: '*pList'
        type: char
      - name: nList
        type: int
      item_type: struct
      name: TokenDoclist
      pos:
        line_end: 138903
        line_start: 138898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pPhrase'
        type: Fts3Phrase
      - name: iToken
        type: int
      - name: '*pToken'
        type: Fts3PhraseToken
      - name: '*pRoot'
        type: Fts3Expr
      - name: nOvfl
        type: int
      - name: iCol
        type: int
      item_type: struct
      name: Fts3TokenAndCost
      pos:
        line_end: 139149
        line_start: 139142
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab
      - name: '*pFts3Tab'
        type: Fts3Table
      item_type: struct
      name: Fts3auxTable
      pos:
        line_end: 140418
        line_start: 140415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab_cursor
      - name: csr
        type: Fts3MultiSegReader
      - name: filter
        type: Fts3SegFilter
      - name: '*zStop'
        type: char
      - name: nStop
        type: int
      - name: iLangid
        type: int
      - name: isEof
        type: int
      - name: iRowid
        type: sqlite3_int64
      - name: iCol
        type: int
      - name: nStat
        type: int
      - name: '*aStat'
        type: "struct Fts3auxColstats {\n    sqlite3_int64 nDoc;           /* 'documents'
          values for current csr row */\n    sqlite3_int64 nOcc;           /* 'occurrences'
          values for current csr row */\n  }"
      item_type: struct
      name: Fts3auxCursor
      pos:
        line_end: 140436
        line_start: 140420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nDoc
        type: sqlite3_int64
      - name: nOcc
        type: sqlite3_int64
      item_type: struct
      name: Fts3auxColstats
      pos:
        line_end: 140435
        line_start: 140432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTokenizer'
        type: sqlite3_tokenizer
      - name: iLangid
        type: int
      - name: '**azCol'
        type: char
      - name: bFts4
        type: int
      - name: nCol
        type: int
      - name: iDefaultCol
        type: int
      - name: isNot
        type: int
      - name: '*pCtx'
        type: sqlite3_context
      - name: nNest
        type: int
      item_type: struct
      name: ParseContext
      pos:
        line_end: 141048
        line_start: 141038
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*z'
        type: char
      - name: n
        type: unsigned char
      - name: parenOnly
        type: unsigned char
      - name: eType
        type: unsigned char
      item_type: struct
      name: Fts3Keyword
      pos:
        line_end: 141349
        line_start: 141344
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer
      item_type: struct
      name: porter_tokenizer
      pos:
        line_end: 142657
        line_start: 142655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer_cursor
      - name: '*zInput'
        type: char
      - name: nInput
        type: int
      - name: iOffset
        type: int
      - name: iToken
        type: int
      - name: '*zToken'
        type: char
      - name: nAllocated
        type: int
      item_type: struct
      name: porter_tokenizer_cursor
      pos:
        line_end: 142670
        line_start: 142662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer
      - name: delim[128]
        type: char
      item_type: struct
      name: simple_tokenizer
      pos:
        line_end: 143817
        line_start: 143814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer_cursor
      - name: '*pInput'
        type: char
      - name: nBytes
        type: int
      - name: iOffset
        type: int
      - name: iToken
        type: int
      - name: '*pToken'
        type: char
      - name: nTokenAllocated
        type: int
      item_type: struct
      name: simple_tokenizer_cursor
      pos:
        line_end: 143827
        line_start: 143819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab
      - name: '*pMod'
        type: sqlite3_tokenizer_module
      - name: '*pTok'
        type: sqlite3_tokenizer
      item_type: struct
      name: Fts3tokTable
      pos:
        line_end: 144073
        line_start: 144069
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab_cursor
      - name: '*zInput'
        type: char
      - name: '*pCsr'
        type: sqlite3_tokenizer_cursor
      - name: iRowid
        type: int
      - name: '*zToken'
        type: char
      - name: nToken
        type: int
      - name: iStart
        type: int
      - name: iEnd
        type: int
      - name: iPos
        type: int
      item_type: struct
      name: Fts3tokCursor
      pos:
        line_end: 144088
        line_start: 144078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nData
        type: int
      - name: '*aData'
        type: char
      - name: nSpace
        type: int
      - name: iLastDocid
        type: sqlite3_int64
      - name: iLastCol
        type: sqlite3_int64
      - name: iLastPos
        type: sqlite3_int64
      item_type: struct
      name: PendingList
      pos:
        line_end: 144580
        line_start: 144573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pToken'
        type: Fts3PhraseToken
      - name: iCol
        type: int
      - name: '*pNext'
        type: Fts3DeferredToken
      - name: '*pList'
        type: PendingList
      item_type: struct
      name: Fts3DeferredToken
      pos:
        line_end: 144591
        line_start: 144586
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iIdx
        type: int
      - name: bLookup
        type: u8
      - name: rootOnly
        type: u8
      - name: iStartBlock
        type: sqlite3_int64
      - name: iLeafEndBlock
        type: sqlite3_int64
      - name: iEndBlock
        type: sqlite3_int64
      - name: iCurrentBlock
        type: sqlite3_int64
      - name: '*aNode'
        type: char
      - name: nNode
        type: int
      - name: nPopulate
        type: int
      - name: '*pBlob'
        type: sqlite3_blob
      - name: '**ppNextElem'
        type: Fts3HashElem
      - name: nTerm
        type: int
      - name: '*zTerm'
        type: char
      - name: nTermAlloc
        type: int
      - name: '*aDoclist'
        type: char
      - name: nDoclist
        type: int
      - name: '*pOffsetList'
        type: char
      - name: nOffsetList
        type: int
      - name: iDocid
        type: sqlite3_int64
      item_type: struct
      name: Fts3SegReader
      pos:
        line_end: 144644
        line_start: 144610
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTree'
        type: SegmentNode
      - name: iFirst
        type: sqlite3_int64
      - name: iFree
        type: sqlite3_int64
      - name: '*zTerm'
        type: char
      - name: nTerm
        type: int
      - name: nMalloc
        type: int
      - name: '*zMalloc'
        type: char
      - name: nSize
        type: int
      - name: nData
        type: int
      - name: '*aData'
        type: char
      - name: nLeafData
        type: i64
      item_type: struct
      name: SegmentWriter
      pos:
        line_end: 144670
        line_start: 144658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParent'
        type: SegmentNode
      - name: '*pRight'
        type: SegmentNode
      - name: '*pLeftmost'
        type: SegmentNode
      - name: nEntry
        type: int
      - name: '*zTerm'
        type: char
      - name: nTerm
        type: int
      - name: nMalloc
        type: int
      - name: '*zMalloc'
        type: char
      - name: nData
        type: int
      - name: '*aData'
        type: char
      item_type: struct
      name: SegmentNode
      pos:
        line_end: 144701
        line_start: 144690
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*a'
        type: char
      - name: n
        type: int
      - name: nAlloc
        type: int
      item_type: struct
      name: Blob
      pos:
        line_end: 148092
        line_start: 148088
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iBlock
        type: sqlite3_int64
      - name: key
        type: Blob
      - name: block
        type: Blob
      item_type: struct
      name: NodeWriter
      pos:
        line_end: 148102
        line_start: 148098
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nLeafEst
        type: int
      - name: nWork
        type: int
      - name: iAbsLevel
        type: sqlite3_int64
      - name: iIdx
        type: int
      - name: iStart
        type: sqlite3_int64
      - name: iEnd
        type: sqlite3_int64
      - name: nLeafData
        type: sqlite3_int64
      - name: bNoLeafData
        type: u8
      - name: aNodeWriter[FTS_MAX_APPENDABLE_HEIGHT]
        type: NodeWriter
      item_type: struct
      name: IncrmergeWriter
      pos:
        line_end: 148118
        line_start: 148108
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*aNode'
        type: char
      - name: nNode
        type: int
      - name: iOff
        type: int
      - name: iChild
        type: sqlite3_int64
      - name: term
        type: Blob
      - name: '*aDoclist'
        type: char
      - name: nDoclist
        type: int
      item_type: struct
      name: NodeReader
      pos:
        line_end: 148138
        line_start: 148128
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pCsr'
        type: Fts3Cursor
      - name: nPhrase
        type: int
      - name: nToken
        type: int
      item_type: struct
      name: LoadDoclistCtx
      pos:
        line_end: 150188
        line_start: 150184
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pCsr'
        type: Fts3Cursor
      - name: iCol
        type: int
      - name: nSnippet
        type: int
      - name: nPhrase
        type: int
      - name: '*aPhrase'
        type: SnippetPhrase
      - name: iCurrent
        type: int
      item_type: struct
      name: SnippetIter
      pos:
        line_end: 150205
        line_start: 150198
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nToken
        type: int
      - name: '*pList'
        type: char
      - name: iHead
        type: int
      - name: '*pHead'
        type: char
      - name: iTail
        type: int
      - name: '*pTail'
        type: char
      item_type: struct
      name: SnippetPhrase
      pos:
        line_end: 150214
        line_start: 150207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iCol
        type: int
      - name: iPos
        type: int
      - name: covered
        type: u64
      - name: hlmask
        type: u64
      item_type: struct
      name: SnippetFragment
      pos:
        line_end: 150221
        line_start: 150216
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pCursor'
        type: Fts3Cursor
      - name: nCol
        type: int
      - name: nPhrase
        type: int
      - name: nDoc
        type: sqlite3_int64
      - name: flag
        type: char
      - name: '*aMatchinfo'
        type: u32
      item_type: struct
      name: MatchInfo
      pos:
        line_end: 150235
        line_start: 150228
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: aRef[3]
        type: u8
      - name: nElem
        type: int
      - name: bGlobal
        type: int
      - name: '*zMatchinfo'
        type: char
      - name: aMatchinfo[1]
        type: u32
      item_type: struct
      name: MatchinfoBuffer
      pos:
        line_end: 150248
        line_start: 150242
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*z'
        type: char
      - name: n
        type: int
      - name: nAlloc
        type: int
      item_type: struct
      name: StrBuffer
      pos:
        line_end: 150261
        line_start: 150257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pExpr'
        type: Fts3Expr
      - name: iPosOffset
        type: int
      - name: '*pRead'
        type: char
      - name: iPos
        type: int
      item_type: struct
      name: LcsIterator
      pos:
        line_end: 151204
        line_start: 151199
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pList'
        type: char
      - name: iPos
        type: int
      - name: iOff
        type: int
      item_type: struct
      name: TermOffset
      pos:
        line_end: 151642
        line_start: 151638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pCsr'
        type: Fts3Cursor
      - name: iCol
        type: int
      - name: iTerm
        type: int
      - name: iDocid
        type: sqlite3_int64
      - name: '*aTerm'
        type: TermOffset
      item_type: struct
      name: TermOffsetCtx
      pos:
        line_end: 151650
        line_start: 151644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer
      - name: bRemoveDiacritic
        type: int
      - name: nException
        type: int
      - name: '*aiException'
        type: int
      item_type: struct
      name: unicode_tokenizer
      pos:
        line_end: 151937
        line_start: 151932
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer_cursor
      - name: '*aInput'
        type: unsigned char
      - name: nInput
        type: int
      - name: iOff
        type: int
      - name: iToken
        type: int
      - name: '*zToken'
        type: char
      - name: nAlloc
        type: int
      item_type: struct
      name: unicode_cursor
      pos:
        line_end: 151947
        line_start: 151939
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iCode
        type: unsigned short
      - name: flags
        type: unsigned char
      - name: nRange
        type: unsigned char
      item_type: struct
      name: TableEntry
      pos:
        line_end: 152498
        line_start: 152494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab
      - name: '*db'
        type: sqlite3
      - name: iNodeSize
        type: int
      - name: nDim
        type: u8
      - name: eCoordType
        type: u8
      - name: nBytesPerCell
        type: u8
      - name: iDepth
        type: int
      - name: '*zDb'
        type: char
      - name: '*zName'
        type: char
      - name: nBusy
        type: int
      - name: nRowEst
        type: i64
      - name: '*pDeleted'
        type: RtreeNode
      - name: iReinsertHeight
        type: int
      - name: '*pReadNode'
        type: sqlite3_stmt
      - name: '*pWriteNode'
        type: sqlite3_stmt
      - name: '*pDeleteNode'
        type: sqlite3_stmt
      - name: '*pReadRowid'
        type: sqlite3_stmt
      - name: '*pWriteRowid'
        type: sqlite3_stmt
      - name: '*pDeleteRowid'
        type: sqlite3_stmt
      - name: '*pReadParent'
        type: sqlite3_stmt
      - name: '*pWriteParent'
        type: sqlite3_stmt
      - name: '*pDeleteParent'
        type: sqlite3_stmt
      - name: '*aHash[HASHSIZE]'
        type: RtreeNode
      item_type: struct
      name: Rtree
      pos:
        line_end: 152764
        line_start: 152727
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: rScore
        type: RtreeDValue
      - name: id
        type: sqlite3_int64
      - name: iLevel
        type: u8
      - name: eWithin
        type: u8
      - name: iCell
        type: u8
      item_type: struct
      name: RtreeSearchPoint
      pos:
        line_end: 152800
        line_start: 152794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab_cursor
      - name: atEOF
        type: u8
      - name: bPoint
        type: u8
      - name: iStrategy
        type: int
      - name: nConstraint
        type: int
      - name: '*aConstraint'
        type: RtreeConstraint
      - name: nPointAlloc
        type: int
      - name: nPoint
        type: int
      - name: mxLevel
        type: int
      - name: '*aPoint'
        type: RtreeSearchPoint
      - name: sPoint
        type: RtreeSearchPoint
      - name: '*aNode[RTREE_CACHE_SZ]'
        type: RtreeNode
      - name: anQueue[RTREE_MAX_DEPTH+1]
        type: u32
      item_type: struct
      name: RtreeCursor
      pos:
        line_end: 152849
        line_start: 152835
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iCoord
        type: int
      - name: op
        type: int
      - name: u
        type: "union {\n    RtreeDValue rValue;             /* Constraint value. */\n
          \   int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*);\n    int
          (*xQueryFunc)(sqlite3_rtree_query_info*);\n  }"
      - name: '*pInfo'
        type: sqlite3_rtree_query_info
      item_type: struct
      name: RtreeConstraint
      pos:
        line_end: 152892
        line_start: 152883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pParent'
        type: RtreeNode
      - name: iNode
        type: i64
      - name: nRef
        type: int
      - name: isDirty
        type: int
      - name: '*zData'
        type: u8
      - name: '*pNext'
        type: RtreeNode
      item_type: struct
      name: RtreeNode
      pos:
        line_end: 152914
        line_start: 152907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iRowid
        type: i64
      - name: aCoord[RTREE_MAX_DIMENSIONS*2]
        type: RtreeCoord
      item_type: struct
      name: RtreeCell
      pos:
        line_end: 152925
        line_start: 152922
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: (*xGeom)(sqlite3_rtree_geometry*, int, RtreeDValue*, int*)
        type: int
      - name: (*xQueryFunc)(sqlite3_rtree_query_info*)
        type: int
      - name: (*xDestructor)(void*)
        type: void
      - name: '*pContext'
        type: void
      item_type: struct
      name: RtreeGeomCallback
      pos:
        line_end: 152947
        line_start: 152942
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: magic
        type: u32
      - name: cb
        type: RtreeGeomCallback
      - name: nParam
        type: int
      - name: '**apSqlParam'
        type: sqlite3_value
      - name: aParam[1]
        type: RtreeDValue
      item_type: struct
      name: RtreeMatchArg
      pos:
        line_end: 152969
        line_start: 152963
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zName'
        type: char
      - name: nArg
        type: int
      - name: enc
        type: int
      - name: '*pContext'
        type: void
      - name: (*xFunc)(sqlite3_context*,int,sqlite3_value**)
        type: void
      item_type: struct
      name: IcuScalar
      pos:
        line_end: 156586
        line_start: 156580
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer
      - name: '*zLocale'
        type: char
      item_type: struct
      name: IcuTokenizer
      pos:
        line_end: 156668
        line_start: 156665
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_tokenizer_cursor
      - name: '*pIter'
        type: UBreakIterator
      - name: nChar
        type: int
      - name: '*aChar'
        type: UChar
      - name: '*aOffset'
        type: int
      - name: nBuffer
        type: int
      - name: '*zBuffer'
        type: char
      - name: iToken
        type: int
      item_type: struct
      name: IcuCursor
      pos:
        line_end: 156682
        line_start: 156670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eStage
        type: int
      - name: '*zTbl'
        type: char
      - name: '*zIdx'
        type: char
      - name: iWalCksum
        type: i64
      - name: nRow
        type: int
      - name: nProgress
        type: i64
      - name: iCookie
        type: u32
      - name: iOalSz
        type: i64
      item_type: struct
      name: RbuState
      pos:
        line_end: 157525
        line_start: 157516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*zMask'
        type: char
      - name: '*pUpdate'
        type: sqlite3_stmt
      - name: '*pNext'
        type: RbuUpdateStmt
      item_type: struct
      name: RbuUpdateStmt
      pos:
        line_end: 157531
        line_start: 157527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: '*pTblIter'
        type: sqlite3_stmt
      - name: '*pIdxIter'
        type: sqlite3_stmt
      - name: nTblCol
        type: int
      - name: '**azTblCol'
        type: char
      - name: '**azTblType'
        type: char
      - name: '*aiSrcOrder'
        type: int
      - name: '*abTblPk'
        type: u8
      - name: '*abNotNull'
        type: u8
      - name: '*abIndexed'
        type: u8
      - name: eType
        type: int
      - name: bCleanup
        type: int
      - name: '*zTbl'
        type: char
      - name: '*zIdx'
        type: char
      - name: iTnum
        type: int
      - name: iPkTnum
        type: int
      - name: bUnique
        type: int
      - name: nCol
        type: int
      - name: '*pSelect'
        type: sqlite3_stmt
      - name: '*pInsert'
        type: sqlite3_stmt
      - name: '*pDelete'
        type: sqlite3_stmt
      - name: '*pTmpInsert'
        type: sqlite3_stmt
      - name: '*pRbuUpdate'
        type: RbuUpdateStmt
      item_type: struct
      name: RbuObjIter
      pos:
        line_end: 157578
        line_start: 157549
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iDbPage
        type: u32
      - name: iWalFrame
        type: u32
      item_type: struct
      name: RbuFrame
      pos:
        line_end: 157616
        line_start: 157613
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: eStage
        type: int
      - name: '*dbMain'
        type: sqlite3
      - name: '*dbRbu'
        type: sqlite3
      - name: '*zTarget'
        type: char
      - name: '*zRbu'
        type: char
      - name: '*zState'
        type: char
      - name: zStateDb[5]
        type: char
      - name: rc
        type: int
      - name: '*zErrmsg'
        type: char
      - name: nStep
        type: int
      - name: nProgress
        type: int
      - name: objiter
        type: RbuObjIter
      - name: '*zVfsName'
        type: char
      - name: '*pTargetFd'
        type: rbu_file
      - name: iOalSz
        type: i64
      - name: iMaxFrame
        type: u32
      - name: mLock
        type: u32
      - name: nFrame
        type: int
      - name: nFrameAlloc
        type: int
      - name: '*aFrame'
        type: RbuFrame
      - name: pgsz
        type: int
      - name: '*aBuf'
        type: u8
      - name: iWalCksum
        type: i64
      item_type: struct
      name: sqlite3rbu
      pos:
        line_end: 157649
        line_start: 157621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vfs
      - name: '*pRealVfs'
        type: sqlite3_vfs
      - name: '*mutex'
        type: sqlite3_mutex
      - name: '*pMain'
        type: rbu_file
      item_type: struct
      name: rbu_vfs
      pos:
        line_end: 157659
        line_start: 157654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_file
      - name: '*pReal'
        type: sqlite3_file
      - name: '*pRbuVfs'
        type: rbu_vfs
      - name: '*pRbu'
        type: sqlite3rbu
      - name: openFlags
        type: int
      - name: iCookie
        type: u32
      - name: iWriteVer
        type: u8
      - name: nShm
        type: int
      - name: '**apShm'
        type: char
      - name: '*zDel'
        type: char
      - name: '*zWal'
        type: char
      - name: '*pWalFd'
        type: rbu_file
      - name: '*pMainNext'
        type: rbu_file
      item_type: struct
      name: rbu_file
      pos:
        line_end: 157682
        line_start: 157665
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: nLocal
        type: int
      - name: iChildPg
        type: u32
      - name: nOvfl
        type: int
      - name: '*aOvfl'
        type: u32
      - name: nLastOvfl
        type: int
      - name: iOvfl
        type: int
      item_type: struct
      name: StatCell
      pos:
        line_end: 161073
        line_start: 161066
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: iPgno
        type: u32
      - name: '*pPg'
        type: DbPage
      - name: iCell
        type: int
      - name: '*zPath'
        type: char
      - name: flags
        type: u8
      - name: nCell
        type: int
      - name: nUnused
        type: int
      - name: '*aCell'
        type: StatCell
      - name: iRightChildPg
        type: u32
      - name: nMxPayload
        type: int
      item_type: struct
      name: StatPage
      pos:
        line_end: 161089
        line_start: 161075
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab_cursor
      - name: '*pStmt'
        type: sqlite3_stmt
      - name: isEof
        type: int
      - name: aPage[32]
        type: StatPage
      - name: iPage
        type: int
      - name: '*zName'
        type: char
      - name: '*zPath'
        type: char
      - name: iPageno
        type: u32
      - name: '*zPagetype'
        type: char
      - name: nCell
        type: int
      - name: nPayload
        type: int
      - name: nUnused
        type: int
      - name: nMxPayload
        type: int
      - name: iOffset
        type: i64
      - name: szPage
        type: int
      item_type: struct
      name: StatCursor
      pos:
        line_end: 161110
        line_start: 161091
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: base
        type: sqlite3_vtab
      - name: '*db'
        type: sqlite3
      - name: iDb
        type: int
      item_type: struct
      name: StatTable
      pos:
        line_end: 161116
        line_start: 161112
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    typedefs:
    - item_type: typedef
      name: sqlite3
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SQLITE_INT64_TYPE
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned SQLITE_INT64_TYPE
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: __int64
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned __int64
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: long long int
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned long long int
    - item_type: typedef
      name: sqlite3_int64
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite_int64
    - item_type: typedef
      name: sqlite3_uint64
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite_uint64
    - item_type: typedef
      name: (*sqlite3_callback)(void*,int,char**, char**)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: sqlite3_file
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_file
    - item_type: typedef
      name: sqlite3_io_methods
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_io_methods
    - item_type: typedef
      name: sqlite3_mutex
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_mutex
    - item_type: typedef
      name: sqlite3_vfs
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_vfs
    - item_type: typedef
      name: (*sqlite3_syscall_ptr)(void)
      pos:
        line_end: 1391
        line_start: 1391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: sqlite3_mem_methods
      pos:
        line_end: 1686
        line_start: 1686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_mem_methods
    - item_type: typedef
      name: sqlite3_stmt
      pos:
        line_end: 3318
        line_start: 3318
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_stmt
    - item_type: typedef
      name: sqlite3_value
      pos:
        line_end: 3642
        line_start: 3642
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Mem
    - item_type: typedef
      name: sqlite3_context
      pos:
        line_end: 3656
        line_start: 3656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_context
    - item_type: typedef
      name: (*sqlite3_destructor_type)(void*)
      pos:
        line_end: 4729
        line_start: 4729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: sqlite3_vtab
      pos:
        line_end: 5702
        line_start: 5702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_vtab
    - item_type: typedef
      name: sqlite3_index_info
      pos:
        line_end: 5703
        line_start: 5703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_index_info
    - item_type: typedef
      name: sqlite3_vtab_cursor
      pos:
        line_end: 5704
        line_start: 5704
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_vtab_cursor
    - item_type: typedef
      name: sqlite3_module
      pos:
        line_end: 5705
        line_start: 5705
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_module
    - item_type: typedef
      name: sqlite3_blob
      pos:
        line_end: 6004
        line_start: 6004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_blob
    - item_type: typedef
      name: sqlite3_mutex_methods
      pos:
        line_end: 6439
        line_start: 6439
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_mutex_methods
    - item_type: typedef
      name: sqlite3_pcache
      pos:
        line_end: 6950
        line_start: 6950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_pcache
    - item_type: typedef
      name: sqlite3_pcache_page
      pos:
        line_end: 6962
        line_start: 6962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_pcache_page
    - item_type: typedef
      name: sqlite3_pcache_methods2
      pos:
        line_end: 7127
        line_start: 7127
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_pcache_methods2
    - item_type: typedef
      name: sqlite3_pcache_methods
      pos:
        line_end: 7150
        line_start: 7150
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_pcache_methods
    - item_type: typedef
      name: sqlite3_backup
      pos:
        line_end: 7176
        line_start: 7176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_backup
    - item_type: typedef
      name: sqlite3_rtree_geometry
      pos:
        line_end: 7978
        line_start: 7978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_rtree_geometry
    - item_type: typedef
      name: sqlite3_rtree_query_info
      pos:
        line_end: 7979
        line_start: 7979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_rtree_query_info
    - item_type: typedef
      name: sqlite3_rtree_dbl
      pos:
        line_end: 7985
        line_start: 7985
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_int64
    - item_type: typedef
      name: sqlite3_rtree_dbl
      pos:
        line_end: 7987
        line_start: 7987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: double
    - item_type: typedef
      name: Hash
      pos:
        line_end: 8624
        line_start: 8624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Hash
    - item_type: typedef
      name: HashElem
      pos:
        line_end: 8625
        line_start: 8625
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: HashElem
    - item_type: typedef
      name: i64
      pos:
        line_end: 9039
        line_start: 9039
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite_int64
    - item_type: typedef
      name: u64
      pos:
        line_end: 9040
        line_start: 9040
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite_uint64
    - item_type: typedef
      name: u32
      pos:
        line_end: 9041
        line_start: 9041
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: UINT32_TYPE
    - item_type: typedef
      name: u16
      pos:
        line_end: 9042
        line_start: 9042
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: UINT16_TYPE
    - item_type: typedef
      name: i16
      pos:
        line_end: 9043
        line_start: 9043
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: INT16_TYPE
    - item_type: typedef
      name: u8
      pos:
        line_end: 9044
        line_start: 9044
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: UINT8_TYPE
    - item_type: typedef
      name: i8
      pos:
        line_end: 9045
        line_start: 9045
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: INT8_TYPE
    - item_type: typedef
      name: tRowcnt
      pos:
        line_end: 9062
        line_start: 9062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: u64
    - item_type: typedef
      name: tRowcnt
      pos:
        line_end: 9064
        line_start: 9064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: u32
    - item_type: typedef
      name: LogEst
      pos:
        line_end: 9090
        line_start: 9090
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: INT16_TYPE
    - item_type: typedef
      name: BusyHandler
      pos:
        line_end: 9256
        line_start: 9256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: BusyHandler
    - item_type: typedef
      name: AggInfo
      pos:
        line_end: 9350
        line_start: 9350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: AggInfo
    - item_type: typedef
      name: AuthContext
      pos:
        line_end: 9351
        line_start: 9351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: AuthContext
    - item_type: typedef
      name: AutoincInfo
      pos:
        line_end: 9352
        line_start: 9352
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: AutoincInfo
    - item_type: typedef
      name: Bitvec
      pos:
        line_end: 9353
        line_start: 9353
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Bitvec
    - item_type: typedef
      name: CollSeq
      pos:
        line_end: 9354
        line_start: 9354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: CollSeq
    - item_type: typedef
      name: Column
      pos:
        line_end: 9355
        line_start: 9355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Column
    - item_type: typedef
      name: Db
      pos:
        line_end: 9356
        line_start: 9356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Db
    - item_type: typedef
      name: Schema
      pos:
        line_end: 9357
        line_start: 9357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Schema
    - item_type: typedef
      name: Expr
      pos:
        line_end: 9358
        line_start: 9358
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Expr
    - item_type: typedef
      name: ExprList
      pos:
        line_end: 9359
        line_start: 9359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: ExprList
    - item_type: typedef
      name: ExprSpan
      pos:
        line_end: 9360
        line_start: 9360
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: ExprSpan
    - item_type: typedef
      name: FKey
      pos:
        line_end: 9361
        line_start: 9361
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FKey
    - item_type: typedef
      name: FuncDestructor
      pos:
        line_end: 9362
        line_start: 9362
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FuncDestructor
    - item_type: typedef
      name: FuncDef
      pos:
        line_end: 9363
        line_start: 9363
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FuncDef
    - item_type: typedef
      name: FuncDefHash
      pos:
        line_end: 9364
        line_start: 9364
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FuncDefHash
    - item_type: typedef
      name: IdList
      pos:
        line_end: 9365
        line_start: 9365
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IdList
    - item_type: typedef
      name: Index
      pos:
        line_end: 9366
        line_start: 9366
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Index
    - item_type: typedef
      name: IndexSample
      pos:
        line_end: 9367
        line_start: 9367
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IndexSample
    - item_type: typedef
      name: KeyClass
      pos:
        line_end: 9368
        line_start: 9368
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: KeyClass
    - item_type: typedef
      name: KeyInfo
      pos:
        line_end: 9369
        line_start: 9369
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: KeyInfo
    - item_type: typedef
      name: Lookaside
      pos:
        line_end: 9370
        line_start: 9370
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Lookaside
    - item_type: typedef
      name: LookasideSlot
      pos:
        line_end: 9371
        line_start: 9371
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: LookasideSlot
    - item_type: typedef
      name: Module
      pos:
        line_end: 9372
        line_start: 9372
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Module
    - item_type: typedef
      name: NameContext
      pos:
        line_end: 9373
        line_start: 9373
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: NameContext
    - item_type: typedef
      name: Parse
      pos:
        line_end: 9374
        line_start: 9374
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Parse
    - item_type: typedef
      name: PrintfArguments
      pos:
        line_end: 9375
        line_start: 9375
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PrintfArguments
    - item_type: typedef
      name: RowSet
      pos:
        line_end: 9376
        line_start: 9376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RowSet
    - item_type: typedef
      name: Savepoint
      pos:
        line_end: 9377
        line_start: 9377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Savepoint
    - item_type: typedef
      name: Select
      pos:
        line_end: 9378
        line_start: 9378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Select
    - item_type: typedef
      name: SQLiteThread
      pos:
        line_end: 9379
        line_start: 9379
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SQLiteThread
    - item_type: typedef
      name: SelectDest
      pos:
        line_end: 9380
        line_start: 9380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SelectDest
    - item_type: typedef
      name: SrcList
      pos:
        line_end: 9381
        line_start: 9381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SrcList
    - item_type: typedef
      name: StrAccum
      pos:
        line_end: 9382
        line_start: 9382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StrAccum
    - item_type: typedef
      name: Table
      pos:
        line_end: 9383
        line_start: 9383
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Table
    - item_type: typedef
      name: TableLock
      pos:
        line_end: 9384
        line_start: 9384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TableLock
    - item_type: typedef
      name: Token
      pos:
        line_end: 9385
        line_start: 9385
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Token
    - item_type: typedef
      name: TreeView
      pos:
        line_end: 9386
        line_start: 9386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TreeView
    - item_type: typedef
      name: Trigger
      pos:
        line_end: 9387
        line_start: 9387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Trigger
    - item_type: typedef
      name: TriggerPrg
      pos:
        line_end: 9388
        line_start: 9388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TriggerPrg
    - item_type: typedef
      name: TriggerStep
      pos:
        line_end: 9389
        line_start: 9389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TriggerStep
    - item_type: typedef
      name: UnpackedRecord
      pos:
        line_end: 9390
        line_start: 9390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: UnpackedRecord
    - item_type: typedef
      name: VTable
      pos:
        line_end: 9391
        line_start: 9391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VTable
    - item_type: typedef
      name: VtabCtx
      pos:
        line_end: 9392
        line_start: 9392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VtabCtx
    - item_type: typedef
      name: Walker
      pos:
        line_end: 9393
        line_start: 9393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Walker
    - item_type: typedef
      name: WhereInfo
      pos:
        line_end: 9394
        line_start: 9394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereInfo
    - item_type: typedef
      name: With
      pos:
        line_end: 9395
        line_start: 9395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: With
    - item_type: typedef
      name: Btree
      pos:
        line_end: 9442
        line_start: 9442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Btree
    - item_type: typedef
      name: BtCursor
      pos:
        line_end: 9443
        line_start: 9443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: BtCursor
    - item_type: typedef
      name: BtShared
      pos:
        line_end: 9444
        line_start: 9444
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: BtShared
    - item_type: typedef
      name: Vdbe
      pos:
        line_end: 9709
        line_start: 9709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Vdbe
    - item_type: typedef
      name: Mem
      pos:
        line_end: 9715
        line_start: 9715
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Mem
    - item_type: typedef
      name: SubProgram
      pos:
        line_end: 9716
        line_start: 9716
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SubProgram
    - item_type: typedef
      name: VdbeOp
      pos:
        line_end: 9758
        line_start: 9758
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeOp
    - item_type: typedef
      name: VdbeOpList
      pos:
        line_end: 9784
        line_start: 9784
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeOpList
    - item_type: typedef
      name: (*RecordCompare)(int,const void*,UnpackedRecord*)
      pos:
        line_end: 10104
        line_start: 10104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: Pgno
      pos:
        line_end: 10215
        line_start: 10215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: u32
    - item_type: typedef
      name: Pager
      pos:
        line_end: 10220
        line_start: 10220
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Pager
    - item_type: typedef
      name: DbPage
      pos:
        line_end: 10225
        line_start: 10225
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PgHdr
    - item_type: typedef
      name: PgHdr
      pos:
        line_end: 10420
        line_start: 10420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PgHdr
    - item_type: typedef
      name: PCache
      pos:
        line_end: 10421
        line_start: 10421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PCache
    - item_type: typedef
      name: sqlite3_userauth
      pos:
        line_end: 11050
        line_start: 11050
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_userauth
    - item_type: typedef
      name: "(*sqlite3_xauth)(void*,int,const char*,const char*,const char*,\n                               const
        char*, const char*)"
      pos:
        line_end: 11077
        line_start: 11076
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: "(*sqlite3_xauth)(void*,int,const char*,const char*,const char*,\n                               const
        char*)"
      pos:
        line_end: 11080
        line_start: 11079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: ynVar
      pos:
        line_end: 11938
        line_start: 11938
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: i16
    - item_type: typedef
      name: ynVar
      pos:
        line_end: 11940
        line_start: 11940
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: Bitmask
      pos:
        line_end: 12192
        line_start: 12192
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: u64
    - item_type: typedef
      name: yDbMask[(SQLITE_MAX_ATTACHED+9)/8]
      pos:
        line_end: 12550
        line_start: 12550
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned char
    - item_type: typedef
      name: yDbMask
      pos:
        line_end: 12557
        line_start: 12557
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned int
    - item_type: typedef
      name: DbFixer
      pos:
        line_end: 12815
        line_start: 12815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: DbFixer
    - item_type: typedef
      name: Op
      pos:
        line_end: 14630
        line_start: 14630
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeOp
    - item_type: typedef
      name: Bool
      pos:
        line_end: 14635
        line_start: 14635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned
    - item_type: typedef
      name: VdbeSorter
      pos:
        line_end: 14638
        line_start: 14638
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeSorter
    - item_type: typedef
      name: Explain
      pos:
        line_end: 14641
        line_start: 14641
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Explain
    - item_type: typedef
      name: AuxData
      pos:
        line_end: 14644
        line_start: 14644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: AuxData
    - item_type: typedef
      name: VdbeCursor
      pos:
        line_end: 14706
        line_start: 14706
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeCursor
    - item_type: typedef
      name: VdbeFrame
      pos:
        line_end: 14729
        line_start: 14729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeFrame
    - item_type: typedef
      name: bft
      pos:
        line_end: 14905
        line_start: 14905
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned
    - item_type: typedef
      name: ScanStatus
      pos:
        line_end: 14907
        line_start: 14907
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: ScanStatus
    - item_type: typedef
      name: sqlite3StatType
      pos:
        line_end: 15111
        line_start: 15111
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3StatType
    - item_type: typedef
      name: DateTime
      pos:
        line_end: 15489
        line_start: 15489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: DateTime
    - item_type: typedef
      name: BenignMallocHooks
      pos:
        line_end: 17005
        line_start: 17005
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: BenignMallocHooks
    - item_type: typedef
      name: Mem3Block
      pos:
        line_end: 18032
        line_start: 18032
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Mem3Block
    - item_type: typedef
      name: Mem5Link
      pos:
        line_end: 18709
        line_start: 18709
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Mem5Link
    - item_type: typedef
      name: etByte
      pos:
        line_end: 21509
        line_start: 21509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned char
    - item_type: typedef
      name: unixShm
      pos:
        line_end: 25923
        line_start: 25923
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unixShm
    - item_type: typedef
      name: unixShmNode
      pos:
        line_end: 25924
        line_start: 25924
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unixShmNode
    - item_type: typedef
      name: unixInodeInfo
      pos:
        line_end: 25925
        line_start: 25925
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unixInodeInfo
    - item_type: typedef
      name: UnixUnusedFd
      pos:
        line_end: 25926
        line_start: 25926
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: UnixUnusedFd
    - item_type: typedef
      name: unixFile
      pos:
        line_end: 25944
        line_start: 25944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unixFile
    - item_type: typedef
      name: afpLockingContext
      pos:
        line_end: 28594
        line_start: 28594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: afpLockingContext
    - item_type: typedef
      name: '*(*finder_type)(const char*,unixFile*)'
      pos:
        line_end: 31195
        line_start: 31195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_io_methods
    - item_type: typedef
      name: proxyLockingContext
      pos:
        line_end: 32386
        line_start: 32386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: proxyLockingContext
    - item_type: typedef
      name: winShm
      pos:
        line_end: 33948
        line_start: 33948
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: winShm
    - item_type: typedef
      name: winShmNode
      pos:
        line_end: 33949
        line_start: 33949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: winShmNode
    - item_type: typedef
      name: winFile
      pos:
        line_end: 33969
        line_start: 33969
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: winFile
    - item_type: typedef
      name: winMemData
      pos:
        line_end: 34082
        line_start: 34082
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: winMemData
    - item_type: typedef
      name: PCache1
      pos:
        line_end: 40538
        line_start: 40538
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PCache1
    - item_type: typedef
      name: PgHdr1
      pos:
        line_end: 40539
        line_start: 40539
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PgHdr1
    - item_type: typedef
      name: PgFreeslot
      pos:
        line_end: 40540
        line_start: 40540
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PgFreeslot
    - item_type: typedef
      name: PGroup
      pos:
        line_end: 40541
        line_start: 40541
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PGroup
    - item_type: typedef
      name: Wal
      pos:
        line_end: 42275
        line_start: 42275
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Wal
    - item_type: typedef
      name: PagerSavepoint
      pos:
        line_end: 42782
        line_start: 42782
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PagerSavepoint
    - item_type: typedef
      name: WalIndexHdr
      pos:
        line_end: 49897
        line_start: 49897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WalIndexHdr
    - item_type: typedef
      name: WalIterator
      pos:
        line_end: 49898
        line_start: 49898
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WalIterator
    - item_type: typedef
      name: WalCkptInfo
      pos:
        line_end: 49899
        line_start: 49899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WalCkptInfo
    - item_type: typedef
      name: ht_slot
      pos:
        line_end: 50067
        line_start: 50067
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: u16
    - item_type: typedef
      name: MemPage
      pos:
        line_end: 53027
        line_start: 53027
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: MemPage
    - item_type: typedef
      name: BtLock
      pos:
        line_end: 53028
        line_start: 53028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: BtLock
    - item_type: typedef
      name: CellInfo
      pos:
        line_end: 53029
        line_start: 53029
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: CellInfo
    - item_type: typedef
      name: IntegrityCk
      pos:
        line_end: 53468
        line_start: 53468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IntegrityCk
    - item_type: typedef
      name: CellArray
      pos:
        line_end: 60148
        line_start: 60148
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: CellArray
    - item_type: typedef
      name: VdbeOpIter
      pos:
        line_end: 66269
        line_start: 66269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: VdbeOpIter
    - item_type: typedef
      name: Incrblob
      pos:
        line_end: 78808
        line_start: 78808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Incrblob
    - item_type: typedef
      name: MergeEngine
      pos:
        line_end: 79422
        line_start: 79422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: MergeEngine
    - item_type: typedef
      name: PmaReader
      pos:
        line_end: 79423
        line_start: 79423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PmaReader
    - item_type: typedef
      name: PmaWriter
      pos:
        line_end: 79424
        line_start: 79424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PmaWriter
    - item_type: typedef
      name: SorterRecord
      pos:
        line_end: 79425
        line_start: 79425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SorterRecord
    - item_type: typedef
      name: SortSubtask
      pos:
        line_end: 79426
        line_start: 79426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SortSubtask
    - item_type: typedef
      name: SorterFile
      pos:
        line_end: 79427
        line_start: 79427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SorterFile
    - item_type: typedef
      name: SorterList
      pos:
        line_end: 79428
        line_start: 79428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SorterList
    - item_type: typedef
      name: IncrMerger
      pos:
        line_end: 79429
        line_start: 79429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IncrMerger
    - item_type: typedef
      name: (*SorterCompare)(SortSubtask*,int*,const void*,int,const void*,int)
      pos:
        line_end: 79556
        line_start: 79556
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: JournalFile
      pos:
        line_end: 82035
        line_start: 82035
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: JournalFile
    - item_type: typedef
      name: MemJournal
      pos:
        line_end: 82269
        line_start: 82269
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: MemJournal
    - item_type: typedef
      name: FilePoint
      pos:
        line_end: 82270
        line_start: 82270
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FilePoint
    - item_type: typedef
      name: FileChunk
      pos:
        line_end: 82271
        line_start: 82271
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: FileChunk
    - item_type: typedef
      name: Stat4Accum
      pos:
        line_end: 89442
        line_start: 89442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Stat4Accum
    - item_type: typedef
      name: Stat4Sample
      pos:
        line_end: 89443
        line_start: 89443
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Stat4Sample
    - item_type: typedef
      name: analysisInfo
      pos:
        line_end: 90591
        line_start: 90591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: analysisInfo
    - item_type: typedef
      name: SumCtx
      pos:
        line_end: 98967
        line_start: 98967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SumCtx
    - item_type: typedef
      name: CountCtx
      pos:
        line_end: 99038
        line_start: 99038
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: CountCtx
    - item_type: typedef
      name: sqlite3_api_routines
      pos:
        line_end: 103028
        line_start: 103028
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_api_routines
    - item_type: typedef
      name: sqlite3AutoExtList
      pos:
        line_end: 104143
        line_start: 104143
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3AutoExtList
    - item_type: typedef
      name: DistinctCtx
      pos:
        line_end: 107680
        line_start: 107680
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: DistinctCtx
    - item_type: typedef
      name: SortCtx
      pos:
        line_end: 107692
        line_start: 107692
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SortCtx
    - item_type: typedef
      name: WhereClause
      pos:
        line_end: 116942
        line_start: 116942
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereClause
    - item_type: typedef
      name: WhereMaskSet
      pos:
        line_end: 116943
        line_start: 116943
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereMaskSet
    - item_type: typedef
      name: WhereOrInfo
      pos:
        line_end: 116944
        line_start: 116944
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereOrInfo
    - item_type: typedef
      name: WhereAndInfo
      pos:
        line_end: 116945
        line_start: 116945
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereAndInfo
    - item_type: typedef
      name: WhereLevel
      pos:
        line_end: 116946
        line_start: 116946
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereLevel
    - item_type: typedef
      name: WhereLoop
      pos:
        line_end: 116947
        line_start: 116947
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereLoop
    - item_type: typedef
      name: WherePath
      pos:
        line_end: 116948
        line_start: 116948
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WherePath
    - item_type: typedef
      name: WhereTerm
      pos:
        line_end: 116949
        line_start: 116949
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereTerm
    - item_type: typedef
      name: WhereLoopBuilder
      pos:
        line_end: 116950
        line_start: 116950
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereLoopBuilder
    - item_type: typedef
      name: WhereScan
      pos:
        line_end: 116951
        line_start: 116951
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereScan
    - item_type: typedef
      name: WhereOrCost
      pos:
        line_end: 116952
        line_start: 116952
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereOrCost
    - item_type: typedef
      name: WhereOrSet
      pos:
        line_end: 116953
        line_start: 116953
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: WhereOrSet
    - item_type: typedef
      name: yyStackEntry
      pos:
        line_end: 125555
        line_start: 125555
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: yyStackEntry
    - item_type: typedef
      name: yyParser
      pos:
        line_end: 125573
        line_start: 125573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: yyParser
    - item_type: typedef
      name: (*LOGFUNC_t)(void*,int,const char*)
      pos:
        line_end: 130006
        line_start: 130006
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: (*SQLLOGFUNC_t)(void*, sqlite3*, const char*, int)
      pos:
        line_end: 130037
        line_start: 130037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: (*TESTCALLBACKFUNC_t)(int)
      pos:
        line_end: 132889
        line_start: 132889
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: (*void_function)(void)
      pos:
        line_end: 132902
        line_start: 132902
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: (*branch_callback)(void*,int,u8,u8)
      pos:
        line_end: 133097
        line_start: 133097
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: void
    - item_type: typedef
      name: sqlite3_tokenizer_module
      pos:
        line_end: 133966
        line_start: 133966
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_tokenizer_module
    - item_type: typedef
      name: sqlite3_tokenizer
      pos:
        line_end: 133967
        line_start: 133967
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_tokenizer
    - item_type: typedef
      name: sqlite3_tokenizer_cursor
      pos:
        line_end: 133968
        line_start: 133968
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_tokenizer_cursor
    - item_type: typedef
      name: Fts3Hash
      pos:
        line_end: 134105
        line_start: 134105
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Hash
    - item_type: typedef
      name: Fts3HashElem
      pos:
        line_end: 134106
        line_start: 134106
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3HashElem
    - item_type: typedef
      name: u8
      pos:
        line_end: 134309
        line_start: 134309
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned char
    - item_type: typedef
      name: i16
      pos:
        line_end: 134310
        line_start: 134310
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: short int
    - item_type: typedef
      name: u32
      pos:
        line_end: 134311
        line_start: 134311
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned int
    - item_type: typedef
      name: u64
      pos:
        line_end: 134312
        line_start: 134312
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_uint64
    - item_type: typedef
      name: i64
      pos:
        line_end: 134313
        line_start: 134313
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_int64
    - item_type: typedef
      name: Fts3Table
      pos:
        line_end: 134347
        line_start: 134347
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Table
    - item_type: typedef
      name: Fts3Cursor
      pos:
        line_end: 134348
        line_start: 134348
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Cursor
    - item_type: typedef
      name: Fts3Expr
      pos:
        line_end: 134349
        line_start: 134349
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Expr
    - item_type: typedef
      name: Fts3Phrase
      pos:
        line_end: 134350
        line_start: 134350
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Phrase
    - item_type: typedef
      name: Fts3PhraseToken
      pos:
        line_end: 134351
        line_start: 134351
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3PhraseToken
    - item_type: typedef
      name: Fts3Doclist
      pos:
        line_end: 134353
        line_start: 134353
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3Doclist
    - item_type: typedef
      name: Fts3SegFilter
      pos:
        line_end: 134354
        line_start: 134354
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3SegFilter
    - item_type: typedef
      name: Fts3DeferredToken
      pos:
        line_end: 134355
        line_start: 134355
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3DeferredToken
    - item_type: typedef
      name: Fts3SegReader
      pos:
        line_end: 134356
        line_start: 134356
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3SegReader
    - item_type: typedef
      name: Fts3MultiSegReader
      pos:
        line_end: 134357
        line_start: 134357
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3MultiSegReader
    - item_type: typedef
      name: MatchinfoBuffer
      pos:
        line_end: 134359
        line_start: 134359
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: MatchinfoBuffer
    - item_type: typedef
      name: TermSelect
      pos:
        line_end: 136817
        line_start: 136817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TermSelect
    - item_type: typedef
      name: TokenDoclist
      pos:
        line_end: 138897
        line_start: 138897
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TokenDoclist
    - item_type: typedef
      name: Fts3TokenAndCost
      pos:
        line_end: 139141
        line_start: 139141
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3TokenAndCost
    - item_type: typedef
      name: Fts3auxTable
      pos:
        line_end: 140412
        line_start: 140412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3auxTable
    - item_type: typedef
      name: Fts3auxCursor
      pos:
        line_end: 140413
        line_start: 140413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3auxCursor
    - item_type: typedef
      name: ParseContext
      pos:
        line_end: 141037
        line_start: 141037
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: ParseContext
    - item_type: typedef
      name: Fts3tokTable
      pos:
        line_end: 144063
        line_start: 144063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3tokTable
    - item_type: typedef
      name: Fts3tokCursor
      pos:
        line_end: 144064
        line_start: 144064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Fts3tokCursor
    - item_type: typedef
      name: PendingList
      pos:
        line_end: 144565
        line_start: 144565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: PendingList
    - item_type: typedef
      name: SegmentNode
      pos:
        line_end: 144566
        line_start: 144566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SegmentNode
    - item_type: typedef
      name: SegmentWriter
      pos:
        line_end: 144567
        line_start: 144567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SegmentWriter
    - item_type: typedef
      name: IncrmergeWriter
      pos:
        line_end: 148077
        line_start: 148077
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IncrmergeWriter
    - item_type: typedef
      name: NodeWriter
      pos:
        line_end: 148078
        line_start: 148078
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: NodeWriter
    - item_type: typedef
      name: Blob
      pos:
        line_end: 148079
        line_start: 148079
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Blob
    - item_type: typedef
      name: NodeReader
      pos:
        line_end: 148080
        line_start: 148080
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: NodeReader
    - item_type: typedef
      name: LoadDoclistCtx
      pos:
        line_end: 150183
        line_start: 150183
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: LoadDoclistCtx
    - item_type: typedef
      name: SnippetIter
      pos:
        line_end: 150194
        line_start: 150194
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SnippetIter
    - item_type: typedef
      name: SnippetPhrase
      pos:
        line_end: 150195
        line_start: 150195
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SnippetPhrase
    - item_type: typedef
      name: SnippetFragment
      pos:
        line_end: 150196
        line_start: 150196
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: SnippetFragment
    - item_type: typedef
      name: MatchInfo
      pos:
        line_end: 150227
        line_start: 150227
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: MatchInfo
    - item_type: typedef
      name: StrBuffer
      pos:
        line_end: 150256
        line_start: 150256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StrBuffer
    - item_type: typedef
      name: LcsIterator
      pos:
        line_end: 151198
        line_start: 151198
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: LcsIterator
    - item_type: typedef
      name: TermOffset
      pos:
        line_end: 151635
        line_start: 151635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TermOffset
    - item_type: typedef
      name: TermOffsetCtx
      pos:
        line_end: 151636
        line_start: 151636
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: TermOffsetCtx
    - item_type: typedef
      name: unicode_tokenizer
      pos:
        line_end: 151929
        line_start: 151929
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unicode_tokenizer
    - item_type: typedef
      name: unicode_cursor
      pos:
        line_end: 151930
        line_start: 151930
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unicode_cursor
    - item_type: typedef
      name: i64
      pos:
        line_end: 152683
        line_start: 152683
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_int64
    - item_type: typedef
      name: u8
      pos:
        line_end: 152684
        line_start: 152684
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned char
    - item_type: typedef
      name: u16
      pos:
        line_end: 152685
        line_start: 152685
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned short
    - item_type: typedef
      name: u32
      pos:
        line_end: 152686
        line_start: 152686
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned int
    - item_type: typedef
      name: Rtree
      pos:
        line_end: 152695
        line_start: 152695
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: Rtree
    - item_type: typedef
      name: RtreeCursor
      pos:
        line_end: 152696
        line_start: 152696
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeCursor
    - item_type: typedef
      name: RtreeNode
      pos:
        line_end: 152697
        line_start: 152697
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeNode
    - item_type: typedef
      name: RtreeCell
      pos:
        line_end: 152698
        line_start: 152698
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeCell
    - item_type: typedef
      name: RtreeConstraint
      pos:
        line_end: 152699
        line_start: 152699
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeConstraint
    - item_type: typedef
      name: RtreeMatchArg
      pos:
        line_end: 152700
        line_start: 152700
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeMatchArg
    - item_type: typedef
      name: RtreeGeomCallback
      pos:
        line_end: 152701
        line_start: 152701
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeGeomCallback
    - item_type: typedef
      name: RtreeCoord
      pos:
        line_end: 152702
        line_start: 152702
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeCoord
    - item_type: typedef
      name: RtreeSearchPoint
      pos:
        line_end: 152703
        line_start: 152703
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RtreeSearchPoint
    - item_type: typedef
      name: RtreeDValue
      pos:
        line_end: 152776
        line_start: 152776
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_int64
    - item_type: typedef
      name: RtreeValue
      pos:
        line_end: 152777
        line_start: 152777
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: int
    - item_type: typedef
      name: RtreeDValue
      pos:
        line_end: 152780
        line_start: 152780
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: double
    - item_type: typedef
      name: RtreeValue
      pos:
        line_end: 152781
        line_start: 152781
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: float
    - item_type: typedef
      name: IcuTokenizer
      pos:
        line_end: 156662
        line_start: 156662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IcuTokenizer
    - item_type: typedef
      name: IcuCursor
      pos:
        line_end: 156663
        line_start: 156663
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: IcuCursor
    - item_type: typedef
      name: sqlite3rbu
      pos:
        line_end: 157247
        line_start: 157247
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3rbu
    - item_type: typedef
      name: RbuFrame
      pos:
        line_end: 157491
        line_start: 157491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RbuFrame
    - item_type: typedef
      name: RbuObjIter
      pos:
        line_end: 157492
        line_start: 157492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RbuObjIter
    - item_type: typedef
      name: RbuState
      pos:
        line_end: 157493
        line_start: 157493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RbuState
    - item_type: typedef
      name: rbu_vfs
      pos:
        line_end: 157494
        line_start: 157494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: rbu_vfs
    - item_type: typedef
      name: rbu_file
      pos:
        line_end: 157495
        line_start: 157495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: rbu_file
    - item_type: typedef
      name: RbuUpdateStmt
      pos:
        line_end: 157496
        line_start: 157496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: RbuUpdateStmt
    - item_type: typedef
      name: u32
      pos:
        line_end: 157499
        line_start: 157499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned int
    - item_type: typedef
      name: u8
      pos:
        line_end: 157500
        line_start: 157500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: unsigned char
    - item_type: typedef
      name: i64
      pos:
        line_end: 157501
        line_start: 157501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: sqlite3_int64
    - item_type: typedef
      name: StatTable
      pos:
        line_end: 161061
        line_start: 161061
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StatTable
    - item_type: typedef
      name: StatCursor
      pos:
        line_end: 161062
        line_start: 161062
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StatCursor
    - item_type: typedef
      name: StatPage
      pos:
        line_end: 161063
        line_start: 161063
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StatPage
    - item_type: typedef
      name: StatCell
      pos:
        line_end: 161064
        line_start: 161064
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
      type: StatCell
    union:
    - fields:
      - name: i
        type: int
      - name: '*p'
        type: void
      - name: '*z'
        type: char
      - name: '*pI64'
        type: i64
      - name: '*pReal'
        type: double
      - name: '*pFunc'
        type: FuncDef
      - name: '*pCtx'
        type: sqlite3_context
      - name: '*pColl'
        type: CollSeq
      - name: '*pMem'
        type: Mem
      - name: '*pVtab'
        type: VTable
      - name: '*pKeyInfo'
        type: KeyInfo
      - name: '*ai'
        type: int
      - name: '*pProgram'
        type: SubProgram
      - name: (*xAdvance)(BtCursor *, int *)
        type: int
      item_type: union
      name: p4union
      pos:
        line_end: 9746
        line_start: 9731
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: r
        type: double
      - name: i
        type: i64
      - name: nZero
        type: int
      - name: '*pDef'
        type: FuncDef
      - name: '*pRowSet'
        type: RowSet
      - name: '*pFrame'
        type: VdbeFrame
      item_type: union
      name: MemValue
      pos:
        line_end: 14771
        line_start: 14764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: r
        type: u64
      - name: i[2]
        type: u32
      item_type: union
      name: u
      pos:
        line_end: 68937
        line_start: 68934
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: yyinit
        type: int
      - name: yy0
        type: sqlite3ParserTOKENTYPE
      - name: '* yy3'
        type: Select
      - name: '* yy14'
        type: ExprList
      - name: '* yy59'
        type: With
      - name: '* yy65'
        type: SrcList
      - name: yy96
        type: struct LikeOp
      - name: '* yy132'
        type: Expr
      - name: yy186
        type: u8
      - name: yy328
        type: int
      - name: yy346
        type: ExprSpan
      - name: yy378
        type: struct TrigEvent
      - name: yy381
        type: u16
      - name: '* yy408'
        type: IdList
      - name: yy429
        type: struct {int value; int mask;}
      - name: '* yy473'
        type: TriggerStep
      - name: yy476
        type: struct LimitVal
      item_type: union
      name: YYMINORTYPE
      pos:
        line_end: 124913
        line_start: 124895
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
    - fields:
      - name: f
        type: RtreeValue
      - name: i
        type: int
      - name: u
        type: u32
      item_type: union
      name: RtreeCoord
      pos:
        line_end: 152862
        line_start: 152858
        source_file: /src/sleuthkit/tsk/auto/sqlite3.c
- function_names:
  - TskAutoDb::TskAutoDb
  - TskAutoDb::~TskAutoDb()
  - TskAutoDb::closeImage
  - TskAutoDb::createBlockMap
  - TskAutoDb::hashFiles
  - TskAutoDb::setAddFileSystems
  - TskAutoDb::setNoFatFsOrphans
  - TskAutoDb::setAddUnallocSpace
  - TskAutoDb::setAddUnallocSpace
  - TskAutoDb::setAddUnallocSpace
  - TskAutoDb::openImageUtf8
  - TskAutoDb::openImage
  - TskAutoDb::openImage
  - TskAutoDb::addImageDetails
  - TskAutoDb::filterVs
  - TskAutoDb::filterPool
  - TskAutoDb::addUnallocatedPoolBlocksToDb
  - TskAutoDb::filterPoolVol
  - TskAutoDb::filterVol
  - TskAutoDb::filterFs
  - TskAutoDb::insertFileData
  - TskAutoDb::addFilesInImgToDb
  - TskAutoDb::startAddImage
  - TskAutoDb::startAddImage
  - TskAutoDb::startAddImage
  - TskAutoDb::stopAddImage
  - TskAutoDb::revertAddImage
  - TskAutoDb::commitAddImage
  - TskAutoDb::setTz
  - TskAutoDb::processFile
  - TskAutoDb::processAttribute
  - TskAutoDb::md5HashCallback
  - TskAutoDb::md5HashAttr
  - TskAutoDb::fsWalkUnallocBlocksCb
  - TskAutoDb::addFsInfoUnalloc
  - TskAutoDb::addUnallocSpaceToDb
  - TskAutoDb::addUnallocFsSpaceToDb
  - TskAutoDb::addUnallocVsSpaceToDb
  - TskAutoDb::addUnallocImageSpaceToDb
  - TskAutoDb::addUnallocBlockFileInChunks
  - TskAutoDb::getCurDir
  - TskAutoDb::isDbOpen
  source_file: /src/sleuthkit/tsk/auto/auto_db.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/auto/tsk_is_image_supported.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/auto/tsk_auto_i.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskIsImageSupported::TskIsImageSupported
  - TskIsImageSupported::isImageSupported
  - TskIsImageSupported::isImageEncrypted
  - TskIsImageSupported::getSingleLineErrorMessage
  - TskIsImageSupported::printResults
  - TskIsImageSupported::handleError
  - TskIsImageSupported::getMessageForIsImageSupportedNat
  - TskIsImageSupported::processFile
  - TskIsImageSupported::filterFs
  - TskIsImageSupported::filterPool
  - TskIsImageSupported::filterPoolVol
  - TskIsImageSupported::filterVol
  source_file: /src/sleuthkit/tsk/auto/is_image_supported.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskAuto::setFileSystemPassword
  - TskAuto::getFileSystemPassword
  source_file: /src/sleuthkit/tsk/auto/tsk_auto.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_AUTO_TAG
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tsk/auto/tsk_auto.h
      type_or_value: '0x9191ABAB'
    structs:
    - fields:
      - name: code
        type: int
      - name: msg1
        type: std::string
      - name: msg2
        type: std::string
      item_type: struct
      name: error_record
      pos:
        line_end: 204
        line_start: 200
        source_file: /src/sleuthkit/tsk/auto/tsk_auto.h
    typedefs: []
    union: []
- function_names:
  - '&operator<<(ostream &s, const TSKGuid &guid)'
  - TSKGuid::TSKGuid
  - TSKGuid::TSKGuid
  - hexDigitToChar
  - hexPairToChar
  - TSKGuid::TSKGuid
  - TSKGuid::TSKGuid
  - TSKGuid::TSKGuid
  - TSKGuid::str
  - '&TSKGuid::operator=(const TSKGuid &other)'
  - TSKGuid::operator==(const TSKGuid &other) const
  - TSKGuid::operator!=(const TSKGuid &other) const
  - GuidGenerator::newGuid
  - GuidGenerator::newGuid
  - GuidGenerator::newGuid
  - GuidGenerator::GuidGenerator
  - GuidGenerator::newGuid
  source_file: /src/sleuthkit/tsk/auto/guid.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskDb::TskDb
  - TskDb::TskDb
  - TskDb::getParentPathAndName
  source_file: /src/sleuthkit/tsk/auto/tsk_db.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/auto/tsk_db_sqlite.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskAutoDb::_UNALLOC_BLOCK_WLK_TRACK
  source_file: /src/sleuthkit/tsk/auto/tsk_case_db.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_ADD_IMAGE_SAVEPOINT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/auto/tsk_case_db.h
      type_or_value: '"ADDIMAGE"'
    - item_type: preproc_def
      name: TSK_CASE_DB_TAG
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/sleuthkit/tsk/auto/tsk_case_db.h
      type_or_value: '0xB0551A33'
    structs:
    - fields:
      - name: '& tskAutoDb'
        type: TskAutoDb
      - name: '& fsInfo'
        type: TSK_FS_INFO
      - name: fsObjId
        type: int64_t
      - name: ranges
        type: vector<TSK_DB_FILE_LAYOUT_RANGE>
      - name: curRangeStart
        type: TSK_DADDR_T
      - name: size
        type: int64_t
      - name: minChunkSize
        type: int64_t
      - name: maxChunkSize
        type: int64_t
      - name: prevBlock
        type: TSK_DADDR_T
      - name: isStart
        type: bool
      - name: nextSequenceNo
        type: uint32_t
      item_type: struct
      name: _UNALLOC_BLOCK_WLK_TRACK
      pos:
        line_end: 180
        line_start: 166
        source_file: /src/sleuthkit/tsk/auto/tsk_case_db.h
    typedefs: []
    union: []
- function_names:
  - _TSK_DB_FILE_LAYOUT_RANGE
  - _TSK_DB_FILE_LAYOUT_RANGE
  - operator< (const struct _TSK_DB_FILE_LAYOUT_RANGE & rhs) const
  - ~TskDb()
  - TskDb::extractExtension
  source_file: /src/sleuthkit/tsk/auto/tsk_db.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_SCHEMA_VER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TSK_SCHEMA_MINOR_VER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TSK_MAX_DB_VS_PART_INFO_DESC_LEN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MAX_PATH_LENGTH
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
      type_or_value: '2048'
    structs:
    - fields:
      - name: objId
        type: int64_t
      - name: parObjId
        type: int64_t
      - name: type
        type: TSK_DB_OBJECT_TYPE_ENUM
      item_type: struct
      name: _TSK_DB_OBJECT
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
    - fields:
      - name: fileObjId
        type: int64_t
      - name: byteStart
        type: uint64_t
      - name: byteLen
        type: uint64_t
      - name: sequence
        type: uint32_t
      item_type: struct
      name: _TSK_DB_FILE_LAYOUT_RANGE
      pos:
        line_end: 107
        line_start: 90
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
    - fields:
      - name: objId
        type: int64_t
      - name: imgOffset
        type: TSK_OFF_T
      - name: fType
        type: TSK_FS_TYPE_ENUM
      - name: block_size
        type: unsigned int
      - name: block_count
        type: TSK_DADDR_T
      - name: root_inum
        type: TSK_INUM_T
      - name: first_inum
        type: TSK_INUM_T
      - name: last_inum
        type: TSK_INUM_T
      item_type: struct
      name: _TSK_DB_FS_INFO
      pos:
        line_end: 123
        line_start: 114
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
    - fields:
      - name: objId
        type: int64_t
      - name: vstype
        type: TSK_VS_TYPE_ENUM
      - name: offset
        type: TSK_DADDR_T
      - name: block_size
        type: unsigned int
      item_type: struct
      name: _TSK_DB_VS_INFO
      pos:
        line_end: 136
        line_start: 131
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
    - fields:
      - name: objId
        type: int64_t
      - name: addr
        type: TSK_PNUM_T
      - name: start
        type: TSK_DADDR_T
      - name: len
        type: TSK_DADDR_T
      - name: desc[TSK_MAX_DB_VS_PART_INFO_DESC_LEN]
        type: char
      - name: flags
        type: TSK_VS_PART_FLAG_ENUM
      item_type: struct
      name: _TSK_DB_VS_PART_INFO
      pos:
        line_end: 151
        line_start: 144
        source_file: /src/sleuthkit/tsk/auto/tsk_db.h
    typedefs: []
    union: []
- function_names:
  - TSKGuid::TSKGuid
  - '&operator=(TSKGuid &&)'
  - '& bytes() const noexcept'
  - GuidGenerator::GuidGenerator
  source_file: /src/sleuthkit/tsk/auto/guid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskAuto::TskAuto
  - TskAuto::~TskAuto()
  - TskAuto::setCurVsPart
  - TskAuto::getCurVsPartDescr
  - TskAuto::getCurVsPartFlag
  - TskAuto::isCurVsValid
  - TskAuto::openImage
  - TskAuto::openImageUtf8
  - TskAuto::openImageHandle
  - TskAuto::closeImage
  - TskAuto::setVolFilterFlags
  - TskAuto::setFileFilterFlags
  - TskAuto::setExternalFileSystemList
  - TskAuto::getImageSize
  - TskAuto::filterVs
  - TskAuto::filterVol
  - TskAuto::filterPoolVol
  - TskAuto::filterPool
  - TskAuto::filterFs
  - TskAuto::findFilesInImg
  - TskAuto::vsWalkCb
  - TskAuto::findFilesInVs
  - TskAuto::findFilesInVs
  - TskAuto::hasPool
  - TskAuto::findFilesInPool
  - TskAuto::findFilesInPool
  - TskAuto::findFilesInFsRet
  - TskAuto::findFilesInFs
  - TskAuto::findFilesInFs
  - TskAuto::findFilesInFs
  - TskAuto::findFilesInFs
  - TskAuto::findFilesInFs
  - TskAuto::findFilesInFs
  - TskAuto::dirWalkCb
  - TskAuto::findFilesInFsInt
  - TskAuto::processAttributes
  - TskAuto::processAttribute
  - TskAuto::setStopProcessing
  - TskAuto::getStopProcessing
  - TskAuto::enableImageWriter
  - TskAuto::disableImageWriter
  - TskAuto::registerError
  - TskAuto::getErrorList
  - TskAuto::resetErrorList
  - TskAuto::errorRecordToString
  - TskAuto::handleError
  - TskAuto::isNtfsSystemFiles
  - TskAuto::isFATSystemFiles
  - TskAuto::isDotDir
  - TskAuto::isDir
  - TskAuto::isFile
  - TskAuto::isDefaultType
  - TskAuto::isNonResident
  source_file: /src/sleuthkit/tsk/auto/auto.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskCaseDb::TskCaseDb
  - TskCaseDb::~TskCaseDb()
  - TskCaseDb::newDb
  - TskCaseDb::openDb
  - TskCaseDb::initAddImage
  - TskCaseDb::addImage
  - TskCaseDb::setNSRLHashDb
  - TskCaseDb::setKnownBadHashDb
  - TskCaseDb::clearLookupDatabases
  source_file: /src/sleuthkit/tsk/auto/case_db.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/auto/sqlite3.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SQLITE_EXTERN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: extern
    - item_type: preproc_def
      name: SQLITE_VERSION
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '"3.8.11.1"'
    - item_type: preproc_def
      name: SQLITE_VERSION_NUMBER
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3008011'
    - item_type: preproc_def
      name: SQLITE_SOURCE_ID
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '"2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f"'
    - item_type: preproc_def
      name: double
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: sqlite3_int64
    - item_type: preproc_def
      name: SQLITE_OK
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_ERROR
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_INTERNAL
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_PERM
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: SQLITE_ABORT
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4   '
    - item_type: preproc_def
      name: SQLITE_BUSY
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5   '
    - item_type: preproc_def
      name: SQLITE_LOCKED
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6   '
    - item_type: preproc_def
      name: SQLITE_NOMEM
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7   '
    - item_type: preproc_def
      name: SQLITE_READONLY
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: SQLITE_INTERRUPT
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9   '
    - item_type: preproc_def
      name: SQLITE_IOERR
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_CORRUPT
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11   '
    - item_type: preproc_def
      name: SQLITE_NOTFOUND
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '12   '
    - item_type: preproc_def
      name: SQLITE_FULL
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13   '
    - item_type: preproc_def
      name: SQLITE_CANTOPEN
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '14   '
    - item_type: preproc_def
      name: SQLITE_PROTOCOL
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '15   '
    - item_type: preproc_def
      name: SQLITE_EMPTY
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16   '
    - item_type: preproc_def
      name: SQLITE_SCHEMA
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '17   '
    - item_type: preproc_def
      name: SQLITE_TOOBIG
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '18   '
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '19   '
    - item_type: preproc_def
      name: SQLITE_MISMATCH
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '20   '
    - item_type: preproc_def
      name: SQLITE_MISUSE
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '21   '
    - item_type: preproc_def
      name: SQLITE_NOLFS
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '22   '
    - item_type: preproc_def
      name: SQLITE_AUTH
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '23   '
    - item_type: preproc_def
      name: SQLITE_FORMAT
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '24   '
    - item_type: preproc_def
      name: SQLITE_RANGE
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25   '
    - item_type: preproc_def
      name: SQLITE_NOTADB
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '26   '
    - item_type: preproc_def
      name: SQLITE_NOTICE
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '27   '
    - item_type: preproc_def
      name: SQLITE_WARNING
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '28   '
    - item_type: preproc_def
      name: SQLITE_ROW
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '100  '
    - item_type: preproc_def
      name: SQLITE_DONE
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '101  '
    - item_type: preproc_def
      name: SQLITE_IOERR_READ
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (1<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHORT_READ
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (2<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_WRITE
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (3<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_FSYNC
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (4<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DIR_FSYNC
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (5<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_TRUNCATE
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (6<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_FSTAT
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (7<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_UNLOCK
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (8<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_RDLOCK
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (9<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DELETE
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (10<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_BLOCKED
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (11<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_NOMEM
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (12<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_ACCESS
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (13<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CHECKRESERVEDLOCK
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (14<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_LOCK
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (15<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CLOSE
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (16<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DIR_CLOSE
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (17<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMOPEN
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (18<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMSIZE
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (19<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMLOCK
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (20<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SHMMAP
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (21<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_SEEK
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (22<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_DELETE_NOENT
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (23<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_MMAP
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (24<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_GETTEMPPATH
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (25<<8))
    - item_type: preproc_def
      name: SQLITE_IOERR_CONVPATH
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_IOERR | (26<<8))
    - item_type: preproc_def
      name: SQLITE_LOCKED_SHAREDCACHE
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_LOCKED |  (1<<8))
    - item_type: preproc_def
      name: SQLITE_BUSY_RECOVERY
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_BUSY   |  (1<<8))
    - item_type: preproc_def
      name: SQLITE_BUSY_SNAPSHOT
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_BUSY   |  (2<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_NOTEMPDIR
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CANTOPEN | (1<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_ISDIR
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CANTOPEN | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_FULLPATH
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CANTOPEN | (3<<8))
    - item_type: preproc_def
      name: SQLITE_CANTOPEN_CONVPATH
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CANTOPEN | (4<<8))
    - item_type: preproc_def
      name: SQLITE_CORRUPT_VTAB
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CORRUPT | (1<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_RECOVERY
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_READONLY | (1<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_CANTLOCK
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_READONLY | (2<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_ROLLBACK
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_READONLY | (3<<8))
    - item_type: preproc_def
      name: SQLITE_READONLY_DBMOVED
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_READONLY | (4<<8))
    - item_type: preproc_def
      name: SQLITE_ABORT_ROLLBACK
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_ABORT | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_CHECK
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (1<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_COMMITHOOK
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (2<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_FOREIGNKEY
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (3<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_FUNCTION
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (4<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_NOTNULL
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (5<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_PRIMARYKEY
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (6<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_TRIGGER
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (7<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_UNIQUE
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (8<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_VTAB
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT | (9<<8))
    - item_type: preproc_def
      name: SQLITE_CONSTRAINT_ROWID
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_CONSTRAINT |(10<<8))
    - item_type: preproc_def
      name: SQLITE_NOTICE_RECOVER_WAL
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_NOTICE | (1<<8))
    - item_type: preproc_def
      name: SQLITE_NOTICE_RECOVER_ROLLBACK
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_NOTICE | (2<<8))
    - item_type: preproc_def
      name: SQLITE_WARNING_AUTOINDEX
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_WARNING | (1<<8))
    - item_type: preproc_def
      name: SQLITE_AUTH_USER
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: (SQLITE_AUTH | (1<<8))
    - item_type: preproc_def
      name: SQLITE_OPEN_READONLY
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: SQLITE_OPEN_READWRITE
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: SQLITE_OPEN_CREATE
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: SQLITE_OPEN_DELETEONCLOSE
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: SQLITE_OPEN_EXCLUSIVE
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: SQLITE_OPEN_AUTOPROXY
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: SQLITE_OPEN_URI
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MEMORY
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MAIN_DB
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TEMP_DB
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TRANSIENT_DB
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MAIN_JOURNAL
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: SQLITE_OPEN_TEMP_JOURNAL
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_SUBJOURNAL
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_MASTER_JOURNAL
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_NOMUTEX
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_FULLMUTEX
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_SHAREDCACHE
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_PRIVATECACHE
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: SQLITE_OPEN_WAL
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC512
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC1K
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC2K
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC4K
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC8K
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC16K
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC32K
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: SQLITE_IOCAP_ATOMIC64K
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: SQLITE_IOCAP_SAFE_APPEND
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: SQLITE_IOCAP_SEQUENTIAL
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: SQLITE_IOCAP_POWERSAFE_OVERWRITE
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: SQLITE_IOCAP_IMMUTABLE
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: SQLITE_LOCK_NONE
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_LOCK_SHARED
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_LOCK_RESERVED
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_LOCK_PENDING
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_LOCK_EXCLUSIVE
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SYNC_NORMAL
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00002'
    - item_type: preproc_def
      name: SQLITE_SYNC_FULL
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00003'
    - item_type: preproc_def
      name: SQLITE_SYNC_DATAONLY
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x00010'
    - item_type: preproc_def
      name: SQLITE_FCNTL_LOCKSTATE
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FCNTL_GET_LOCKPROXYFILE
      pos:
        line_end: 977
        line_start: 976
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SET_LOCKPROXYFILE
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_FCNTL_LAST_ERRNO
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SIZE_HINT
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_FCNTL_CHUNK_SIZE
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_FCNTL_FILE_POINTER
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SYNC_OMITTED
      pos:
        line_end: 983
        line_start: 982
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WIN32_AV_RETRY
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_FCNTL_PERSIST_WAL
      pos:
        line_end: 985
        line_start: 984
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_FCNTL_OVERWRITE
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_FCNTL_VFSNAME
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SQLITE_FCNTL_POWERSAFE_OVERWRITE
      pos:
        line_end: 988
        line_start: 987
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SQLITE_FCNTL_PRAGMA
      pos:
        line_end: 989
        line_start: 988
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SQLITE_FCNTL_BUSYHANDLER
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SQLITE_FCNTL_TEMPFILENAME
      pos:
        line_end: 991
        line_start: 990
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_FCNTL_MMAP_SIZE
      pos:
        line_end: 992
        line_start: 991
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SQLITE_FCNTL_TRACE
      pos:
        line_end: 993
        line_start: 992
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '19'
    - item_type: preproc_def
      name: SQLITE_FCNTL_HAS_MOVED
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SQLITE_FCNTL_SYNC
      pos:
        line_end: 995
        line_start: 994
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SQLITE_FCNTL_COMMIT_PHASETWO
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WIN32_SET_HANDLE
      pos:
        line_end: 997
        line_start: 996
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SQLITE_FCNTL_WAL_BLOCK
      pos:
        line_end: 998
        line_start: 997
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '24'
    - item_type: preproc_def
      name: SQLITE_FCNTL_ZIPVFS
      pos:
        line_end: 999
        line_start: 998
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_FCNTL_RBU
      pos:
        line_end: 1000
        line_start: 999
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '26'
    - item_type: preproc_def
      name: SQLITE_GET_LOCKPROXYFILE
      pos:
        line_end: 1003
        line_start: 1002
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: SQLITE_FCNTL_GET_LOCKPROXYFILE
    - item_type: preproc_def
      name: SQLITE_SET_LOCKPROXYFILE
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: SQLITE_FCNTL_SET_LOCKPROXYFILE
    - item_type: preproc_def
      name: SQLITE_LAST_ERRNO
      pos:
        line_end: 1005
        line_start: 1004
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: SQLITE_FCNTL_LAST_ERRNO
    - item_type: preproc_def
      name: SQLITE_ACCESS_EXISTS
      pos:
        line_end: 1238
        line_start: 1237
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_ACCESS_READWRITE
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_ACCESS_READ
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_SHM_UNLOCK
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SHM_LOCK
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_SHM_SHARED
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SHM_EXCLUSIVE
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_SHM_NLOCK
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_CONFIG_SINGLETHREAD
      pos:
        line_end: 1800
        line_start: 1799
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MULTITHREAD
      pos:
        line_end: 1801
        line_start: 1800
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SERIALIZED
      pos:
        line_end: 1802
        line_start: 1801
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MALLOC
      pos:
        line_end: 1803
        line_start: 1802
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETMALLOC
      pos:
        line_end: 1804
        line_start: 1803
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SCRATCH
      pos:
        line_end: 1805
        line_start: 1804
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PAGECACHE
      pos:
        line_end: 1806
        line_start: 1805
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_HEAP
      pos:
        line_end: 1807
        line_start: 1806
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MEMSTATUS
      pos:
        line_end: 1808
        line_start: 1807
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MUTEX
      pos:
        line_end: 1809
        line_start: 1808
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETMUTEX
      pos:
        line_end: 1810
        line_start: 1809
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_LOOKASIDE
      pos:
        line_end: 1812
        line_start: 1811
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE
      pos:
        line_end: 1813
        line_start: 1812
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '14  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETPCACHE
      pos:
        line_end: 1814
        line_start: 1813
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '15  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_LOG
      pos:
        line_end: 1815
        line_start: 1814
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_URI
      pos:
        line_end: 1816
        line_start: 1815
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '17  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE2
      pos:
        line_end: 1817
        line_start: 1816
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '18  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_GETPCACHE2
      pos:
        line_end: 1818
        line_start: 1817
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '19  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_COVERING_INDEX_SCAN
      pos:
        line_end: 1819
        line_start: 1818
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '20  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_SQLLOG
      pos:
        line_end: 1820
        line_start: 1819
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '21  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_MMAP_SIZE
      pos:
        line_end: 1821
        line_start: 1820
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '22  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_WIN32_HEAPSIZE
      pos:
        line_end: 1822
        line_start: 1821
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '23  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PCACHE_HDRSZ
      pos:
        line_end: 1823
        line_start: 1822
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '24  '
    - item_type: preproc_def
      name: SQLITE_CONFIG_PMASZ
      pos:
        line_end: 1824
        line_start: 1823
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_LOOKASIDE
      pos:
        line_end: 1884
        line_start: 1883
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1001  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_ENABLE_FKEY
      pos:
        line_end: 1885
        line_start: 1884
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1002  '
    - item_type: preproc_def
      name: SQLITE_DBCONFIG_ENABLE_TRIGGER
      pos:
        line_end: 1886
        line_start: 1885
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1003  '
    - item_type: preproc_def
      name: SQLITE_DENY
      pos:
        line_end: 2623
        line_start: 2622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_IGNORE
      pos:
        line_end: 2624
        line_start: 2623
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_CREATE_INDEX
      pos:
        line_end: 2646
        line_start: 2645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TABLE
      pos:
        line_end: 2647
        line_start: 2646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_INDEX
      pos:
        line_end: 2648
        line_start: 2647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_TABLE
      pos:
        line_end: 2649
        line_start: 2648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_TRIGGER
      pos:
        line_end: 2650
        line_start: 2649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TEMP_VIEW
      pos:
        line_end: 2651
        line_start: 2650
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6   '
    - item_type: preproc_def
      name: SQLITE_CREATE_TRIGGER
      pos:
        line_end: 2652
        line_start: 2651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7   '
    - item_type: preproc_def
      name: SQLITE_CREATE_VIEW
      pos:
        line_end: 2653
        line_start: 2652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: SQLITE_DELETE
      pos:
        line_end: 2654
        line_start: 2653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9   '
    - item_type: preproc_def
      name: SQLITE_DROP_INDEX
      pos:
        line_end: 2655
        line_start: 2654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_DROP_TABLE
      pos:
        line_end: 2656
        line_start: 2655
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_INDEX
      pos:
        line_end: 2657
        line_start: 2656
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '12   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_TABLE
      pos:
        line_end: 2658
        line_start: 2657
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_TRIGGER
      pos:
        line_end: 2659
        line_start: 2658
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '14   '
    - item_type: preproc_def
      name: SQLITE_DROP_TEMP_VIEW
      pos:
        line_end: 2660
        line_start: 2659
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '15   '
    - item_type: preproc_def
      name: SQLITE_DROP_TRIGGER
      pos:
        line_end: 2661
        line_start: 2660
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16   '
    - item_type: preproc_def
      name: SQLITE_DROP_VIEW
      pos:
        line_end: 2662
        line_start: 2661
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '17   '
    - item_type: preproc_def
      name: SQLITE_INSERT
      pos:
        line_end: 2663
        line_start: 2662
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '18   '
    - item_type: preproc_def
      name: SQLITE_PRAGMA
      pos:
        line_end: 2664
        line_start: 2663
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '19   '
    - item_type: preproc_def
      name: SQLITE_READ
      pos:
        line_end: 2665
        line_start: 2664
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '20   '
    - item_type: preproc_def
      name: SQLITE_SELECT
      pos:
        line_end: 2666
        line_start: 2665
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '21   '
    - item_type: preproc_def
      name: SQLITE_TRANSACTION
      pos:
        line_end: 2667
        line_start: 2666
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '22   '
    - item_type: preproc_def
      name: SQLITE_UPDATE
      pos:
        line_end: 2668
        line_start: 2667
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '23   '
    - item_type: preproc_def
      name: SQLITE_ATTACH
      pos:
        line_end: 2669
        line_start: 2668
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '24   '
    - item_type: preproc_def
      name: SQLITE_DETACH
      pos:
        line_end: 2670
        line_start: 2669
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25   '
    - item_type: preproc_def
      name: SQLITE_ALTER_TABLE
      pos:
        line_end: 2671
        line_start: 2670
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '26   '
    - item_type: preproc_def
      name: SQLITE_REINDEX
      pos:
        line_end: 2672
        line_start: 2671
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '27   '
    - item_type: preproc_def
      name: SQLITE_ANALYZE
      pos:
        line_end: 2673
        line_start: 2672
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '28   '
    - item_type: preproc_def
      name: SQLITE_CREATE_VTABLE
      pos:
        line_end: 2674
        line_start: 2673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '29   '
    - item_type: preproc_def
      name: SQLITE_DROP_VTABLE
      pos:
        line_end: 2675
        line_start: 2674
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '30   '
    - item_type: preproc_def
      name: SQLITE_FUNCTION
      pos:
        line_end: 2676
        line_start: 2675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '31   '
    - item_type: preproc_def
      name: SQLITE_SAVEPOINT
      pos:
        line_end: 2677
        line_start: 2676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '32   '
    - item_type: preproc_def
      name: SQLITE_COPY
      pos:
        line_end: 2678
        line_start: 2677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: SQLITE_RECURSIVE
      pos:
        line_end: 2679
        line_start: 2678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '33   '
    - item_type: preproc_def
      name: SQLITE_LIMIT_LENGTH
      pos:
        line_end: 3205
        line_start: 3204
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_LIMIT_SQL_LENGTH
      pos:
        line_end: 3206
        line_start: 3205
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_LIMIT_COLUMN
      pos:
        line_end: 3207
        line_start: 3206
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_LIMIT_EXPR_DEPTH
      pos:
        line_end: 3208
        line_start: 3207
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_LIMIT_COMPOUND_SELECT
      pos:
        line_end: 3209
        line_start: 3208
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_LIMIT_VDBE_OP
      pos:
        line_end: 3210
        line_start: 3209
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_LIMIT_FUNCTION_ARG
      pos:
        line_end: 3211
        line_start: 3210
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_LIMIT_ATTACHED
      pos:
        line_end: 3212
        line_start: 3211
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_LIMIT_LIKE_PATTERN_LENGTH
      pos:
        line_end: 3213
        line_start: 3212
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_LIMIT_VARIABLE_NUMBER
      pos:
        line_end: 3214
        line_start: 3213
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_LIMIT_TRIGGER_DEPTH
      pos:
        line_end: 3215
        line_start: 3214
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_LIMIT_WORKER_THREADS
      pos:
        line_end: 3216
        line_start: 3215
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_INTEGER
      pos:
        line_end: 3893
        line_start: 3892
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FLOAT
      pos:
        line_end: 3894
        line_start: 3893
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_BLOB
      pos:
        line_end: 3895
        line_start: 3894
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_NULL
      pos:
        line_end: 3896
        line_start: 3895
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TEXT
      pos:
        line_end: 3900
        line_start: 3899
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE3_TEXT
      pos:
        line_end: 3902
        line_start: 3901
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_UTF8
      pos:
        line_end: 4262
        line_start: 4261
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1    '
    - item_type: preproc_def
      name: SQLITE_UTF16LE
      pos:
        line_end: 4263
        line_start: 4262
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2    '
    - item_type: preproc_def
      name: SQLITE_UTF16BE
      pos:
        line_end: 4264
        line_start: 4263
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3    '
    - item_type: preproc_def
      name: SQLITE_UTF16
      pos:
        line_end: 4265
        line_start: 4264
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4    '
    - item_type: preproc_def
      name: SQLITE_ANY
      pos:
        line_end: 4266
        line_start: 4265
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5    '
    - item_type: preproc_def
      name: SQLITE_UTF16_ALIGNED
      pos:
        line_end: 4267
        line_start: 4266
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8    '
    - item_type: preproc_def
      name: SQLITE_DETERMINISTIC
      pos:
        line_end: 4277
        line_start: 4276
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: SQLITE_STATIC
      pos:
        line_end: 4517
        line_start: 4516
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: ((sqlite3_destructor_type)0)
    - item_type: preproc_def
      name: SQLITE_TRANSIENT
      pos:
        line_end: 4518
        line_start: 4517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: ((sqlite3_destructor_type)-1)
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_EQ
      pos:
        line_end: 5646
        line_start: 5645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_GT
      pos:
        line_end: 5647
        line_start: 5646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_LE
      pos:
        line_end: 5648
        line_start: 5647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_LT
      pos:
        line_end: 5649
        line_start: 5648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_GE
      pos:
        line_end: 5650
        line_start: 5649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SQLITE_INDEX_CONSTRAINT_MATCH
      pos:
        line_end: 5651
        line_start: 5650
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SQLITE_MUTEX_FAST
      pos:
        line_end: 6283
        line_start: 6282
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_MUTEX_RECURSIVE
      pos:
        line_end: 6284
        line_start: 6283
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MASTER
      pos:
        line_end: 6285
        line_start: 6284
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MEM
      pos:
        line_end: 6286
        line_start: 6285
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_MEM2
      pos:
        line_end: 6287
        line_start: 6286
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_OPEN
      pos:
        line_end: 6288
        line_start: 6287
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_PRNG
      pos:
        line_end: 6289
        line_start: 6288
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_LRU
      pos:
        line_end: 6290
        line_start: 6289
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_LRU2
      pos:
        line_end: 6291
        line_start: 6290
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_PMEM
      pos:
        line_end: 6292
        line_start: 6291
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP1
      pos:
        line_end: 6293
        line_start: 6292
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP2
      pos:
        line_end: 6294
        line_start: 6293
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_APP3
      pos:
        line_end: 6295
        line_start: 6294
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS1
      pos:
        line_end: 6296
        line_start: 6295
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS2
      pos:
        line_end: 6297
        line_start: 6296
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '12  '
    - item_type: preproc_def
      name: SQLITE_MUTEX_STATIC_VFS3
      pos:
        line_end: 6298
        line_start: 6297
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13  '
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_FIRST
      pos:
        line_end: 6377
        line_start: 6376
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_SAVE
      pos:
        line_end: 6378
        line_start: 6377
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_RESTORE
      pos:
        line_end: 6379
        line_start: 6378
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PRNG_RESET
      pos:
        line_end: 6380
        line_start: 6379
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BITVEC_TEST
      pos:
        line_end: 6381
        line_start: 6380
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_FAULT_INSTALL
      pos:
        line_end: 6382
        line_start: 6381
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
      pos:
        line_end: 6383
        line_start: 6382
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_PENDING_BYTE
      pos:
        line_end: 6384
        line_start: 6383
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ASSERT
      pos:
        line_end: 6385
        line_start: 6384
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ALWAYS
      pos:
        line_end: 6386
        line_start: 6385
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_RESERVE
      pos:
        line_end: 6387
        line_start: 6386
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_OPTIMIZATIONS
      pos:
        line_end: 6388
        line_start: 6387
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ISKEYWORD
      pos:
        line_end: 6389
        line_start: 6388
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_SCRATCHMALLOC
      pos:
        line_end: 6390
        line_start: 6389
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_LOCALTIME_FAULT
      pos:
        line_end: 6391
        line_start: 6390
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_EXPLAIN_STMT
      pos:
        line_end: 6392
        line_start: 6391
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '19  '
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_NEVER_CORRUPT
      pos:
        line_end: 6393
        line_start: 6392
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_VDBE_COVERAGE
      pos:
        line_end: 6394
        line_start: 6393
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_BYTEORDER
      pos:
        line_end: 6395
        line_start: 6394
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_ISINIT
      pos:
        line_end: 6396
        line_start: 6395
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_SORTER_MMAP
      pos:
        line_end: 6397
        line_start: 6396
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '24'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_IMPOSTER
      pos:
        line_end: 6398
        line_start: 6397
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_TESTCTRL_LAST
      pos:
        line_end: 6399
        line_start: 6398
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SQLITE_STATUS_MEMORY_USED
      pos:
        line_end: 6518
        line_start: 6517
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_USED
      pos:
        line_end: 6519
        line_start: 6518
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_OVERFLOW
      pos:
        line_end: 6520
        line_start: 6519
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_USED
      pos:
        line_end: 6521
        line_start: 6520
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_OVERFLOW
      pos:
        line_end: 6522
        line_start: 6521
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_STATUS_MALLOC_SIZE
      pos:
        line_end: 6523
        line_start: 6522
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_STATUS_PARSER_STACK
      pos:
        line_end: 6524
        line_start: 6523
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_STATUS_PAGECACHE_SIZE
      pos:
        line_end: 6525
        line_start: 6524
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_STATUS_SCRATCH_SIZE
      pos:
        line_end: 6526
        line_start: 6525
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_STATUS_MALLOC_COUNT
      pos:
        line_end: 6527
        line_start: 6526
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_USED
      pos:
        line_end: 6644
        line_start: 6643
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_USED
      pos:
        line_end: 6645
        line_start: 6644
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_SCHEMA_USED
      pos:
        line_end: 6646
        line_start: 6645
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_STMT_USED
      pos:
        line_end: 6647
        line_start: 6646
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_HIT
      pos:
        line_end: 6648
        line_start: 6647
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
      pos:
        line_end: 6649
        line_start: 6648
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
      pos:
        line_end: 6650
        line_start: 6649
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_HIT
      pos:
        line_end: 6651
        line_start: 6650
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_MISS
      pos:
        line_end: 6652
        line_start: 6651
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_CACHE_WRITE
      pos:
        line_end: 6653
        line_start: 6652
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_DEFERRED_FKS
      pos:
        line_end: 6654
        line_start: 6653
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SQLITE_DBSTATUS_MAX
      pos:
        line_end: 6655
        line_start: 6654
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '10   '
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_FULLSCAN_STEP
      pos:
        line_end: 6721
        line_start: 6720
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_SORT
      pos:
        line_end: 6722
        line_start: 6721
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_AUTOINDEX
      pos:
        line_end: 6723
        line_start: 6722
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_STMTSTATUS_VM_STEP
      pos:
        line_end: 6724
        line_start: 6723
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_PASSIVE
      pos:
        line_end: 7535
        line_start: 7534
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_FULL
      pos:
        line_end: 7536
        line_start: 7535
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_RESTART
      pos:
        line_end: 7537
        line_start: 7536
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2  '
    - item_type: preproc_def
      name: SQLITE_CHECKPOINT_TRUNCATE
      pos:
        line_end: 7538
        line_start: 7537
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3  '
    - item_type: preproc_def
      name: SQLITE_VTAB_CONSTRAINT_SUPPORT
      pos:
        line_end: 7595
        line_start: 7594
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_ROLLBACK
      pos:
        line_end: 7621
        line_start: 7620
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_FAIL
      pos:
        line_end: 7623
        line_start: 7622
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_REPLACE
      pos:
        line_end: 7625
        line_start: 7624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NLOOP
      pos:
        line_end: 7674
        line_start: 7673
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NVISIT
      pos:
        line_end: 7675
        line_start: 7674
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_EST
      pos:
        line_end: 7676
        line_start: 7675
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_NAME
      pos:
        line_end: 7677
        line_start: 7676
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_EXPLAIN
      pos:
        line_end: 7678
        line_start: 7677
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SQLITE_SCANSTAT_SELECTID
      pos:
        line_end: 7679
        line_start: 7678
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NOT_WITHIN
      pos:
        line_end: 7850
        line_start: 7849
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: PARTLY_WITHIN
      pos:
        line_end: 7851
        line_start: 7850
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: FULLY_WITHIN
      pos:
        line_end: 7852
        line_start: 7851
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type_or_value: '2   '
    structs:
    - fields:
      - name: '*pMethods'
        type: struct sqlite3_io_methods
      item_type: struct
      name: sqlite3_file
      pos:
        line_end: 637
        line_start: 635
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iVersion
        type: int
      - name: (*xClose)(sqlite3_file*)
        type: int
      - name: (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst)
        type: int
      - name: (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst)
        type: int
      - name: (*xTruncate)(sqlite3_file*, sqlite3_int64 size)
        type: int
      - name: (*xSync)(sqlite3_file*, int flags)
        type: int
      - name: (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize)
        type: int
      - name: (*xLock)(sqlite3_file*, int)
        type: int
      - name: (*xUnlock)(sqlite3_file*, int)
        type: int
      - name: (*xCheckReservedLock)(sqlite3_file*, int *pResOut)
        type: int
      - name: (*xFileControl)(sqlite3_file*, int op, void *pArg)
        type: int
      - name: (*xSectorSize)(sqlite3_file*)
        type: int
      - name: (*xDeviceCharacteristics)(sqlite3_file*)
        type: int
      - name: (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**)
        type: int
      - name: (*xShmLock)(sqlite3_file*, int offset, int n, int flags)
        type: int
      - name: (*xShmBarrier)(sqlite3_file*)
        type: void
      - name: (*xShmUnmap)(sqlite3_file*, int deleteFlag)
        type: int
      - name: (*xFetch)(sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp)
        type: int
      - name: (*xUnfetch)(sqlite3_file*, sqlite3_int64 iOfst, void *p)
        type: int
      item_type: struct
      name: sqlite3_io_methods
      pos:
        line_end: 754
        line_start: 730
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iVersion
        type: int
      - name: szOsFile
        type: int
      - name: mxPathname
        type: int
      - name: '*pNext'
        type: sqlite3_vfs
      - name: '*zName'
        type: char
      - name: '*pAppData'
        type: void
      - name: "(*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*,\n               int
          flags, int *pOutFlags)"
        type: int
      - name: (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir)
        type: int
      - name: (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut)
        type: int
      - name: (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut)
        type: int
      - name: '*(*xDlOpen)(sqlite3_vfs*, const char *zFilename)'
        type: void
      - name: (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg)
        type: void
      - name: (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void)
        type: void
      - name: (*xDlClose)(sqlite3_vfs*, void*)
        type: void
      - name: (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut)
        type: int
      - name: (*xSleep)(sqlite3_vfs*, int microseconds)
        type: int
      - name: (*xCurrentTime)(sqlite3_vfs*, double*)
        type: int
      - name: (*xGetLastError)(sqlite3_vfs*, int, char *)
        type: int
      - name: (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*)
        type: int
      - name: (*xSetSystemCall)(sqlite3_vfs*, const char *zName, sqlite3_syscall_ptr)
        type: int
      - name: (*xGetSystemCall)(sqlite3_vfs*, const char *zName)
        type: sqlite3_syscall_ptr
      - name: '*(*xNextSystemCall)(sqlite3_vfs*, const char *zName)'
        type: char
      item_type: struct
      name: sqlite3_vfs
      pos:
        line_end: 1215
        line_start: 1178
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*(*xMalloc)(int)'
        type: void
      - name: (*xFree)(void*)
        type: void
      - name: '*(*xRealloc)(void*,int)'
        type: void
      - name: (*xSize)(void*)
        type: int
      - name: (*xRoundup)(int)
        type: int
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*pAppData'
        type: void
      item_type: struct
      name: sqlite3_mem_methods
      pos:
        line_end: 1482
        line_start: 1473
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iVersion
        type: int
      - name: "(*xCreate)(sqlite3*, void *pAux,\n               int argc, const char
          *const*argv,\n               sqlite3_vtab **ppVTab, char**)"
        type: int
      - name: "(*xConnect)(sqlite3*, void *pAux,\n               int argc, const char
          *const*argv,\n               sqlite3_vtab **ppVTab, char**)"
        type: int
      - name: (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*)
        type: int
      - name: (*xDisconnect)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xDestroy)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
        type: int
      - name: (*xClose)(sqlite3_vtab_cursor*)
        type: int
      - name: "(*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr,\n
          \               int argc, sqlite3_value **argv)"
        type: int
      - name: (*xNext)(sqlite3_vtab_cursor*)
        type: int
      - name: (*xEof)(sqlite3_vtab_cursor*)
        type: int
      - name: (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int)
        type: int
      - name: (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid)
        type: int
      - name: (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *)
        type: int
      - name: (*xBegin)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xSync)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xCommit)(sqlite3_vtab *pVTab)
        type: int
      - name: (*xRollback)(sqlite3_vtab *pVTab)
        type: int
      - name: "(*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName,\n
          \                      void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),\n
          \                      void **ppArg)"
        type: int
      - name: (*xRename)(sqlite3_vtab *pVtab, const char *zNew)
        type: int
      - name: (*xSavepoint)(sqlite3_vtab *pVTab, int)
        type: int
      - name: (*xRelease)(sqlite3_vtab *pVTab, int)
        type: int
      - name: (*xRollbackTo)(sqlite3_vtab *pVTab, int)
        type: int
      item_type: struct
      name: sqlite3_module
      pos:
        line_end: 5542
        line_start: 5509
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: nConstraint
        type: int
      - name: '*aConstraint'
        type: "struct sqlite3_index_constraint {\n     int iColumn;              /*
          Column on left-hand side of constraint */\n     unsigned char op;         /*
          Constraint operator */\n     unsigned char usable;     /* True if this constraint
          is usable */\n     int iTermOffset;          /* Used internally - xBestIndex
          should ignore */\n  }"
      - name: nOrderBy
        type: int
      - name: '*aOrderBy'
        type: "struct sqlite3_index_orderby {\n     int iColumn;              /* Column
          number */\n     unsigned char desc;       /* True for DESC.  False for ASC.
          */\n  }"
      - name: '*aConstraintUsage'
        type: "struct sqlite3_index_constraint_usage {\n    int argvIndex;           /*
          if >0, constraint is part of argv to xFilter */\n    unsigned char omit;
          \     /* Do not code a test for this constraint */\n  }"
      - name: idxNum
        type: int
      - name: '*idxStr'
        type: char
      - name: needToFreeIdxStr
        type: int
      - name: orderByConsumed
        type: int
      - name: estimatedCost
        type: double
      - name: estimatedRows
        type: sqlite3_int64
      item_type: struct
      name: sqlite3_index_info
      pos:
        line_end: 5635
        line_start: 5609
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iColumn
        type: int
      - name: op
        type: unsigned char
      - name: usable
        type: unsigned char
      - name: iTermOffset
        type: int
      item_type: struct
      name: sqlite3_index_constraint
      pos:
        line_end: 5617
        line_start: 5612
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iColumn
        type: int
      - name: desc
        type: unsigned char
      item_type: struct
      name: sqlite3_index_orderby
      pos:
        line_end: 5622
        line_start: 5619
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: argvIndex
        type: int
      - name: omit
        type: unsigned char
      item_type: struct
      name: sqlite3_index_constraint_usage
      pos:
        line_end: 5627
        line_start: 5624
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pModule'
        type: sqlite3_module
      - name: nRef
        type: int
      - name: '*zErrMsg'
        type: char
      item_type: struct
      name: sqlite3_vtab
      pos:
        line_end: 5715
        line_start: 5710
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pVtab'
        type: sqlite3_vtab
      item_type: struct
      name: sqlite3_vtab_cursor
      pos:
        line_end: 5737
        line_start: 5734
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: (*xMutexInit)(void)
        type: int
      - name: (*xMutexEnd)(void)
        type: int
      - name: '*(*xMutexAlloc)(int)'
        type: sqlite3_mutex
      - name: (*xMutexFree)(sqlite3_mutex *)
        type: void
      - name: (*xMutexEnter)(sqlite3_mutex *)
        type: void
      - name: (*xMutexTry)(sqlite3_mutex *)
        type: int
      - name: (*xMutexLeave)(sqlite3_mutex *)
        type: void
      - name: (*xMutexHeld)(sqlite3_mutex *)
        type: int
      - name: (*xMutexNotheld)(sqlite3_mutex *)
        type: int
      item_type: struct
      name: sqlite3_mutex_methods
      pos:
        line_end: 6236
        line_start: 6226
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pBuf'
        type: void
      - name: '*pExtra'
        type: void
      item_type: struct
      name: sqlite3_pcache_page
      pos:
        line_end: 6752
        line_start: 6749
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: iVersion
        type: int
      - name: '*pArg'
        type: void
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*(*xCreate)(int szPage, int szExtra, int bPurgeable)'
        type: sqlite3_pcache
      - name: (*xCachesize)(sqlite3_pcache*, int nCachesize)
        type: void
      - name: (*xPagecount)(sqlite3_pcache*)
        type: int
      - name: '*(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)'
        type: sqlite3_pcache_page
      - name: (*xUnpin)(sqlite3_pcache*, sqlite3_pcache_page*, int discard)
        type: void
      - name: "(*xRekey)(sqlite3_pcache*, sqlite3_pcache_page*, \n      unsigned oldKey,
          unsigned newKey)"
        type: void
      - name: (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
        type: void
      - name: (*xDestroy)(sqlite3_pcache*)
        type: void
      - name: (*xShrink)(sqlite3_pcache*)
        type: void
      item_type: struct
      name: sqlite3_pcache_methods2
      pos:
        line_end: 6929
        line_start: 6914
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pArg'
        type: void
      - name: (*xInit)(void*)
        type: int
      - name: (*xShutdown)(void*)
        type: void
      - name: '*(*xCreate)(int szPage, int bPurgeable)'
        type: sqlite3_pcache
      - name: (*xCachesize)(sqlite3_pcache*, int nCachesize)
        type: void
      - name: (*xPagecount)(sqlite3_pcache*)
        type: int
      - name: '*(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)'
        type: void
      - name: (*xUnpin)(sqlite3_pcache*, void*, int discard)
        type: void
      - name: (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey)
        type: void
      - name: (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
        type: void
      - name: (*xDestroy)(sqlite3_pcache*)
        type: void
      item_type: struct
      name: sqlite3_pcache_methods
      pos:
        line_end: 6949
        line_start: 6937
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pContext'
        type: void
      - name: nParam
        type: int
      - name: '*aParam'
        type: sqlite3_rtree_dbl
      - name: '*pUser'
        type: void
      - name: (*xDelUser)(void *)
        type: void
      item_type: struct
      name: sqlite3_rtree_geometry
      pos:
        line_end: 7800
        line_start: 7794
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    - fields:
      - name: '*pContext'
        type: void
      - name: nParam
        type: int
      - name: '*aParam'
        type: sqlite3_rtree_dbl
      - name: '*pUser'
        type: void
      - name: (*xDelUser)(void*)
        type: void
      - name: '*aCoord'
        type: sqlite3_rtree_dbl
      - name: '*anQueue'
        type: unsigned int
      - name: nCoord
        type: int
      - name: iLevel
        type: int
      - name: mxLevel
        type: int
      - name: iRowid
        type: sqlite3_int64
      - name: rParentScore
        type: sqlite3_rtree_dbl
      - name: eParentWithin
        type: int
      - name: eWithin
        type: int
      - name: rScore
        type: sqlite3_rtree_dbl
      - name: '**apSqlParam'
        type: sqlite3_value
      item_type: struct
      name: sqlite3_rtree_query_info
      pos:
        line_end: 7844
        line_start: 7826
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
    typedefs:
    - item_type: typedef
      name: sqlite3
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: SQLITE_INT64_TYPE
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: unsigned SQLITE_INT64_TYPE
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: __int64
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: unsigned __int64
    - item_type: typedef
      name: sqlite_int64
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: long long int
    - item_type: typedef
      name: sqlite_uint64
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: unsigned long long int
    - item_type: typedef
      name: sqlite3_int64
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite_int64
    - item_type: typedef
      name: sqlite3_uint64
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite_uint64
    - item_type: typedef
      name: (*sqlite3_callback)(void*,int,char**, char**)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: int
    - item_type: typedef
      name: sqlite3_file
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_file
    - item_type: typedef
      name: sqlite3_io_methods
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_io_methods
    - item_type: typedef
      name: sqlite3_mutex
      pos:
        line_end: 1017
        line_start: 1017
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_mutex
    - item_type: typedef
      name: sqlite3_vfs
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_vfs
    - item_type: typedef
      name: (*sqlite3_syscall_ptr)(void)
      pos:
        line_end: 1177
        line_start: 1177
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: void
    - item_type: typedef
      name: sqlite3_mem_methods
      pos:
        line_end: 1472
        line_start: 1472
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_mem_methods
    - item_type: typedef
      name: sqlite3_stmt
      pos:
        line_end: 3104
        line_start: 3104
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_stmt
    - item_type: typedef
      name: sqlite3_value
      pos:
        line_end: 3428
        line_start: 3428
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: Mem
    - item_type: typedef
      name: sqlite3_context
      pos:
        line_end: 3442
        line_start: 3442
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_context
    - item_type: typedef
      name: (*sqlite3_destructor_type)(void*)
      pos:
        line_end: 4515
        line_start: 4515
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: void
    - item_type: typedef
      name: sqlite3_vtab
      pos:
        line_end: 5488
        line_start: 5488
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_vtab
    - item_type: typedef
      name: sqlite3_index_info
      pos:
        line_end: 5489
        line_start: 5489
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_index_info
    - item_type: typedef
      name: sqlite3_vtab_cursor
      pos:
        line_end: 5490
        line_start: 5490
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_vtab_cursor
    - item_type: typedef
      name: sqlite3_module
      pos:
        line_end: 5491
        line_start: 5491
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_module
    - item_type: typedef
      name: sqlite3_blob
      pos:
        line_end: 5790
        line_start: 5790
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_blob
    - item_type: typedef
      name: sqlite3_mutex_methods
      pos:
        line_end: 6225
        line_start: 6225
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_mutex_methods
    - item_type: typedef
      name: sqlite3_pcache
      pos:
        line_end: 6736
        line_start: 6736
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_pcache
    - item_type: typedef
      name: sqlite3_pcache_page
      pos:
        line_end: 6748
        line_start: 6748
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_pcache_page
    - item_type: typedef
      name: sqlite3_pcache_methods2
      pos:
        line_end: 6913
        line_start: 6913
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_pcache_methods2
    - item_type: typedef
      name: sqlite3_pcache_methods
      pos:
        line_end: 6936
        line_start: 6936
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_pcache_methods
    - item_type: typedef
      name: sqlite3_backup
      pos:
        line_end: 6962
        line_start: 6962
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_backup
    - item_type: typedef
      name: sqlite3_rtree_geometry
      pos:
        line_end: 7764
        line_start: 7764
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_rtree_geometry
    - item_type: typedef
      name: sqlite3_rtree_query_info
      pos:
        line_end: 7765
        line_start: 7765
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_rtree_query_info
    - item_type: typedef
      name: sqlite3_rtree_dbl
      pos:
        line_end: 7771
        line_start: 7771
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: sqlite3_int64
    - item_type: typedef
      name: sqlite3_rtree_dbl
      pos:
        line_end: 7773
        line_start: 7773
        source_file: /src/sleuthkit/tsk/auto/sqlite3.h
      type: double
    union: []
- function_names:
  - TskDbSqlite::TskDbSqlite
  - TskDbSqlite::TskDbSqlite
  - TskDbSqlite::~TskDbSqlite()
  - TskDbSqlite::close
  - TskDbSqlite::attempt
  - TskDbSqlite::attempt
  - TskDbSqlite::attempt_exec
  - TskDbSqlite::attempt_exec
  - TskDbSqlite::prepare_stmt
  - TskDbSqlite::addObject
  - TskDbSqlite::initialize
  - TskDbSqlite::createIndexes
  - TskDbSqlite::open
  - TskDbSqlite::setupFilePreparedStmt
  - TskDbSqlite::cleanupFilePreparedStmt
  - TskDbSqlite::addImageInfo
  - TskDbSqlite::addImageInfo
  - TskDbSqlite::addImageInfo
  - TskDbSqlite::addImageName
  - TskDbSqlite::addVsInfo
  - TskDbSqlite::addPoolInfoAndVS
  - TskDbSqlite::addUnallocatedPoolVolume
  - TskDbSqlite::addPoolVolumeInfo
  - TskDbSqlite::addVolumeInfo
  - TskDbSqlite::addFsInfo
  - TskDbSqlite::addFsFile
  - TskDbSqlite::hash
  - TskDbSqlite::storeObjId
  - TskDbSqlite::findParObjId
  - TskDbSqlite::addMACTimeEvents
  - TskDbSqlite::addFile
  - TskDbSqlite::createSavepoint
  - TskDbSqlite::revertSavepoint
  - TskDbSqlite::releaseSavepoint
  - TskDbSqlite::addFileLayoutRange
  - TskDbSqlite::addFileLayoutRange
  - TskDbSqlite::addLayoutFileInfo
  - TskDbSqlite::isDbOpen
  - TskDbSqlite::dbExists
  - TskDbSqlite::inTransaction
  - TskDbSqlite::addUnallocBlockFile
  - TskDbSqlite::addUnusedBlockFile
  - TskDbSqlite::addCarvedFile
  - _checkFileLayoutRangeOverlap
  - getHasOverlap
  - operator()(const TSK_DB_FILE_LAYOUT_RANGE& range)
  - TskDbSqlite::addVirtualDir
  - TskDbSqlite::addUnallocFsBlockFilesParent
  - TskDbSqlite::addFileWithLayoutRange
  - TskDbSqlite::getFileLayouts
  - '& operator <<(ostream& os, const TSK_DB_FILE_LAYOUT_RANGE& layoutRange)'
  - '& operator <<(ostream& os, const TSK_DB_FS_INFO& fsInfo)'
  - '& operator <<(ostream& os, const TSK_DB_VS_INFO& vsInfo)'
  - '& operator <<(ostream& os, const TSK_DB_VS_PART_INFO& vsPartInfo)'
  - '& operator <<(ostream& os, const TSK_DB_OBJECT& dbObject)'
  - TskDbSqlite::getFsInfos
  - TskDbSqlite::getVsInfos
  - TskDbSqlite::getVsPartInfos
  - TskDbSqlite::getObjectInfo
  - TskDbSqlite::getVsInfo
  - TskDbSqlite::getParentImageId
  - TskDbSqlite::getFsRootDirObjectInfo
  source_file: /src/sleuthkit/tsk/auto/db_sqlite.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& ranges'
        type: vector<TSK_DB_FILE_LAYOUT_RANGE>
      - name: hasOverlap
        type: bool
      item_type: struct
      name: _checkFileLayoutRangeOverlap
      pos:
        line_end: 1725
        line_start: 1690
        source_file: /src/sleuthkit/tsk/auto/db_sqlite.cpp
    typedefs: []
    union: []
- function_names:
  - tsk_list_create
  - tsk_list_add
  - tsk_list_find
  - tsk_list_free
  source_file: /src/sleuthkit/tsk/base/tsk_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_malloc
  - tsk_realloc
  source_file: /src/sleuthkit/tsk/base/mymalloc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_init_lock
  - tsk_deinit_lock
  - tsk_take_lock
  - tsk_release_lock
  - tsk_init_lock
  - tsk_deinit_lock
  - tsk_take_lock
  - tsk_release_lock
  - tsk_init_lock
  - tsk_deinit_lock
  - tsk_take_lock
  - tsk_release_lock
  source_file: /src/sleuthkit/tsk/base/tsk_lock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSK_ERROR_FORMAT_ATTRIBUTE
  - TskStack::TskStack
  - ~TskStack()
  - TskStack::pop
  - TskStack::push
  - TskStack::find
  - TskStack::length
  - TskError::get
  - TskError::print
  - TskError::reset
  source_file: /src/sleuthkit/tsk/base/tsk_base.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_VERSION_NUM
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x041500ff'
    - item_type: preproc_def
      name: TSK_VERSION_STR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"4.15.0"'
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: _strnicmp
    - item_type: preproc_def
      name: TSK_ERROR_STRING_MAX_LENGTH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: PRIx64
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"llx"'
    - item_type: preproc_def
      name: PRIX64
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"llX"'
    - item_type: preproc_def
      name: PRIu64
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: PRId64
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PRIo64
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"llo"'
    - item_type: preproc_def
      name: PRIx32
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"x"'
    - item_type: preproc_def
      name: PRIX32
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"X"'
    - item_type: preproc_def
      name: PRIu32
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: PRId32
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: PRIx16
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"hx"'
    - item_type: preproc_def
      name: PRIX16
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"hX"'
    - item_type: preproc_def
      name: PRIu16
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"hu"'
    - item_type: preproc_def
      name: PRIu8
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"hhu"'
    - item_type: preproc_def
      name: PRIx8
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '"hhx"'
    - item_type: preproc_def
      name: PRIuINUM
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: PRIxINUM
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: PRIuUID
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIu32
    - item_type: preproc_def
      name: PRIxUID
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: PRIuGID
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIu32
    - item_type: preproc_def
      name: PRIxGID
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: PRIuDADDR
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: PRIxDADDR
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: PRIxOFF
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: PRIdOFF
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRId64
    - item_type: preproc_def
      name: PRIuPNUM
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIu32
    - item_type: preproc_def
      name: PRIxPNUM
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: TSK_ERR_AUX
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x01000000'
    - item_type: preproc_def
      name: TSK_ERR_IMG
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x02000000'
    - item_type: preproc_def
      name: TSK_ERR_VS
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x04000000'
    - item_type: preproc_def
      name: TSK_ERR_FS
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x08000000'
    - item_type: preproc_def
      name: TSK_ERR_HDB
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: TSK_ERR_AUTO
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: TSK_ERR_POOL
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: TSK_ERR_MASK
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0x00ffffff'
    - item_type: preproc_def
      name: TSK_ERR_AUX_MALLOC
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUX | 0)
    - item_type: preproc_def
      name: TSK_ERR_AUX_GENERIC
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUX | 2)
    - item_type: preproc_def
      name: TSK_ERR_AUX_MAX
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TSK_ERR_IMG_NOFILE
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 0)
    - item_type: preproc_def
      name: TSK_ERR_IMG_OFFSET
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 1)
    - item_type: preproc_def
      name: TSK_ERR_IMG_UNKTYPE
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 2)
    - item_type: preproc_def
      name: TSK_ERR_IMG_UNSUPTYPE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 3)
    - item_type: preproc_def
      name: TSK_ERR_IMG_OPEN
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 4)
    - item_type: preproc_def
      name: TSK_ERR_IMG_STAT
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 5)
    - item_type: preproc_def
      name: TSK_ERR_IMG_SEEK
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 6)
    - item_type: preproc_def
      name: TSK_ERR_IMG_READ
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 7)
    - item_type: preproc_def
      name: TSK_ERR_IMG_READ_OFF
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 8)
    - item_type: preproc_def
      name: TSK_ERR_IMG_ARG
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 9)
    - item_type: preproc_def
      name: TSK_ERR_IMG_MAGIC
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 10)
    - item_type: preproc_def
      name: TSK_ERR_IMG_WRITE
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 11)
    - item_type: preproc_def
      name: TSK_ERR_IMG_CONVERT
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 12)
    - item_type: preproc_def
      name: TSK_ERR_IMG_PASSWD
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_IMG | 13)
    - item_type: preproc_def
      name: TSK_ERR_IMG_MAX
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TSK_ERR_VS_UNKTYPE
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 0)
    - item_type: preproc_def
      name: TSK_ERR_VS_UNSUPTYPE
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 1)
    - item_type: preproc_def
      name: TSK_ERR_VS_READ
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 2)
    - item_type: preproc_def
      name: TSK_ERR_VS_MAGIC
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 3)
    - item_type: preproc_def
      name: TSK_ERR_VS_WALK_RNG
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 4)
    - item_type: preproc_def
      name: TSK_ERR_VS_BUF
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 5)
    - item_type: preproc_def
      name: TSK_ERR_VS_BLK_NUM
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 6)
    - item_type: preproc_def
      name: TSK_ERR_VS_ARG
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 7)
    - item_type: preproc_def
      name: TSK_ERR_VS_ENCRYPTED
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 8)
    - item_type: preproc_def
      name: TSK_ERR_VS_MULTTYPE
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_VS | 9)
    - item_type: preproc_def
      name: TSK_ERR_VS_MAX
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TSK_ERR_POOL_UNKTYPE
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_POOL | 0)
    - item_type: preproc_def
      name: TSK_ERR_POOL_UNSUPTYPE
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_POOL | 1)
    - item_type: preproc_def
      name: TSK_ERR_POOL_ARG
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_POOL | 2)
    - item_type: preproc_def
      name: TSK_ERR_POOL_GENPOOL
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_POOL | 3)
    - item_type: preproc_def
      name: TSK_ERR_POOL_MAX
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TSK_ERR_FS_UNKTYPE
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 0)
    - item_type: preproc_def
      name: TSK_ERR_FS_UNSUPTYPE
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 1)
    - item_type: preproc_def
      name: TSK_ERR_FS_UNSUPFUNC
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 2)
    - item_type: preproc_def
      name: TSK_ERR_FS_WALK_RNG
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 3)
    - item_type: preproc_def
      name: TSK_ERR_FS_READ
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 4)
    - item_type: preproc_def
      name: TSK_ERR_FS_READ_OFF
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 5)
    - item_type: preproc_def
      name: TSK_ERR_FS_ARG
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 6)
    - item_type: preproc_def
      name: TSK_ERR_FS_BLK_NUM
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 7)
    - item_type: preproc_def
      name: TSK_ERR_FS_INODE_NUM
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 8)
    - item_type: preproc_def
      name: TSK_ERR_FS_INODE_COR
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 9)
    - item_type: preproc_def
      name: TSK_ERR_FS_MAGIC
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 10)
    - item_type: preproc_def
      name: TSK_ERR_FS_FWALK
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 11)
    - item_type: preproc_def
      name: TSK_ERR_FS_WRITE
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 12)
    - item_type: preproc_def
      name: TSK_ERR_FS_UNICODE
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 13)
    - item_type: preproc_def
      name: TSK_ERR_FS_RECOVER
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 14)
    - item_type: preproc_def
      name: TSK_ERR_FS_GENFS
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 15)
    - item_type: preproc_def
      name: TSK_ERR_FS_CORRUPT
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 16)
    - item_type: preproc_def
      name: TSK_ERR_FS_ATTR_NOTFOUND
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 17)
    - item_type: preproc_def
      name: TSK_ERR_FS_ENCRYPTED
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 18)
    - item_type: preproc_def
      name: TSK_ERR_FS_POSSIBLY_ENCRYPTED
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 19)
    - item_type: preproc_def
      name: TSK_ERR_FS_MULTTYPE
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 20)
    - item_type: preproc_def
      name: TSK_ERR_FS_BITLOCKER_ERROR
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 21)
    - item_type: preproc_def
      name: TSK_ERR_FS_LARGE_DIR_ERROR
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_FS | 22)
    - item_type: preproc_def
      name: TSK_ERR_FS_MAX
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TSK_ERR_HDB_UNKTYPE
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 0)
    - item_type: preproc_def
      name: TSK_ERR_HDB_UNSUPTYPE
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 1)
    - item_type: preproc_def
      name: TSK_ERR_HDB_READDB
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 2)
    - item_type: preproc_def
      name: TSK_ERR_HDB_READIDX
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 3)
    - item_type: preproc_def
      name: TSK_ERR_HDB_ARG
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 4)
    - item_type: preproc_def
      name: TSK_ERR_HDB_WRITE
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 5)
    - item_type: preproc_def
      name: TSK_ERR_HDB_CREATE
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 6)
    - item_type: preproc_def
      name: TSK_ERR_HDB_DELETE
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 7)
    - item_type: preproc_def
      name: TSK_ERR_HDB_MISSING
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 8)
    - item_type: preproc_def
      name: TSK_ERR_HDB_PROC
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 9)
    - item_type: preproc_def
      name: TSK_ERR_HDB_OPEN
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 10)
    - item_type: preproc_def
      name: TSK_ERR_HDB_CORRUPT
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 11)
    - item_type: preproc_def
      name: TSK_ERR_HDB_UNSUPFUNC
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_HDB | 12)
    - item_type: preproc_def
      name: TSK_ERR_HDB_MAX
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TSK_ERR_AUTO_DB
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUTO | 0)
    - item_type: preproc_def
      name: TSK_ERR_AUTO_CORRUPT
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUTO | 1)
    - item_type: preproc_def
      name: TSK_ERR_AUTO_UNICODE
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUTO | 2)
    - item_type: preproc_def
      name: TSK_ERR_AUTO_NOTOPEN
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: (TSK_ERR_AUTO | 3)
    - item_type: preproc_def
      name: TSK_ERR_AUTO_MAX
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '4'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: ( !FALSE )
    - item_type: preproc_def
      name: TSK_MD5_DIGEST_LENGTH
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TSK_SHA_DIGEST_LENGTH
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type_or_value: '32'
    structs:
    - fields:
      - name: t_errno
        type: uint32_t
      - name: errstr[TSK_ERROR_STRING_MAX_LENGTH + 1]
        type: char
      - name: errstr2[TSK_ERROR_STRING_MAX_LENGTH + 1]
        type: char
      - name: errstr_print[TSK_ERROR_STRING_MAX_LENGTH + 1]
        type: char
      item_type: struct
      name: TSK_ERROR_INFO
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: critical_section
        type: CRITICAL_SECTION
      item_type: struct
      name: tsk_lock_t
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: tsk_lock_t
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: '*dummy'
        type: void
      item_type: struct
      name: tsk_lock_t
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: '*next'
        type: TSK_LIST
      - name: key
        type: uint64_t
      - name: len
        type: uint64_t
      item_type: struct
      name: TSK_LIST
      pos:
        line_end: 159
        line_start: 155
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: '*vals'
        type: uint64_t
      - name: top
        type: size_t
      - name: len
        type: size_t
      item_type: struct
      name: TSK_STACK
      pos:
        line_end: 173
        line_start: 169
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: state[4]
        type: UINT4
      - name: count[2]
        type: UINT4
      - name: buffer[64]
        type: unsigned char
      item_type: struct
      name: TSK_MD5_CTX
      pos:
        line_end: 469
        line_start: 465
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    - fields:
      - name: digest[5]
        type: UINT4
      - name: countLo
        type: UINT4
      - name: data[16]
        type: UINT4
      - name: Endianness
        type: int
      item_type: struct
      name: TSK_SHA_CTX
      pos:
        line_end: 486
        line_start: 481
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
    typedefs:
    - item_type: typedef
      name: (*TSK_ERROR_LISTENER_CB) (unsigned int err_code, const char* errmsg)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: void
    - item_type: typedef
      name: TSK_LIST
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: TSK_LIST
    - item_type: typedef
      name: TSK_INUM_T
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint64_t
    - item_type: typedef
      name: TSK_UID_T
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint32_t
    - item_type: typedef
      name: TSK_GID_T
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint32_t
    - item_type: typedef
      name: TSK_DADDR_T
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint64_t
    - item_type: typedef
      name: TSK_OFF_T
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: int64_t
    - item_type: typedef
      name: TSK_PNUM_T
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint32_t
    - item_type: typedef
      name: '*POINTER'
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: unsigned char
    - item_type: typedef
      name: UINT2
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint16_t
    - item_type: typedef
      name: UINT4
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint32_t
    - item_type: typedef
      name: BYTE
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/sleuthkit/tsk/base/tsk_base.h
      type: uint8_t
    union: []
- function_names:
  - tsk_guess_end_u16
  - tsk_guess_end_u32
  - tsk_guess_end_u64
  source_file: /src/sleuthkit/tsk/base/tsk_endian.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: endian
        type: uint8_t
      item_type: struct
      name: tmp_ds
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/sleuthkit/tsk/base/tsk_endian.c
    typedefs: []
    union: []
- function_names:
  - rounddown
  - tsk_getu16
  - tsk_gets16
  - tsk_getu24
  - tsk_getu32
  - tsk_gets32
  - tsk_getu48
  - tsk_getu64
  - tsk_gets64
  - TSK_IS_CNTRL
  source_file: /src/sleuthkit/tsk/base/tsk_base_i.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LARGEFILE64_SOURCE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/base/tsk_base_i.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_getopt
  source_file: /src/sleuthkit/tsk/base/XGetopt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - f1
  - f2
  - f3
  - f4
  - ROTL
  - expand
  - subRound
  - endianTest
  - TSK_SHA_Init
  - SHSTransform
  - longReverse
  - TSK_SHA_Update
  - SHAtoByte
  - TSK_SHA_Final
  source_file: /src/sleuthkit/tsk/base/sha1c.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHS_DATASIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '64'
    - item_type: preproc_def
      name: SHS_DIGESTSIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '20'
    - item_type: preproc_def
      name: K1
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '0x5A827999UL        '
    - item_type: preproc_def
      name: K2
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '0x6ED9EBA1UL        '
    - item_type: preproc_def
      name: K3
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '0x8F1BBCDCUL        '
    - item_type: preproc_def
      name: K4
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: '0xCA62C1D6UL        '
    - item_type: preproc_def
      name: h0init
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: 0x67452301UL
    - item_type: preproc_def
      name: h1init
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: 0xEFCDAB89UL
    - item_type: preproc_def
      name: h2init
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: 0x98BADCFEUL
    - item_type: preproc_def
      name: h3init
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: 0x10325476UL
    - item_type: preproc_def
      name: h4init
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/sleuthkit/tsk/base/sha1c.c
      type_or_value: 0xC3D2E1F0UL
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_error_get_info
  - free_error_info
  - make_pt_tls_key
  - tsk_error_get_info
  - tsk_error_get_info
  - tsk_error_get
  - tsk_error_get_errno
  - tsk_error_set_errno
  - tsk_error_get_errstr
  - tsk_error_set_errstr
  - tsk_error_vset_errstr
  - tsk_error_get_errstr2
  - tsk_error_set_errstr2
  - tsk_error_vset_errstr2
  - tsk_error_errstr2_concat
  - tsk_error_set_error_listener
  - tsk_error_print
  - tsk_error_reset
  source_file: /src/sleuthkit/tsk/base/tsk_error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_stack_create
  - tsk_stack_push
  - tsk_stack_pop
  - tsk_stack_find
  - tsk_stack_free
  source_file: /src/sleuthkit/tsk/base/tsk_stack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - roundup
  - roundup
  - roundup
  - strcasecmp
  - roundup
  - _TSK_T
  - atoll
  - strtok_r
  - _TSK_T
  source_file: /src/sleuthkit/tsk/base/tsk_os.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: fseeko
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: fseek
    - item_type: preproc_def
      name: daddr_t
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: int
    - item_type: preproc_def
      name: _CRT_SECURE_NO_DEPRECATE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: '1'
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: putenv
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _putenv
    - item_type: preproc_def
      name: fseeko
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _fseeki64
    - item_type: preproc_def
      name: TSTRTOK
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcstok
    - item_type: preproc_def
      name: TSTRLEN
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcslen
    - item_type: preproc_def
      name: TSTRCMP
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcscmp
    - item_type: preproc_def
      name: TSTRNCMP
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcsncmp
    - item_type: preproc_def
      name: TSTRICMP
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wcsicmp
    - item_type: preproc_def
      name: TSTRNICMP
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wcsnicmp
    - item_type: preproc_def
      name: TSTRNCPY
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcsncpy
    - item_type: preproc_def
      name: TSTRNCAT
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcsncat
    - item_type: preproc_def
      name: TSTRCHR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcschr
    - item_type: preproc_def
      name: TSTRRCHR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcsrchr
    - item_type: preproc_def
      name: TSTRTOUL
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcstoul
    - item_type: preproc_def
      name: TATOI
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wtoi
    - item_type: preproc_def
      name: TFPRINTF
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: fwprintf
    - item_type: preproc_def
      name: TSNPRINTF
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _snwprintf
    - item_type: preproc_def
      name: TPUTENV
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wputenv
    - item_type: preproc_def
      name: TZSET
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _tzset
    - item_type: preproc_def
      name: TZNAME
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _tzname
    - item_type: preproc_def
      name: TSTRTOULL
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wcstoui64
    - item_type: preproc_def
      name: STAT_STR
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: __stat64
    - item_type: preproc_def
      name: TSTAT
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wstat64
    - item_type: preproc_def
      name: TSTRTOULL
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: wcstoull
    - item_type: preproc_def
      name: STAT_STR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _stat
    - item_type: preproc_def
      name: TSTAT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _wstat
    - item_type: preproc_def
      name: PRIcTSK
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _TSK_T("hs")     ///< sprintf macro to print a UTF-8 char string
        to TSK_TCHAR buffer
    - item_type: preproc_def
      name: PRIttocTSK
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: '"ls"         ///< printf macro to print a TSK_TCHAR string to
        stderr or other char device'
    - item_type: preproc_def
      name: PRIuSIZE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: '"Iu"           ///< printf macro to print a size_t value (both
        MSVC and MinGW use MS printf rules: %Iu)'
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _unlink
    - item_type: preproc_def
      name: GETOPT
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: tsk_getopt       // points to local wchar version
    - item_type: preproc_def
      name: OPTIND
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: tsk_optind
    - item_type: preproc_def
      name: OPTARG
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: tsk_optarg
    - item_type: preproc_def
      name: TSTAT
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: stat
    - item_type: preproc_def
      name: STAT_STR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: stat
    - item_type: preproc_def
      name: TSTRTOK
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strtok
    - item_type: preproc_def
      name: TSTRLEN
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strlen
    - item_type: preproc_def
      name: TSTRCMP
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strcmp
    - item_type: preproc_def
      name: TSTRNCMP
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strncmp
    - item_type: preproc_def
      name: TSTRICMP
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strcasecmp
    - item_type: preproc_def
      name: TSTRNICMP
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strncasecmp
    - item_type: preproc_def
      name: TSTRNCPY
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strncpy
    - item_type: preproc_def
      name: TSTRNCAT
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strncat
    - item_type: preproc_def
      name: TSTRCHR
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strchr
    - item_type: preproc_def
      name: TSTRRCHR
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strrchr
    - item_type: preproc_def
      name: TSTRTOUL
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strtoul
    - item_type: preproc_def
      name: TSTRTOULL
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: strtoull
    - item_type: preproc_def
      name: TATOI
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: atoi
    - item_type: preproc_def
      name: TFPRINTF
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: fprintf
    - item_type: preproc_def
      name: TSNPRINTF
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: snprintf
    - item_type: preproc_def
      name: TPUTENV
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: putenv
    - item_type: preproc_def
      name: TZSET
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: tzset
    - item_type: preproc_def
      name: TZNAME
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: tzname
    - item_type: preproc_def
      name: PRIcTSK
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: _TSK_T("s")     ///< sprintf macro to print a UTF-8 char string
        to TSK_TCHAR buffer
    - item_type: preproc_def
      name: PRIttocTSK
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: '"s"         ///< printf macro to print a TSK_TCHAR string to
        stderr or other char device'
    - item_type: preproc_def
      name: PRIuSIZE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: '"zu"           ///< printf macro to print a size_t value in
        non-Windows printf codes'
    - item_type: preproc_def
      name: GETOPT
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: getopt           // points to system char * version
    - item_type: preproc_def
      name: OPTIND
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: optind           // points to system char * variable
    - item_type: preproc_def
      name: OPTARG
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type_or_value: optarg           // points to system char * variable
    structs: []
    typedefs:
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: unsigned __int8
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: __int8
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: unsigned __int16
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: __int16
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: unsigned __int32
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: __int32
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: unsigned __int64
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: __int64
    - item_type: typedef
      name: mode_t
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: int
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: int64_t
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: int32_t
    - item_type: typedef
      name: TSK_TCHAR
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: WCHAR
    - item_type: typedef
      name: TSK_TCHAR
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/sleuthkit/tsk/base/tsk_os.h
      type: char
    union: []
- function_names:
  - tsk::GetTlsIndex::GetTlsIndex
  - ~GetTlsIndex()
  - tsk::GetTlsIndex::GetIndex
  - tsk::GetTlsIndex::GetTlsIndex
  - ~GetTlsIndex()
  - tsk::GetTlsIndex::GetIndex
  - tsk_error_win32_get_per_thread_
  - tsk_error_win32_thread_cleanup
  source_file: /src/sleuthkit/tsk/base/tsk_error_win32.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - P_
  source_file: /src/sleuthkit/tsk/base/crc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/sleuthkit/tsk/base/crc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/sleuthkit/tsk/base/crc.h
      type_or_value: '1'
    structs:
    - fields:
      - name: cm_width
        type: int
      - name: cm_poly
        type: ulong
      - name: cm_init
        type: ulong
      - name: cm_refin
        type: bool
      - name: cm_refot
        type: bool
      - name: cm_xorot
        type: ulong
      - name: cm_reg
        type: ulong
      item_type: struct
      name: cm_t
      pos:
        line_end: 131
        line_start: 121
        source_file: /src/sleuthkit/tsk/base/crc.h
    typedefs:
    - item_type: typedef
      name: ulong
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/sleuthkit/tsk/base/crc.h
      type: unsigned long
    - item_type: typedef
      name: '* p_ubyte_'
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/sleuthkit/tsk/base/crc.h
      type: unsigned char
    - item_type: typedef
      name: '*p_cm_t'
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/sleuthkit/tsk/base/crc.h
      type: cm_t
    union: []
- function_names:
  - BITMASK
  - reflect
  - widmask
  - cm_ini
  - cm_nxt
  - cm_blk
  - cm_crc
  - crc16
  - main
  source_file: /src/sleuthkit/tsk/base/crc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MASK32
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/sleuthkit/tsk/base/crc.c
      type_or_value: 0xFFFFFFFFL
    - item_type: preproc_def
      name: LOCAL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tsk/base/crc.c
      type_or_value: static
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_UTF16toUTF8
  - tsk_UTF16toUTF8_lclorder
  - tsk_UTF16WtoUTF8_lclorder
  - isLegalUTF8
  - tsk_isLegalUTF8Sequence
  - tsk_cleanupUTF8
  - tsk_cleanupUTF16
  - tsk_UTF8toUTF16
  source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FALLTHROUGH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: __attribute__((fallthrough))
    - item_type: preproc_def
      name: FALLTHROUGH
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: __attribute__((fallthrough))
    - item_type: preproc_def
      name: FALLTHROUGH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: TSK_UNI_REPLACEMENT_CHAR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0x0000FFFD
    - item_type: preproc_def
      name: TSK_UNI_MAX_BMP
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0x0000FFFF
    - item_type: preproc_def
      name: TSK_UNI_MAX_UTF16
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0x0010FFFF
    - item_type: preproc_def
      name: TSK_UNI_MAX_UTF32
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0x7FFFFFFF
    - item_type: preproc_def
      name: TSK_UNI_MAX_LEGAL_UTF32
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0x0010FFFF
    - item_type: preproc_def
      name: UNI_SUR_HIGH_START
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0xD800
    - item_type: preproc_def
      name: UNI_SUR_HIGH_END
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0xDBFF
    - item_type: preproc_def
      name: UNI_SUR_LOW_START
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0xDC00
    - item_type: preproc_def
      name: UNI_SUR_LOW_END
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: (UTF32)0xDFFF
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: UTF32
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.c
      type: unsigned long
    union: []
- function_names:
  - tsk_parse_offset
  - tsk_parse_pnum
  source_file: /src/sleuthkit/tsk/base/tsk_parse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/base/tsk_unicode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: UTF16
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.h
      type: unsigned short
    - item_type: typedef
      name: UTF8
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.h
      type: unsigned char
    - item_type: typedef
      name: Boolean
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/sleuthkit/tsk/base/tsk_unicode.h
      type: unsigned char
    union: []
- function_names:
  - F
  - G
  - H
  - I
  - ROTATE_LEFT
  - FF
  - GG
  - HH
  - II
  - TSK_MD5_Init
  - TSK_MD5_Update
  - TSK_MD5_Final
  - MD5Transform
  - Encode
  - Decode
  - MD5_memcpy
  - MD5_memset
  source_file: /src/sleuthkit/tsk/base/md5c.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S11
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '7'
    - item_type: preproc_def
      name: S12
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '12'
    - item_type: preproc_def
      name: S13
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '17'
    - item_type: preproc_def
      name: S14
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '22'
    - item_type: preproc_def
      name: S21
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '5'
    - item_type: preproc_def
      name: S22
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '9'
    - item_type: preproc_def
      name: S23
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '14'
    - item_type: preproc_def
      name: S24
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '20'
    - item_type: preproc_def
      name: S31
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '4'
    - item_type: preproc_def
      name: S32
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '11'
    - item_type: preproc_def
      name: S33
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '16'
    - item_type: preproc_def
      name: S34
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '23'
    - item_type: preproc_def
      name: S41
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '6'
    - item_type: preproc_def
      name: S42
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '10'
    - item_type: preproc_def
      name: S43
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '15'
    - item_type: preproc_def
      name: S44
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/sleuthkit/tsk/base/md5c.c
      type_or_value: '21'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_version_print
  - tsk_version_get_str
  source_file: /src/sleuthkit/tsk/base/tsk_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_printf_conv
  - tsk_fprintf
  - tsk_printf
  - tsk_print_sanitized
  source_file: /src/sleuthkit/tsk/base/tsk_printf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - md5sum_test
  - md5sum_open
  - md5sum_parse_md5
  - md5sum_makeindex
  - md5sum_getentry
  source_file: /src/sleuthkit/tsk/hashdb/md5sum.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STR_EMPTY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/sleuthkit/tsk/hashdb/md5sum.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - idxonly_name
  - idxonly_open
  - idxonly_get_db_path
  - idxonly_getentry
  source_file: /src/sleuthkit/tsk/hashdb/idxonly.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSK_HDB_IDX_LEN
  source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_HDB_MAXLEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
      type_or_value: 512     ///< Default buffer size used in many places
    - item_type: preproc_def
      name: TSK_HDB_OFF_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
      type_or_value: 16      ///< Number of digits used in offset field in index
    - item_type: preproc_def
      name: TSK_HDB_IDX_HEAD_TYPE_STR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
      type_or_value: '"00000000000000000000000000000000000000000"'
    - item_type: preproc_def
      name: TSK_HDB_IDX_HEAD_NAME_STR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb_i.h
      type_or_value: '"00000000000000000000000000000000000000001"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - encase_test
  - encase_name
  - encase_open
  - encase_make_index
  - encase_get_entry
  source_file: /src/sleuthkit/tsk/hashdb/encase.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_format_ver
  - nsrl_test
  - nsrl_open
  - is_valid_nsrl
  - nsrl_parse_sha1
  - nsrl_parse_md5
  - nsrl_makeindex
  - nsrl_getentry
  source_file: /src/sleuthkit/tsk/hashdb/nsrl.c
  types:
    enum:
    - enumerators:
      - name: TSK_HDB_NSRL_FORM1
        value: (1 << 0)
      - name: TSK_HDB_NSRL_FORM2
        value: (1 << 1)
      item_type: enum
      name: TSK_HDB_NSRL_FORM_ENUM
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/sleuthkit/tsk/hashdb/nsrl.c
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: TSK_HDB_NSRL_FORM_ENUM
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/sleuthkit/tsk/hashdb/nsrl.c
      type: TSK_HDB_NSRL_FORM_ENUM
    union: []
- function_names:
  - hdb_open_file
  - hdb_determine_db_type
  - tsk_hdb_create
  - tsk_hdb_open
  - tsk_hdb_get_db_path
  - tsk_hdb_get_display_name
  - tsk_hdb_uses_external_indexes
  - tsk_hdb_get_idx_path
  - tsk_hdb_open_idx
  - tsk_hdb_has_idx
  - tsk_hdb_is_idx_only
  - tsk_hdb_make_index
  - tsk_hdb_lookup_str
  - tsk_hdb_lookup_raw
  - tsk_hdb_lookup_verbose_str
  - tsk_hdb_accepts_updates
  - tsk_hdb_add_entry
  - tsk_hdb_begin_transaction
  - tsk_hdb_commit_transaction
  - tsk_hdb_rollback_transaction
  - tsk_hdb_close
  source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hk_test
  - hk_open
  - hk_parse_md5
  - hk_makeindex
  - hk_getentry
  source_file: /src/sleuthkit/tsk/hashdb/hashkeeper.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hdb_base_db_name_from_path
  - hdb_info_base_open
  - hdb_base_get_db_path
  - hdb_base_get_display_name
  - hdb_base_uses_external_indexes
  - hdb_base_get_index_path
  - hdb_base_has_index
  - hdb_base_make_index
  - hdb_base_open_index
  - hdb_base_lookup_str
  - hdb_base_lookup_bin
  - hdb_base_lookup_verbose_str
  - hdb_base_accepts_updates
  - hdb_base_add_entry
  - hdb_base_begin_transaction
  - hdb_base_commit_transaction
  - hdb_base_rollback_transaction
  - hdb_info_base_close
  source_file: /src/sleuthkit/tsk/hashdb/hdb_base.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hdb_binsrch_open
  - hdb_binsrch_idx_init_hash_type_info
  - hdb_binsrch_uses_external_indexes
  - hdb_binsrch_get_index_path
  - hdb_binsrch_has_index
  - hdb_binsrch_load_index_offsets
  - hdb_binsrch_open_idx_file
  - hdb_binsrch_open_idx
  - hdb_binsrch_idx_initialize
  - hdb_binsrch_idx_add_entry_str
  - hdb_binsrch_idx_add_entry_bin
  - hdb_binsrch_make_idx_idx
  - hdb_binsrch_idx_finalize
  - hdb_binsrch_lookup_str
  - hdb_binsrch_lookup_bin
  - hdb_binsrch_lookup_verbose_str
  - hdb_binsrch_accepts_updates
  - hdb_binsrch_close
  source_file: /src/sleuthkit/tsk/hashdb/binsrch_index.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSK_HDB_HTYPE_STR
  - TSK_HDB_HTYPE_LEN
  - ~TskHdbInfo()
  - TskHdbInfo::open
  - TskHdbInfo::lookupStr
  - TskHdbInfo::lookupRaw
  - TskHdbInfo::createIndex
  - TskHdbInfo::hasIndex
  - TskHdbInfo::getDbType
  source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
  types:
    enum:
    - enumerators:
      - name: TSK_HDB_FLAG_QUICK
        value: '0x01'
      - name: TSK_HDB_FLAG_EXT
        value: '0x02'
      item_type: enum
      name: TSK_HDB_FLAG_ENUM
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    - enumerators:
      - name: TSK_HDB_HTYPE_INVALID_ID
        value: '0'
      - name: TSK_HDB_HTYPE_SHA1_ID
        value: '2'
      - name: TSK_HDB_HTYPE_SHA2_256_ID
        value: '4'
      - name: TSK_HDB_HTYPE_MD5_ID
        value: '1'
      item_type: enum
      name: TSK_HDB_HTYPE_ENUM
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    - enumerators:
      - name: TSK_HDB_DBTYPE_INVALID_ID
        value: '0'
      - name: TSK_HDB_DBTYPE_NSRL_ID
        value: '1'
      - name: TSK_HDB_DBTYPE_MD5SUM_ID
        value: '2'
      - name: TSK_HDB_DBTYPE_HK_ID
        value: '3'
      - name: TSK_HDB_DBTYPE_IDXONLY_ID
        value: '4'
      - name: TSK_HDB_DBTYPE_ENCASE_ID
        value: '5'
      - name: TSK_HDB_DBTYPE_SQLITE_ID
        value: '6'
      item_type: enum
      name: TSK_HDB_DBTYPE_ENUM
      pos:
        line_end: 85
        line_start: 77
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    - enumerators:
      - name: TSK_HDB_OPEN_NONE
        value: '0'
      - name: TSK_HDB_OPEN_IDXONLY
        value: (0x1 << 0)
      item_type: enum
      name: TSK_HDB_OPEN_ENUM
      pos:
        line_end: 165
        line_start: 162
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    preproc_defs:
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_MD5_STR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"md5"            ///< String name for MD5 algorithm'
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_SHA1_STR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"sha1"          ///< String name for SHA1 algorithm'
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_SHA2_256_STR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"sha2_256"  ///< String name for SHA256 algorithm'
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_SHA2_256_LEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 64   ///< Length of SHA256 hash
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_SHA1_LEN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 40       ///< Length of SHA1 hash
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_MD5_LEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 32        ///< Length of MD5 hash
    - item_type: preproc_def
      name: TSK_HDB_HTYPE_CRC32_LEN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 8       ///< Length of CRC hash
    - item_type: preproc_def
      name: TSK_HDB_MAX_BINHASH_LEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 32      ///< Half the length of biggest hash
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_NSRL_STR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"nsrl"           ///< NSRL database '
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_NSRL_MD5_STR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"nsrl-md5"   ///< NSRL database with MD5 index'
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_NSRL_SHA1_STR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"nsrl-sha1" ///< NSRL database with SHA1 index'
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_MD5SUM_STR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"md5sum"       ///< md5sum'
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_HK_STR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"hk"               ///< Hash Keeper'
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_ENCASE_STR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"encase"       ///< EnCase'
    - item_type: preproc_def
      name: TSK_HDB_DBTYPE_SUPPORT_STR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: '"nsrl-md5, nsrl-sha1, md5sum, encase, hk"'
    - item_type: preproc_def
      name: TSK_HDB_NAME_MAXLEN
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type_or_value: 512 //< Max length for database name
    structs:
    - fields:
      - name: '*db_fname'
        type: TSK_TCHAR
      - name: db_name[TSK_HDB_NAME_MAXLEN]
        type: char
      - name: db_type
        type: TSK_HDB_DBTYPE_ENUM
      - name: lock
        type: tsk_lock_t
      - name: transaction_in_progress
        type: uint8_t
      - name: '*(*get_db_path)(TSK_HDB_INFO*)'
        type: TSK_TCHAR
      - name: '*(*get_display_name)(TSK_HDB_INFO*)'
        type: char
      - name: (*uses_external_indexes)()
        type: uint8_t
      - name: '*(*get_index_path)(TSK_HDB_INFO*, TSK_HDB_HTYPE_ENUM)'
        type: TSK_TCHAR
      - name: (*has_index)(TSK_HDB_INFO*, TSK_HDB_HTYPE_ENUM)
        type: uint8_t
      - name: (*make_index)(TSK_HDB_INFO*, TSK_TCHAR*)
        type: uint8_t
      - name: (*open_index)(TSK_HDB_INFO*, TSK_HDB_HTYPE_ENUM)
        type: uint8_t
      - name: (*lookup_str)(TSK_HDB_INFO*, const char*, TSK_HDB_FLAG_ENUM, TSK_HDB_LOOKUP_FN,
          void*)
        type: int8_t
      - name: (*lookup_raw)(TSK_HDB_INFO*, uint8_t *, uint8_t, TSK_HDB_FLAG_ENUM,
          TSK_HDB_LOOKUP_FN, void*)
        type: int8_t
      - name: (*lookup_verbose_str)(TSK_HDB_INFO *, const char *, void *)
        type: int8_t
      - name: (*accepts_updates)()
        type: uint8_t
      - name: (*add_entry)(TSK_HDB_INFO*, const char*, const char*, const char*, const
          char*, const char *)
        type: uint8_t
      - name: (*begin_transaction)(TSK_HDB_INFO *)
        type: uint8_t
      - name: (*commit_transaction)(TSK_HDB_INFO *)
        type: uint8_t
      - name: (*rollback_transaction)(TSK_HDB_INFO *)
        type: uint8_t
      - name: (*close_db)(TSK_HDB_INFO *)
        type: void
      item_type: struct
      name: TSK_HDB_INFO
      pos:
        line_end: 136
        line_start: 114
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    - fields:
      - name: base
        type: TSK_HDB_INFO
      - name: '*hDb'
        type: FILE
      - name: (*get_entry) (TSK_HDB_INFO *, const char *, TSK_OFF_T, TSK_HDB_FLAG_ENUM,
          TSK_HDB_LOOKUP_FN, void *)
        type: uint8_t
      - name: hash_type
        type: TSK_HDB_HTYPE_ENUM
      - name: hash_len
        type: uint16_t
      - name: '*idx_fname'
        type: TSK_TCHAR
      - name: '*hIdx'
        type: FILE
      - name: '*hIdxTmp'
        type: FILE
      - name: '*uns_fname'
        type: TSK_TCHAR
      - name: idx_size
        type: TSK_OFF_T
      - name: idx_off
        type: uint16_t
      - name: idx_llen
        type: size_t
      - name: '*idx_lbuf'
        type: char
      - name: '*idx_idx_fname'
        type: TSK_TCHAR
      - name: '*idx_offsets'
        type: uint64_t
      item_type: struct
      name: TSK_HDB_BINSRCH_INFO
      pos:
        line_end: 157
        line_start: 141
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
    typedefs:
    - item_type: typedef
      name: TSK_HDB_FLAG_ENUM
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_HDB_FLAG_ENUM
    - item_type: typedef
      name: TSK_HDB_HTYPE_ENUM
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_HDB_HTYPE_ENUM
    - item_type: typedef
      name: TSK_HDB_DBTYPE_ENUM
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_HDB_DBTYPE_ENUM
    - item_type: typedef
      name: TSK_HDB_INFO
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_HDB_INFO
    - item_type: typedef
      name: "(*TSK_HDB_LOOKUP_FN) (TSK_HDB_INFO *,\n        const char *hash,\n        const
        char *name,\n        void *)"
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: TSK_HDB_OPEN_ENUM
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hashdb.h
      type: TSK_HDB_OPEN_ENUM
    union: []
- function_names:
  - sqlite_hdb_attempt
  - sqlite_hdb_attempt_exec
  - sqlite_hdb_create_tables
  - sqlite_hdb_prepare_stmt
  - prepare_statements
  - sqlite_hdb_finalize_stmt
  - finalize_statements
  - sqlite_hdb_open_db
  - sqlite_hdb_create_db
  - sqlite_hdb_is_sqlite_file
  - sqlite_hdb_open
  - sqlite_hdb_str_to_blob
  - sqlite_hdb_blob_to_string
  - sqlite_hdb_hash_lookup_by_md5
  - sqlite_hdb_insert_md5_hash
  - sqlite_hdb_insert_value_and_id
  - sqlite_hdb_add_entry
  - sqlite_hdb_lookup_str
  - sqlite_hdb_lookup_bin
  - sqlite_hdb_get_assoc_strings
  - sqlite_hdb_lookup_verbose_str
  - sqlite_hdb_lookup_verbose_bin
  - sqlite_hdb_begin_transaction
  - sqlite_hdb_commit_transaction
  - sqlite_hdb_rollback_transaction
  - sqlite_hdb_close
  source_file: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: TSK_HDB_INFO
      - name: '*db'
        type: sqlite3
      - name: '*insert_md5_into_hashes'
        type: sqlite3_stmt
      - name: '*insert_into_file_names'
        type: sqlite3_stmt
      - name: '*insert_into_comments'
        type: sqlite3_stmt
      - name: '*select_from_hashes_by_md5'
        type: sqlite3_stmt
      - name: '*select_from_file_names'
        type: sqlite3_stmt
      - name: '*select_from_comments'
        type: sqlite3_stmt
      item_type: struct
      name: TSK_SQLITE_HDB_INFO
      pos:
        line_end: 40
        line_start: 30
        source_file: /src/sleuthkit/tsk/hashdb/sqlite_hdb.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/hashdb/tsk_hash_info.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: int64_t
      - name: hashMd5
        type: std::string
      - name: hashSha1
        type: std::string
      - name: hashSha2_256
        type: std::string
      - name: fileNames
        type: std::vector<std::string>
      - name: comments
        type: std::vector<std::string>
      item_type: struct
      name: TskHashInfo
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/sleuthkit/tsk/hashdb/tsk_hash_info.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YAFFSFS_MAXNAMLEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: YAFFS_DEFAULT_PAGE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: YAFFS_DEFAULT_SPARE_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '64'
    - item_type: preproc_def
      name: YAFFS_DEFAULT_MAX_TEST_BLOCKS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: 400  // Maximum number of blocks to test looking for Yaffs2 spare
        under auto-detect
    - item_type: preproc_def
      name: YAFFS_HELP_MESSAGE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"See http://wiki.sleuthkit.org/index.php?title=YAFFS2 for help
        on Yaffs2 configuration"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_FILE_SUFFIX
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: L"-yaffs2.config"
    - item_type: preproc_def
      name: YAFFS_CONFIG_FILE_SUFFIX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"-yaffs2.config"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_SEQ_NUM_STR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"spare_seq_num_offset"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_OBJ_ID_STR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"spare_obj_id_offset"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_CHUNK_ID_STR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"spare_chunk_id_offset"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_PAGE_SIZE_STR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"flash_page_size"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_SPARE_SIZE_STR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"flash_spare_size"'
    - item_type: preproc_def
      name: YAFFS_CONFIG_CHUNKS_PER_BLOCK_STR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"flash_chunks_per_block"'
    - item_type: preproc_def
      name: YAFFS_HEADER_NAME_LENGTH
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: YAFFS_HEADER_ALIAS_LENGTH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '160'
    - item_type: preproc_def
      name: YAFFS_OBJECT_SPACE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: YAFFS_MAX_OBJECT_ID
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: (YAFFS_OBJECT_SPACE - 1)
    - item_type: preproc_def
      name: YAFFS_LOWEST_SEQUENCE_NUMBER
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: YAFFS_HIGHEST_SEQUENCE_NUMBER
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0xefffff00'
    - item_type: preproc_def
      name: YAFFS_SPARE_FLAGS_IS_HEADER
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: YAFFS_SPARE_PARENT_ID_MASK
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x0fffffff'
    - item_type: preproc_def
      name: YAFFS_SPARE_OBJECT_TYPE_SHIFT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: YAFFS_SPARE_OBJECT_TYPE_MASK
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0xf0000000'
    - item_type: preproc_def
      name: YAFFSFS_STATE_VALID
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: YAFFSFS_STATE_ERROR
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: YAFFS_OBJECT_ROOT
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YAFFS_OBJECT_FIRST
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YAFFS_OBJECT_LOSTNFOUND
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: YAFFS_OBJECT_UNLINKED
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: YAFFS_OBJECT_DELETED
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: YAFFS_OBJECT_ROOT_NAME
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '""'
    - item_type: preproc_def
      name: YAFFS_OBJECT_LOSTNFOUND_NAME
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"lost+found"'
    - item_type: preproc_def
      name: YAFFS_OBJECT_UNLINKED_NAME
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"<unlinked>"'
    - item_type: preproc_def
      name: YAFFS_OBJECT_DELETED_NAME
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '"<deleted>"'
    - item_type: preproc_def
      name: YAFFS_TYPE_UNKNOWN
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: YAFFS_TYPE_FILE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YAFFS_TYPE_SOFTLINK
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: YAFFS_TYPE_DIRECTORY
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: YAFFS_TYPE_HARDLINK
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: YAFFS_TYPE_SPECIAL
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: YAFFS_OBJECT_ID_MASK
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x0003ffff'
    - item_type: preproc_def
      name: YAFFS_VERSION_NUM_SHIFT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '18'
    - item_type: preproc_def
      name: YAFFS_VERSION_NUM_MASK
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0x00003fff'
    - item_type: preproc_def
      name: YAFFS_FILE_CONTENT_LEN
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type_or_value: '0'
    structs:
    - fields:
      - name: obj_type
        type: uint32_t
      - name: parent_id
        type: uint32_t
      - name: name[YAFFS_HEADER_NAME_LENGTH]
        type: char
      - name: file_mode
        type: uint32_t
      - name: user_id
        type: uint32_t
      - name: group_id
        type: uint32_t
      - name: atime
        type: uint32_t
      - name: mtime
        type: uint32_t
      - name: ctime
        type: uint32_t
      - name: file_size
        type: uint32_t
      - name: equivalent_id
        type: uint32_t
      - name: alias[YAFFS_HEADER_ALIAS_LENGTH]
        type: char
      - name: rdev_mode
        type: uint32_t
      - name: win_ctime[2]
        type: uint32_t
      - name: win_atime[2]
        type: uint32_t
      - name: win_mtime[2]
        type: uint32_t
      - name: inband_obj_id
        type: uint32_t
      - name: inband_is_shrink
        type: uint32_t
      - name: file_size_high
        type: uint32_t
      - name: reserved[1]
        type: uint32_t
      - name: shadows_obj
        type: int
      - name: is_shrink
        type: uint32_t
      item_type: struct
      name: yaffsObj_header
      pos:
        line_end: 100
        line_start: 77
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: seq_number
        type: uint32_t
      - name: object_id
        type: uint32_t
      - name: chunk_id
        type: uint32_t
      - name: has_extra_fields
        type: uint32_t
      - name: extra_object_type
        type: uint32_t
      - name: extra_parent_id
        type: uint32_t
      item_type: struct
      name: yaffsObj_spare
      pos:
        line_end: 124
        line_start: 116
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: type
        type: YaffsChunkType
      - name: '*spare'
        type: YaffsSpare
      - name: '*header'
        type: YaffsHeader
      item_type: struct
      name: _YaffsChunk
      pos:
        line_end: 139
        line_start: 135
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: '*yco_next'
        type: struct _YaffsCacheObject
      - name: yco_obj_id
        type: uint32_t
      - name: '*yco_latest'
        type: struct _YaffsCacheVersion
      item_type: struct
      name: _YaffsCacheObject
      pos:
        line_end: 180
        line_start: 174
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: '*ycv_prior'
        type: struct _YaffsCacheVersion
      - name: ycv_version
        type: uint32_t
      - name: ycv_seq_number
        type: uint32_t
      - name: '*ycv_header_chunk'
        type: struct _YaffsCacheChunk
      - name: '*ycv_first_chunk'
        type: struct _YaffsCacheChunk
      - name: '*ycv_last_chunk'
        type: struct _YaffsCacheChunk
      item_type: struct
      name: _YaffsCacheVersion
      pos:
        line_end: 195
        line_start: 186
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: '*ycc_next'
        type: struct _YaffsCacheChunk
      - name: '*ycc_prev'
        type: struct _YaffsCacheChunk
      - name: ycc_offset
        type: TSK_OFF_T
      - name: ycc_seq_number
        type: uint32_t
      - name: ycc_obj_id
        type: uint32_t
      - name: ycc_chunk_id
        type: uint32_t
      - name: ycc_parent_id
        type: uint32_t
      - name: ycc_n_bytes
        type: uint32_t
      item_type: struct
      name: _YaffsCacheChunk
      pos:
        line_end: 207
        line_start: 197
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: '*cache_chunks_head'
        type: YaffsCacheChunk
      - name: '*cache_chunks_tail'
        type: YaffsCacheChunk
      item_type: struct
      name: _YaffsCacheChunkGroup
      pos:
        line_end: 212
        line_start: 209
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: page_size
        type: unsigned int
      - name: spare_size
        type: unsigned int
      - name: chunks_per_block
        type: unsigned int
      - name: max_obj_id
        type: uint32_t
      - name: max_version
        type: uint32_t
      - name: spare_seq_offset
        type: unsigned int
      - name: spare_obj_id_offset
        type: unsigned int
      - name: spare_chunk_id_offset
        type: unsigned int
      - name: spare_nbytes_offset
        type: unsigned int
      - name: cache_lock
        type: tsk_lock_t
      - name: '*cache_objects'
        type: YaffsCacheObject
      - name: '*chunkMap'
        type: chunkmap_t
      - name: autoDetect
        type: int
      item_type: struct
      name: YAFFSFS_INFO
      pos:
        line_end: 245
        line_start: 223
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
    typedefs:
    - item_type: typedef
      name: chunkmap_t
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type: map < uint32_t, YaffsCacheChunkGroup >
    - item_type: typedef
      name: chunkmap_t
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/sleuthkit/tsk/fs/tsk_yaffs.h
      type: void
    union: []
- function_names:
  - FATXXFS_DENTRY_CLUST
  - FATXXFS_IS_DELETED
  - FATXXFS_IS_83_NAME_STRICT
  - FATXXFS_IS_83_NAME_RELAXED
  - FATXXFS_IS_83_NAME
  source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FATXXFS_SLOT_E5
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x05    '
    - item_type: preproc_def
      name: FATXXFS_SLOT_DELETED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0xe5'
    - item_type: preproc_def
      name: FATXXFS_SLOT_EMPTY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FATXXFS_CASE_LOWER_BASE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: FATXXFS_CASE_LOWER_EXT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: FATXXFS_CASE_LOWER_ALL
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x18    '
    - item_type: preproc_def
      name: FATXXFS_LFN_SEQ_FIRST
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: FATXXFS_LFN_SEQ_MASK
      pos:
        line_end: 120
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
      type_or_value: '0x3f    '
    structs:
    - fields:
      - name: f1[3]
        type: uint8_t
      - name: oemname[8]
        type: char
      - name: ssize[2]
        type: uint8_t
      - name: csize
        type: uint8_t
      - name: reserved[2]
        type: uint8_t
      - name: numfat
        type: uint8_t
      - name: numroot[2]
        type: uint8_t
      - name: sectors16[2]
        type: uint8_t
      - name: f2[1]
        type: uint8_t
      - name: sectperfat16[2]
        type: uint8_t
      - name: f3[4]
        type: uint8_t
      - name: prevsect[4]
        type: uint8_t
      - name: sectors32[4]
        type: uint8_t
      - name: a
        type: "union {\n            struct {\n                uint8_t f5[3];\n                uint8_t
          vol_id[4];\n                uint8_t vol_lab[11];\n                uint8_t
          fs_type[8];\n                uint8_t f6[448];\n            } f16;\n            struct
          {\n                uint8_t sectperfat32[4];\n                uint8_t ext_flag[2];\n
          \               uint8_t fs_ver[2];\n                uint8_t rootclust[4];
          \  /* cluster where root directory is stored */\n                uint8_t
          fsinfo[2];      /* TSK_FS_INFO Location */\n                uint8_t bs_backup[2];
          \  /* sector of backup of boot sector */\n                uint8_t f5[12];\n
          \               uint8_t drvnum;\n                uint8_t f6[2];\n                uint8_t
          vol_id[4];\n                uint8_t vol_lab[11];\n                uint8_t
          fs_type[8];\n                uint8_t f7[420];\n            } f32;\n        }"
      - name: magic[2]
        type: uint8_t
      item_type: struct
      name: FATXXFS_SB
      pos:
        line_end: 171
        line_start: 128
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    - fields:
      - name: magic1[4]
        type: uint8_t
      - name: f1[480]
        type: uint8_t
      - name: magic2[4]
        type: uint8_t
      - name: freecnt[4]
        type: uint8_t
      - name: nextfree[4]
        type: uint8_t
      - name: f2[12]
        type: uint8_t
      - name: magic3[4]
        type: uint8_t
      item_type: struct
      name: FATXXFS_FSINFO
      pos:
        line_end: 181
        line_start: 173
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    - fields:
      - name: name[8]
        type: uint8_t
      - name: ext[3]
        type: uint8_t
      - name: attrib
        type: uint8_t
      - name: lowercase
        type: uint8_t
      - name: ctimeten
        type: uint8_t
      - name: ctime[2]
        type: uint8_t
      - name: cdate[2]
        type: uint8_t
      - name: adate[2]
        type: uint8_t
      - name: highclust[2]
        type: uint8_t
      - name: wtime[2]
        type: uint8_t
      - name: wdate[2]
        type: uint8_t
      - name: startclust[2]
        type: uint8_t
      - name: size[4]
        type: uint8_t
      item_type: struct
      name: FATXXFS_DENTRY
      pos:
        line_end: 198
        line_start: 184
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    - fields:
      - name: seq
        type: uint8_t
      - name: part1[10]
        type: uint8_t
      - name: attributes
        type: uint8_t
      - name: reserved1
        type: uint8_t
      - name: chksum
        type: uint8_t
      - name: part2[12]
        type: uint8_t
      - name: reserved2[2]
        type: uint8_t
      - name: part3[4]
        type: uint8_t
      item_type: struct
      name: FATXXFS_DENTRY_LFN
      pos:
        line_end: 214
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/tsk_fatxxfs.h
    typedefs: []
    union: []
- function_names:
  - find_file_act
  - tsk_fs_ffind
  source_file: /src/sleuthkit/tsk/fs/ffind_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: inode
        type: TSK_INUM_T
      - name: flags
        type: uint8_t
      - name: found
        type: uint8_t
      item_type: struct
      name: FFIND_DATA
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/sleuthkit/tsk/fs/ffind_lib.c
    typedefs: []
    union: []
- function_names:
  - stats
  - tsk_fs_blkcat
  source_file: /src/sleuthkit/tsk/fs/dcat_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - handleBitlocker
  - handleVolumeEncryption
  - read_and_decrypt_bitlocker_blocks
  - tsk_fs_get_encryption_description
  - freeEncryptionData
  source_file: /src/sleuthkit/tsk/fs/encryptionHelper.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hfs_jopen
  - hfs_jentry_walk
  - hfs_jblk_walk
  source_file: /src/sleuthkit/tsk/fs/hfs_journal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fatfs_open
  - getFATCacheIdx
  - fatfs_getFAT
  - fatfs_block_walk
  - fatfs_block_getflags
  - fatfs_is_sectalloc
  - fatfs_jopen
  - fatfs_fscheck
  - fatfs_jentry_walk
  - fatfs_jblk_walk
  - fatfs_close
  source_file: /src/sleuthkit/tsk/fs/fatfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ISODCL
  source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISO9660_FIRSTINO
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ISO9660_ROOTINO
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ISO9660_FILE_CONTENT_LEN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: sizeof(TSK_DADDR_T)
    - item_type: preproc_def
      name: ISO9660_SBOFF
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: ISO9660_SSIZE_B
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: ISO9660_MIN_BLOCK_SIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '512'
    - item_type: preproc_def
      name: ISO9660_MAX_BLOCK_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: ISO9660_MAGIC
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '"CD001"'
    - item_type: preproc_def
      name: ISO9660_BOOT_RECORD
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: ISO9660_PRIM_VOL_DESC
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: ISO9660_SUPP_VOL_DESC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: ISO9660_VOL_PART_DESC
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '3       '
    - item_type: preproc_def
      name: ISO9660_RESERVE_FLOOR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '4       '
    - item_type: preproc_def
      name: ISO9660_RESERVE_CEIL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '254'
    - item_type: preproc_def
      name: ISO9660_VOL_DESC_SET_TERM
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '255     '
    - item_type: preproc_def
      name: ISO9660_MAXNAMLEN_STD
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: 128     ///< Maximum length of standard name
    - item_type: preproc_def
      name: ISO9660_MAXNAMLEN_JOL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: 128     ///< maximum UTF-16 joliet name (in bytes)
    - item_type: preproc_def
      name: ISO9660_MAXNAMLEN_RR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: 256     ///< Maximum length of a Rock Ridge extension name
    - item_type: preproc_def
      name: ISO9660_MAXNAMLEN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: (ISO9660_MAXNAMLEN_JOL << 1)        // mult jol by 2 to account
        for UTF-16 to UTF-8 conversion
    - item_type: preproc_def
      name: ISO9660_BIT_UR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: ISO9660_BIT_UX
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ISO9660_BIT_GR
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: ISO9660_BIT_GX
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: ISO9660_BIT_AR
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: ISO9660_BIT_AX
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: ISO9660_FLAG_HIDE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: ISO9660_FLAG_DIR
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: ISO9660_FLAG_ASSOC
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: ISO9660_FLAG_RECORD
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0X08    '
    - item_type: preproc_def
      name: ISO9660_FLAG_PROT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0X10    '
    - item_type: preproc_def
      name: ISO9660_FLAG_RES1
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0X20    '
    - item_type: preproc_def
      name: ISO9660_FLAG_RES2
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: ISO9660_FLAG_MULT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0X80    '
    - item_type: preproc_def
      name: MODE_IFSOCK
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0140000     '
    - item_type: preproc_def
      name: MODE_IFLNK
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0120000     '
    - item_type: preproc_def
      name: MODE_IFDIR
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0040000     '
    - item_type: preproc_def
      name: MODE_IFIFO
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0010000     '
    - item_type: preproc_def
      name: MODE_IFBLK
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0060000     '
    - item_type: preproc_def
      name: MODE_IFCHR
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0020000     '
    - item_type: preproc_def
      name: ISO9660_TYPE_PVD
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ISO9660_TYPE_SVD
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ISO9660_CTYPE_ASCII
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ISO9660_CTYPE_UTF16
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ISO_EA_IRSYS
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: ISO_EA_IWSYS
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: ISO_EA_IXSYS
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: ISO_EA_IRUSR
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: ISO_EA_IWUSR
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: ISO_EA_IXUSR
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ISO_EA_IRGRP
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: ISO_EA_IWGRP
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: ISO_EA_IXGRP
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: ISO_EA_IROTH
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: ISO_EA_IWOTH
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: ISO_EA_IXOTH
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
      type_or_value: '0x4000'
    structs:
    - fields:
      - name: year
        type: uint8_t
      - name: month
        type: uint8_t
      - name: day
        type: uint8_t
      - name: hour
        type: uint8_t
      - name: min
        type: uint8_t
      - name: sec
        type: uint8_t
      - name: gmt_off
        type: int8_t
      item_type: struct
      name: record_data
      pos:
        line_end: 148
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: entry_len
        type: uint8_t
      - name: ext_len
        type: uint8_t
      - name: ext_loc_l[4]
        type: uint8_t
      - name: ext_loc_m[4]
        type: uint8_t
      - name: data_len_l[4]
        type: uint8_t
      - name: data_len_m[4]
        type: uint8_t
      - name: rec_time
        type: record_data
      - name: flags
        type: int8_t
      - name: unit_sz
        type: uint8_t
      - name: gap_sz
        type: uint8_t
      - name: seq[4]
        type: uint8_t
      - name: fi_len
        type: uint8_t
      item_type: struct
      name: iso9660_dentry
      pos:
        line_end: 164
        line_start: 151
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: length
        type: uint8_t
      - name: ext_len
        type: uint8_t
      - name: ext_loc_l[4]
        type: uint8_t
      - name: ext_loc_m[4]
        type: uint8_t
      - name: data_len_l[4]
        type: uint8_t
      - name: data_len_m[4]
        type: uint8_t
      - name: rec
        type: record_data
      - name: flags
        type: int8_t
      - name: unit_sz
        type: uint8_t
      - name: gap_sz
        type: uint8_t
      - name: seq[4]
        type: uint8_t
      - name: len
        type: uint8_t
      - name: name
        type: char
      item_type: struct
      name: iso9660_root_dentry
      pos:
        line_end: 184
        line_start: 170
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: year[4]
        type: uint8_t
      - name: month[2]
        type: uint8_t
      - name: day[2]
        type: uint8_t
      - name: hour[2]
        type: uint8_t
      - name: min[2]
        type: uint8_t
      - name: sec[2]
        type: uint8_t
      - name: hun[2]
        type: uint8_t
      - name: gmt_off
        type: uint8_t
      item_type: struct
      name: date_time
      pos:
        line_end: 199
        line_start: 190
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: type
        type: uint8_t
      - name: magic[ISODCL(2, 6)]
        type: char
      - name: ver[ISODCL(7, 7)]
        type: char
      - name: x[ISODCL(8, 2048)]
        type: char
      item_type: struct
      name: iso9660_gvd
      pos:
        line_end: 208
        line_start: 203
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: unused1[ISODCL(1, 8)]
        type: char
      - name: sys_id[ISODCL(9, 40)]
        type: char
      - name: vol_id[ISODCL(41, 72)]
        type: char
      - name: unused2[ISODCL(73, 80)]
        type: char
      - name: vs_sz_l[ISODCL(81, 84)]
        type: uint8_t
      - name: vs_sz_m[ISODCL(85, 88)]
        type: uint8_t
      - name: unused3[ISODCL(89, 120)]
        type: char
      - name: vol_set_l[ISODCL(121, 122)]
        type: uint8_t
      - name: vol_set_m[ISODCL(123, 124)]
        type: uint8_t
      - name: vol_seq_l[ISODCL(125, 126)]
        type: uint8_t
      - name: vol_seq_m[ISODCL(127, 128)]
        type: uint8_t
      - name: blk_sz_l[ISODCL(129, 130)]
        type: uint8_t
      - name: blk_sz_m[ISODCL(131, 132)]
        type: uint8_t
      - name: pt_size_l[ISODCL(133, 136)]
        type: uint8_t
      - name: pt_size_m[ISODCL(137, 140)]
        type: uint8_t
      - name: pt_loc_l[ISODCL(141, 144)]
        type: uint8_t
      - name: pt_opt_loc_l[ISODCL(145, 148)]
        type: uint8_t
      - name: pt_loc_m[ISODCL(149, 152)]
        type: uint8_t
      - name: pt_opt_loc_m[ISODCL(153, 156)]
        type: uint8_t
      - name: dir_rec
        type: iso9660_root_dentry
      - name: vol_setid[ISODCL(191, 318)]
        type: char
      - name: pub_id[ISODCL(319, 446)]
        type: unsigned char
      - name: prep_id[ISODCL(447, 574)]
        type: unsigned char
      - name: app_id[ISODCL(575, 702)]
        type: unsigned char
      - name: copy_id[ISODCL(703, 739)]
        type: unsigned char
      - name: abs_id[ISODCL(740, 776)]
        type: unsigned char
      - name: bib_id[ISODCL(777, 813)]
        type: unsigned char
      - name: make_date
        type: date_time
      - name: mod_date
        type: date_time
      - name: exp_date
        type: date_time
      - name: ef_date
        type: date_time
      - name: fs_ver
        type: uint8_t
      - name: res[ISODCL(883, 883)]
        type: char
      - name: app_use[ISODCL(884, 1395)]
        type: char
      - name: reserv[ISODCL(1396, 2048)]
        type: char
      item_type: struct
      name: iso9660_pvd
      pos:
        line_end: 247
        line_start: 211
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: flags[ISODCL(1, 8)]
        type: uint8_t
      - name: sys_id[ISODCL(9, 40)]
        type: char
      - name: vol_id[ISODCL(41, 72)]
        type: char
      - name: unused2[ISODCL(73, 80)]
        type: char
      - name: vs_sz_l[ISODCL(81, 84)]
        type: uint8_t
      - name: vs_sz_m[ISODCL(85, 88)]
        type: uint8_t
      - name: esc_seq[ISODCL(89, 120)]
        type: uint8_t
      - name: vol_set_l[ISODCL(121, 122)]
        type: uint8_t
      - name: vol_set_m[ISODCL(123, 124)]
        type: uint8_t
      - name: vol_seq_l[ISODCL(125, 126)]
        type: uint8_t
      - name: vol_seq_m[ISODCL(127, 128)]
        type: uint8_t
      - name: blk_sz_l[ISODCL(129, 130)]
        type: uint8_t
      - name: blk_sz_m[ISODCL(131, 132)]
        type: uint8_t
      - name: pt_size_l[ISODCL(133, 136)]
        type: uint8_t
      - name: pt_size_m[ISODCL(137, 140)]
        type: uint8_t
      - name: pt_loc_l[ISODCL(141, 144)]
        type: uint8_t
      - name: pt_opt_loc_l[ISODCL(145, 148)]
        type: uint8_t
      - name: pt_loc_m[ISODCL(149, 152)]
        type: uint8_t
      - name: pt_opt_loc_m[ISODCL(153, 156)]
        type: uint8_t
      - name: dir_rec
        type: iso9660_root_dentry
      - name: vol_setid[ISODCL(191, 318)]
        type: char
      - name: pub_id[ISODCL(319, 446)]
        type: unsigned char
      - name: prep_id[ISODCL(447, 574)]
        type: unsigned char
      - name: app_id[ISODCL(575, 702)]
        type: unsigned char
      - name: copy_id[ISODCL(703, 739)]
        type: unsigned char
      - name: abs_id[ISODCL(740, 776)]
        type: unsigned char
      - name: bib_id[ISODCL(777, 813)]
        type: unsigned char
      - name: make_date
        type: date_time
      - name: mod_date
        type: date_time
      - name: exp_date
        type: date_time
      - name: ef_date
        type: date_time
      - name: fs_ver[ISODCL(882, 882)]
        type: char
      - name: res[ISODCL(883, 883)]
        type: char
      - name: app_use[ISODCL(884, 1395)]
        type: char
      - name: reserv[ISODCL(1396, 2048)]
        type: char
      item_type: struct
      name: iso9660_svd
      pos:
        line_end: 286
        line_start: 250
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: boot_sys_id[ISODCL(8, 39)]
        type: char
      - name: boot_id[ISODCL(40, 71)]
        type: char
      - name: system_use[ISODCL(72, 2048)]
        type: char
      item_type: struct
      name: iso_bootrec
      pos:
        line_end: 293
        line_start: 289
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: len_di
        type: uint8_t
      - name: attr_len
        type: uint8_t
      - name: ext_loc[4]
        type: uint8_t
      - name: par_dir[2]
        type: uint8_t
      item_type: struct
      name: path_table_rec
      pos:
        line_end: 301
        line_start: 296
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: uid[ISODCL(1, 4)]
        type: uint8_t
      - name: gid[ISODCL(5, 8)]
        type: uint8_t
      - name: mode[ISODCL(9, 10)]
        type: uint8_t
      - name: cre[ISODCL(11, 27)]
        type: uint8_t
      - name: mod[ISODCL(28, 44)]
        type: uint8_t
      - name: exp[ISODCL(45, 61)]
        type: uint8_t
      - name: eff[ISODCL(62, 78)]
        type: uint8_t
      - name: fmt[ISODCL(79, 79)]
        type: uint8_t
      - name: attr[ISODCL(80, 80)]
        type: uint8_t
      - name: len[ISODCL(81, 84)]
        type: uint8_t
      - name: sys_id[ISODCL(85, 116)]
        type: uint8_t
      - name: uns[ISODCL(117, 180)]
        type: uint8_t
      - name: e_ver[ISODCL(181, 181)]
        type: uint8_t
      - name: len_esc[ISODCL(182, 182)]
        type: uint8_t
      item_type: struct
      name: ext_attr_rec
      pos:
        line_end: 319
        line_start: 304
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: pvd
        type: iso9660_pvd
      - name: '*next'
        type: struct iso9660_pvd_node
      item_type: struct
      name: iso9660_pvd_node
      pos:
        line_end: 340
        line_start: 337
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: svd
        type: iso9660_svd
      - name: '*next'
        type: struct iso9660_svd_node
      item_type: struct
      name: iso9660_svd_node
      pos:
        line_end: 346
        line_start: 343
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: uid
        type: TSK_UID_T
      - name: gid
        type: TSK_GID_T
      - name: mode
        type: uint16_t
      - name: nlink
        type: uint32_t
      - name: fn[ISO9660_MAXNAMLEN_RR]
        type: char
      item_type: struct
      name: rockridge_ext
      pos:
        line_end: 355
        line_start: 349
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: dr
        type: iso9660_dentry
      - name: '*ea'
        type: ext_attr_rec
      - name: fn[ISO9660_MAXNAMLEN + 1]
        type: char
      - name: '*rr'
        type: rockridge_ext
      - name: version
        type: int
      - name: is_orphan
        type: uint8_t
      - name: susp_off
        type: TSK_OFF_T
      - name: susp_len
        type: TSK_OFF_T
      item_type: struct
      name: iso9660_inode
      pos:
        line_end: 369
        line_start: 360
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: inode
        type: iso9660_inode
      - name: offset
        type: TSK_OFF_T
      - name: dentry_offset
        type: TSK_OFF_T
      - name: inum
        type: TSK_INUM_T
      - name: size
        type: int
      - name: ea_size
        type: int
      - name: '*next'
        type: struct iso9660_inode_node
      item_type: struct
      name: iso9660_inode_node
      pos:
        line_end: 380
        line_start: 372
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: path_tab_addr
        type: uint32_t
      - name: root_addr
        type: uint32_t
      - name: '*pvd'
        type: iso9660_pvd_node
      - name: '*svd'
        type: iso9660_svd_node
      - name: '*in_list'
        type: iso9660_inode_node
      - name: rr_found
        type: uint8_t
      item_type: struct
      name: ISO_INFO
      pos:
        line_end: 391
        line_start: 383
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[2]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: char
      item_type: struct
      name: iso9660_susp_head
      pos:
        line_end: 412
        line_start: 408
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[2]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: char
      - name: blk_l[4]
        type: uint8_t
      - name: blk_m[4]
        type: uint8_t
      - name: offset_l[4]
        type: uint8_t
      - name: offset_m[4]
        type: uint8_t
      - name: celen_l[4]
        type: uint8_t
      - name: celen_m[4]
        type: uint8_t
      item_type: struct
      name: iso9660_susp_ce
      pos:
        line_end: 428
        line_start: 418
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[2]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: char
      - name: chk[2]
        type: uint8_t
      - name: skip
        type: uint8_t
      item_type: struct
      name: iso9660_susp_sp
      pos:
        line_end: 439
        line_start: 433
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[2]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: char
      - name: len_id
        type: uint8_t
      - name: len_des
        type: uint8_t
      - name: len_src
        type: uint8_t
      - name: ext_ver
        type: uint8_t
      - name: ext_id[1]
        type: char
      item_type: struct
      name: iso9660_susp_er
      pos:
        line_end: 452
        line_start: 441
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len[ISODCL(3, 3)]
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      - name: foo[ISODCL(5, 5)]
        type: uint8_t
      item_type: struct
      name: rr_sys_use
      pos:
        line_end: 461
        line_start: 456
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: uint8_t
      - name: mode_l[ISODCL(5, 8)]
        type: uint8_t
      - name: mode_m[ISODCL(9, 12)]
        type: uint8_t
      - name: links_l[ISODCL(13, 16)]
        type: uint8_t
      - name: links_m[ISODCL(17, 20)]
        type: uint8_t
      - name: uid_l[ISODCL(21, 24)]
        type: uint8_t
      - name: uid_m[ISODCL(25, 28)]
        type: uint8_t
      - name: gid_l[ISODCL(29, 32)]
        type: uint8_t
      - name: gid_m[ISODCL(23, 36)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_px_entry
      pos:
        line_end: 478
        line_start: 464
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: uint8_t
      - name: dev_h_l[ISODCL(5, 8)]
        type: uint8_t
      - name: dev_h_m[ISODCL(9, 12)]
        type: uint8_t
      - name: dev_l_l[ISODCL(13, 16)]
        type: uint8_t
      - name: dev_l_m[ISODCL(17, 20)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_pn_entry
      pos:
        line_end: 489
        line_start: 481
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len
        type: uint8_t
      - name: ver
        type: uint8_t
      - name: flags
        type: uint8_t
      item_type: struct
      name: iso9660_rr_sl_entry
      pos:
        line_end: 497
        line_start: 492
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      - name: flags[ISODCL(5, 5)]
        type: uint8_t
      - name: name[1]
        type: char
      item_type: struct
      name: iso9660_rr_nm_entry
      pos:
        line_end: 506
        line_start: 500
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len[ISODCL(3, 3)]
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      - name: par_loc[ISODCL(5, 12)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_cl_entry
      pos:
        line_end: 514
        line_start: 509
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len[ISODCL(3, 3)]
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_re_entry
      pos:
        line_end: 521
        line_start: 517
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len[ISODCL(3, 3)]
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      - name: flags[ISODCL(5, 5)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_tf_entry
      pos:
        line_end: 529
        line_start: 524
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    - fields:
      - name: sig[ISODCL(1, 2)]
        type: char
      - name: len[ISODCL(3, 3)]
        type: uint8_t
      - name: ver[ISODCL(4, 4)]
        type: uint8_t
      - name: vfs_h[ISODCL(5, 12)]
        type: uint8_t
      - name: vfs_l[ISODCL(13, 20)]
        type: uint8_t
      - name: depth[ISODCL(21, 21)]
        type: uint8_t
      item_type: struct
      name: iso9660_rr_sf_entry
      pos:
        line_end: 539
        line_start: 532
        source_file: /src/sleuthkit/tsk/fs/tsk_iso9660.h
    typedefs: []
    union: []
- function_names:
  - XSWAP
  - hfs_checked_read_random
  - hfs_convert_2_unix_time
  - cnid_to_array
  - hfs_ext_compare_keys
  - hfs_get_idxkeylen
  - hfs_extents_to_attr
  - hfs_ext_find_extent_record_attr
  - hfs_cat_compare_keys
  - hfs_cat_traverse
  - hfs_cat_get_record_offset_cb
  - hfs_cat_get_record_offset
  - hfs_cat_read_thread_record
  - hfs_cat_read_file_folder_record
  - hfs_follow_hard_link
  - hfs_cat_file_lookup
  - hfs_find_highest_inum_cb
  - hfs_find_highest_inum
  - hfs_mode_to_tsk_mode
  - hfs_mode_to_tsk_meta_type
  - hfs_make_specialbase
  - hfs_make_catalog
  - hfs_make_extents
  - hfs_make_blockmap
  - hfs_make_startfile
  - hfs_make_attrfile
  - hfs_make_badblockfile
  - hfs_dinode_copy
  - hfs_inode_lookup
  - hfs_read_zlib_block_table
  - hfs_read_lzvn_block_table
  - hfs_decompress_noncompressed_block
  - hfs_decompress_zlib_block
  - hfs_decompress_lzvn_block
  - read_and_decompress_block
  - hfs_attr_walk_compressed_rsrc
  - hfs_attr_walk_zlib_rsrc
  - hfs_attr_walk_lzvn_rsrc
  - hfs_file_read_compressed_rsrc
  - hfs_file_read_zlib_rsrc
  - hfs_file_read_lzvn_rsrc
  - hfs_decompress_noncompressed_attr
  - hfs_decompress_zlib_attr
  - hfs_decompress_lzvn_attr
  - hfs_file_read_compressed_attr
  - hfs_file_read_zlib_attr
  - hfs_file_read_lzvn_attr
  - open_attr_file
  - close_attr_file
  - hfs_attrTypeName
  - hfs_load_extended_attrs
  - free_res_descriptor
  - hfs_parse_resource_fork
  - hfs_load_attrs
  - hfs_block_is_alloc
  - hfs_block_getflags
  - hfs_block_walk
  - hfs_inode_walk
  - hfs_get_inode_name
  - print_inode_name
  - print_parent_path
  - print_inode_file
  - hfs_fscheck
  - hfs_fsstat
  - text_encoding_name
  - output_print_addr
  - print_addr_act
  - hfs_istat
  - hfs_get_default_attr_type
  - hfs_close
  - hfs_open
  - error_detected
  - error_returned
  source_file: /src/sleuthkit/tsk/fs/hfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HFS_PRINT_WIDTH
      pos:
        line_end: 5799
        line_start: 5798
        source_file: /src/sleuthkit/tsk/fs/hfs.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*targ_key'
        type: hfs_btree_key_cat
      - name: 'off'
        type: TSK_OFF_T
      item_type: struct
      name: HFS_CAT_GET_RECORD_OFFSET_DATA
      pos:
        line_end: 1068
        line_start: 1065
        source_file: /src/sleuthkit/tsk/fs/hfs.c
    - fields:
      - name: offset
        type: uint32_t
      - name: length
        type: uint32_t
      item_type: struct
      name: CMP_OFFSET_ENTRY
      pos:
        line_end: 2565
        line_start: 2562
        source_file: /src/sleuthkit/tsk/fs/hfs.c
    - fields:
      - name: '*fs'
        type: TSK_FS_INFO
      - name: '*file'
        type: TSK_FS_FILE
      - name: '*header'
        type: hfs_btree_header_record
      - name: endian
        type: TSK_ENDIAN_ENUM
      - name: rootNode
        type: uint32_t
      - name: nodeSize
        type: uint16_t
      - name: maxKeyLen
        type: uint16_t
      item_type: struct
      name: ATTR_FILE_T
      pos:
        line_end: 3743
        line_start: 3734
        source_file: /src/sleuthkit/tsk/fs/hfs.c
    - fields:
      - name: type[5]
        type: char
      - name: id
        type: uint16_t
      - name: offset
        type: uint32_t
      - name: length
        type: uint32_t
      - name: '*name'
        type: char
      - name: '*next'
        type: struct RES_DESCRIPTOR
      item_type: struct
      name: RES_DESCRIPTOR
      pos:
        line_end: 4474
        line_start: 4467
        source_file: /src/sleuthkit/tsk/fs/hfs.c
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      - name: startBlock
        type: TSK_DADDR_T
      - name: blockCount
        type: uint32_t
      - name: accumulating
        type: unsigned char
      item_type: struct
      name: HFS_PRINT_ADDR
      pos:
        line_end: 5805
        line_start: 5799
        source_file: /src/sleuthkit/tsk/fs/hfs.c
    typedefs: []
    union: []
- function_names:
  - hfs_UTF16toUTF8
  - hfsmode2tsknametype
  - hfs_dir_open_meta_cb
  - hfs_dir_open_meta
  - hfs_name_cmp
  source_file: /src/sleuthkit/tsk/fs/hfs_dent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fs_dir'
        type: TSK_FS_DIR
      - name: '*fs_name'
        type: TSK_FS_NAME
      - name: cnid
        type: uint32_t
      item_type: struct
      name: HFS_DIR_OPEN_META_INFO
      pos:
        line_end: 196
        line_start: 192
        source_file: /src/sleuthkit/tsk/fs/hfs_dent.c
    typedefs: []
    union: []
- function_names:
  - print_header
  - print_header_mac
  - ils_act
  - ils_mac_act
  - tsk_fs_ils
  source_file: /src/sleuthkit/tsk/fs/ils_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*image'
        type: TSK_TCHAR
      - name: sec_skew
        type: int32_t
      - name: flags
        type: TSK_FS_ILS_FLAG_ENUM
      item_type: struct
      name: ILS_DATA
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/ils_lib.c
    typedefs: []
    union: []
- function_names:
  - APFSJObject::APFSJObject
  - APFSJObject::APFSJObject
  - '&operator=(const APFSJObject &)'
  - APFSJObject::APFSJObject
  - '&operator=(APFSJObject &&)'
  - APFSJObject::valid
  - APFSJObject::child_count
  - '&inode() const noexcept'
  - '&name() const noexcept'
  - '&extents() const noexcept'
  - '&inline_xattrs() const noexcept'
  - '&nonres_xattrs() const noexcept'
  - '&children() const noexcept'
  - APFSJObject::size
  - APFSJObject::size_on_disk
  - APFSJObject::is_clone
  - APFSJObjTree::jobjs
  - APFSJObjTree::APFSJObjTree
  - APFSJObjTree::obj
  - APFSJObjTree::iterator::iterator
  - APFSJObjTree::iterator::iterator
  - '&operator=(const iterator &)'
  - APFSJObjTree::iterator::iterator
  - '&operator=(iterator &&)'
  - operator*() const noexcept
  - operator->() const noexcept
  - operator++(int)
  - operator==(const iterator &rhs) const noexcept
  - operator!=(const iterator &rhs) const noexcept
  source_file: /src/sleuthkit/tsk/fs/apfs_fs.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: std::unique_ptr<uint8_t[]>
      - name: password
        type: std::string
      item_type: struct
      name: crypto
      pos:
        line_end: 112
        line_start: 105
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.hpp
    typedefs: []
    union: []
- function_names:
  - tsk_fs_name_alloc
  - tsk_fs_name_realloc
  - tsk_fs_name_reset
  - tsk_fs_name_free
  - tsk_fs_name_copy
  - tsk_fs_meta_make_ls
  - tsk_fs_time_to_str
  - tsk_fs_time_to_str_subsecs
  - tsk_fs_print_time
  - tsk_fs_print_day
  - tsk_fs_name_print
  - tsk_fs_name_print_long
  - tsk_fs_name_print_mac
  - tsk_fs_name_print_mac_md5
  source_file: /src/sleuthkit/tsk/fs/fs_name.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TZNAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/sleuthkit/tsk/fs/fs_name.c
      type_or_value: __tzname
    structs: []
    typedefs: []
    union: []
- function_names:
  - NTFS_RUNL_LENSZ
  - NTFS_RUNL_OFFSZ
  - GET_IDXENTRY_SUB
  source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
  types:
    enum:
    - enumerators:
      - name: TSK_FS_USN_REASON_DATA_OVERWRITE
        value: '0x00000001'
      - name: TSK_FS_USN_REASON_NAMED_DATA_OVERWRITE
        value: '0x00000010'
      - name: TSK_FS_USN_REASON_SECURITY_CHANGE
        value: '0x00000800'
      - name: TSK_FS_USN_REASON_BASIC_INFO_CHANGE
        value: '0x00008000'
      - name: TSK_FS_USN_REASON_OBJECT_ID_CHANGE
        value: '0x00080000'
      - name: TSK_FS_USN_REASON_CLOSE
        value: '0x80000000'
      - name: TSK_FS_USN_REASON_NAMED_DATA_EXTEND
        value: '0x00000020'
      - name: TSK_FS_USN_REASON_HARD_LINK_CHANGE
        value: '0x00010000'
      - name: TSK_FS_USN_REASON_REPARSE_POINT_CHANGE
        value: '0x00100000'
      - name: TSK_FS_USN_REASON_RENAME_OLD_NAME
        value: '0x00001000'
      - name: TSK_FS_USN_REASON_DATA_EXTEND
        value: '0x00000002'
      - name: TSK_FS_USN_REASON_NAMED_DATA_TRUNCATION
        value: '0x00000040'
      - name: TSK_FS_USN_REASON_FILE_DELETE
        value: '0x00000200'
      - name: TSK_FS_USN_REASON_RENAME_NEW_NAME
        value: '0x00002000'
      - name: TSK_FS_USN_REASON_COMPRESSION_CHANGE
        value: '0x00020000'
      - name: TSK_FS_USN_REASON_STREAM_CHANGE
        value: '0x00200000'
      - name: TSK_FS_USN_REASON_DATA_TRUNCATION
        value: '0x00000004'
      - name: TSK_FS_USN_REASON_FILE_CREATE
        value: '0x00000100'
      - name: TSK_FS_USN_REASON_EA_CHANGE
        value: '0x00000400'
      - name: TSK_FS_USN_REASON_ENCRYPTION_CHANGE
        value: '0x00040000'
      - name: TSK_FS_USN_REASON_INDEXABLE_CHANGE
        value: '0x00004000'
      item_type: enum
      name: TSK_FS_USN_REASON
      pos:
        line_end: 659
        line_start: 637
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - enumerators:
      - name: TSK_FS_USN_SOURCE_INFO_DATA_MANAGEMENT
        value: '0x01'
      - name: TSK_FS_USN_SOURCE_INFO_AUXILIARY_DATA
        value: '0x02'
      - name: TSK_FS_USN_SOURCE_INFO_CLIENT_REPLICATION_MANAGEMENT
        value: '0x08'
      - name: TSK_FS_USN_SOURCE_INFO_REPLICATION_MANAGEMENT
        value: '0x04'
      item_type: enum
      name: TSK_FS_USN_SOURCE_INFO
      pos:
        line_end: 668
        line_start: 663
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - enumerators:
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_READONLY
        value: '0x000001'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_ARCHIVE
        value: '0x000020'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_SYSTEM
        value: '0x000004'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_DIRECTORY
        value: '0x000010'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_HIDDEN
        value: '0x000002'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_DEVICE
        value: '0x000040'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_NORMAL
        value: '0x000080'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_TEMPORARY
        value: '0x000100'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_SPARSE_FILE
        value: '0x000200'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_REPARSE_POINT
        value: '0x000400'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
        value: '0x002000'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_ENCRYPTED
        value: '0x004000'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_OFFLINE
        value: '0x001000'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_NO_SCRUB_DATA
        value: '0x020000'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_VIRTUAL
        value: '0x010000'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_COMPRESSED
        value: '0x000800'
      - name: TSK_FS_NTFS_FILE_ATTRIBUTE_INTEGRITY_STREAM
        value: '0x008000'
      item_type: enum
      name: TSK_FS_NTFS_FILE_ATTRIBUTES
      pos:
        line_end: 690
        line_start: 672
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    preproc_defs:
    - item_type: preproc_def
      name: TSK_USE_SID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NTFS_FS_MAGIC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0xAA55'
    - item_type: preproc_def
      name: NTFS_MAXNAMLEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NTFS_MAXNAMLEN_UTF8
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 4 * NTFS_MAXNAMLEN
    - item_type: preproc_def
      name: NTFS_ROOTINO
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: NTFS_MFT_ROOT
    - item_type: preproc_def
      name: NTFS_FIRSTINO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: NTFS_LAST_DEFAULT_INO
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '16      '
    - item_type: preproc_def
      name: NTFS_FILE_CONTENT_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NTFS_TOKEN_MASK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NTFS_SYMBOL_TOKEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NTFS_TOKEN_LENGTH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NTFS_MAX_UNCOMPRESSION_BUFFER_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: NTFS_UPDATE_SEQ_STRIDE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: NTFS_MFT_MAGIC
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x454c4946'
    - item_type: preproc_def
      name: NTFS_MFT_MAGIC_BAAD
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x44414142'
    - item_type: preproc_def
      name: NTFS_MFT_MAGIC_ZERO
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: NTFS_MFT_INUSE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: NTFS_MFT_DIR
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: NTFS_MFT_BASE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: NTFS_MFT_FILE_REC
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x00ffffffffffffff'
    - item_type: preproc_def
      name: NTFS_MFT_MFT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NTFS_MFT_MFTMIR
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NTFS_MFT_LOG
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NTFS_MFT_VOL
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: NTFS_MFT_ATTR
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NTFS_MFT_ROOT
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: NTFS_MFT_BMAP
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: NTFS_MFT_BOOT
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: NTFS_MFT_BAD
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: NTFS_MFT_SECURE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: NTFS_MFT_UPCASE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0xA'
    - item_type: preproc_def
      name: NTFS_MFT_RES
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: NTFS_MFT_NONRES
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: NTFS_ATTR_FLAG_COMP
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: NTFS_ATTR_FLAG_ENC
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x4000  '
    - item_type: preproc_def
      name: NTFS_ATTR_FLAG_SPAR
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x8000  '
    - item_type: preproc_def
      name: NTFS_ATYPE_SI
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x10        // 16
    - item_type: preproc_def
      name: NTFS_ATYPE_ATTRLIST
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x20        // 32
    - item_type: preproc_def
      name: NTFS_ATYPE_FNAME
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x30        // 48
    - item_type: preproc_def
      name: NTFS_ATYPE_VVER
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x40        // 64 (NT)
    - item_type: preproc_def
      name: NTFS_ATYPE_OBJID
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x40        // 64 (2K)
    - item_type: preproc_def
      name: NTFS_ATYPE_SEC
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x50        // 80
    - item_type: preproc_def
      name: NTFS_ATYPE_VNAME
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x60        // 96
    - item_type: preproc_def
      name: NTFS_ATYPE_VINFO
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x70        // 112
    - item_type: preproc_def
      name: NTFS_ATYPE_DATA
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x80        // 128
    - item_type: preproc_def
      name: NTFS_ATYPE_IDXROOT
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x90        // 144
    - item_type: preproc_def
      name: NTFS_ATYPE_IDXALLOC
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xA0        // 160
    - item_type: preproc_def
      name: NTFS_ATYPE_BITMAP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xB0        // 176
    - item_type: preproc_def
      name: NTFS_ATYPE_SYMLNK
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xC0        // 192 (NT)
    - item_type: preproc_def
      name: NTFS_ATYPE_REPARSE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xC0        // 192 (2K)
    - item_type: preproc_def
      name: NTFS_ATYPE_EAINFO
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xD0        // 208
    - item_type: preproc_def
      name: NTFS_ATYPE_EA
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xE0        // 224
    - item_type: preproc_def
      name: NTFS_ATYPE_PROP
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0xF0        //  (NT)
    - item_type: preproc_def
      name: NTFS_ATYPE_LOG
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x100       //  (2K)
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_RO
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000001'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_HID
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000002'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_SYS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000004'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_ARCH
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000020'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_DEV
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000040'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_NORM
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000080'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_TEMP
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000100'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_SPAR
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000200'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_REP
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000400'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_COMP
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000000800'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_OFF
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000001000'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_NOIDX
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000002000'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_ENC
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000000004000'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_DIR
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000010000000'
    - item_type: preproc_def
      name: NTFS_FNAME_FLAGS_IDXVIEW
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0000000020000000'
    - item_type: preproc_def
      name: NTFS_FNAME_POSIX
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: NTFS_FNAME_WIN32
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 1       // insensitive and restricted
    - item_type: preproc_def
      name: NTFS_FNAME_DOS
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 2       // 8.3 format of 8-bit chars in uppercase
    - item_type: preproc_def
      name: NTFS_FNAME_WINDOS
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 3       // name in WIN32 space that is already DOS
    - item_type: preproc_def
      name: NTFS_SI_RO
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: NTFS_SI_HID
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: NTFS_SI_SYS
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: NTFS_SI_ARCH
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: NTFS_SI_DEV
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: NTFS_SI_NORM
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: NTFS_SI_TEMP
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: NTFS_SI_SPAR
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: NTFS_SI_REP
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: NTFS_SI_COMP
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: NTFS_SI_OFF
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: NTFS_SI_NOIDX
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: NTFS_SI_ENC
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: NTFS_VINFO_DIRTY
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0001  // Dirty
    - item_type: preproc_def
      name: NTFS_VINFO_RESLOG
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0002  // Resize LogFile
    - item_type: preproc_def
      name: NTFS_VINFO_UPGRAD
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0004  // Upgrade on Mount
    - item_type: preproc_def
      name: NTFS_VINFO_MNTNT4
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0008  // Mounted on NT4
    - item_type: preproc_def
      name: NTFS_VINFO_DELUSN
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0010  // Delete USN Underway
    - item_type: preproc_def
      name: NTFS_VINFO_REPOBJ
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x0020  // Repair Object Ids
    - item_type: preproc_def
      name: NTFS_VINFO_MODCHK
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: 0x8000  // Modified by chkdsk
    - item_type: preproc_def
      name: NTFS_VINFO_NT
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: NTFS_VINFO_2K
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: NTFS_VINFO_XP
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: NTFS_ATTRL_RES
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NTFS_IDXELIST_CHILD
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x1     '
    - item_type: preproc_def
      name: NTFS_IDXREC_MAGIC
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x58444e49      '
    - item_type: preproc_def
      name: NTFS_IDX_SUB
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: NTFS_IDX_LAST
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: NTFS_ATTRDEF_FLAGS_IDX
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: NTFS_ATTRDEF_FLAGS_RES
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: NTFS_ATTRDEF_FLAGS_NONRES
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type_or_value: '0x80    '
    structs:
    - fields:
      - name: upd_val[2]
        type: uint8_t
      - name: upd_seq
        type: uint8_t
      item_type: struct
      name: ntfs_upd
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: f1[3]
        type: uint8_t
      - name: oemname[8]
        type: char
      - name: ssize[2]
        type: uint8_t
      - name: csize
        type: uint8_t
      - name: f2[26]
        type: uint8_t
      - name: vol_size_s[8]
        type: uint8_t
      - name: mft_clust[8]
        type: uint8_t
      - name: mftm_clust[8]
        type: uint8_t
      - name: mft_rsize_c
        type: int8_t
      - name: f3[3]
        type: uint8_t
      - name: idx_rsize_c
        type: int8_t
      - name: f4[3]
        type: uint8_t
      - name: serial[8]
        type: uint8_t
      - name: f5[430]
        type: uint8_t
      - name: magic[2]
        type: uint8_t
      item_type: struct
      name: ntfs_sb
      pos:
        line_end: 84
        line_start: 68
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: upd_off[2]
        type: uint8_t
      - name: upd_cnt[2]
        type: uint8_t
      - name: lsn[8]
        type: uint8_t
      - name: seq[2]
        type: uint8_t
      - name: link[2]
        type: uint8_t
      - name: attr_off[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: size[4]
        type: uint8_t
      - name: alloc_size[4]
        type: uint8_t
      - name: base_ref[6]
        type: uint8_t
      - name: base_seq[2]
        type: uint8_t
      - name: next_attrid[2]
        type: uint8_t
      - name: f1[2]
        type: uint8_t
      - name: entry[4]
        type: uint8_t
      item_type: struct
      name: ntfs_mft
      pos:
        line_end: 109
        line_start: 93
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: type[4]
        type: uint8_t
      - name: len[4]
        type: uint8_t
      - name: res
        type: uint8_t
      - name: nlen
        type: uint8_t
      - name: name_off[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: id[2]
        type: uint8_t
      - name: c
        type: "union {\n            /* Resident Values */\n            struct {\n
          \               uint8_t ssize[4];       // 16 - size of content\n                uint8_t
          soff[2];        // 20 - offset to content (after name)\n                uint8_t
          idxflag[2];     // 22 - indexed flag\n            } r;\n            /* Non-resident
          Values */\n            struct {\n                uint8_t start_vcn[8];   //
          16 - starting VCN of this attribute\n                uint8_t last_vcn[8];
          \   // 24\n                uint8_t run_off[2];     // 32 - offset to the
          data runs (after name)\n                uint8_t compusize[2];   // 34 -
          compression unit size (2^x)\n                uint8_t f1[4];  // 36\n                uint8_t
          alen[8];        // 40   allocated size of stream\n                uint8_t
          ssize[8];       // 48   actual size of stream\n                uint8_t initsize[8];
          \   // 56   initialized steam size\n            } nr;\n        }"
      item_type: struct
      name: ntfs_attr
      pos:
        line_end: 172
        line_start: 144
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: par_ref[6]
        type: uint8_t
      - name: par_seq[2]
        type: uint8_t
      - name: crtime[8]
        type: uint8_t
      - name: mtime[8]
        type: uint8_t
      - name: ctime[8]
        type: uint8_t
      - name: atime[8]
        type: uint8_t
      - name: alloc_fsize[8]
        type: uint8_t
      - name: real_fsize[8]
        type: uint8_t
      - name: flags[8]
        type: uint8_t
      - name: nlen
        type: uint8_t
      - name: nspace
        type: uint8_t
      - name: name
        type: uint8_t
      item_type: struct
      name: ntfs_attr_fname
      pos:
        line_end: 228
        line_start: 215
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: crtime[8]
        type: uint8_t
      - name: mtime[8]
        type: uint8_t
      - name: ctime[8]
        type: uint8_t
      - name: atime[8]
        type: uint8_t
      - name: dos[4]
        type: uint8_t
      - name: maxver[4]
        type: uint8_t
      - name: ver[4]
        type: uint8_t
      - name: class_id[4]
        type: uint8_t
      - name: own_id[4]
        type: uint8_t
      - name: sec_id[4]
        type: uint8_t
      - name: quota[8]
        type: uint8_t
      - name: usn[8]
        type: uint8_t
      item_type: struct
      name: ntfs_attr_si
      pos:
        line_end: 273
        line_start: 260
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: f1[8]
        type: uint8_t
      - name: maj_ver
        type: uint8_t
      - name: min_ver
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: f2[4]
        type: uint8_t
      item_type: struct
      name: ntfs_attr_vinfo
      pos:
        line_end: 302
        line_start: 296
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: type[4]
        type: uint8_t
      - name: len[2]
        type: uint8_t
      - name: nlen
        type: uint8_t
      - name: f1
        type: uint8_t
      - name: start_vcn[8]
        type: uint8_t
      - name: file_ref[6]
        type: uint8_t
      - name: seq[2]
        type: uint8_t
      - name: id[2]
        type: uint8_t
      - name: name
        type: uint8_t
      item_type: struct
      name: ntfs_attrlist
      pos:
        line_end: 338
        line_start: 328
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: len
        type: uint8_t
      - name: buf[32]
        type: uint8_t
      item_type: struct
      name: ntfs_runlist
      pos:
        line_end: 358
        line_start: 352
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: begin_off[4]
        type: uint8_t
      - name: seqend_off[4]
        type: uint8_t
      - name: bufend_off[4]
        type: uint8_t
      - name: flags[4]
        type: uint8_t
      item_type: struct
      name: ntfs_idxelist
      pos:
        line_end: 385
        line_start: 380
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: type[4]
        type: uint8_t
      - name: collation_rule[4]
        type: uint8_t
      - name: idxalloc_size_b[4]
        type: uint8_t
      - name: idx_size_c
        type: uint8_t
      - name: pad[3]
        type: uint8_t
      - name: list
        type: ntfs_idxelist
      item_type: struct
      name: ntfs_idxroot
      pos:
        line_end: 400
        line_start: 393
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: upd_off[2]
        type: uint8_t
      - name: upd_cnt[2]
        type: uint8_t
      - name: lsn[8]
        type: uint8_t
      - name: idx_vcn[8]
        type: uint8_t
      - name: list
        type: ntfs_idxelist
      item_type: struct
      name: ntfs_idxrec
      pos:
        line_end: 421
        line_start: 414
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: file_ref[6]
        type: uint8_t
      - name: seq_num[2]
        type: uint8_t
      - name: idxlen[2]
        type: uint8_t
      - name: strlen[2]
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: f1[3]
        type: uint8_t
      - name: stream
        type: uint8_t
      item_type: struct
      name: ntfs_idxentry
      pos:
        line_end: 441
        line_start: 430
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: label[128]
        type: char
      - name: type[4]
        type: uint8_t
      - name: disp[4]
        type: uint8_t
      - name: coll[4]
        type: uint8_t
      - name: flags[4]
        type: uint8_t
      - name: minsize[8]
        type: uint8_t
      - name: maxsize[8]
        type: uint8_t
      item_type: struct
      name: ntfs_attrdef
      pos:
        line_end: 465
        line_start: 457
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: objid1[4]
        type: uint8_t
      - name: objid2[2]
        type: uint8_t
      - name: objid3[2]
        type: uint8_t
      - name: objid4[2]
        type: uint8_t
      - name: objid5[2]
        type: uint8_t
      - name: objid6[4]
        type: uint8_t
      - name: orig_volid1[8]
        type: uint8_t
      - name: orig_volid2[8]
        type: uint8_t
      - name: orig_objid1[8]
        type: uint8_t
      - name: orig_objid2[8]
        type: uint8_t
      - name: orig_domid1[8]
        type: uint8_t
      - name: orig_domid2[8]
        type: uint8_t
      item_type: struct
      name: ntfs_attr_objid
      pos:
        line_end: 491
        line_start: 477
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: revision
        type: uint8_t
      - name: pad
        type: uint8_t
      - name: control[2]
        type: uint8_t
      - name: owner[4]
        type: uint8_t
      - name: group[4]
        type: uint8_t
      - name: sacl[4]
        type: uint8_t
      - name: dacl[4]
        type: uint8_t
      item_type: struct
      name: ntfs_self_relative_security_descriptor
      pos:
        line_end: 524
        line_start: 500
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: '*buffer'
        type: char
      - name: size
        type: size_t
      - name: used
        type: size_t
      item_type: struct
      name: NTFS_SXX_BUFFER
      pos:
        line_end: 536
        line_start: 532
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: revision
        type: uint8_t
      - name: sub_auth_count
        type: uint8_t
      - name: ident_auth[6]
        type: uint8_t
      - name: sub_auth[1]
        type: uint32_t
      item_type: struct
      name: ntfs_sid
      pos:
        line_end: 549
        line_start: 544
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: hash_sec_desc[4]
        type: uint8_t
      - name: sec_id[4]
        type: uint8_t
      - name: file_off[8]
        type: uint8_t
      - name: ent_size[4]
        type: uint8_t
      - name: self_rel_sec_desc
        type: ntfs_self_relative_security_descriptor
      item_type: struct
      name: ntfs_attr_sds
      pos:
        line_end: 563
        line_start: 557
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: data_off[2]
        type: uint8_t
      - name: size[2]
        type: uint8_t
      - name: pad1[4]
        type: uint8_t
      - name: ent_size[2]
        type: uint8_t
      - name: key_size[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: pad2[2]
        type: uint8_t
      - name: key_hash_sec_desc[4]
        type: uint8_t
      - name: key_sec_id[4]
        type: uint8_t
      - name: data_hash_sec_desc[4]
        type: uint8_t
      - name: data_sec_id[4]
        type: uint8_t
      - name: sec_desc_off[8]
        type: uint8_t
      - name: sec_desc_size[4]
        type: uint8_t
      - name: pad3[4]
        type: uint8_t
      item_type: struct
      name: ntfs_attr_sdh
      pos:
        line_end: 586
        line_start: 571
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: data_off[2]
        type: uint8_t
      - name: size[2]
        type: uint8_t
      - name: pad1[4]
        type: uint8_t
      - name: ent_size[2]
        type: uint8_t
      - name: key_size[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: pad2[2]
        type: uint8_t
      - name: key_sec_id[4]
        type: uint8_t
      - name: data_hash_sec_desc[4]
        type: uint8_t
      - name: data_sec_id[4]
        type: uint8_t
      - name: sec_desc_off[8]
        type: uint8_t
      - name: sec_desc_size[4]
        type: uint8_t
      item_type: struct
      name: ntfs_attr_sii
      pos:
        line_end: 607
        line_start: 593
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: length[4]
        type: uint8_t
      - name: major_version[2]
        type: uint8_t
      - name: minor_version[2]
        type: uint8_t
      - name: file_ref[6]
        type: uint8_t
      - name: file_ref_seq[2]
        type: uint8_t
      - name: par_ref[6]
        type: uint8_t
      - name: par_ref_seq[2]
        type: uint8_t
      - name: usn[8]
        type: uint8_t
      - name: timestamp[8]
        type: uint8_t
      - name: reason[4]
        type: uint8_t
      - name: source_info[4]
        type: uint8_t
      - name: security_id[4]
        type: uint8_t
      - name: attributes[4]
        type: uint8_t
      - name: fname_length[2]
        type: uint8_t
      - name: fname_offset[2]
        type: uint8_t
      item_type: struct
      name: ntfs_usn_v2_rec
      pos:
        line_end: 634
        line_start: 617
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: refnum
        type: uint64_t
      - name: refnum_seq
        type: uint16_t
      - name: parent_refnum
        type: uint64_t
      - name: parent_refnum_seq
        type: uint16_t
      - name: usn
        type: uint64_t
      - name: time_sec
        type: uint32_t
      - name: time_nsec
        type: uint32_t
      - name: reason
        type: TSK_FS_USN_REASON
      - name: source_info
        type: TSK_FS_USN_SOURCE_INFO
      - name: security
        type: uint32_t
      - name: attributes
        type: TSK_FS_NTFS_FILE_ATTRIBUTES
      - name: '*fname'
        type: char
      item_type: struct
      name: TSK_USN_RECORD_V2
      pos:
        line_end: 708
        line_start: 694
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: '*fs_file'
        type: TSK_FS_FILE
      - name: usnj_inum
        type: TSK_INUM_T
      - name: bsize
        type: uint32_t
      item_type: struct
      name: NTFS_USNJINFO
      pos:
        line_end: 717
        line_start: 711
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: '*fs'
        type: ntfs_sb
      - name: ver
        type: uint8_t
      - name: '*mft_file'
        type: TSK_FS_FILE
      - name: '*mft_data'
        type: TSK_FS_ATTR
      - name: csize_b
        type: uint32_t
      - name: ssize_b
        type: uint16_t
      - name: mft_rsize_b
        type: uint32_t
      - name: idx_rsize_b
        type: uint32_t
      - name: root_mft_addr
        type: TSK_DADDR_T
      - name: loading_the_MFT
        type: uint8_t
      - name: '*bmap'
        type: TSK_FS_ATTR_RUN
      - name: lock
        type: tsk_lock_t
      - name: '*bmap_buf'
        type: char
      - name: bmap_buf_off
        type: TSK_DADDR_T
      - name: '*attrdef'
        type: ntfs_attrdef
      - name: attrdef_len
        type: size_t
      - name: orphan_map_lock
        type: tsk_lock_t
      - name: '*orphan_map'
        type: void
      - name: alloc_file_count
        type: int
      - name: '*usnjinfo'
        type: NTFS_USNJINFO
      item_type: struct
      name: NTFS_INFO
      pos:
        line_end: 762
        line_start: 722
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
    typedefs:
    - item_type: typedef
      name: TSK_FS_USN_REASON
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type: TSK_FS_USN_REASON
    - item_type: typedef
      name: TSK_FS_USN_SOURCE_INFO
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type: TSK_FS_USN_SOURCE_INFO
    - item_type: typedef
      name: TSK_FS_NTFS_FILE_ATTRIBUTES
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/sleuthkit/tsk/fs/tsk_ntfs.h
      type: TSK_FS_NTFS_FILE_ATTRIBUTES
    union: []
- function_names:
  - FFS_ATTR_CONT
  - FFS_DIRSIZ_lcl
  - cgbase_lcl
  - cgstart_lcl
  - cgtod_lcl
  - cgimin_lcl
  - cgdmin_lcl
  - cgsblock_lcl
  - blkstofrags_lcl
  - itod_lcl
  - itoo_lcl
  - itog_lcl
  - dtog_lcl
  - cg_inosused_lcl
  - cg_blksfree_lcl
  source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRI_FFSGRP
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: PRIu32
    - item_type: preproc_def
      name: FFS_FIRSTINO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: FFS_ROOTINO
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: FFS_NDADDR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FFS_NIADDR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: UFS1_SBOFF
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: UFS2_SBOFF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: UFS2_SBOFF2
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '262144'
    - item_type: preproc_def
      name: UFS1_FS_MAGIC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x011954'
    - item_type: preproc_def
      name: UFS2_FS_MAGIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x19540119'
    - item_type: preproc_def
      name: FFS_MAXNAMLEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: FFS_MAXPATHLEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: FFS_DIRBLKSIZ
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: FFS_FILE_CONTENT_LEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: ((FFS_NDADDR + FFS_NIADDR) * sizeof(TSK_DADDR_T))
    - item_type: preproc_def
      name: FFS_SB_FLAG_UNCLEAN
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FFS_SB_FLAG_SOFTDEP
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FFS_SB_FLAG_NEEDFSCK
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FFS_SB_FLAG_INDEXDIR
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FFS_SB_FLAG_ACL
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FFS_SB_FLAG_MULTILABEL
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FFS_SB_FLAG_UPDATED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FFS_SB_OPT_TIME
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFS_SB_OPT_SPACE
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFS_IN_FMT
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0170000        '
    - item_type: preproc_def
      name: FFS_IN_FIFO
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0010000        '
    - item_type: preproc_def
      name: FFS_IN_CHR
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0020000        '
    - item_type: preproc_def
      name: FFS_IN_DIR
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0040000        '
    - item_type: preproc_def
      name: FFS_IN_BLK
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0060000        '
    - item_type: preproc_def
      name: FFS_IN_REG
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0100000        '
    - item_type: preproc_def
      name: FFS_IN_LNK
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0120000        '
    - item_type: preproc_def
      name: FFS_IN_SHAD
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0130000        '
    - item_type: preproc_def
      name: FFS_IN_SOCK
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0140000        '
    - item_type: preproc_def
      name: FFS_IN_WHT
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0160000        '
    - item_type: preproc_def
      name: FFS_IN_ISUID
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0004000'
    - item_type: preproc_def
      name: FFS_IN_ISGID
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0002000'
    - item_type: preproc_def
      name: FFS_IN_ISVTX
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0001000'
    - item_type: preproc_def
      name: FFS_IN_IRUSR
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000400'
    - item_type: preproc_def
      name: FFS_IN_IWUSR
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000200'
    - item_type: preproc_def
      name: FFS_IN_IXUSR
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000100'
    - item_type: preproc_def
      name: FFS_IN_IRGRP
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000040'
    - item_type: preproc_def
      name: FFS_IN_IWGRP
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000020'
    - item_type: preproc_def
      name: FFS_IN_IXGRP
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000010'
    - item_type: preproc_def
      name: FFS_IN_IROTH
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000004'
    - item_type: preproc_def
      name: FFS_IN_IWOTH
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000002'
    - item_type: preproc_def
      name: FFS_IN_IXOTH
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0000001'
    - item_type: preproc_def
      name: FFS_DT_UNKNOWN
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFS_DT_FIFO
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFS_DT_CHR
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FFS_DT_DIR
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FFS_DT_BLK
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: FFS_DT_REG
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FFS_DT_LNK
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FFS_DT_SOCK
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FFS_DT_WHT
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type_or_value: '14'
    structs:
    - fields:
      - name: dir_num[4]
        type: uint8_t
      - name: blk_free[4]
        type: uint8_t
      - name: ino_free[4]
        type: uint8_t
      - name: frag_free[4]
        type: uint8_t
      item_type: struct
      name: ffs_csum1
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: dir_num[8]
        type: uint8_t
      - name: blk_free[8]
        type: uint8_t
      - name: ino_free[8]
        type: uint8_t
      - name: frag_free[8]
        type: uint8_t
      - name: clust_free[8]
        type: uint8_t
      - name: f1[24]
        type: uint8_t
      item_type: struct
      name: ffs_csum2
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: f1[8]
        type: uint8_t
      - name: sb_off[4]
        type: uint8_t
      - name: gd_off[4]
        type: uint8_t
      - name: ino_off[4]
        type: uint8_t
      - name: dat_off[4]
        type: uint8_t
      - name: cg_delta[4]
        type: uint8_t
      - name: cg_cyc_mask[4]
        type: uint8_t
      - name: wtime[4]
        type: uint8_t
      - name: frag_num[4]
        type: uint8_t
      - name: data_frag_num[4]
        type: uint8_t
      - name: cg_num[4]
        type: uint8_t
      - name: bsize_b[4]
        type: uint8_t
      - name: fsize_b[4]
        type: uint8_t
      - name: bsize_frag[4]
        type: uint8_t
      - name: f5[36]
        type: uint8_t
      - name: fs_fragshift[4]
        type: uint8_t
      - name: f6[20]
        type: uint8_t
      - name: fs_inopb[4]
        type: uint8_t
      - name: f7[20]
        type: uint8_t
      - name: fs_id[8]
        type: uint8_t
      - name: cg_saddr[4]
        type: uint8_t
      - name: cg_ssize_b[4]
        type: uint8_t
      - name: fs_cgsize[4]
        type: uint8_t
      - name: f7c[12]
        type: uint8_t
      - name: fs_ncyl[4]
        type: uint8_t
      - name: fs_cpg[4]
        type: uint8_t
      - name: cg_inode_num[4]
        type: uint8_t
      - name: cg_frag_num[4]
        type: uint8_t
      - name: cstotal
        type: ffs_csum1
      - name: fs_fmod
        type: uint8_t
      - name: fs_clean
        type: uint8_t
      - name: fs_ronly
        type: uint8_t
      - name: fs_flags
        type: uint8_t
      - name: last_mnt[512]
        type: uint8_t
      - name: f8[648]
        type: uint8_t
      - name: magic[4]
        type: uint8_t
      - name: f9[160]
        type: uint8_t
      item_type: struct
      name: ffs_sb1
      pos:
        line_end: 117
        line_start: 72
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: f0[8]
        type: uint8_t
      - name: sb_off[4]
        type: uint8_t
      - name: gd_off[4]
        type: uint8_t
      - name: ino_off[4]
        type: uint8_t
      - name: dat_off[4]
        type: uint8_t
      - name: f1[20]
        type: uint8_t
      - name: cg_num[4]
        type: uint8_t
      - name: bsize_b[4]
        type: uint8_t
      - name: fsize_b[4]
        type: uint8_t
      - name: bsize_frag[4]
        type: uint8_t
      - name: f2[36]
        type: uint8_t
      - name: fs_fragshift[4]
        type: uint8_t
      - name: f3[20]
        type: uint8_t
      - name: fs_inopb[4]
        type: uint8_t
      - name: f4[32]
        type: uint8_t
      - name: cg_ssize_b[4]
        type: uint8_t
      - name: fs_cgsize[4]
        type: uint8_t
      - name: f5[20]
        type: uint8_t
      - name: cg_inode_num[4]
        type: uint8_t
      - name: cg_frag_num[4]
        type: uint8_t
      - name: f6[16]
        type: uint8_t
      - name: fs_fmod
        type: uint8_t
      - name: fs_clean
        type: uint8_t
      - name: fs_ronly
        type: uint8_t
      - name: f7
        type: uint8_t
      - name: last_mnt[468]
        type: uint8_t
      - name: volname[32]
        type: uint8_t
      - name: swuid[8]
        type: uint8_t
      - name: f8[288]
        type: uint8_t
      - name: cstotal
        type: ffs_csum2
      - name: wtime[8]
        type: uint8_t
      - name: frag_num[8]
        type: uint8_t
      - name: blk_num[8]
        type: uint8_t
      - name: cg_saddr[8]
        type: uint8_t
      - name: f9[208]
        type: uint8_t
      - name: fs_flags[4]
        type: uint8_t
      - name: f10[56]
        type: uint8_t
      - name: magic[4]
        type: uint8_t
      - name: f11[160]
        type: uint8_t
      item_type: struct
      name: ffs_sb2
      pos:
        line_end: 169
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: f1[4]
        type: uint8_t
      - name: magic[4]
        type: uint8_t
      - name: wtime[4]
        type: uint8_t
      - name: cg_cgx[4]
        type: uint8_t
      - name: cyl_num[2]
        type: uint8_t
      - name: ino_num[2]
        type: uint8_t
      - name: frag_num[4]
        type: uint8_t
      - name: cs
        type: ffs_csum1
      - name: last_alloc_blk[4]
        type: uint8_t
      - name: last_alloc_frag[4]
        type: uint8_t
      - name: last_alloc_ino[4]
        type: uint8_t
      - name: avail_frag[8][4]
        type: uint8_t
      - name: f2b[8]
        type: uint8_t
      - name: cg_iusedoff[4]
        type: uint8_t
      - name: cg_freeoff[4]
        type: uint8_t
      - name: f3[72]
        type: uint8_t
      item_type: struct
      name: ffs_cgd
      pos:
        line_end: 210
        line_start: 193
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: f1[4]
        type: uint8_t
      - name: magic[4]
        type: uint8_t
      - name: f2[4]
        type: uint8_t
      - name: cg_cgx[4]
        type: uint8_t
      - name: f2a[4]
        type: uint8_t
      - name: frag_num[4]
        type: uint8_t
      - name: cs
        type: ffs_csum1
      - name: last_alloc_blk[4]
        type: uint8_t
      - name: last_alloc_frag[4]
        type: uint8_t
      - name: last_alloc_ino[4]
        type: uint8_t
      - name: avail_frag[8][4]
        type: uint8_t
      - name: f2b[8]
        type: uint8_t
      - name: cg_iusedoff[4]
        type: uint8_t
      - name: cg_freeoff[4]
        type: uint8_t
      - name: cg_nextfreeoff[4]
        type: uint8_t
      - name: cg_clustersumoff[4]
        type: uint8_t
      - name: cg_clusteroff[4]
        type: uint8_t
      - name: cg_nclustersblks[4]
        type: uint8_t
      - name: cg_niblk[4]
        type: uint8_t
      - name: cg_initediblk[4]
        type: uint8_t
      - name: f3a[12]
        type: uint8_t
      - name: wtime[8]
        type: uint8_t
      - name: f3[24]
        type: uint8_t
      item_type: struct
      name: ffs_cgd2
      pos:
        line_end: 237
        line_start: 212
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: di_mode[2]
        type: uint8_t
      - name: di_nlink[2]
        type: uint8_t
      - name: f1[4]
        type: uint8_t
      - name: di_size[8]
        type: uint8_t
      - name: di_atime[4]
        type: uint8_t
      - name: di_atimensec[4]
        type: uint8_t
      - name: di_mtime[4]
        type: uint8_t
      - name: di_mtimensec[4]
        type: uint8_t
      - name: di_ctime[4]
        type: uint8_t
      - name: di_ctimensec[4]
        type: uint8_t
      - name: di_db[12][4]
        type: uint8_t
      - name: di_ib[3][4]
        type: uint8_t
      - name: f5[8]
        type: uint8_t
      - name: gen[4]
        type: uint8_t
      - name: di_uid[4]
        type: uint8_t
      - name: di_gid[4]
        type: uint8_t
      - name: f6[8]
        type: uint8_t
      item_type: struct
      name: ffs_inode1
      pos:
        line_end: 263
        line_start: 245
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: di_mode[2]
        type: uint8_t
      - name: di_nlink[2]
        type: uint8_t
      - name: f1[4]
        type: uint8_t
      - name: di_size[8]
        type: uint8_t
      - name: di_atime[4]
        type: uint8_t
      - name: f2[4]
        type: uint8_t
      - name: di_mtime[4]
        type: uint8_t
      - name: f3[4]
        type: uint8_t
      - name: di_ctime[4]
        type: uint8_t
      - name: f4[4]
        type: uint8_t
      - name: di_db[12][4]
        type: uint8_t
      - name: di_ib[3][4]
        type: uint8_t
      - name: f5[16]
        type: uint8_t
      - name: di_uid[4]
        type: uint8_t
      - name: di_gid[4]
        type: uint8_t
      - name: f6[4]
        type: uint8_t
      item_type: struct
      name: ffs_inode1b
      pos:
        line_end: 283
        line_start: 266
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: di_mode[2]
        type: uint8_t
      - name: di_nlink[2]
        type: uint8_t
      - name: di_uid[4]
        type: uint8_t
      - name: di_gid[4]
        type: uint8_t
      - name: di_blksize[4]
        type: uint8_t
      - name: di_size[8]
        type: uint8_t
      - name: di_blocks[8]
        type: uint8_t
      - name: di_atime[8]
        type: uint8_t
      - name: di_mtime[8]
        type: uint8_t
      - name: di_ctime[8]
        type: uint8_t
      - name: di_crtime[8]
        type: uint8_t
      - name: di_mtimensec[4]
        type: uint8_t
      - name: di_atimensec[4]
        type: uint8_t
      - name: di_ctimensec[4]
        type: uint8_t
      - name: di_crtimensec[4]
        type: uint8_t
      - name: di_gen[4]
        type: uint8_t
      - name: di_kflags[4]
        type: uint8_t
      - name: di_flags[4]
        type: uint8_t
      - name: di_extsize[4]
        type: uint8_t
      - name: di_extb[2][8]
        type: uint8_t
      - name: di_db[12][8]
        type: uint8_t
      - name: di_ib[3][8]
        type: uint8_t
      - name: f2[24]
        type: uint8_t
      item_type: struct
      name: ffs_inode2
      pos:
        line_end: 309
        line_start: 285
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: in
        type: "union {\n            ffs_inode1 in1;\n            ffs_inode1b in1b;\n
          \           ffs_inode2 in2;\n        }"
      item_type: struct
      name: ffs_inode
      pos:
        line_end: 317
        line_start: 311
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: reclen[4]
        type: uint8_t
      - name: nspace
        type: uint8_t
      - name: contpad
        type: uint8_t
      - name: nlen
        type: uint8_t
      - name: name[1]
        type: uint8_t
      item_type: struct
      name: ffs_extattr
      pos:
        line_end: 351
        line_start: 344
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: d_ino[4]
        type: uint8_t
      - name: d_reclen[2]
        type: uint8_t
      - name: d_type
        type: uint8_t
      - name: d_namlen
        type: uint8_t
      - name: d_name[256]
        type: char
      item_type: struct
      name: ffs_dentry1
      pos:
        line_end: 367
        line_start: 361
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: d_ino[4]
        type: uint8_t
      - name: d_reclen[2]
        type: uint8_t
      - name: d_namlen[2]
        type: uint8_t
      - name: d_name[256]
        type: char
      item_type: struct
      name: ffs_dentry2
      pos:
        line_end: 386
        line_start: 381
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: fs
        type: "union {\n            ffs_sb1 *sb1;       /* super block buffer */\n
          \           ffs_sb2 *sb2;       /* super block buffer */\n        }"
      - name: lock
        type: tsk_lock_t
      - name: '*itbl_buf'
        type: char
      - name: itbl_addr
        type: TSK_DADDR_T
      - name: '*grp_buf'
        type: char
      - name: grp_num
        type: FFS_GRPNUM_T
      - name: grp_addr
        type: TSK_DADDR_T
      - name: groups_count
        type: FFS_GRPNUM_T
      - name: ffsbsize_f
        type: unsigned int
      - name: ffsbsize_b
        type: unsigned int
      item_type: struct
      name: FFS_INFO
      pos:
        line_end: 497
        line_start: 476
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
    typedefs:
    - item_type: typedef
      name: FFS_GRPNUM_T
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/sleuthkit/tsk/fs/tsk_ffs.h
      type: uint32_t
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
  types:
    enum:
    - enumerators:
      - name: EXFATFS_DIR_ENTRY_TYPE_NONE
        value: '0x00'
      - name: EXFATFS_DIR_ENTRY_TYPE_VOLUME_LABEL
        value: '0x03'
      - name: EXFATFS_DIR_ENTRY_TYPE_UPCASE_TABLE
        value: '0x02'
      - name: EXFATFS_DIR_ENTRY_TYPE_ALLOC_BITMAP
        value: '0x01'
      - name: EXFATFS_DIR_ENTRY_TYPE_VOLUME_GUID
        value: '0x20'
      - name: EXFATFS_DIR_ENTRY_TYPE_TEXFAT
        value: '0x21'
      - name: EXFATFS_DIR_ENTRY_TYPE_ACT
        value: '0x62'
      - name: EXFATFS_DIR_ENTRY_TYPE_FILE
        value: '0x05'
      - name: EXFATFS_DIR_ENTRY_TYPE_FILE_STREAM
        value: '0x40'
      - name: EXFATFS_DIR_ENTRY_TYPE_FILE_NAME
        value: '0x41'
      item_type: enum
      name: EXFATFS_DIR_ENTRY_TYPE_ENUM
      pos:
        line_end: 185
        line_start: 174
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    preproc_defs:
    - item_type: preproc_def
      name: EXFATFS_FIRST_CLUSTER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXFATFS_MAX_VOLUME_LABEL_LEN_CHAR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '15'
    - item_type: preproc_def
      name: EXFATFS_MAX_VOLUME_LABEL_LEN_BYTE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '30'
    - item_type: preproc_def
      name: EXFATFS_MIN_FILE_SECONDARY_DENTRIES_COUNT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: EXFATFS_MAX_FILE_SECONDARY_DENTRIES_COUNT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '18'
    - item_type: preproc_def
      name: EXFATFS_MAX_FILE_NAME_SEGMENT_LENGTH_UTF16_CHARS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '15'
    - item_type: preproc_def
      name: EXFATFS_MAX_FILE_NAME_SEGMENT_LENGTH_UTF16_BYTES
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '30'
    - item_type: preproc_def
      name: EXFATFS_MAX_FILE_NAME_LENGTH_UTF16_CHARS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EXFATFS_INVALID_FAT_CHAIN_MASK
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EXFATFS_EMPTY_VOLUME_LABEL_DENTRY_NAME
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$EMPTY_VOLUME_LABEL"   '
    - item_type: preproc_def
      name: EXFATFS_VOLUME_GUID_DENTRY_NAME
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$VOLUME_GUID"   '
    - item_type: preproc_def
      name: EXFATFS_ALLOC_BITMAP_DENTRY_NAME
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$ALLOC_BITMAP"   '
    - item_type: preproc_def
      name: EXFATFS_UPCASE_TABLE_DENTRY_NAME
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$UPCASE_TABLE"   '
    - item_type: preproc_def
      name: EXFATFS_TEX_FAT_DENTRY_NAME
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$TEX_FAT"   '
    - item_type: preproc_def
      name: EXFATFS_ACT_DENTRY_NAME
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type_or_value: '"$ACCESS_CONTROL_TABLE"   '
    structs:
    - fields:
      - name: jump_to_boot_code[3]
        type: uint8_t
      - name: fs_name[8]
        type: uint8_t
      - name: must_be_zeros[53]
        type: uint8_t
      - name: partition_offset[8]
        type: uint8_t
      - name: vol_len_in_sectors[8]
        type: uint8_t
      - name: fat_offset[4]
        type: uint8_t
      - name: fat_len_in_sectors[4]
        type: uint8_t
      - name: cluster_heap_offset[4]
        type: uint8_t
      - name: cluster_cnt[4]
        type: uint8_t
      - name: root_dir_cluster[4]
        type: uint8_t
      - name: vol_serial_no[4]
        type: uint8_t
      - name: fs_revision[2]
        type: uint8_t
      - name: vol_flags[2]
        type: uint8_t
      - name: bytes_per_sector
        type: uint8_t
      - name: sectors_per_cluster
        type: uint8_t
      - name: num_fats
        type: uint8_t
      - name: drive_select
        type: uint8_t
      - name: percent_of_cluster_heap_in_use
        type: uint8_t
      - name: reserved[7]
        type: uint8_t
      - name: boot_code[390]
        type: uint8_t
      - name: signature[2]
        type: uint8_t
      item_type: struct
      name: EXFATFS_MASTER_BOOT_REC
      pos:
        line_end: 162
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: volume_label_length_chars
        type: uint8_t
      - name: volume_label[EXFATFS_MAX_VOLUME_LABEL_LEN_BYTE]
        type: uint8_t
      item_type: struct
      name: EXFATFS_VOL_LABEL_DIR_ENTRY
      pos:
        line_end: 196
        line_start: 192
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: secondary_entries_count
        type: uint8_t
      - name: check_sum[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: volume_guid[16]
        type: uint8_t
      - name: reserved[10]
        type: uint8_t
      item_type: struct
      name: EXFATFS_VOL_GUID_DIR_ENTRY
      pos:
        line_end: 209
        line_start: 202
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: reserved[18]
        type: uint8_t
      - name: first_cluster_of_bitmap[4]
        type: uint8_t
      - name: length_of_alloc_bitmap_in_bytes[8]
        type: uint8_t
      item_type: struct
      name: EXFATFS_ALLOC_BITMAP_DIR_ENTRY
      pos:
        line_end: 224
        line_start: 218
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: reserved1[3]
        type: uint8_t
      - name: table_check_sum[4]
        type: uint8_t
      - name: reserved2[12]
        type: uint8_t
      - name: first_cluster_of_table[4]
        type: uint8_t
      - name: table_length_in_bytes[8]
        type: uint8_t
      item_type: struct
      name: EXFATFS_UPCASE_TABLE_DIR_ENTRY
      pos:
        line_end: 238
        line_start: 231
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: reserved[31]
        type: uint8_t
      item_type: struct
      name: EXFATFS_TEXFAT_DIR_ENTRY
      pos:
        line_end: 247
        line_start: 244
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: reserved[31]
        type: uint8_t
      item_type: struct
      name: EXFATFS_ACCESS_CTRL_TABLE_DIR_ENTRY
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: secondary_entries_count
        type: uint8_t
      - name: check_sum[2]
        type: uint8_t
      - name: attrs[2]
        type: uint8_t
      - name: reserved1[2]
        type: uint8_t
      - name: created_time[2]
        type: uint8_t
      - name: created_date[2]
        type: uint8_t
      - name: modified_time[2]
        type: uint8_t
      - name: modified_date[2]
        type: uint8_t
      - name: accessed_time[2]
        type: uint8_t
      - name: accessed_date[2]
        type: uint8_t
      - name: created_time_tenths_of_sec
        type: uint8_t
      - name: modified_time_tenths_of_sec
        type: uint8_t
      - name: created_time_time_zone_offset
        type: uint8_t
      - name: modified_time_time_zone_offset
        type: uint8_t
      - name: accessed_time_time_zone_offset
        type: uint8_t
      - name: reserved2[7]
        type: uint8_t
      item_type: struct
      name: EXFATFS_FILE_DIR_ENTRY
      pos:
        line_end: 283
        line_start: 265
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: reserved1
        type: uint8_t
      - name: file_name_length_UTF16_chars
        type: uint8_t
      - name: file_name_hash[2]
        type: uint8_t
      - name: reserved2[2]
        type: uint8_t
      - name: valid_data_length[8]
        type: uint8_t
      - name: reserved3[4]
        type: uint8_t
      - name: first_cluster_addr[4]
        type: uint8_t
      - name: data_length[8]
        type: uint8_t
      item_type: struct
      name: EXFATFS_FILE_STREAM_DIR_ENTRY
      pos:
        line_end: 303
        line_start: 292
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    - fields:
      - name: entry_type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: utf16_name_chars[30]
        type: uint8_t
      item_type: struct
      name: EXFATFS_FILE_NAME_DIR_ENTRY
      pos:
        line_end: 317
        line_start: 313
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
    typedefs:
    - item_type: typedef
      name: EXFATFS_DIR_ENTRY_TYPE
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type: uint8_t
    - item_type: typedef
      name: EXFATFS_DIR_ENTRY_TYPE_ENUM
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/sleuthkit/tsk/fs/tsk_exfatfs.h
      type: EXFATFS_DIR_ENTRY_TYPE_ENUM
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
  types:
    enum:
    - enumerators:
      - name: LOGICALFS_LOAD_ALL
        value: '0'
      - name: LOGICALFS_LOAD_FILES_ONLY
        value: '2'
      - name: LOGICALFS_LOAD_DIRS_ONLY
        value: '1'
      item_type: enum
      name: LOGICALFS_DIR_LOADING_MODE
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
    preproc_defs:
    - item_type: preproc_def
      name: LOGICAL_INUM_DIR_MASK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '0xffffffff00000000'
    - item_type: preproc_def
      name: LOGICAL_INUM_FILE_MASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '0x00000000ffffffff'
    - item_type: preproc_def
      name: LOGICAL_ROOT_INUM
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '0x100000000'
    - item_type: preproc_def
      name: LOGICAL_INUM_DIR_INC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '0x100000000'
    - item_type: preproc_def
      name: LOGICAL_BLOCK_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: TSK_IMG_INFO_CACHE_LEN
    - item_type: preproc_def
      name: LOGICAL_MAX_PATH_UNICODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '32767'
    - item_type: preproc_def
      name: LOGICAL_INUM_DIR_MAX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
      type_or_value: '0xffffffff00000000'
    structs:
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: '* base_path'
        type: TSK_TCHAR
      item_type: struct
      name: LOGICALFS_INFO
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
    - fields:
      - name: search_type
        type: LOGICALFS_SEARCH_TYPE
      - name: '* target_path'
        type: TSK_TCHAR
      - name: target_inum
        type: TSK_INUM_T
      - name: target_found
        type: int
      - name: '* found_path'
        type: TSK_TCHAR
      - name: found_inum
        type: TSK_INUM_T
      item_type: struct
      name: LOGICALFS_SEARCH_HELPER
      pos:
        line_end: 51
        line_start: 44
        source_file: /src/sleuthkit/tsk/fs/tsk_logical_fs.h
    typedefs: []
    union: []
- function_names:
  - __builtin_expect
  - load2
  - load4
  - load8
  - store4
  - store8
  - extract
  - PTR_LEN_INC
  - lzvn_decode
  - lzvn_decode_buffer
  source_file: /src/sleuthkit/tsk/fs/lzvn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LZFSE_INLINE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: LZFSE_INLINE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type_or_value: static inline __attribute__((__always_inline__))
    - item_type: preproc_def
      name: HAVE_LABELS_AS_VALUES
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LABELS_AS_VALUES
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type_or_value: '0'
    - item_type: preproc_def
      name: UPDATE_GOOD
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type_or_value: (state->src = src_ptr, state->dst = dst_ptr, state->d_prev =
        D)
    structs:
    - fields:
      - name: '*src'
        type: unsigned char
      - name: '*src_end'
        type: unsigned char
      - name: '*dst'
        type: unsigned char
      - name: '*dst_begin'
        type: unsigned char
      - name: '*dst_end'
        type: unsigned char
      - name: '*dst_current'
        type: unsigned char
      - name: L
        type: size_t
      - name: d_prev
        type: lzvn_offset
      - name: end_of_stream
        type: int
      item_type: struct
      name: lzvn_decoder_state
      pos:
        line_end: 78
        line_start: 48
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
    typedefs:
    - item_type: typedef
      name: lzvn_offset
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type: int64_t
    - item_type: typedef
      name: lzvn_offset
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/tsk/fs/lzvn.c
      type: int32_t
    union: []
- function_names:
  - bit_is_set
  - bitfield_value
  - operator bool() const noexcept
  - get
  - APFSObject::obj
  - APFSObject::obj_type
  - APFSObject::obj_type_and_flags
  - APFSObject::oid
  - APFSObject::xid
  - APFSObject::subtype
  - APFSOmap::omap
  - APFSOmap::snapshot_count
  - APFSOmap::tree_type
  - APFSOmap::root_block
  - APFSOmap::root
  - APFSBtreeNodeIterator::own_node
  - APFSBtreeNodeIterator::own_node
  - APFSBtreeNodeIterator::init_value
  - APFSBtreeNodeIterator::init_value
  - APFSBtreeNodeIterator::APFSBtreeNodeIterator
  - ~APFSBtreeNodeIterator()
  - APFSBtreeNodeIterator::APFSBtreeNodeIterator
  - '&operator=(const APFSBtreeNodeIterator &rhs) noexcept'
  - APFSBtreeNodeIterator::APFSBtreeNodeIterator
  - '&operator=(APFSBtreeNodeIterator &&rhs) noexcept'
  - APFSBtreeNodeIterator::is_valid
  - operator*() const noexcept
  - operator->() const noexcept
  - '&operator++()'
  - operator++(int)
  - operator==(const APFSBtreeNodeIterator &rhs) const noexcept
  - operator!=(const APFSBtreeNodeIterator &rhs) const noexcept
  - APFSBtreeNode::bn
  - APFSBtreeNode::toffset
  - APFSBtreeNode::koffset
  - APFSBtreeNode::voffset
  - APFSBtreeNode::key
  - APFSBtreeNode::key
  - APFSBtreeNode::contains_key
  - APFSBtreeNode::APFSBtreeNode
  - APFSBtreeNode::is_root
  - APFSBtreeNode::is_leaf
  - APFSBtreeNode::has_fixed_kv_size
  - APFSBtreeNode::level
  - APFSBtreeNode::key_count
  - APFSBtreeNode::entries
  - APFSBtreeNode::info
  - APFSBtreeNode::begin
  - APFSBtreeNode::end
  - APFSBtreeNode::find
  - APFSObjectBtreeNode::snapshot
  - APFSJObjBtreeNode::APFSJObjBtreeNode
  - APFSJObjBtreeNode::is_leaf
  - APFSJObjBtreeNode::begin
  - APFSJObjBtreeNode::end
  - APFSJObjBtreeNode::find
  - APFSJObjBtreeNode::find_range
  - APFSSpacemanCIB::cib
  - APFSSpacemanCAB::cab
  - APFSSpacemanCAB::index
  - APFSSpacemanCAB::cib_count
  - APFSSpaceman::sm
  - APFSSpaceman::entries
  - APFSSpaceman::num_free_blocks
  - APFSBitmapBlock::done
  - APFSBitmapBlock::reset
  - APFSBitmapBlock::cache_next
  - APFSBitmapBlock::toggle_mode
  - APFSKeybag::kb
  - APFSSuperblock::sb
  - APFSSuperblock::omap
  - APFSSuperblock::block_size
  - APFSSuperblock::num_blocks
  - APFSSuperblock::num_free_blocks
  - APFSSuperblock::uuid
  - APFSSuperblock::unallocated_ranges
  - APFSCheckpointMap::map
  - kind
  - block_count
  - owner_oid
  - ref_count
  - start_block
  - APFSFileSystem::hw_crypt
  - APFSFileSystem::cs
  - APFSFileSystem::unk16
  - APFSFileSystem::hw_crypt
  - APFSFileSystem::cs
  - APFSFileSystem::fs
  - APFSFileSystem::rdo
  - APFSFileSystem::uuid
  - APFSFileSystem::name
  - APFSFileSystem::formatted_by
  - '&password_hint() const noexcept'
  - '&crypto_info() const noexcept'
  - APFSFileSystem::decryption_key
  - APFSFileSystem::role
  - APFSFileSystem::reserved
  - APFSFileSystem::quota
  - APFSFileSystem::used
  - APFSFileSystem::reserved_blocks
  - APFSFileSystem::quota_blocks
  - APFSFileSystem::alloc_blocks
  - APFSFileSystem::last_inum
  - APFSFileSystem::encrypted
  - APFSFileSystem::case_sensitive
  - APFSFileSystem::created
  - APFSFileSystem::changed
  - APFSFileSystem::extent_ref_tree
  - APFSFileSystem::snap_meta_tree
  - oid
  - type
  - APFSBtreeNodeIterator<APFSJObjBtreeNode>::own_node
  - APFSBtreeNodeIterator<APFSJObjBtreeNode>::init_value<void>(int recursion_depth)
  - APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
  - APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
  - APFSBtreeNodeIterator<Node>::APFSBtreeNodeIterator
  source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
  types:
    enum:
    - enumerators:
      - name: unset
      - name: set
      item_type: enum
      name: mode
      pos:
        line_end: 793
        line_start: 790
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    preproc_defs: []
    structs:
    - fields:
      - name: ptr
        type: std::unique_ptr<uint8_t[]>
      - name: size
        type: size_t
      item_type: struct
      name: APFS_sized_key_data
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields: []
      item_type: struct
      name: node_tag
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields: []
      item_type: struct
      name: APFSPhysicalExtentRef
      pos:
        line_end: 967
        line_start: 953
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields: []
      item_type: struct
      name: APFSPhysicalExtentKey
      pos:
        line_end: 977
        line_start: 971
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields:
      - name: uuid
        type: TSKGuid
      - name: data[0x28]
        type: uint8_t
      - name: iterations
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: salt[0x10]
        type: uint8_t
      item_type: struct
      name: wrapped_kek
      pos:
        line_end: 1022
        line_start: 1005
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields:
      - name: recs_block_num
        type: apfs_block_num
      - name: password_hint
        type: std::string
      - name: password
        type: std::string
      - name: wrapped_keks
        type: std::vector<wrapped_kek>
      - name: vek_flags
        type: uint64_t
      - name: wrapped_vek[0x28]
        type: uint8_t
      - name: vek_uuid[0x10]
        type: uint8_t
      - name: vek[0x20]
        type: uint8_t
      - name: unlocked
        type: bool
      item_type: struct
      name: crypto_info_t
      pos:
        line_end: 1049
        line_start: 1024
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    - fields:
      - name: oid_and_type
        type: uint64_t
      item_type: struct
      name: APFSJObjKey
      pos:
        line_end: 1163
        line_start: 1153
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.hpp
    typedefs: []
    union: []
- function_names:
  - ifind_par_act
  - tsk_fs_ifind_par
  - tsk_fs_path2inum
  - tsk_fs_ifind_path
  - ifind_data_file_act
  - ifind_data_act
  - tsk_fs_ifind_data
  source_file: /src/sleuthkit/tsk/fs/ifind_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parinode
        type: TSK_INUM_T
      - name: flags
        type: TSK_FS_IFIND_FLAG_ENUM
      - name: found
        type: uint8_t
      item_type: struct
      name: IFIND_PAR_DATA
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/sleuthkit/tsk/fs/ifind_lib.c
    - fields:
      - name: block
        type: TSK_DADDR_T
      - name: flags
        type: TSK_FS_IFIND_FLAG_ENUM
      - name: found
        type: uint8_t
      - name: curinode
        type: TSK_INUM_T
      - name: curtype
        type: uint32_t
      - name: curid
        type: uint16_t
      item_type: struct
      name: IFIND_DATA_DATA
      pos:
        line_end: 490
        line_start: 482
        source_file: /src/sleuthkit/tsk/fs/ifind_lib.c
    typedefs: []
    union: []
- function_names:
  - ffs_group_load
  - ffs_dinode_load
  - ffsmode2tsktype
  - ffsmode2tskmode
  - ffs_dinode_copy
  - ffs_inode_lookup
  - ffs_inode_walk
  - ffs_block_getflags
  - ffs_block_walk
  - ffs_fscheck
  - ffs_fsstat
  - print_addr_act
  - ffs_istat
  - ffs_jopen
  - ffs_jentry_walk
  - ffs_jblk_walk
  - ffs_close
  - ffs_open
  source_file: /src/sleuthkit/tsk/fs/ffs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      item_type: struct
      name: FFS_PRINT_ADDR
      pos:
        line_end: 1639
        line_start: 1636
        source_file: /src/sleuthkit/tsk/fs/ffs.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_block_cpp_c_cb
  - tsk_fs_file_cpp_c_cb
  - tsk_fs_jblk_cpp_c_cb
  - tsk_fs_jentry_cpp_c_cb
  - tsk_fs_meta_walk_cpp_c_cb
  - tsk_fs_dir_walk_cpp_c_cb
  - tsk_vs_part_walk_cpp_c_cb
  source_file: /src/sleuthkit/tsk/fs/walk_cpp.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_fs_type_toid_utf8
  - tsk_fs_type_toid
  - tsk_fs_type_print
  - tsk_fs_type_toname
  - tsk_fs_type_supported
  source_file: /src/sleuthkit/tsk/fs/fs_types.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: code
        type: TSK_FS_TYPE_ENUM
      - name: '*comment'
        type: char
      item_type: struct
      name: FS_TYPES
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/sleuthkit/tsk/fs/fs_types.c
    typedefs: []
    union: []
- function_names:
  - print_date
  - print_usn_reason
  - print_usn_source_info
  - print_usn_attributes
  - print_v2_record
  - print_v2_record_long
  - print_v2_record_mac
  - print_usnjent_act
  - tsk_fs_usnjls
  source_file: /src/sleuthkit/tsk/fs/usnjls_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_fs_meta_alloc
  - tsk_fs_meta_realloc
  - tsk_fs_meta_close
  - tsk_fs_meta_reset
  - tsk_fs_meta_walk
  source_file: /src/sleuthkit/tsk/fs/fs_inode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - to_pool
  - fs_info_to_pool
  - to_pool_vol_block
  - to_fs
  - unsupported_function
  - xattribute_type
  - to_name_type
  - to_meta_type
  - to_string
  - attr_type_name
  - APFSFSCompat::APFSFSCompat
  - APFSFSCompat::fsstat
  - tsk_apfs_fsstat
  - APFSFSCompat::dir_open_meta
  - APFSFSCompat::inode_walk
  - APFSFSCompat::file_add_meta
  - APFSFSCompat::load_attrs
  - print_addr_act
  - APFSFSCompat::istat
  - tsk_apfs_istat
  - APFSFSCompat::block_getflags
  - APFSFSCompat::block_walk
  - APFSFSCompat::decrypt_block
  - APFSFSCompat::name_cmp
  - tsk_apfs_list_snapshots
  - tsk_apfs_free_snapshot_list
  - tsk_apfs_set_snapshot
  - APFSFSCompat::date_added_cache::populate(uint64_t pid) noexcept
  - "APFSFSCompat::date_added_cache::lookup(uint64_t parent_id,\n                                                uint64_t
    inode_num) noexcept"
  source_file: /src/sleuthkit/tsk/fs/apfs_compat.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APFS_PRINT_WIDTH
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/sleuthkit/tsk/fs/apfs_compat.cpp
      type_or_value: '8'
    structs:
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      item_type: struct
      name: APFS_PRINT_ADDR
      pos:
        line_end: 1099
        line_start: 1096
        source_file: /src/sleuthkit/tsk/fs/apfs_compat.cpp
    typedefs: []
    union: []
- function_names:
  - tsk_fs_open_vol
  - tsk_fs_open_vol_decrypt
  - tsk_fs_open_img
  - tsk_fs_open_img_decrypt
  - tsk_fs_close
  - tsk_fs_malloc
  - tsk_fs_free
  source_file: /src/sleuthkit/tsk/fs/fs_open.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: "* (*open)(TSK_IMG_INFO*, TSK_OFF_T,\n                                 TSK_FS_TYPE_ENUM,
          const char*, uint8_t)"
        type: TSK_FS_INFO
      - name: type
        type: TSK_FS_TYPE_ENUM
      item_type: struct
      name: "FS_OPENERS[] = {\n        { \"NTFS\",     ntfs_open,    TSK_FS_TYPE_NTFS_DETECT
        \   },\n        { \"FAT\",      fatfs_open,   TSK_FS_TYPE_FAT_DETECT     },\n
        \       { \"EXT2/3/4\", ext2fs_open,  TSK_FS_TYPE_EXT_DETECT     },\n        {
        \"UFS\",      ffs_open,     TSK_FS_TYPE_FFS_DETECT     },\n        { \"YAFFS2\",
        \  yaffs2_open,  TSK_FS_TYPE_YAFFS2_DETECT  },\n#if TSK_USE_HFS\n        {
        \"HFS\",      hfs_open,     TSK_FS_TYPE_HFS_DETECT     },\n#endif\n        {
        \"ISO9660\",  iso9660_open, TSK_FS_TYPE_ISO9660_DETECT },\n        { \"APFS\",
        \    apfs_open_auto_detect,    TSK_FS_TYPE_APFS_DETECT }\n    }"
      pos:
        line_end: 138
        line_start: 131
        source_file: /src/sleuthkit/tsk/fs/fs_open.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_load_file_action
  source_file: /src/sleuthkit/tsk/fs/fs_load.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NTFS_META_ADDR::NTFS_META_ADDR
  - NTFS_META_ADDR::getAddr
  - NTFS_META_ADDR::getSeq
  - NTFS_META_ADDR::getHash
  - NTFS_PAR_MAP::add
  - NTFS_PAR_MAP::exists
  - '&get (uint32_t seq)'
  - getParentMap
  - ntfs_parent_map_add
  - ntfs_parent_map_exists
  - ntfs_parent_map_get
  - ntfs_orphan_map_free
  - ntfs_parent_act
  - ntfs_dent_copy
  - ntfs_dent_copy_short_only
  - is_time
  - ntfs_proc_idxentry
  - ntfs_fix_idxrec
  - ntfs_dir_open_meta
  - ntfs_find_file_rec
  - ntfs_find_file
  - ntfs_name_cmp
  source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEC_BTWN_1601_1970_DIV100
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
      type_or_value: ((369*365 + 89) * 24 * 36)
    - item_type: preproc_def
      name: SEC_BTWN_1601_2020_DIV100
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
      type_or_value: (SEC_BTWN_1601_1970_DIV100 + (50*365 + 6) * 24 * 36)
    - item_type: preproc_def
      name: MAX_DEPTH
      pos:
        line_end: 1411
        line_start: 1410
        source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
      type_or_value: '128'
    - item_type: preproc_def
      name: DIR_STRSZ
      pos:
        line_end: 1412
        line_start: 1411
        source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
      type_or_value: '4096'
    structs:
    - fields:
      - name: depth
        type: unsigned int
      - name: '*didx[MAX_DEPTH]'
        type: char
      - name: dirs[DIR_STRSZ]
        type: char
      item_type: struct
      name: NTFS_DINFO
      pos:
        line_end: 1425
        line_start: 1413
        source_file: /src/sleuthkit/tsk/fs/ntfs_dent.cpp
    typedefs: []
    union: []
- function_names:
  - debug_print_buf
  - test_root
  - ext2fs_is_super_bg
  - ext2fs_group_load
  - ext4_group_desc_csum
  - ext2fs_print_map
  - INODE_TABLE_SIZE
  - ext2fs_bmap_load
  - ext2fs_imap_load
  - ext2fs_dinode_load
  - ext4_load_attrs_inline
  - ext2fs_dinode_copy
  - ext2fs_inode_lookup
  - ext2fs_inode_walk
  - ext2fs_block_getflags
  - ext2fs_block_walk
  - ext2fs_fscheck
  - ext2fs_make_data_run_extent
  - ext2fs_make_data_run_extent_index
  - ext2fs_extent_tree_index_count
  - ext2fs_handle_implicit_sparse_data_run
  - ext4_load_attrs_extents
  - ext2fs_load_attrs
  - ext4_fsstat_datablock_helper
  - ext2fs_fsstat
  - ext2fs_make_acl_str
  - print_addr_act
  - ext2fs_istat
  - ext2fs_close
  - ext2fs_open
  source_file: /src/sleuthkit/tsk/fs/ext2fs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      item_type: struct
      name: EXT2FS_PRINT_ADDR
      pos:
        line_end: 2830
        line_start: 2827
        source_file: /src/sleuthkit/tsk/fs/ext2fs.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_block_alloc
  - tsk_fs_block_free
  - tsk_fs_block_get
  - tsk_fs_block_get_flag
  - tsk_fs_block_set
  - tsk_fs_block_walk
  source_file: /src/sleuthkit/tsk/fs/fs_block.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blkstat_act
  - tsk_fs_blkstat
  source_file: /src/sleuthkit/tsk/fs/dstat_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - count_dd_act
  - count_blkls_act
  - count_slack_file_act
  - count_slack_inode_act
  - tsk_fs_blkcalc
  source_file: /src/sleuthkit/tsk/fs/dcalc_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count
        type: TSK_DADDR_T
      - name: uncnt
        type: TSK_DADDR_T
      - name: found
        type: uint8_t
      - name: flen
        type: TSK_OFF_T
      item_type: struct
      name: BLKCALC_DATA
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/sleuthkit/tsk/fs/dcalc_lib.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/decmpfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPRESSION_UNIT_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/sleuthkit/tsk/fs/decmpfs.h
      type_or_value: 65536U
    structs:
    - fields:
      - name: compression_magic[4]
        type: uint8_t
      - name: compression_type[4]
        type: uint8_t
      - name: uncompressed_size[8]
        type: uint8_t
      - name: attr_bytes[0]
        type: unsigned char
      item_type: struct
      name: DECMPFS_DISK_HEADER
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/sleuthkit/tsk/fs/decmpfs.h
    typedefs: []
    union: []
- function_names:
  - zlib_inflate
  - decmpfs_read_zlib_block_table
  - decmpfs_read_lzvn_block_table
  - decmpfs_decompress_noncompressed_block
  - decmpfs_decompress_zlib_block
  - decmpfs_decompress_lzvn_block
  - read_and_decompress_block
  - decmpfs_attr_walk_compressed_rsrc
  - decmpfs_attr_walk_zlib_rsrc
  - decmpfs_attr_walk_lzvn_rsrc
  - decmpfs_file_read_compressed_rsrc
  - decmpfs_file_read_zlib_rsrc
  - decmpfs_file_read_lzvn_rsrc
  - decmpfs_decompress_noncompressed_attr
  - decmpfs_decompress_zlib_attr
  - decmpfs_decompress_lzvn_attr
  - decmpfs_file_read_compressed_attr
  - decmpfs_file_read_zlib_attr
  - decmpfs_file_read_lzvn_attr
  source_file: /src/sleuthkit/tsk/fs/decmpfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/sleuthkit/tsk/fs/decmpfs.c
      type_or_value: '16384'
    structs:
    - fields:
      - name: offset
        type: uint32_t
      - name: length
        type: uint32_t
      item_type: struct
      name: CMP_OFFSET_ENTRY
      pos:
        line_end: 173
        line_start: 170
        source_file: /src/sleuthkit/tsk/fs/decmpfs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APFS_BLOCK_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: APFS_CRYPTO_SW_BLKSIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: APFS_NXSUPERBLOCK_MAGIC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x4253584E  // NXSB
    - item_type: preproc_def
      name: APFS_FS_MAGIC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x42535041            // APSB
    - item_type: preproc_def
      name: APFS_NX_MAX_FILE_SYSTEMS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '100'
    - item_type: preproc_def
      name: APFS_NX_NUM_COUNTERS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: APFS_NX_EPH_INFO_COUNT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_MODIFIED_NAMELEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: APFS_MAX_HIST
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: APFS_VOLNAME_LEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_VIRTUAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_EPHEMERAL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_PHYSICAL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_NOHEADER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_ENCRYPTED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: APFS_OBJ_HEADER_NONPERSISTENT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: APFS_NXSB_FEATURES_DEFRAG
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x0000000000000001ULL
    - item_type: preproc_def
      name: APFS_NXSB_FEATURES_LCFD
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x0000000000000002ULL
    - item_type: preproc_def
      name: APFS_NXSB_INCOMPAT_VERSION1
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x0000000000000001ULL
    - item_type: preproc_def
      name: APFS_NXSB_INCOMPAT_VERSION2
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x0000000000000002ULL
    - item_type: preproc_def
      name: APFS_NXSB_INCOMPAT_FUSION
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x0000000000000100ULL
    - item_type: preproc_def
      name: APFS_NXSB_FLAGS_RESERVED_1
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000001LL
    - item_type: preproc_def
      name: APFS_NXSB_FLAGS_RESERVED_2
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000002LL
    - item_type: preproc_def
      name: APFS_NXSB_FLAGS_CRYPTO_SW
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000004LL
    - item_type: preproc_def
      name: APFS_OMAP_MANUALLY_MANAGED
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_OMAP_ENCRYPTING
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: APFS_OMAP_DECRYPTING
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: APFS_OMAP_KEYROLLING
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: APFS_OMAP_CRYPTO_GENERATION
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: APFS_OMAP_EPHEMERAL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: APFS_OMAP_PHYSICAL
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: APFS_BTNODE_ROOT
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: APFS_BTNODE_LEAF
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: APFS_BTNODE_FIXED_KV_SIZE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: APFS_BTNODE_CHECK_KOFF_INVAL
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: APFS_BTREE_UINT64_KEYS
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_BTREE_SEQUENTIAL_INSERT
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: APFS_BTREE_ALLOW_GHOSTS
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: APFS_BTREE_EPHEMERAL
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: APFS_BTREE_PHYSICAL
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: APFS_BTREE_NONPERSISTENT
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: APFS_BTREE_KV_NONALIGNED
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: APFS_SB_FEATURES_DEFRAG_PRERELEASE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000001LL
    - item_type: preproc_def
      name: APFS_SB_FEATURES_HARDLINK_MAP_RECORDS
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000002LL
    - item_type: preproc_def
      name: APFS_SB_FEATURES_DEFRAG
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000004LL
    - item_type: preproc_def
      name: APFS_SB_INCOMPAT_CASE_INSENSITIVE
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000001LL
    - item_type: preproc_def
      name: APFS_SB_INCOMPAT_DATALESS_SNAPS
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000002LL
    - item_type: preproc_def
      name: APFS_SB_INCOMPAT_ENC_ROLLED
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000004LL
    - item_type: preproc_def
      name: APFS_SB_INCOMPAT_NORMALIZATION_INSENSITIVE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000008LL
    - item_type: preproc_def
      name: APFS_SB_UNENCRYPTED
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000001LL
    - item_type: preproc_def
      name: APFS_SB_EFFACEABLE
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000002LL
    - item_type: preproc_def
      name: APFS_SB_RESERVED_4
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000004LL
    - item_type: preproc_def
      name: APFS_SB_ONEKEY
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000008LL
    - item_type: preproc_def
      name: APFS_SB_SPILLEDOVER
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000010LL
    - item_type: preproc_def
      name: APFS_SB_RUN_SPILLOVER_CLEANER
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: 0x00000020LL
    - item_type: preproc_def
      name: APFS_CHECKPOINT_MAP_LAST
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_SM_FLAG_VERSIONED
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_NR_BHM_FLAG
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_NR_CONTINUE
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: APFS_OMAP_VAL_DELETED
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_OMAP_VAL_SAVED
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: APFS_OMAP_VAL_ENCRYPTED
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: APFS_OMAP_VAL_NOHEADER
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: APFS_OMAP_VAL_CRYPTO_GENERATION
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: APFS_ROOT_INODE_NUM
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: APFS_XATTR_NAME_DECOMPFS
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '"com.apple.decmpfs"'
    - item_type: preproc_def
      name: APFS_XATTR_NAME_FINDERINFO
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '"com.apple.FinderInfo"'
    - item_type: preproc_def
      name: APFS_XATTR_NAME_RESOURCEFORK
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '"com.apple.ResourceFork"'
    - item_type: preproc_def
      name: APFS_XATTR_NAME_SECURITY
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '"com.apple.system.Security"'
    - item_type: preproc_def
      name: APFS_XATTR_NAME_SYMLINK
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '"com.apple.fs.symlink"'
    - item_type: preproc_def
      name: APFS_SNAP_METADATA_PENDING_DATALESS
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_LEN_BITS
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_LEN_SHIFT
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_KIND_BITS
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_KIND_SHIFT
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_START_BLOCK_BITS
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_START_BLOCK_SHIFT
      pos:
        line_end: 651
        line_start: 650
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_TYPE_BITS
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_PHYS_EXTENT_TYPE_SHIFT
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: APFS_INODE_IS_APFS_PRIVATE
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000001
    - item_type: preproc_def
      name: APFS_INODE_MAINTAIN_DIR_STATS
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000002
    - item_type: preproc_def
      name: APFS_INODE_DIR_STATS_ORIGIN
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000004
    - item_type: preproc_def
      name: APFS_INODE_PROT_CLASS_EXPLICIT
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000008
    - item_type: preproc_def
      name: APFS_INODE_WAS_CLONED
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000010
    - item_type: preproc_def
      name: APFS_INODE_FLAG_UNUSED
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000020
    - item_type: preproc_def
      name: APFS_INODE_HAS_SECURITY_EA
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000040
    - item_type: preproc_def
      name: APFS_INODE_BEING_TRUNCATED
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000080
    - item_type: preproc_def
      name: APFS_INODE_HAS_FINDER_INFO
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000100
    - item_type: preproc_def
      name: APFS_INODE_IS_SPARSE
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000200
    - item_type: preproc_def
      name: APFS_INODE_WAS_EVER_CLONED
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000400
    - item_type: preproc_def
      name: APFS_INODE_ACTIVE_FILE_TRIMMED
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00000800
    - item_type: preproc_def
      name: APFS_INODE_PINNED_TO_MAIN
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00001000
    - item_type: preproc_def
      name: APFS_INODE_PINNED_TO_TIER2
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00002000
    - item_type: preproc_def
      name: APFS_INODE_HAS_RSRC_FORK
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00004000
    - item_type: preproc_def
      name: APFS_INODE_NO_RSRC_FORK
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00008000
    - item_type: preproc_def
      name: APFS_INODE_ALLOCATION_SPILLEDOVER
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x00010000
    - item_type: preproc_def
      name: APFS_INODE_MODE_BITS
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: APFS_INODE_MODE_SHIFT
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APFS_INODE_TYPE_BITS
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_INODE_TYPE_SHIFT
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: APFS_XATTR_DATA_STREAM
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x0001
    - item_type: preproc_def
      name: APFS_XATTR_DATA_EMBEDDED
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x0002
    - item_type: preproc_def
      name: APFS_XATTR_FILE_SYSTEM_OWNED
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x0004
    - item_type: preproc_def
      name: APFS_XATTR_RESERVED_8
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: = 0x0008
    - item_type: preproc_def
      name: APFS_FILE_EXTENT_LEN_BITS
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: APFS_FILE_EXTENT_LEN_SHIFT
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APFS_FILE_EXTENT_FLAGS_BITS
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: APFS_FILE_EXTENT_FLAGS_SHIFT
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: APFS_DIR_RECORD_TYPE_BITS
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_DIR_RECORD_TYPE_SHIFT
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APFS_DIR_RECORD_FLAGS_BITS
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: APFS_DIR_RECORD_FLAGS_SHIFT
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_DATA_DEPENDENT
      pos:
        line_end: 807
        line_start: 806
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_DO_NOT_COPY
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_RESERVED_4
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_CHILDREN_INHERIT
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_USER_FIELD
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_SYSTEM_FIELD
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_RESERVED_40
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: APFS_XFIELD_ENTRY_RESERVED_80
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
      type_or_value: '0x80'
    structs:
    - fields:
      - name: cksum
        type: uint64_t
      - name: oid
        type: uint64_t
      - name: xid
        type: uint64_t
      - name: subtype
        type: uint32_t
      item_type: struct
      name: apfs_obj_header
      pos:
        line_end: 59
        line_start: 47
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: start_paddr
        type: uint64_t
      - name: block_count
        type: uint64_t
      item_type: struct
      name: apfs_prange
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: magic
        type: uint32_t
      - name: block_size
        type: uint32_t
      - name: block_count
        type: uint64_t
      - name: features
        type: uint64_t
      - name: readonly_compatible_features
        type: uint64_t
      - name: incompatible_features
        type: uint64_t
      - name: uuid[16]
        type: uint8_t
      - name: next_oid
        type: uint64_t
      - name: next_xid
        type: uint64_t
      - name: chkpt_desc_block_count
        type: uint32_t
      - name: chkpt_data_block_count
        type: uint32_t
      - name: chkpt_desc_base_addr
        type: uint64_t
      - name: chkpt_data_base_addr
        type: uint64_t
      - name: chkpt_desc_next_block
        type: uint32_t
      - name: chkpt_data_next_block
        type: uint32_t
      - name: chkpt_desc_index
        type: uint32_t
      - name: chkpt_desc_len
        type: uint32_t
      - name: chkpt_data_index
        type: uint32_t
      - name: chkpt_data_len
        type: uint32_t
      - name: spaceman_oid
        type: uint64_t
      - name: omap_oid
        type: uint64_t
      - name: reaper_oid
        type: uint64_t
      - name: test_type
        type: uint32_t
      - name: max_fs_count
        type: uint32_t
      - name: fs_oids[APFS_NX_MAX_FILE_SYSTEMS]
        type: uint64_t
      - name: counters[APFS_NX_NUM_COUNTERS]
        type: uint64_t
      - name: blocked_out_prange
        type: apfs_prange
      - name: evict_mapping_tree_oid
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: efi_jumpstart
        type: uint64_t
      - name: fusion_uuid[16]
        type: uint8_t
      - name: keylocker
        type: apfs_prange
      - name: ephemeral_info[APFS_NX_EPH_INFO_COUNT]
        type: uint64_t
      - name: test_oid
        type: uint64_t
      - name: fusion_mt_oid
        type: uint64_t
      - name: fusion_wbc_oid
        type: uint64_t
      - name: fusion_wbc
        type: uint64_t
      item_type: struct
      name: apfs_nx_superblock
      pos:
        line_end: 164
        line_start: 125
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: flags
        type: uint32_t
      - name: snapshot_count
        type: uint32_t
      - name: tree_type
        type: uint16_t
      - name: type_flags
        type: uint16_t
      - name: snapshot_tree_type
        type: uint32_t
      - name: tree_oid
        type: uint64_t
      - name: snapshot_tree_oid
        type: uint64_t
      - name: most_recent_snap
        type: uint64_t
      - name: pending_revert_min
        type: uint64_t
      - name: pending_revert_max
        type: uint64_t
      item_type: struct
      name: apfs_omap
      pos:
        line_end: 190
        line_start: 178
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: flags
        type: uint16_t
      - name: level
        type: uint16_t
      - name: key_count
        type: uint32_t
      - name: table_space_offset
        type: uint16_t
      - name: table_space_length
        type: uint16_t
      - name: free_space_offset
        type: uint16_t
      - name: free_space_length
        type: uint16_t
      - name: free_list_head
        type: uint16_t
      - name: free_space_avail
        type: uint16_t
      - name: val_space_head
        type: uint16_t
      - name: val_space_avail
        type: uint16_t
      item_type: struct
      name: apfs_btree_node
      pos:
        line_end: 218
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: key_offset
        type: uint16_t
      - name: val_offset
        type: uint16_t
      item_type: struct
      name: apfs_btentry_fixed
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: key_offset
        type: uint16_t
      - name: key_length
        type: uint16_t
      - name: val_offset
        type: uint16_t
      - name: val_length
        type: uint16_t
      item_type: struct
      name: apfs_btentry_variable
      pos:
        line_end: 232
        line_start: 227
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: flags
        type: uint32_t
      - name: node_size
        type: uint32_t
      - name: key_size
        type: uint32_t
      - name: val_size
        type: uint32_t
      - name: longest_key
        type: uint32_t
      - name: longest_val
        type: uint32_t
      - name: key_count
        type: uint64_t
      - name: node_count
        type: uint64_t
      item_type: struct
      name: apfs_btree_info
      pos:
        line_end: 254
        line_start: 245
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: magic
        type: uint32_t
      - name: fs_index
        type: uint32_t
      - name: features
        type: uint64_t
      - name: readonly_compatible_features
        type: uint64_t
      - name: incompatible_features
        type: uint64_t
      - name: unmount_time
        type: uint64_t
      - name: reserve_blocks
        type: uint64_t
      - name: quota_blocks
        type: uint64_t
      - name: alloc_blocks
        type: uint64_t
      - name: meta_crypto
        type: "struct {\n    uint16_t major_version;     // 0x60\n    uint16_t minor_version;
          \    // 0x62\n    uint32_t cpflags;           // 0x64\n    uint32_t persistent_class;
          \ // 0x68\n    uint32_t key_os_version;    // 0x6C\n    uint16_t key_revision;
          \     // 0x70\n    uint16_t unused;            // 0x72\n  }"
      - name: root_tree_type
        type: uint32_t
      - name: extentref_tree_type
        type: uint32_t
      - name: snap_meta_tree_type
        type: uint32_t
      - name: omap_oid
        type: uint64_t
      - name: root_tree_oid
        type: uint64_t
      - name: extentref_tree_oid
        type: uint64_t
      - name: snap_meta_tree_oid
        type: uint64_t
      - name: revert_to_xid
        type: uint64_t
      - name: revert_to_sblock_oid
        type: uint64_t
      - name: next_inum
        type: uint64_t
      - name: num_files
        type: uint64_t
      - name: num_directories
        type: uint64_t
      - name: num_symlinks
        type: uint64_t
      - name: num_other_fsobjects
        type: uint64_t
      - name: num_snapshots
        type: uint64_t
      - name: total_blocks_alloced
        type: uint64_t
      - name: total_blocks_freed
        type: uint64_t
      - name: uuid[16]
        type: uint8_t
      - name: last_mod_time
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: formatted_by[APFS_MODIFIED_NAMELEN]
        type: char
      - name: created_timestamp
        type: uint64_t
      - name: last_xid
        type: uint64_t
      - name: unmount_logs[APFS_MAX_HIST]
        type: "struct {\n    char kext_ver_str[APFS_MODIFIED_NAMELEN];\n    uint64_t
          timestamp;\n    uint64_t last_xid;\n  }"
      - name: name[APFS_VOLNAME_LEN]
        type: char
      - name: next_doc_id
        type: uint32_t
      - name: role
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: root_to_xid
        type: uint64_t
      - name: er_state_oid
        type: uint64_t
      item_type: struct
      name: apfs_superblock
      pos:
        line_end: 330
        line_start: 276
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: flags
        type: uint32_t
      - name: count
        type: uint32_t
      - name: entries[0]
        type: "struct {\n    uint16_t type;     // 0x00\n    uint16_t flags;    //
          0x02\n    uint32_t subtype;  // 0x04\n    uint32_t size;     // 0x08\n    uint32_t
          padding;  // 0x0C\n    uint64_t fs_oid;   // 0x10\n    uint64_t oid;      //
          0x18\n    uint64_t paddr;    // 0x20\n  }"
      item_type: struct
      name: apfs_checkpoint_map
      pos:
        line_end: 372
        line_start: 358
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: block_count
        type: uint64_t
      - name: chunk_count
        type: uint64_t
      - name: cib_count
        type: uint32_t
      - name: cab_count
        type: uint32_t
      - name: free_count
        type: uint64_t
      - name: addr_offset
        type: uint32_t
      - name: reserved24
        type: uint32_t
      - name: reserved28
        type: uint64_t
      item_type: struct
      name: apfs_spaceman_device
      pos:
        line_end: 384
        line_start: 375
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: count
        type: uint64_t
      - name: tree_oid
        type: uint64_t
      - name: oldest_xid
        type: uint64_t
      - name: tree_node_limit
        type: uint16_t
      - name: pad16
        type: uint16_t
      - name: pad32
        type: uint32_t
      - name: reserved20
        type: uint64_t
      item_type: struct
      name: apfs_spaceman_free_queue
      pos:
        line_end: 396
        line_start: 388
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_hdr
        type: apfs_obj_header
      - name: block_size
        type: uint32_t
      - name: blocks_per_chunk
        type: uint32_t
      - name: chunks_per_cib
        type: uint32_t
      - name: cib_per_cab
        type: uint32_t
      - name: devs[APFS_SD_COUNT]
        type: apfs_spaceman_device
      - name: flags
        type: uint32_t
      - name: ip_tx_multiplier
        type: uint32_t
      - name: ip_block_count
        type: uint64_t
      - name: ip_bm_size_in_blocks
        type: uint32_t
      - name: ip_bm_block_count
        type: uint32_t
      - name: ip_bm_base_address
        type: uint64_t
      - name: ip_base_address
        type: uint64_t
      - name: fs_reserve_block_count
        type: uint64_t
      - name: fs_reserve_alloc_count
        type: uint64_t
      - name: fq[APFS_SFQ_COUNT]
        type: apfs_spaceman_free_queue
      - name: ip_bm_free_head
        type: uint16_t
      - name: ip_bm_free_tail
        type: uint16_t
      - name: ip_bm_xid_offset
        type: uint32_t
      - name: ip_bm_offset
        type: uint32_t
      - name: ip_bm_free_next_offset
        type: uint32_t
      - name: version
        type: uint32_t
      - name: struct_size
        type: uint32_t
      item_type: struct
      name: apfs_spaceman
      pos:
        line_end: 427
        line_start: 403
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_header
        type: apfs_obj_header
      - name: index
        type: uint32_t
      - name: cib_count
        type: uint32_t
      - name: cib_blocks[0]
        type: uint64_t
      item_type: struct
      name: apfs_spaceman_cab
      pos:
        line_end: 436
        line_start: 431
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_header
        type: apfs_obj_header
      - name: index
        type: uint32_t
      - name: entry_count
        type: uint32_t
      - name: entries[0]
        type: "struct {\n    uint64_t xid;          // + 0x00\n    uint64_t addr;
          \        // + 0x08\n    uint32_t block_count;  // + 0x10\n    uint32_t free_count;
          \  // + 0x14\n    uint64_t bm_addr;      // + 0x18\n  }"
      item_type: struct
      name: apfs_spaceman_cib
      pos:
        line_end: 451
        line_start: 440
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_header
        type: apfs_obj_header
      - name: next_reap_id
        type: uint64_t
      - name: compleated_id
        type: uint64_t
      - name: head
        type: uint64_t
      - name: tail
        type: uint64_t
      - name: flags
        type: uint32_t
      - name: rlcount
        type: uint32_t
      - name: type
        type: uint32_t
      - name: size
        type: uint32_t
      - name: fs_oid
        type: uint64_t
      - name: oid
        type: uint64_t
      - name: xid
        type: uint64_t
      - name: le_flags
        type: uint32_t
      - name: state_buffer_size
        type: uint32_t
      - name: state_buffer[0]
        type: uint8_t
      item_type: struct
      name: apfs_nx_reaper
      pos:
        line_end: 474
        line_start: 458
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_header
        type: apfs_obj_header
      - name: next
        type: uint64_t
      - name: flags
        type: uint32_t
      - name: max
        type: uint32_t
      - name: count
        type: uint32_t
      - name: first
        type: uint32_t
      - name: last
        type: uint32_t
      - name: free
        type: uint32_t
      - name: entries[0]
        type: "struct {                     // 0x40\n    uint32_t next;\n    uint32_t
          flags;\n    uint32_t type;\n    uint32_t size;\n    uint64_t fs_oid;\n    uint64_t
          oid;\n    uint64_t xid;\n  }"
      item_type: struct
      name: apfs_nx_reap_list
      pos:
        line_end: 495
        line_start: 477
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: uuid[16]
        type: uint8_t
      - name: type
        type: uint16_t
      - name: length
        type: uint16_t
      - name: padding14
        type: uint32_t
      item_type: struct
      name: apfs_keybag_key
      pos:
        line_end: 511
        line_start: 506
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: obj_header
        type: apfs_obj_header
      - name: version
        type: uint16_t
      - name: num_entries
        type: uint16_t
      - name: size
        type: uint32_t
      - name: padding28
        type: uint64_t
      - name: first_key[0]
        type: apfs_keybag_key
      item_type: struct
      name: apfs_keybag
      pos:
        line_end: 521
        line_start: 514
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: start_block
        type: uint64_t
      - name: num_blocks
        type: uint64_t
      item_type: struct
      name: apfs_volrec_keybag_value
      pos:
        line_end: 527
        line_start: 524
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: oid
        type: uint64_t
      - name: xid
        type: uint64_t
      item_type: struct
      name: apfs_omap_key
      pos:
        line_end: 536
        line_start: 533
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: flags
        type: uint32_t
      - name: size
        type: uint32_t
      - name: paddr
        type: uint64_t
      item_type: struct
      name: apfs_omap_value
      pos:
        line_end: 550
        line_start: 546
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: extentref_tree_oid
        type: uint64_t
      - name: sblock_oid
        type: uint64_t
      - name: create_time
        type: uint64_t
      - name: changed_time
        type: uint64_t
      - name: private_id
        type: uint64_t
      - name: extentref_tree_type
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: name_length
        type: uint16_t
      - name: name[0]
        type: char
      item_type: struct
      name: apfs_snap_metadata
      pos:
        line_end: 623
        line_start: 613
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: len_and_kind
        type: uint64_t
      - name: owning_obj_id
        type: uint64_t
      - name: refcnt
        type: uint32_t
      item_type: struct
      name: apfs_phys_extent
      pos:
        line_end: 645
        line_start: 641
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: start_block_and_type
        type: uint64_t
      item_type: struct
      name: apfs_phys_extent_key
      pos:
        line_end: 655
        line_start: 653
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: parent_id
        type: uint64_t
      - name: private_id
        type: uint64_t
      - name: create_time
        type: uint64_t
      - name: modified_time
        type: uint64_t
      - name: changed_time
        type: uint64_t
      - name: accessed_time
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: default_protection_class
        type: uint32_t
      - name: write_generation_counter
        type: uint32_t
      - name: bsdflags
        type: uint32_t
      - name: owner
        type: uint32_t
      - name: group
        type: uint32_t
      - name: mode_and_type
        type: uint16_t
      - name: padding52
        type: uint16_t
      - name: padding54
        type: uint64_t
      item_type: struct
      name: apfs_inode
      pos:
        line_end: 704
        line_start: 684
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: flags
        type: uint16_t
      - name: xdata_len
        type: uint16_t
      item_type: struct
      name: apfs_xattr
      pos:
        line_end: 716
        line_start: 713
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: parent
        type: uint64_t
      - name: name_length
        type: uint16_t
      - name: name[0]
        type: char
      item_type: struct
      name: apfs_sibling_link
      pos:
        line_end: 723
        line_start: 719
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: refcnt
        type: uint32_t
      item_type: struct
      name: apfs_dstream_id
      pos:
        line_end: 728
        line_start: 726
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: refcount
        type: uint32_t
      - name: state
        type: "struct {\n    uint16_t major_version;     // 0x04\n    uint16_t minor_version;
          \    // 0x06\n    uint32_t cpflags;           // 0x08\n    uint32_t persistent_class;
          \ // 0x0C\n    uint32_t key_os_version;    // 0x10\n    uint16_t key_revision;
          \     // 0x14\n    uint16_t key_len;           // 0x16\n    uint8_t persistent_key[0];
          \ // 0x18\n  }"
      item_type: struct
      name: apfs_crypto_state
      pos:
        line_end: 743
        line_start: 731
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: len_and_flags
        type: uint64_t
      - name: phys
        type: uint64_t
      - name: crypto
        type: uint64_t
      item_type: struct
      name: apfs_file_extent
      pos:
        line_end: 756
        line_start: 752
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: file_id
        type: uint64_t
      - name: date_added
        type: uint64_t
      - name: type_and_flags
        type: uint16_t
      item_type: struct
      name: apfs_dir_record
      pos:
        line_end: 769
        line_start: 765
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: num_children
        type: uint64_t
      - name: total_size
        type: uint64_t
      - name: chained_key
        type: uint64_t
      - name: gen_count
        type: uint64_t
      item_type: struct
      name: apfs_dir_stats
      pos:
        line_end: 777
        line_start: 772
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: snap_xid
        type: uint64_t
      item_type: struct
      name: apfs_snap_name
      pos:
        line_end: 782
        line_start: 780
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: orig_file_id
        type: uint64_t
      item_type: struct
      name: apfs_sibling_map
      pos:
        line_end: 787
        line_start: 785
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: len
        type: uint16_t
      item_type: struct
      name: apfs_xfield_entry
      pos:
        line_end: 819
        line_start: 815
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: num_exts
        type: uint16_t
      - name: used_data
        type: uint16_t
      - name: entries[0]
        type: apfs_xfield_entry
      item_type: struct
      name: apfs_xfield
      pos:
        line_end: 826
        line_start: 822
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    - fields:
      - name: size
        type: uint64_t
      - name: alloced_size
        type: uint64_t
      - name: default_crypto_id
        type: uint64_t
      - name: total_bytes_written
        type: uint64_t
      - name: total_bytes_read
        type: uint64_t
      item_type: struct
      name: apfs_dstream
      pos:
        line_end: 835
        line_start: 829
        source_file: /src/sleuthkit/tsk/fs/tsk_apfs.h
    typedefs: []
    union: []
- function_names:
  - ext2fs_dent_copy
  - ext2fs_dent_parse_block
  - ext2fs_dir_open_meta
  source_file: /src/sleuthkit/tsk/fs/ext2fs_dent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lsbset
  - lsbset
  - lsbset
  - lsbset
  - wrapped_key_parser::is_eob
  - wrapped_key_parser::get_tag
  - wrapped_key_parser::get_data
  - wrapped_key_parser::wrapped_key_parser
  - wrapped_key_parser::get_data
  - wrapped_key_parser::get_number
  - APFSBlock::APFSBlock
  - APFSBlock::decrypt
  - APFSBlock::dump
  - APFSObject::validate_checksum
  - APFSSuperblock::APFSSuperblock
  - APFSSuperblock::volume_blocks
  - APFSSuperblock::sm_bitmap_blocks
  - APFSSuperblock::volume_oids
  - APFSSuperblock::checkpoint_desc_block
  - '& APFSSuperblock::spaceman() const'
  - APFSSuperblock::keybag
  - APFSOmap::APFSOmap
  - APFSFileSystem::APFSFileSystem
  - "APFSFileSystem::wrapped_kek::wrapped_kek(TSKGuid&& id,\n                                         const
    APFS_sized_key_data& kp)"
  - APFSFileSystem::APFSFileSystem
  - APFSFileSystem::init_crypto_info
  - APFSFileSystem::unlock
  - APFSFileSystem::unmount_log
  - APFSFileSystem::snapshots
  - snap_xid
  - type
  - APFSFileSystem::root_jobj_tree
  - APFSFileSystem::omap_root
  - APFSJObjBtreeNode::APFSJObjBtreeNode
  - APFSObjectBtreeNode::find
  - APFSObjectBtreeNode::APFSObjectBtreeNode
  - APFSObjectBtreeNode::APFSObjectBtreeNode
  - APFSSnapshotMetaBtreeNode::APFSSnapshotMetaBtreeNode
  - APFSExtentRefBtreeNode::APFSExtentRefBtreeNode
  - APFSCheckpointMap::APFSCheckpointMap
  - APFSCheckpointMap::get_object_block
  - APFSSpaceman::APFSSpaceman
  - '& APFSSpaceman::bm_entries() const'
  - APFSSpaceman::unallocated_ranges
  - APFSSpacemanCIB::APFSSpacemanCIB
  - APFSSpacemanCIB::bm_entries
  - APFSSpacemanCAB::APFSSpacemanCAB
  - APFSSpacemanCAB::cib_blocks
  - APFSBitmapBlock::APFSBitmapBlock
  - APFSBitmapBlock::next
  - APFSBitmapBlock::unallocated_ranges
  - APFSKeybag::APFSKeybag
  - APFSKeybag::get_key
  - APFSKeybag::get_keys
  - APFSSuperblock::Keybag::Keybag(const APFSSuperblock& sb)
  - APFSExtentRefBtreeNode::find
  - "APFSFileSystem::Keybag::Keybag(const APFSFileSystem& vol,\n                               apfs_block_num
    block_num)"
  source_file: /src/sleuthkit/tsk/fs/apfs.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: xid_and_type
        type: uint64_t
      item_type: struct
      name: key_type
      pos:
        line_end: 626
        line_start: 616
        source_file: /src/sleuthkit/tsk/fs/apfs.cpp
    typedefs: []
    union: []
- function_names:
  - FATFS_NUM_VIRT_FILES
  - FATFS_CLUST_2_SECT
  - FATFS_SECT_2_CLUST
  - FATFS_INODE_2_SECT
  - FATFS_INODE_2_OFF
  - FATFS_SECT_2_INODE
  - FATFS_ISEOF
  - FATFS_ISBAD
  - FATFS_ISTIME
  - FATFS_ISDATE
  source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
  types:
    enum:
    - enumerators:
      - name: FATFS_DATA_UNIT_ALLOC_STATUS_UNALLOC
        value: '0'
      - name: FATFS_DATA_UNIT_ALLOC_STATUS_ALLOC
        value: '1'
      - name: FATFS_DATA_UNIT_ALLOC_STATUS_UNKNOWN
        value: '2'
      item_type: enum
      name: FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      pos:
        line_end: 173
        line_start: 169
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    preproc_defs:
    - item_type: preproc_def
      name: FATFS_OK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_FAIL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FATFS_FS_MAGIC
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0xaa55'
    - item_type: preproc_def
      name: FATFS_FIRST_CLUSTER_ADDR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FATFS_FIRSTINO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FATFS_ROOTINO
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: FATFS_FIRST_NORMINO
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: FATFS_ROOTNAME
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '"$ROOT"'
    - item_type: preproc_def
      name: FATFS_MBRNAME
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '"$MBR"'
    - item_type: preproc_def
      name: FATFS_FAT1NAME
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '"$FAT1"'
    - item_type: preproc_def
      name: FATFS_FAT2NAME
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '"$FAT2"'
    - item_type: preproc_def
      name: FATFS_FAT_CACHE_N
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: 4       // number of caches
    - item_type: preproc_def
      name: FATFS_FAT_CACHE_B
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: FATFS_MASTER_BOOT_RECORD_SIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: FATFS_DENTRY_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: FATFS_12_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x00000fff'
    - item_type: preproc_def
      name: FATFS_16_MASK
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0000ffff'
    - item_type: preproc_def
      name: FATFS_32_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0fffffff'
    - item_type: preproc_def
      name: EXFATFS_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0fffffff'
    - item_type: preproc_def
      name: FATFS_FILE_CONTENT_LEN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: sizeof(TSK_DADDR_T)      // we will store the starting cluster
    - item_type: preproc_def
      name: FATFS_ATTR_NORMAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x00    '
    - item_type: preproc_def
      name: FATFS_ATTR_READONLY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: FATFS_ATTR_HIDDEN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: FATFS_ATTR_SYSTEM
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: FATFS_ATTR_VOLUME
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: FATFS_ATTR_DIRECTORY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: FATFS_ATTR_ARCHIVE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x20    '
    - item_type: preproc_def
      name: FATFS_ATTR_LFN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0f    '
    - item_type: preproc_def
      name: FATFS_ATTR_ALL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x3f    '
    - item_type: preproc_def
      name: FATFS_UNALLOC
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_BAD
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0ffffff7'
    - item_type: preproc_def
      name: FATFS_EOFS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0ffffff8'
    - item_type: preproc_def
      name: FATFS_EOFE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x0fffffff'
    - item_type: preproc_def
      name: FATFS_SEC_MASK
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x1f    '
    - item_type: preproc_def
      name: FATFS_SEC_SHIFT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_SEC_MIN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_SEC_MAX
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '30'
    - item_type: preproc_def
      name: FATFS_MIN_MASK
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x7e0   '
    - item_type: preproc_def
      name: FATFS_MIN_SHIFT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FATFS_MIN_MIN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_MIN_MAX
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '59'
    - item_type: preproc_def
      name: FATFS_HOUR_MASK
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0xf800  '
    - item_type: preproc_def
      name: FATFS_HOUR_SHIFT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '11'
    - item_type: preproc_def
      name: FATFS_HOUR_MIN
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_HOUR_MAX
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '23'
    - item_type: preproc_def
      name: FATFS_DAY_MASK
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x1f    '
    - item_type: preproc_def
      name: FATFS_DAY_SHIFT
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_DAY_MIN
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FATFS_DAY_MAX
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '31'
    - item_type: preproc_def
      name: FATFS_MON_MASK
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0x1e0   '
    - item_type: preproc_def
      name: FATFS_MON_SHIFT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FATFS_MON_MIN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FATFS_MON_MAX
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FATFS_YEAR_MASK
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0xfe00  '
    - item_type: preproc_def
      name: FATFS_YEAR_SHIFT
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FATFS_YEAR_MIN
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FATFS_YEAR_MAX
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '127'
    - item_type: preproc_def
      name: FATFS_MAXNAMLEN_UTF8
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: data[FATFS_MASTER_BOOT_RECORD_SIZE - 2]
        type: uint8_t
      - name: magic[2]
        type: uint8_t
      item_type: struct
      name: FATFS_MASTER_BOOT_RECORD
      pos:
        line_end: 185
        line_start: 181
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    - fields:
      - name: data[FATFS_DENTRY_SIZE]
        type: uint8_t
      item_type: struct
      name: FATFS_DENTRY
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: cache_lock
        type: tsk_lock_t
      - name: fatc_buf[FATFS_FAT_CACHE_N][FATFS_FAT_CACHE_B]
        type: char
      - name: fatc_addr[FATFS_FAT_CACHE_N]
        type: TSK_DADDR_T
      - name: fatc_ttl[FATFS_FAT_CACHE_N]
        type: uint8_t
      - name: firstfatsect
        type: TSK_DADDR_T
      - name: firstdatasect
        type: TSK_DADDR_T
      - name: firstclustsect
        type: TSK_DADDR_T
      - name: clustcnt
        type: TSK_DADDR_T
      - name: lastclust
        type: TSK_DADDR_T
      - name: rootsect
        type: TSK_DADDR_T
      - name: dentry_cnt_se
        type: uint32_t
      - name: dentry_cnt_cl
        type: uint32_t
      - name: ssize
        type: uint16_t
      - name: ssize_sh
        type: uint16_t
      - name: csize
        type: uint32_t
      - name: numfat
        type: uint8_t
      - name: sectperfat
        type: uint32_t
      - name: numroot
        type: uint16_t
      - name: mask
        type: uint32_t
      - name: mbr_virt_inum
        type: TSK_INUM_T
      - name: fat1_virt_inum
        type: TSK_INUM_T
      - name: fat2_virt_inum
        type: TSK_INUM_T
      - name: dir_lock
        type: tsk_lock_t
      - name: '*inum2par'
        type: void
      - name: boot_sector_buffer[FATFS_MASTER_BOOT_RECORD_SIZE]
        type: char
      - name: using_backup_boot_sector
        type: int
      - name: subtype
        type: TSK_FATFS_SUBTYPE_ENUM
      - name: (*is_cluster_alloc)(FATFS_INFO *fatfs, TSK_DADDR_T clust)
        type: int8_t
      - name: "(*is_dentry)(FATFS_INFO *a_fatfs, FATFS_DENTRY *a_dentry, \n            FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
          a_cluster_is_alloc, \n            uint8_t a_do_basic_tests_only)"
        type: uint8_t
      - name: "(*inode_lookup)(FATFS_INFO *a_fatfs, TSK_FS_FILE *a_fs_file,\n            TSK_INUM_T
          a_inum)"
        type: uint8_t
      - name: "(*inode_walk_should_skip_dentry)(FATFS_INFO *a_fatfs, \n            TSK_INUM_T
          a_inum, FATFS_DENTRY *a_dentry, \n            unsigned int a_selection_flags,
          int a_cluster_is_alloc)"
        type: uint8_t
      - name: (*istat_attr_flags) (FATFS_INFO *a_fatfs, TSK_INUM_T a_inum,  FILE *a_hFile)
        type: uint8_t
      - name: "(*dent_parse_buf)(FATFS_INFO *a_fatfs, \n            TSK_FS_DIR *a_fs_dir,
          char *a_buf, TSK_OFF_T a_buf_len, \n            TSK_DADDR_T *a_sector_addrs,
          int recursion_depth)"
        type: TSK_RETVAL_ENUM
      - name: "(*dinode_copy)(FATFS_INFO *a_fatfs, TSK_INUM_T a_inum, \n            FATFS_DENTRY
          *a_dentry, uint8_t a_cluster_is_alloc, TSK_FS_FILE *a_fs_file)"
        type: TSK_RETVAL_ENUM
      - name: EXFATFS_INFO
        type: "struct {\n            uint64_t first_sector_of_alloc_bitmap;\n            uint64_t
          length_of_alloc_bitmap_in_bytes;\n        }"
      item_type: struct
      name: FATFS_INFO
      pos:
        line_end: 277
        line_start: 197
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
    typedefs:
    - item_type: typedef
      name: FATFS_INFO
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type: FATFS_INFO
    - item_type: typedef
      name: FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/sleuthkit/tsk/fs/tsk_fatfs.h
      type: FATFS_DATA_UNIT_ALLOC_STATUS_ENUM
    union: []
- function_names:
  - search_record
  - parse_fname
  - parse_record_header
  - parse_v2_record
  - parse_record
  - parse_buffer
  - parse_file
  - tsk_ntfs_usnjopen
  - tsk_ntfs_usnjentry_walk
  source_file: /src/sleuthkit/tsk/fs/usn_journal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffs_dent_copy
  - ffs_dent_parse_block
  - ffs_dir_open_meta
  source_file: /src/sleuthkit/tsk/fs/ffs_dent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exfatfs_is_cluster_alloc
  - exfatfs_is_vol_label_dentry
  - exfatfs_is_vol_guid_dentry
  - exfatfs_is_alloc_bitmap_dentry
  - exfatfs_is_upcase_table_dentry
  - exfatfs_is_texfat_dentry
  - exfatfs_is_access_ctrl_table_dentry
  - exfatfs_is_file_dentry
  - exfatfs_is_file_dentry_standalone
  - exfatfs_is_file_stream_dentry
  - exfatfs_is_file_stream_dentry_standalone
  - exfatfs_is_file_name_dentry
  - exfatfs_is_dentry
  - exfatfs_make_contiguous_data_run
  - exfatfs_copy_vol_label_inode
  - exfatfs_copy_alloc_bitmap_inode
  - exfatfs_copy_upcase_table_inode
  - exfatfs_load_file_stream_dentry
  - exfatfs_next_dentry_inum
  - exfatfs_copy_file_inode
  - exfatfs_copy_file_name_inode
  - exfatfs_inode_copy_init
  - exfatfs_dinode_copy
  - exfatfs_find_file_stream_dentry
  - exfatfs_inode_lookup
  - exfatfs_istat_attr_flags
  - exfatfs_inode_walk_should_skip_dentry
  - exfatfs_get_alloc_status_from_type
  - exfatfs_get_enum_from_type
  source_file: /src/sleuthkit/tsk/fs/exfatfs_meta.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fatfs_find_parent_act
  - getParentMap
  - fatfs_dir_buf_add
  - fatfs_dir_buf_get
  - fatfs_dir_buf_free
  - fatfs_dent_action
  - fatfs_dir_open_meta
  - fatfs_name_cmp
  source_file: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curdirptr'
        type: char
      - name: dirleft
        type: size_t
      - name: '*addrbuf'
        type: TSK_DADDR_T
      - name: addrsize
        type: size_t
      - name: addridx
        type: size_t
      item_type: struct
      name: FATFS_LOAD_DIR
      pos:
        line_end: 165
        line_start: 149
        source_file: /src/sleuthkit/tsk/fs/fatfs_dent.cpp
    typedefs: []
    union: []
- function_names:
  - logicalfs_inode_walk
  - logicalfs_block_walk
  - logicalfs_block_getflags
  - logicalfs_get_default_attr_type
  - contains_folder_separator
  - path_is_subfolder
  - get_end_of_path
  - create_inum_search_helper
  - create_max_inum_search_helper
  - create_path_search_helper
  - free_search_helper
  - convert_wide_string_to_utf8
  - should_treat_as_directory
  - populate_fs_file_from_win_find_data
  - create_search_path
  - load_dir_and_file_lists_win
  - get_path_relative_to_base
  - find_closest_path_match_in_cache
  - find_closest_sibling_match_in_cache
  - find_path_for_inum_in_cache
  - add_directory_to_cache
  - case_insensitive_compare
  - search_directory_recursive
  - load_path_from_inum
  - logicalfs_file_add_meta
  - find_max_inum
  - get_inum_from_directory_path
  - logicalfs_dir_open_meta
  - logicalfs_load_attrs
  - logicalfs_read_block
  - logicalfs_read
  - logicalfs_fsstat
  - logicalfs_fscheck
  - logicalfs_istat
  - logicalfs_close
  - logicalfs_jentry_walk
  - logicalfs_jblk_walk
  - logicalfs_jopen
  - logicalfs_name_cmp
  - logical_fs_check_path
  - populate_fs_name
  - tsk_logical_fs_path2inum
  - logicalfs_open
  source_file: /src/sleuthkit/tsk/fs/logical_fs.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fs_prepost_read
  - tsk_fs_read
  - tsk_fs_read_decrypt
  - tsk_fs_read_block
  - tsk_fs_read_block_decrypt
  source_file: /src/sleuthkit/tsk/fs/fs_io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - swapfs_open
  source_file: /src/sleuthkit/tsk/fs/swapfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - APFSFSCompat::date_added_cache::date_added_cache
  - '& fs_info() const noexcept'
  - '& fs_info() noexcept'
  - APFSFSCompat::date_added
  source_file: /src/sleuthkit/tsk/fs/apfs_compat.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fatxxfs_dent_parse_buf
  source_file: /src/sleuthkit/tsk/fs/fatxxfs_dent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name[FATFS_MAXNAMLEN_UTF8]
        type: uint8_t
      - name: start
        type: uint16_t
      - name: chk
        type: uint8_t
      - name: seq
        type: uint8_t
      item_type: struct
      name: FATXXFS_LFN
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/sleuthkit/tsk/fs/fatxxfs_dent.c
    typedefs: []
    union: []
- function_names:
  - iso9660_proc_dir
  - iso9660_dir_open_meta
  - iso9660_name_cmp
  source_file: /src/sleuthkit/tsk/fs/iso9660_dent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_fs_parse_inum
  source_file: /src/sleuthkit/tsk/fs/fs_parse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exfatfs_get_fs_size_params
  - exfatfs_get_fs_layout
  - exfatfs_get_alloc_bitmap
  - exfatfs_get_volume_id
  - exfatfs_setup_fs_layout_model
  - exfatfs_init_fat_cache
  - exfatfs_init_inums_map
  - exfatfs_set_func_ptrs
  - exfatfs_open
  - exfatfs_find_volume_label_dentry
  - exfatfs_fsstat_fs_info
  - exfatfs_fsstat_fs_layout_info
  - exfatfs_fsstat_fs_metadata_info
  - exfatfs_fsstat_fs_content_info
  - exfatfs_fsstat_fs_fat_chains_info
  - exfatfs_fsstat
  source_file: /src/sleuthkit/tsk/fs/exfatfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawfs_open
  source_file: /src/sleuthkit/tsk/fs/rawfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - big_tsk_getu32
  - load_sb_action
  - ext2fs_jopen
  - ext2fs_jentry_walk
  - ext2fs_jblk_walk
  source_file: /src/sleuthkit/tsk/fs/ext2fs_journal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iso9660_inode_list_free
  - parse_susp
  - iso9660_load_inodes_dir
  - iso9660_load_inodes_pt_joliet
  - iso9660_load_inodes_pt
  - iso9660_dinode_load
  - isomode2tskmode
  - iso9660_dinode_copy
  - iso9660_close
  - iso9660_inode_lookup
  - iso9660_inode_walk
  - iso9660_is_block_alloc
  - iso9660_block_getflags
  - iso9660_block_walk
  - iso9660_make_data_run
  - iso9660_fscheck
  - iso9660_fsstat
  - make_unix_perm
  - iso9660_print_rockridge
  - iso9660_istat
  - iso9660_jopen
  - iso9660_jentry_walk
  - iso9660_jblk_walk
  - iso9660_get_default_attr_type
  - load_vol_desc
  - iso9660_open
  source_file: /src/sleuthkit/tsk/fs/iso9660.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSK_FS_IS_DIR_META
  - TSK_FS_ORPHANDIR_INUM
  - TSK_FS_IS_DIR_NAME
  - TSK_FS_TYPE_ISNTFS
  - TSK_FS_TYPE_ISFAT
  - TSK_FS_TYPE_ISFFS
  - TSK_FS_TYPE_ISEXT
  - TSK_FS_TYPE_ISISO9660
  - TSK_FS_TYPE_ISHFS
  - TSK_FS_TYPE_ISSWAP
  - TSK_FS_TYPE_ISYAFFS2
  - TSK_FS_TYPE_ISAPFS
  - TSK_FS_TYPE_ISRAW
  - TSK_FS_TYPE_ISAPFS
  - TSK_FS_TYPE_ISDIR
  - TSK_FS_ISDOT
  - TskFsJEntry::TskFsJEntry
  - ~TskFsJEntry()
  - TskFsAttrRun::TskFsAttrRun
  - ~TskFsAttrRun()
  - TskFsAttrRun::getOffset
  - TskFsAttrRun::getAddr
  - TskFsAttrRun::length
  - TskFsAttrRun::getFlags
  - TskFsName::TskFsName
  - ~TskFsName()
  - TskFsName::getName
  - TskFsName::getShortName
  - TskFsName::getMetaAddr
  - TskFsName::getMetaSeq
  - TskFsName::getParentAddr
  - TskFsName::getType
  - TskFsName::getFlags
  - TskFsAttribute::TskFsAttribute
  - ~TskFsAttribute()
  - TskFsAttribute::walk
  - TskFsAttribute::read
  - TskFsAttribute::getFlags
  - TskFsAttribute::getName
  - TskFsAttribute::getType
  - TskFsAttribute::getId
  - TskFsAttribute::getSize
  - TskFsAttribute::getRun
  - TskFsAttribute::getRunCount
  - TskFsAttribute::getSkipLen
  - TskFsAttribute::getAllocSize
  - TskFsAttribute::getInitSize
  - TskFsAttribute::getCompSize
  - TskFsAttribute::getBuf
  - TskFsInfo::TskFsInfo
  - TskFsInfo::TskFsInfo
  - ~TskFsInfo()
  - TskFsInfo::read
  - TskFsInfo::readBlock
  - TskFsInfo::metaWalk
  - TskFsInfo::dirWalk
  - TskFsInfo::blockWalk
  - TskFsInfo::open
  - TskFsInfo::open
  - TskFsInfo::jopen
  - TskFsInfo::jblkWalk
  - TskFsInfo::jentryWalk
  - TskFsInfo::typeToId
  - TskFsInfo::typeToName
  - TskFsInfo::typeSupported
  - TskFsInfo::typePrint
  - TskFsInfo::path2INum
  - TskFsInfo::parseINum
  - TskFsInfo::getOffset
  - TskFsInfo::getINumCount
  - TskFsInfo::getRootINum
  - TskFsInfo::getFirstINum
  - TskFsInfo::getLastINum
  - TskFsInfo::getJournalINum
  - TskFsInfo::getBlockCount
  - TskFsInfo::getFirstBlock
  - TskFsInfo::getLastBlockAct
  - TskFsInfo::getLastBlock
  - TskFsInfo::getBlockSize
  - TskFsInfo::getDeviceSize
  - TskFsInfo::getFsType
  - TskFsInfo::getDataUnitName
  - TskFsInfo::getFlags
  - TskFsInfo::getFsId
  - TskFsInfo::getFsIdLen
  - TskFsInfo::close
  - TskFsInfo::getTskImgInfo
  - TskFsBlock::TskFsBlock
  - TskFsBlock::TskFsBlock
  - ~TskFsBlock()
  - TskFsBlock::open
  - TskFsBlock::getBuf
  - TskFsBlock::getAddr
  - TskFsBlock::getFlags
  - TskFsBlock::getFsInfo
  - TskFsMetaName::TskFsMetaName
  - TskFsMetaName::getName
  - TskFsMetaName::getParInode
  - TskFsMetaName::getParSeq
  - TskFsMeta::TskFsMeta
  - ~TskFsMeta()
  - TskFsMeta::getLs
  - TskFsMeta::getFlags
  - TskFsMeta::getAddr
  - TskFsMeta::getType
  - TskFsMeta::getMode
  - TskFsMeta::getNLink
  - TskFsMeta::getSize
  - TskFsMeta::getUid
  - TskFsMeta::getGid
  - TskFsMeta::getMTime
  - TskFsMeta::getMTimeNano
  - TskFsMeta::getATime
  - TskFsMeta::getATimeNano
  - TskFsMeta::getCTime
  - TskFsMeta::getCTimeNano
  - TskFsMeta::getCrTime
  - TskFsMeta::getCrTimeNano
  - TskFsMeta::getDTime
  - TskFsMeta::getDTimeNano
  - TskFsMeta::getBackUpTime
  - TskFsMeta::getBackUpTimeNano
  - TskFsMeta::getSeq
  - TskFsMeta::getLink
  - TskFsMeta::getName2Count
  - TskFsMeta::getName2
  - TskFsMeta::getAttr
  - TskFsFile::TskFsFile
  - TskFsFile::TskFsFile
  - ~TskFsFile()
  - TskFsFile::close
  - TskFsFile::open
  - TskFsFile::open
  - TskFsFile::getAttrSize
  - TskFsFile::getAttr
  - TskFsFile::getAttrDefault
  - TskFsFile::getAttr
  - TskFsFile::walk
  - TskFsFile::walk
  - TskFsFile::read
  - TskFsFile::read
  - TskFsFile::getName
  - TskFsFile::getMeta
  - TskFsFile::getFsInfo
  - TskFsDir::TskFsDir
  - ~TskFsDir()
  - TskFsDir::open
  - TskFsDir::open
  - TskFsDir::close
  - TskFsDir::getSize
  - TskFsDir::getFile
  - TskFsDir::getMetaAddr
  - TskFsDir::getFsFile
  - TskFsDir::getFsInfo
  source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
  types:
    enum:
    - enumerators:
      - name: TSK_FS_BLOCK_FLAG_UNUSED
        value: '0x0000'
      - name: TSK_FS_BLOCK_FLAG_META
        value: '0x0008'
      - name: TSK_FS_BLOCK_FLAG_ALLOC
        value: '0x0001'
      - name: TSK_FS_BLOCK_FLAG_UNALLOC
        value: '0x0002'
      - name: TSK_FS_BLOCK_FLAG_CONT
        value: '0x0004'
      - name: TSK_FS_BLOCK_FLAG_BAD
        value: '0x0010'
      - name: TSK_FS_BLOCK_FLAG_RAW
        value: '0x0020'
      - name: TSK_FS_BLOCK_FLAG_SPARSE
        value: '0x0040'
      - name: TSK_FS_BLOCK_FLAG_COMP
        value: '0x0080'
      - name: TSK_FS_BLOCK_FLAG_RES
        value: '0x0100'
      - name: TSK_FS_BLOCK_FLAG_AONLY
        value: '0x0200'
      item_type: enum
      name: TSK_FS_BLOCK_FLAG_ENUM
      pos:
        line_end: 79
        line_start: 67
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_BLOCK_WALK_FLAG_NONE
        value: '0x00'
      - name: TSK_FS_BLOCK_WALK_FLAG_META
        value: '0x08'
      - name: TSK_FS_BLOCK_WALK_FLAG_ALLOC
        value: '0x01'
      - name: TSK_FS_BLOCK_WALK_FLAG_CONT
        value: '0x04'
      - name: TSK_FS_BLOCK_WALK_FLAG_UNALLOC
        value: '0x02'
      - name: TSK_FS_BLOCK_WALK_FLAG_AONLY
        value: '0x10'
      item_type: enum
      name: TSK_FS_BLOCK_WALK_FLAG_ENUM
      pos:
        line_end: 93
        line_start: 86
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_META_FLAG_ALLOC
        value: '0x01'
      - name: TSK_FS_META_FLAG_UNUSED
        value: '0x08'
      - name: TSK_FS_META_FLAG_USED
        value: '0x04'
      - name: TSK_FS_META_FLAG_UNALLOC
        value: '0x02'
      - name: TSK_FS_META_FLAG_COMP
        value: '0x10'
      - name: TSK_FS_META_FLAG_ORPHAN
        value: '0x20'
      item_type: enum
      name: TSK_FS_META_FLAG_ENUM
      pos:
        line_end: 379
        line_start: 372
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_META_ATTR_EMPTY
      - name: TSK_FS_META_ATTR_STUDIED
      - name: TSK_FS_META_ATTR_ERROR
      item_type: enum
      name: TSK_FS_META_ATTR_FLAG_ENUM
      pos:
        line_end: 386
        line_start: 382
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_META_TYPE_UNDEF
        value: '0x00'
      - name: TSK_FS_META_TYPE_CHR
        value: '0x04'
      - name: TSK_FS_META_TYPE_FIFO
        value: '0x03'
      - name: TSK_FS_META_TYPE_DIR
        value: '0x02'
      - name: TSK_FS_META_TYPE_REG
        value: '0x01'
      - name: TSK_FS_META_TYPE_BLK
        value: '0x05'
      - name: TSK_FS_META_TYPE_LNK
        value: '0x06'
      - name: TSK_FS_META_TYPE_SHAD
        value: '0x07'
      - name: TSK_FS_META_TYPE_SOCK
        value: '0x08'
      - name: TSK_FS_META_TYPE_WHT
        value: '0x09'
      - name: TSK_FS_META_TYPE_VIRT
        value: '0x0a'
      - name: TSK_FS_META_TYPE_VIRT_DIR
        value: '0x0b'
      item_type: enum
      name: TSK_FS_META_TYPE_ENUM
      pos:
        line_end: 407
        line_start: 394
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_META_MODE_UNSPECIFIED
        value: '0000000'
      - name: TSK_FS_META_MODE_ISUID
        value: '0004000'
      - name: TSK_FS_META_MODE_IRUSR
        value: '0000400'
      - name: TSK_FS_META_MODE_ISGID
        value: '0002000'
      - name: TSK_FS_META_MODE_ISVTX
        value: '0001000'
      - name: TSK_FS_META_MODE_IWUSR
        value: '0000200'
      - name: TSK_FS_META_MODE_IXUSR
        value: '0000100'
      - name: TSK_FS_META_MODE_IRGRP
        value: '0000040'
      - name: TSK_FS_META_MODE_IWGRP
        value: '0000020'
      - name: TSK_FS_META_MODE_IXGRP
        value: '0000010'
      - name: TSK_FS_META_MODE_IXOTH
        value: '0000001'
      - name: TSK_FS_META_MODE_IROTH
        value: '0000004'
      - name: TSK_FS_META_MODE_IWOTH
        value: '0000002'
      item_type: enum
      name: TSK_FS_META_MODE_ENUM
      pos:
        line_end: 434
        line_start: 415
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_META_CONTENT_TYPE_DEFAULT
        value: '0x0'
      - name: TSK_FS_META_CONTENT_TYPE_EXT4_INLINE
        value: '0x02'
      - name: TSK_FS_META_CONTENT_TYPE_EXT4_EXTENTS
        value: '0x1'
      item_type: enum
      name: TSK_FS_META_CONTENT_TYPE_ENUM
      pos:
        line_end: 441
        line_start: 437
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_TYPE_LOGICAL
        value: '0x00020000'
      - name: TSK_FS_TYPE_HFS_DETECT
        value: '0x00009000'
      - name: TSK_FS_TYPE_NTFS
        value: '0x00000001'
      - name: TSK_FS_TYPE_FAT12
        value: '0x00000002'
      - name: TSK_FS_TYPE_FAT32
        value: '0x00000008'
      - name: TSK_FS_TYPE_FFS1
        value: '0x00000010'
      - name: TSK_FS_TYPE_EXT2
        value: '0x00000080'
      - name: TSK_FS_TYPE_EXT_DETECT
        value: '0x00002180'
      - name: TSK_FS_TYPE_FFS2
        value: '0x00000040'
      - name: TSK_FS_TYPE_RAW_DETECT
        value: '0x00000400'
      - name: TSK_FS_TYPE_SWAP_DETECT
        value: '0x00000200'
      - name: TSK_FS_TYPE_ISO9660_DETECT
        value: '0x00000800'
      - name: TSK_FS_TYPE_EXT4
        value: '0x00002000'
      - name: TSK_FS_TYPE_YAFFS2_DETECT
        value: '0x00004000'
      - name: TSK_FS_TYPE_APFS
        value: '0x00010000'
      - name: TSK_FS_TYPE_APFS_DETECT
        value: '0x00010000'
      - name: TSK_FS_TYPE_UNSUPP
        value: '0xffffffff'
      - name: TSK_FS_TYPE_ISO9660
        value: '0x00000800'
      - name: TSK_FS_TYPE_DETECT
        value: '0x00000000'
      - name: TSK_FS_TYPE_FAT16
        value: '0x00000004'
      - name: TSK_FS_TYPE_NTFS_DETECT
        value: '0x00000001'
      - name: TSK_FS_TYPE_EXFAT
        value: '0x0000000a'
      - name: TSK_FS_TYPE_FAT_DETECT
        value: '0x0000000e'
      - name: TSK_FS_TYPE_FFS1B
        value: '0x00000020'
      - name: TSK_FS_TYPE_RAW
        value: '0x00000400'
      - name: TSK_FS_TYPE_EXT3
        value: '0x00000100'
      - name: TSK_FS_TYPE_SWAP
        value: '0x00000200'
      - name: TSK_FS_TYPE_FFS_DETECT
        value: '0x00000070'
      - name: TSK_FS_TYPE_HFS
        value: '0x00001000'
      - name: TSK_FS_TYPE_YAFFS2
        value: '0x00004000'
      - name: TSK_FS_TYPE_HFS_LEGACY
        value: '0x00008000'
      item_type: enum
      name: TSK_FS_TYPE_ENUM
      pos:
        line_end: 825
        line_start: 793
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_INFO_FLAG_NONE
        value: '0x00'
      - name: TSK_FS_INFO_FLAG_ENCRYPTED
        value: '0x04'
      - name: TSK_FS_INFO_FLAG_HAVE_SEQ
        value: '0x01'
      - name: TSK_FS_INFO_FLAG_HAVE_NANOSEC
        value: '0x02'
      item_type: enum
      name: TSK_FS_INFO_FLAG_ENUM
      pos:
        line_end: 923
        line_start: 918
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_ISTAT_NONE
        value: '0x00'
      - name: TSK_FS_ISTAT_RUNLIST
        value: '0x01'
      item_type: enum
      name: TSK_FS_ISTAT_FLAG_ENUM
      pos:
        line_end: 929
        line_start: 926
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_ENCRYPTION_TYPE_NONE
        value: '0x00'
      - name: TSK_FS_ENCRYPTION_TYPE_BITLOCKER
        value: '0x01'
      item_type: enum
      name: TSK_FS_ENCRYPTION_TYPE_ENUM
      pos:
        line_end: 936
        line_start: 933
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_BLKCALC_DD
        value: '0x01'
      - name: TSK_FS_BLKCALC_SLACK
        value: '0x04'
      - name: TSK_FS_BLKCALC_BLKLS
        value: '0x02'
      item_type: enum
      name: TSK_FS_BLKCALC_FLAG_ENUM
      pos:
        line_end: 1098
        line_start: 1094
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_BLKCAT_NONE
        value: '0x00'
      - name: TSK_FS_BLKCAT_HEX
        value: '0x01'
      - name: TSK_FS_BLKCAT_ASCII
        value: '0x02'
      - name: TSK_FS_BLKCAT_HTML
        value: '0x04'
      - name: TSK_FS_BLKCAT_STAT
        value: '0x08'
      item_type: enum
      name: TSK_FS_BLKCAT_FLAG_ENUM
      pos:
        line_end: 1110
        line_start: 1104
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_BLKLS_NONE
        value: '0x00'
      - name: TSK_FS_BLKLS_LIST
        value: '0x02'
      - name: TSK_FS_BLKLS_CAT
        value: '0x01'
      - name: TSK_FS_BLKLS_SLACK
        value: '0x04'
      item_type: enum
      name: TSK_FS_BLKLS_FLAG_ENUM
      pos:
        line_end: 1122
        line_start: 1117
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_FFIND_ALL
        value: '0x01'
      item_type: enum
      name: TSK_FS_FFIND_FLAG_ENUM
      pos:
        line_end: 1132
        line_start: 1130
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_FLS_NONE
        value: '0x00'
      - name: TSK_FS_FLS_DOT
        value: '0x01'
      - name: TSK_FS_FLS_LONG
        value: '0x02'
      - name: TSK_FS_FLS_DIR
        value: '0x08'
      - name: TSK_FS_FLS_FILE
        value: '0x04'
      - name: TSK_FS_FLS_FULL
        value: '0x10'
      - name: TSK_FS_FLS_MAC
        value: '0x20'
      - name: TSK_FS_FLS_HASH
        value: '0x40'
      item_type: enum
      name: TSK_FS_FLS_FLAG_ENUM
      pos:
        line_end: 1149
        line_start: 1140
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_IFIND_NONE
        value: '0x00'
      - name: TSK_FS_IFIND_ALL
        value: '0x01'
      - name: TSK_FS_IFIND_PAR_LONG
        value: '0x02'
      item_type: enum
      name: TSK_FS_IFIND_FLAG_ENUM
      pos:
        line_end: 1165
        line_start: 1161
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - enumerators:
      - name: TSK_FS_ILS_NONE
        value: '0x00'
      - name: TSK_FS_ILS_OPEN
        value: '0x01'
      - name: TSK_FS_ILS_UNLINK
        value: '0x08'
      - name: TSK_FS_ILS_LINK
        value: '0x04'
      - name: TSK_FS_ILS_MAC
        value: '0x02'
      item_type: enum
      name: TSK_FS_ILS_FLAG_ENUM
      pos:
        line_end: 1181
        line_start: 1175
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    preproc_defs:
    - item_type: preproc_def
      name: TSK_FS_BLOCK_TAG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x1b7c3f4a'
    - item_type: preproc_def
      name: TSK_FS_ATTR_ID_DEFAULT
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: 0       ///< Default Data ID used if file system does not assign
        one.
    - item_type: preproc_def
      name: TSK_FS_META_NAME_LIST_NSIZE
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: TSK_FS_META_TYPE_STR_MAX
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: 0x0c   ///< Number of file types in shortname array
    - item_type: preproc_def
      name: TSK_FS_META_TAG
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x13524635'
    - item_type: preproc_def
      name: TSK_FS_ORPHAN_STR
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '"-ORPHAN_FILE-"'
    - item_type: preproc_def
      name: TSK_FS_NAME_TYPE_STR_MAX
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: 12     ///< Number of types that have a short string name
    - item_type: preproc_def
      name: TSK_FS_NAME_TAG
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x23147869'
    - item_type: preproc_def
      name: TSK_FS_DIR_TAG
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x57531246'
    - item_type: preproc_def
      name: TSK_FS_FILE_TAG
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x11212212'
    - item_type: preproc_def
      name: TSK_FS_INFO_TAG
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: '0x10101010'
    - item_type: preproc_def
      name: TSK_FS_INFO_FS_ID_LEN
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type_or_value: 32      // set based on largest file system / volume ID supported
    structs:
    - fields:
      - name: tag
        type: int
      - name: '*fs_info'
        type: TSK_FS_INFO
      - name: '*buf'
        type: char
      - name: addr
        type: TSK_DADDR_T
      - name: flags
        type: TSK_FS_BLOCK_FLAG_ENUM
      item_type: struct
      name: TSK_FS_BLOCK
      pos:
        line_end: 107
        line_start: 101
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: '*next'
        type: TSK_FS_ATTR_RUN
      - name: offset
        type: TSK_DADDR_T
      - name: addr
        type: TSK_DADDR_T
      - name: len
        type: TSK_DADDR_T
      - name: crypto_id
        type: TSK_DADDR_T
      - name: flags
        type: TSK_FS_ATTR_RUN_FLAG_ENUM
      item_type: struct
      name: TSK_FS_ATTR_RUN
      pos:
        line_end: 170
        line_start: 163
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: '*next'
        type: TSK_FS_ATTR
      - name: '*fs_file'
        type: TSK_FS_FILE
      - name: flags
        type: TSK_FS_ATTR_FLAG_ENUM
      - name: '*name'
        type: char
      - name: name_size
        type: size_t
      - name: type
        type: TSK_FS_ATTR_TYPE_ENUM
      - name: id
        type: uint16_t
      - name: size
        type: TSK_OFF_T
      - name: nrd
        type: "struct {\n            TSK_FS_ATTR_RUN *run;       ///< Linked list
          of runs for non-resident attributes\n            TSK_FS_ATTR_RUN *run_end;
          \  ///< Pointer to final run in the list\n            uint32_t skiplen;
          \  ///< Number of initial bytes in run to skip before content begins. The
          size field does not include this length.\n            TSK_OFF_T allocsize;
          \       ///< Number of bytes that are allocated in all clusters of non-resident
          run (will be larger than size - does not include skiplen).  This is defined
          when the attribute is created and used to determine slack space.\n            TSK_OFF_T
          initsize; ///< Number of bytes (starting from offset 0) that have data (including
          FILLER) saved for them (smaller then or equal to size).  This is defined
          when the attribute is created.\n            uint32_t compsize;  ///< Size
          of compression units (needed only if NTFS file is compressed)\n        }"
      - name: rd
        type: "struct {\n            uint8_t *buf;       ///< Buffer for resident
          data\n            size_t buf_size;    ///< Number of bytes allocated to
          buf\n            TSK_OFF_T offset;   ///< Starting offset in bytes relative
          to start of file system (NOT YET IMPLEMENTED)\n        }"
      - name: "(*r) (const TSK_FS_ATTR * fs_attr,\n            TSK_OFF_T a_offset,
          char *a_buf, size_t a_len)"
        type: ssize_t
      - name: "(*w) (const TSK_FS_ATTR * fs_attr,\n            int flags, TSK_FS_FILE_WALK_CB,
          void *)"
        type: uint8_t
      item_type: struct
      name: TSK_FS_ATTR
      pos:
        line_end: 322
        line_start: 283
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: '*head'
        type: TSK_FS_ATTR
      item_type: struct
      name: TSK_FS_ATTRLIST
      pos:
        line_end: 330
        line_start: 328
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: '*next'
        type: TSK_FS_META_NAME_LIST
      - name: name[TSK_FS_META_NAME_LIST_NSIZE]
        type: char
      - name: par_inode
        type: TSK_INUM_T
      - name: par_seq
        type: uint32_t
      item_type: struct
      name: TSK_FS_META_NAME_LIST
      pos:
        line_end: 363
        line_start: 358
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: tag
        type: int
      - name: flags
        type: TSK_FS_META_FLAG_ENUM
      - name: addr
        type: TSK_INUM_T
      - name: type
        type: TSK_FS_META_TYPE_ENUM
      - name: mode
        type: TSK_FS_META_MODE_ENUM
      - name: nlink
        type: int
      - name: size
        type: TSK_OFF_T
      - name: uid
        type: TSK_UID_T
      - name: gid
        type: TSK_GID_T
      - name: mtime
        type: time_t
      - name: mtime_nano
        type: uint32_t
      - name: atime
        type: time_t
      - name: atime_nano
        type: uint32_t
      - name: ctime
        type: time_t
      - name: ctime_nano
        type: uint32_t
      - name: crtime
        type: time_t
      - name: crtime_nano
        type: uint32_t
      - name: time2
        type: "union {\n            struct {\n                time_t dtime;   ///<
          Linux deletion time\n                uint32_t dtime_nano;    ///< nano-second
          resolution in addition to d_time\n            } ext2;\n            struct
          {\n                time_t bkup_time;       ///< HFS+ backup time\n                uint32_t
          bkup_time_nano;        ///< nano-second resolution in addition to bkup_time\n
          \           } hfs;\n            struct {\n                time_t fn_crtime;
          \  ///< NTFS Created time stored in FILE_NAME\n                time_t fn_crtime_nano;
          \  ///< NTFS Created time stored in FILE_NAME in nano-second resolution\n
          \               time_t fn_mtime;   ///< NTFS mod (content) stored in FILE_NAME\n
          \               time_t fn_mtime_nano;   ///< NTFS mod time stored in FILE_NAME
          in nano-second resolution\n                time_t fn_atime;   ///< NTFS
          access time stored in FILE_NAME\n                time_t fn_atime_nano;   ///<
          NTFS access time stored in FILE_NAME in nano-second resolution\n                time_t
          fn_ctime;   ///< NTFS change (MFT Entry) time stored in FILE_NAME\n                time_t
          fn_ctime_nano;   ///< NTFS change (MFT Entry) time stored in FILE_NAME in
          nano-second resolution\n                uint16_t fn_id; ///< Attribute ID
          used to populate FN times.\n            } ntfs;\n        }"
      - name: '*content_ptr'
        type: void
      - name: content_len
        type: size_t
      - name: content_type
        type: TSK_FS_META_CONTENT_TYPE_ENUM
      - name: (*reset_content)(void *)
        type: void
      - name: seq
        type: uint32_t
      - name: '*attr'
        type: TSK_FS_ATTRLIST
      - name: attr_state
        type: TSK_FS_META_ATTR_FLAG_ENUM
      - name: '*name2'
        type: TSK_FS_META_NAME_LIST
      - name: '*link'
        type: char
      item_type: struct
      name: TSK_FS_META
      pos:
        line_end: 516
        line_start: 455
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: tag
        type: int
      - name: '*name'
        type: char
      - name: name_size
        type: size_t
      - name: '*shrt_name'
        type: char
      - name: shrt_name_size
        type: size_t
      - name: meta_addr
        type: TSK_INUM_T
      - name: meta_seq
        type: uint32_t
      - name: par_addr
        type: TSK_INUM_T
      - name: par_seq
        type: uint32_t
      - name: date_added
        type: uint64_t
      - name: type
        type: TSK_FS_NAME_TYPE_ENUM
      - name: flags
        type: TSK_FS_NAME_FLAG_ENUM
      item_type: struct
      name: TSK_FS_NAME
      pos:
        line_end: 617
        line_start: 600
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: tag
        type: int
      - name: '*fs_file'
        type: TSK_FS_FILE
      - name: '*names'
        type: TSK_FS_NAME
      - name: names_used
        type: size_t
      - name: names_alloc
        type: size_t
      - name: addr
        type: TSK_INUM_T
      - name: seq
        type: uint32_t
      - name: '*fs_info'
        type: TSK_FS_INFO
      item_type: struct
      name: TSK_FS_DIR
      pos:
        line_end: 649
        line_start: 636
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: tag
        type: int
      - name: '*name'
        type: TSK_FS_NAME
      - name: '*meta'
        type: TSK_FS_META
      - name: '*fs_info'
        type: TSK_FS_INFO
      item_type: struct
      name: TSK_FS_FILE
      pos:
        line_end: 701
        line_start: 694
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: flags
        type: TSK_BASE_HASH_ENUM
      - name: md5_digest[16]
        type: unsigned char
      - name: sha1_digest[20]
        type: unsigned char
      item_type: struct
      name: TSK_FS_HASH_RESULTS
      pos:
        line_end: 750
        line_start: 746
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: jblk
        type: TSK_DADDR_T
      - name: fsblk
        type: TSK_DADDR_T
      item_type: struct
      name: TSK_FS_JENTRY
      pos:
        line_end: 765
        line_start: 762
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: tag
        type: int
      - name: inum_count
        type: TSK_INUM_T
      - name: root_inum
        type: TSK_INUM_T
      - name: first_inum
        type: TSK_INUM_T
      - name: last_inum
        type: TSK_INUM_T
      - name: block_count
        type: TSK_DADDR_T
      - name: first_block
        type: TSK_DADDR_T
      - name: last_block
        type: TSK_DADDR_T
      - name: last_block_act
        type: TSK_DADDR_T
      - name: block_size
        type: unsigned int
      - name: dev_bsize
        type: unsigned int
      - name: block_pre_size
        type: unsigned int
      - name: block_post_size
        type: unsigned int
      - name: journ_inum
        type: TSK_INUM_T
      - name: ftype
        type: TSK_FS_TYPE_ENUM
      - name: '*duname'
        type: char
      - name: flags
        type: TSK_FS_INFO_FLAG_ENUM
      - name: fs_id[TSK_FS_INFO_FS_ID_LEN]
        type: uint8_t
      - name: fs_id_used
        type: size_t
      - name: endian
        type: TSK_ENDIAN_ENUM
      - name: list_inum_named_lock
        type: tsk_lock_t
      - name: '*list_inum_named'
        type: TSK_LIST
      - name: encryption_type
        type: TSK_FS_ENCRYPTION_TYPE_ENUM
      - name: '* encryption_data'
        type: void
      - name: orphan_dir_lock
        type: tsk_lock_t
      - name: '*orphan_dir'
        type: TSK_FS_DIR
      - name: (*block_walk) (TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T end,
          TSK_FS_BLOCK_WALK_FLAG_ENUM flags, TSK_FS_BLOCK_WALK_CB cb, void *ptr)
        type: uint8_t
      - name: (*block_getflags) (TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr)
        type: TSK_FS_BLOCK_FLAG_ENUM
      - name: (*inode_walk) (TSK_FS_INFO * fs, TSK_INUM_T start, TSK_INUM_T end, TSK_FS_META_FLAG_ENUM
          flags, TSK_FS_META_WALK_CB cb, void *ptr)
        type: uint8_t
      - name: (*file_add_meta) (TSK_FS_INFO * fs, TSK_FS_FILE * fs_file, TSK_INUM_T
          addr)
        type: uint8_t
      - name: (*get_default_attr_type) (const TSK_FS_FILE *)
        type: TSK_FS_ATTR_TYPE_ENUM
      - name: (*load_attrs) (TSK_FS_FILE *)
        type: uint8_t
      - name: (*decrypt_block)(TSK_FS_INFO * fs, TSK_DADDR_T start, void * data)
        type: uint8_t
      - name: "(*istat) (TSK_FS_INFO * fs, TSK_FS_ISTAT_FLAG_ENUM flags, FILE * hFile,
          TSK_INUM_T inum,\n            TSK_DADDR_T numblock, int32_t sec_skew)"
        type: uint8_t
      - name: (*dir_open_meta) (TSK_FS_INFO * fs, TSK_FS_DIR ** a_fs_dir, TSK_INUM_T
          inode, int recursion_depth)
        type: TSK_RETVAL_ENUM
      - name: (*jopen) (TSK_FS_INFO *, TSK_INUM_T)
        type: uint8_t
      - name: (*jblk_walk) (TSK_FS_INFO *, TSK_DADDR_T, TSK_DADDR_T, int, TSK_FS_JBLK_WALK_CB,
          void *)
        type: uint8_t
      - name: (*jentry_walk) (TSK_FS_INFO *, int, TSK_FS_JENTRY_WALK_CB, void *)
        type: uint8_t
      - name: (*fsstat) (TSK_FS_INFO * fs, FILE * hFile)
        type: uint8_t
      - name: (*name_cmp) (TSK_FS_INFO *, const char *, const char *)
        type: int
      - name: (*fscheck) (TSK_FS_INFO *, FILE *)
        type: uint8_t
      - name: (*close) (TSK_FS_INFO * fs)
        type: void
      - name: (*fread_owner_sid) (TSK_FS_FILE *, char **)
        type: uint8_t
      - name: '* impl'
        type: void
      item_type: struct
      name: TSK_FS_INFO
      pos:
        line_end: 1056
        line_start: 951
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_FILE_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_FILE_WALK_CPP_DATA
      pos:
        line_end: 1417
        line_start: 1414
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_BLOCK_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_BLOCK_WALK_CPP_DATA
      pos:
        line_end: 1661
        line_start: 1658
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_JBLK_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_JBLK_WALK_CPP_DATA
      pos:
        line_end: 1686
        line_start: 1683
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_JENTRY_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_JENTRY_WALK_CPP_DATA
      pos:
        line_end: 1712
        line_start: 1709
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_META_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_META_WALK_CPP_DATA
      pos:
        line_end: 1734
        line_start: 1731
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    - fields:
      - name: cppAction
        type: TSK_FS_DIR_WALK_CPP_CB
      - name: '*cPtr'
        type: void
      item_type: struct
      name: TSK_FS_DIR_WALK_CPP_DATA
      pos:
        line_end: 1758
        line_start: 1755
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
    typedefs:
    - item_type: typedef
      name: TSK_FS_INFO
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_INFO
    - item_type: typedef
      name: TSK_FS_FILE
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_FILE
    - item_type: typedef
      name: TSK_POOL_INFO
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: _TSK_POOL_INFO
    - item_type: typedef
      name: TSK_FS_BLOCK_FLAG_ENUM
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_BLOCK_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_BLOCK_WALK_FLAG_ENUM
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_BLOCK_WALK_FLAG_ENUM
    - item_type: typedef
      name: "(*TSK_FS_BLOCK_WALK_CB) (const TSK_FS_BLOCK *\n        a_block, void
        *a_ptr)"
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: TSK_FS_ATTR_RUN
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_ATTR_RUN
    - item_type: typedef
      name: "(*TSK_FS_FILE_WALK_CB) (TSK_FS_FILE *\n        a_fs_file, TSK_OFF_T a_off,
        TSK_DADDR_T a_addr, char *a_buf,\n        size_t a_len, TSK_FS_BLOCK_FLAG_ENUM
        a_flags, void *a_ptr)"
      pos:
        line_end: 203
        line_start: 201
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: TSK_FS_ATTR
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_ATTR
    - item_type: typedef
      name: TSK_FS_META_NAME_LIST
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_META_NAME_LIST
    - item_type: typedef
      name: TSK_FS_META_FLAG_ENUM
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_META_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_META_ATTR_FLAG_ENUM
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_META_ATTR_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_META_TYPE_ENUM
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_META_TYPE_ENUM
    - item_type: typedef
      name: TSK_FS_META_MODE_ENUM
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_META_MODE_ENUM
    - item_type: typedef
      name: "(*TSK_FS_META_WALK_CB) (TSK_FS_FILE *\n        a_fs_file, void *a_ptr)"
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_DIR_WALK_CB) (TSK_FS_FILE *\n        a_fs_file, const char *a_path,
        void *a_ptr)"
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_JBLK_WALK_CB) (TSK_FS_INFO *, char *,\n        int, void *)"
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_JENTRY_WALK_CB) (TSK_FS_INFO *,\n        TSK_FS_JENTRY *, int,
        void *)"
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: TSK_FS_TYPE_ENUM
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_TYPE_ENUM
    - item_type: typedef
      name: TSK_FS_INFO_FLAG_ENUM
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_INFO_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_ISTAT_FLAG_ENUM
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_ISTAT_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_ENCRYPTION_TYPE_ENUM
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_ENCRYPTION_TYPE_ENUM
    - item_type: typedef
      name: TSK_FS_BLKCALC_FLAG_ENUM
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_BLKCALC_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_BLKCAT_FLAG_ENUM
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_BLKCAT_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_BLKLS_FLAG_ENUM
      pos:
        line_end: 1123
        line_start: 1123
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_BLKLS_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_FFIND_FLAG_ENUM
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_FFIND_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_FLS_FLAG_ENUM
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_FLS_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_IFIND_FLAG_ENUM
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_IFIND_FLAG_ENUM
    - item_type: typedef
      name: TSK_FS_ILS_FLAG_ENUM
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_FS_ILS_FLAG_ENUM
    - item_type: typedef
      name: "(*TSK_FS_FILE_WALK_CPP_CB) (TskFsFile *\n    a_fs_file, TSK_OFF_T a_off,
        TSK_DADDR_T a_addr, char *a_buf,\n    size_t a_len, TSK_FS_BLOCK_FLAG_ENUM
        a_flags, void *a_ptr)"
      pos:
        line_end: 1409
        line_start: 1407
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_BLOCK_WALK_CPP_CB) (const TskFsBlock *\n    a_block, void *a_ptr)"
      pos:
        line_end: 1652
        line_start: 1651
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_JBLK_WALK_CPP_CB) (TskFsInfo * a_fsInfo,\n    char *a_string,
        int a_num, void *a_ptr)"
      pos:
        line_end: 1678
        line_start: 1677
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_JENTRY_WALK_CPP_CB) (TskFsInfo *\n    a_fsInfo, TskFsJEntry
        * a_jentry, int a_num, void *a_ptr)"
      pos:
        line_end: 1704
        line_start: 1703
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_META_WALK_CPP_CB) (TskFsFile *\n    a_fs_file, void *a_ptr)"
      pos:
        line_end: 1727
        line_start: 1726
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: "(*TSK_FS_DIR_WALK_CPP_CB) (TskFsFile *\n    a_fs_file, const char *a_path,
        void *a_ptr)"
      pos:
        line_end: 1750
        line_start: 1749
        source_file: /src/sleuthkit/tsk/fs/tsk_fs.h
      type: TSK_WALK_RET_ENUM
    union: []
- function_names:
  - fatfs_get_default_attr_type
  - fatfs_make_root
  - fatfs_make_mbr
  - fatfs_make_fat
  - fatfs_dentry_load
  - fatfs_inode_lookup
  - fatfs_make_data_runs
  - print_addr_act
  - fatfs_istat
  - inode_walk_file_act
  - inode_walk_dent_act
  - fatfs_inode_walk
  source_file: /src/sleuthkit/tsk/fs/fatfs_meta.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      - name: istat_seen
        type: int
      item_type: struct
      name: FATFS_PRINT_ADDR
      pos:
        line_end: 882
        line_start: 878
        source_file: /src/sleuthkit/tsk/fs/fatfs_meta.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_nofs_fsstat
  - tsk_fs_nofs_get_default_attr_type
  - tsk_fs_nofs_make_data_run
  - tsk_fs_nofs_close
  - tsk_fs_nofs_block_getflags
  - tsk_fs_nofs_block_walk
  - tsk_fs_nofs_inode_walk
  - tsk_fs_nofs_file_add_meta
  - tsk_fs_nofs_istat
  - tsk_fs_nofs_dir_open_meta
  - tsk_fs_nofs_jopen
  - tsk_fs_nofs_jentry_walk
  - tsk_fs_nofs_jblk_walk
  - tsk_fs_nofs_name_cmp
  source_file: /src/sleuthkit/tsk/fs/nofs_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name[0x80]
        type: char
      - name: uuid[16]
        type: char
      - name: password_hint[0x100]
        type: char
      - name: formatted_by[0x20]
        type: char
      - name: apsb_block_num
        type: apfs_block_num
      - name: apsb_oid
        type: uint64_t
      - name: apsb_xid
        type: uint64_t
      - name: capacity_consumed
        type: uint64_t
      - name: capacity_reserved
        type: uint64_t
      - name: capacity_quota
        type: uint64_t
      - name: created
        type: uint64_t
      - name: changed
        type: uint64_t
      - name: unmount_logs[8]
        type: "struct {\n    char kext_ver_str[0x20];\n    uint64_t timestamp;\n    uint64_t
          last_xid;\n  }"
      - name: role
        type: APFS_VOLUME_ROLE
      - name: case_sensitive
        type: char
      - name: encrypted
        type: char
      item_type: struct
      name: apfs_fsstat_info
      pos:
        line_end: 45
        line_start: 24
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
    - fields:
      - name: date_added
        type: uint64_t
      - name: cloned_inum
        type: uint64_t
      - name: bsdflags
        type: uint32_t
      item_type: struct
      name: apfs_istat_info
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
    - fields:
      - name: snap_xid
        type: uint64_t
      - name: timestamp
        type: uint64_t
      - name: '*name'
        type: char
      - name: dataless
        type: int
      item_type: struct
      name: apfs_snapshot
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
    - fields:
      - name: num_snapshots
        type: size_t
      - name: _reserved
        type: int
      - name: snapshots[0]
        type: apfs_snapshot
      item_type: struct
      name: apfs_snapshot_list
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
    typedefs:
    - item_type: typedef
      name: TSK_FS_INFO
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
      type: TSK_FS_INFO
    - item_type: typedef
      name: TSK_FS_FILE
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.h
      type: TSK_FS_FILE
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: ((unsigned char)1)
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: ((unsigned char)0)
    - item_type: preproc_def
      name: HFS_FILE_CONTENT_LEN
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '160        '
    - item_type: preproc_def
      name: HFS_MAXNAMLEN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '765     '
    - item_type: preproc_def
      name: HFS_MAXPATHLEN
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1024     '
    - item_type: preproc_def
      name: NSEC_BTWN_1904_1970
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: (uint32_t) 2082844800U
    - item_type: preproc_def
      name: HFS_FS_ATTR_ID_DATA
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HFS_FS_ATTR_ID_RSRC
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HFS_ROOT_PARENT_ID
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HFS_ROOT_FOLDER_ID
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HFS_EXTENTS_FILE_ID
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 3    // extents overflow file
    - item_type: preproc_def
      name: HFS_EXTENTS_FILE_NAME
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$ExtentsFile"'
    - item_type: preproc_def
      name: HFS_CATALOG_FILE_ID
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 4    // catalog file
    - item_type: preproc_def
      name: HFS_CATALOG_FILE_NAME
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$CatalogFile"'
    - item_type: preproc_def
      name: HFS_BAD_BLOCK_FILE_ID
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HFS_BAD_BLOCK_FILE_NAME
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$BadBlockFile"'
    - item_type: preproc_def
      name: HFS_ALLOCATION_FILE_ID
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 6    // allocation file (HFS+)
    - item_type: preproc_def
      name: HFS_ALLOCATION_FILE_NAME
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$AllocationFile"'
    - item_type: preproc_def
      name: HFS_STARTUP_FILE_ID
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 7    // startup file (HFS+)
    - item_type: preproc_def
      name: HFS_STARTUP_FILE_NAME
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$StartupFile"'
    - item_type: preproc_def
      name: HFS_ATTRIBUTES_FILE_ID
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 8    // Attributes file (HFS+)
    - item_type: preproc_def
      name: HFS_ATTRIBUTES_FILE_NAME
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$AttributesFile"'
    - item_type: preproc_def
      name: HFS_REPAIR_CATALOG_FILE_ID
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 14   // Temp file during fsck
    - item_type: preproc_def
      name: HFS_REPAIR_CATALOG_FILE_NAME
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$RepairCatalogFile"'
    - item_type: preproc_def
      name: HFS_BOGUS_EXTENT_FILE_ID
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 15   // Temp file during fsck
    - item_type: preproc_def
      name: HFS_BOGUS_EXTENT_FILE_NAME
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$BogusExtentFile"'
    - item_type: preproc_def
      name: HFS_FIRST_USER_CNID
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HFS_ROOT_INUM
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: HFS_ROOT_FOLDER_ID
    - item_type: preproc_def
      name: HFS_HARDLINK_FILE_TYPE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x686C6E6B       '
    - item_type: preproc_def
      name: HFS_HARDLINK_FILE_CREATOR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x6866732B    '
    - item_type: preproc_def
      name: HFS_LINKDIR_FILE_TYPE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x66647270        '
    - item_type: preproc_def
      name: HFS_LINKDIR_FILE_CREATOR
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x4D414353     '
    - item_type: preproc_def
      name: UTF16_NULL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: UTF16_NULL_REPLACE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x005e'
    - item_type: preproc_def
      name: UTF16_SLASH
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x002f'
    - item_type: preproc_def
      name: UTF16_COLON
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x003a'
    - item_type: preproc_def
      name: UTF16_LEAST_PRINTABLE
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: UTF8_NULL_REPLACE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"^"'
    - item_type: preproc_def
      name: HFS_CATALOGNAME
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$CatalogFile"'
    - item_type: preproc_def
      name: HFS_EXTENTSNAME
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$ExtentsFile"'
    - item_type: preproc_def
      name: HFS_ALLOCATIONNAME
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$BitMapFile"'
    - item_type: preproc_def
      name: HFS_STARTUPNAME
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$BootFile"'
    - item_type: preproc_def
      name: HFS_ATTRIBUTESNAME
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '"$AttributesFile"'
    - item_type: preproc_def
      name: HFS_ATTR_NODE_LEAF
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: HFS_ATTR_NODE_HEADER
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HFS_ATTR_NODE_INDEX
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HFS_ATTR_NODE_MAP
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HFS_PERM_AFLAG_ARCHIVED
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: HFS_PERM_AFLAG_IMMUTABLE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: HFS_PERM_AFLAG_APPEND
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: HFS_PERM_OFLAG_NODUMP
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: HFS_PERM_OFLAG_IMMUTABLE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: HFS_PERM_OFLAG_APPEND
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: HFS_PERM_OFLAG_OPAQUE
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: HFS_PERM_OFLAG_COMPRESSED
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x20  '
    - item_type: preproc_def
      name: HFS_IN_ISUID
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0004000  '
    - item_type: preproc_def
      name: HFS_IN_ISGID
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0002000  '
    - item_type: preproc_def
      name: HFS_IN_ISVTX
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0001000  '
    - item_type: preproc_def
      name: HFS_IN_IRUSR
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000400  '
    - item_type: preproc_def
      name: HFS_IN_IWUSR
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000200  '
    - item_type: preproc_def
      name: HFS_IN_IXUSR
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000100  '
    - item_type: preproc_def
      name: HFS_IN_IRGRP
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000040  '
    - item_type: preproc_def
      name: HFS_IN_IWGRP
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000020  '
    - item_type: preproc_def
      name: HFS_IN_IXGRP
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000010  '
    - item_type: preproc_def
      name: HFS_IN_IROTH
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000004  '
    - item_type: preproc_def
      name: HFS_IN_IWOTH
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000002  '
    - item_type: preproc_def
      name: HFS_IN_IXOTH
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0000001  '
    - item_type: preproc_def
      name: HFS_IN_IFMT
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0170000  '
    - item_type: preproc_def
      name: HFS_IN_IFIFO
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0010000  '
    - item_type: preproc_def
      name: HFS_IN_IFCHR
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0020000  '
    - item_type: preproc_def
      name: HFS_IN_IFDIR
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0040000  '
    - item_type: preproc_def
      name: HFS_IN_IFBLK
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0060000  '
    - item_type: preproc_def
      name: HFS_IN_IFREG
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0100000  '
    - item_type: preproc_def
      name: HFS_IN_IFLNK
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0120000  '
    - item_type: preproc_def
      name: HFS_IN_IFSOCK
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0140000  '
    - item_type: preproc_def
      name: HFS_IFWHT
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0160000  '
    - item_type: preproc_def
      name: HFS_IFXATTR
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0200000  '
    - item_type: preproc_def
      name: HFS_VH_OFF
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 1024    // byte offset in volume to volume header
    - item_type: preproc_def
      name: HFS_VH_SIG_HFS
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x4244      '
    - item_type: preproc_def
      name: HFS_VH_SIG_HFSPLUS
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x482b  '
    - item_type: preproc_def
      name: HFS_VH_SIG_HFSX
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x4858     '
    - item_type: preproc_def
      name: HFS_VH_VER_HFSPLUS
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0004       '
    - item_type: preproc_def
      name: HFS_VH_VER_HFSX
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0005       '
    - item_type: preproc_def
      name: HFS_VH_ATTR_UNMOUNTED
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1<<8)    '
    - item_type: preproc_def
      name: HFS_VH_ATTR_BADBLOCKS
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1<<9)    '
    - item_type: preproc_def
      name: HFS_VH_ATTR_NOCACHE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1<<10)   '
    - item_type: preproc_def
      name: HFS_VH_ATTR_INCONSISTENT
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1<<11)       '
    - item_type: preproc_def
      name: HFS_VH_ATTR_CNIDS_REUSED
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1<<12)   '
    - item_type: preproc_def
      name: HFS_VH_ATTR_JOURNALED
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: (uint32_t)(1<<13)
    - item_type: preproc_def
      name: HFS_VH_ATTR_SOFTWARE_LOCK
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '(uint32_t)(1 << 15)     '
    - item_type: preproc_def
      name: HFS_VH_MVER_HFSPLUS
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x31302e30  '
    - item_type: preproc_def
      name: HFS_VH_MVER_HFSJ
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x4846534a  '
    - item_type: preproc_def
      name: HFS_VH_MVER_FSK
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x46534b21  '
    - item_type: preproc_def
      name: HFS_VH_MVER_FSCK
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x6673636b  '
    - item_type: preproc_def
      name: HFS_VH_MVER_OS89
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x382e3130  '
    - item_type: preproc_def
      name: HFS_VH_FI_BOOT
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: HFS_VH_FI_START
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: HFS_VH_FI_OPEN
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: HFS_VH_FI_BOOT9
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '3       '
    - item_type: preproc_def
      name: HFS_VH_FI_RESV1
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HFS_VH_FI_BOOTX
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '5       '
    - item_type: preproc_def
      name: HFS_VH_FI_ID1
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '6       '
    - item_type: preproc_def
      name: HFS_VH_FI_ID2
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '7       '
    - item_type: preproc_def
      name: HFS_U16U8_FLAG_REPLACE_SLASH
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HFS_U16U8_FLAG_REPLACE_CONTROL
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: HFS_BT_NODE_TYPE_LEAF
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: HFS_BT_NODE_TYPE_IDX
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HFS_BT_NODE_TYPE_HEAD
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HFS_BT_NODE_TYPE_MAP
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HFS_BT_HEAD_TYPE_CNTL
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0       // control file (catalog, extents, attributes)
    - item_type: preproc_def
      name: HFS_BT_HEAD_TYPE_USER
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 128     // hot file
    - item_type: preproc_def
      name: HFS_BT_HEAD_TYPE_RSV
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: HFS_BT_HEAD_COMP_SENS
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0xBC   // case sensitive
    - item_type: preproc_def
      name: HFS_BT_HEAD_COMP_INSENS
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0xC7 // case insensitive
    - item_type: preproc_def
      name: HFS_BT_HEAD_ATTR_BIGKEYS
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x00000002     '
    - item_type: preproc_def
      name: HFS_BT_HEAD_ATTR_VARIDXKEYS
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: HFS_EXT_KEY_TYPE_DATA
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0x00    // extents key is for data fork
    - item_type: preproc_def
      name: HFS_EXT_KEY_TYPE_RSRC
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0xFF    // extents key is for resource fork
    - item_type: preproc_def
      name: HFS_MAX_ATTR_NAME_LEN_UTF8_B
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '508'
    - item_type: preproc_def
      name: HFS_MAX_ATTR_NAME_LEN_UTF16_B
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '254'
    - item_type: preproc_def
      name: HFS_ATTR_RECORD_INLINE_DATA
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: HFS_ATTR_RECORD_FORK_DATA
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: HFS_ATTR_RECORD_EXTENTS
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_COLOR_MASK
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x000E'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_IS_STATIONARY
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_HAS_CUSTOM_ICON
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_NAME_LOCKED
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_HAS_BUNDLE
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_IS_INVISIBLE
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: HFS_FINDER_FLAG_IS_ALIAS
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: HFS_FINDER_EXTFLAG_HAS_ROUTING_INFO
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: HFS_FINDER_EXTFLAG_HAS_CUSTOM_BADGE
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: HFS_FINDER_EXTFLAG_HAS_FLAGS
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: HFS_FOLDER_RECORD
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: HFS_FILE_RECORD
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 0X0002
    - item_type: preproc_def
      name: HFS_FOLDER_THREAD
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: HFS_FILE_THREAD
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: HFS_FILE_FLAG_LOCKED
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0001     '
    - item_type: preproc_def
      name: HFS_FILE_FLAG_THREAD
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0002     '
    - item_type: preproc_def
      name: HFS_FILE_FLAG_ATTR
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0004     '
    - item_type: preproc_def
      name: HFS_FILE_FLAG_ACL
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '0x0008     '
    - item_type: preproc_def
      name: HFS_BTREE_CB_IDX_LT
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 1       // current key is less than target (keeps looking in
        node)
    - item_type: preproc_def
      name: HFS_BTREE_CB_IDX_EQGT
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 2       // current key is equal or greater than target (stops)
    - item_type: preproc_def
      name: HFS_BTREE_CB_LEAF_GO
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 3       // keep on going to the next key in the leaf node
    - item_type: preproc_def
      name: HFS_BTREE_CB_LEAF_STOP
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: 4       // stop processing keys in the leaf node
    - item_type: preproc_def
      name: HFS_BTREE_CB_ERR
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type_or_value: '5'
    structs:
    - fields:
      - name: length[2]
        type: uint8_t
      - name: unicode[510]
        type: uint8_t
      item_type: struct
      name: hfs_uni_str
      pos:
        line_end: 186
        line_start: 183
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: owner[4]
        type: uint8_t
      - name: group[4]
        type: uint8_t
      - name: a_flags
        type: uint8_t
      - name: o_flags
        type: uint8_t
      - name: mode[2]
        type: uint8_t
      - name: special
        type: "union {\n        uint8_t inum[4];        /* inode number (for hard
          link files) */\n        uint8_t nlink[4];       /* link count (for direct
          node files) */\n        uint8_t raw[4];         /* device id (for block
          and char device files) */\n    }"
      item_type: struct
      name: hfs_access_perm
      pos:
        line_end: 238
        line_start: 227
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: start_blk[4]
        type: uint8_t
      - name: blk_cnt[4]
        type: uint8_t
      item_type: struct
      name: hfs_ext_desc
      pos:
        line_end: 247
        line_start: 244
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: extents[8]
        type: hfs_ext_desc
      item_type: struct
      name: hfs_extents
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: logic_sz[8]
        type: uint8_t
      - name: clmp_sz[4]
        type: uint8_t
      - name: total_blk[4]
        type: uint8_t
      - name: extents[8]
        type: hfs_ext_desc
      item_type: struct
      name: hfs_fork
      pos:
        line_end: 261
        line_start: 255
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: signature[2]
        type: uint8_t
      - name: version[2]
        type: uint8_t
      - name: attr[4]
        type: uint8_t
      - name: last_mnt_ver[4]
        type: uint8_t
      - name: jinfo_blk[4]
        type: uint8_t
      - name: cr_date[4]
        type: uint8_t
      - name: m_date[4]
        type: uint8_t
      - name: bkup_date[4]
        type: uint8_t
      - name: chk_date[4]
        type: uint8_t
      - name: file_cnt[4]
        type: uint8_t
      - name: fldr_cnt[4]
        type: uint8_t
      - name: blk_sz[4]
        type: uint8_t
      - name: blk_cnt[4]
        type: uint8_t
      - name: free_blks[4]
        type: uint8_t
      - name: next_alloc[4]
        type: uint8_t
      - name: rsrc_clmp_sz[4]
        type: uint8_t
      - name: data_clmp_sz[4]
        type: uint8_t
      - name: next_cat_id[4]
        type: uint8_t
      - name: write_cnt[4]
        type: uint8_t
      - name: enc_bmp[8]
        type: uint8_t
      - name: finder_info[8][4]
        type: uint8_t
      - name: alloc_file
        type: hfs_fork
      - name: ext_file
        type: hfs_fork
      - name: cat_file
        type: hfs_fork
      - name: attr_file
        type: hfs_fork
      - name: start_file
        type: hfs_fork
      item_type: struct
      name: hfs_plus_vh
      pos:
        line_end: 356
        line_start: 322
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: drSigWord[2]
        type: uint8_t
      - name: drCrDate[4]
        type: uint8_t
      - name: drLsMod[4]
        type: uint8_t
      - name: drAtrb[2]
        type: uint8_t
      - name: drNmFls[2]
        type: uint8_t
      - name: drVBMSt[2]
        type: uint8_t
      - name: drAllocPtr[2]
        type: uint8_t
      - name: drNmAlBlks[2]
        type: uint8_t
      - name: drAlBlkSiz[4]
        type: uint8_t
      - name: drClpSiz[4]
        type: uint8_t
      - name: drAlBlSt[2]
        type: uint8_t
      - name: drNxtCNID[4]
        type: uint8_t
      - name: drFreeBlks[2]
        type: uint8_t
      - name: drVN[28]
        type: uint8_t
      - name: drVolBkUp[4]
        type: uint8_t
      - name: drVSeqNum[2]
        type: uint8_t
      - name: drWrCnt[4]
        type: uint8_t
      - name: drXTClpSiz[4]
        type: uint8_t
      - name: drCTClpSiz[4]
        type: uint8_t
      - name: drNmRtDirs[2]
        type: uint8_t
      - name: drFilCnt[4]
        type: uint8_t
      - name: drDirCnt[4]
        type: uint8_t
      - name: drFndrInfo[32]
        type: uint8_t
      - name: drEmbedSigWord[2]
        type: uint8_t
      - name: drEmbedExtent_startBlock[2]
        type: uint8_t
      - name: drEmbedExtent_blockCount[2]
        type: uint8_t
      - name: drXTFlSize[4]
        type: uint8_t
      - name: drXTExtRec[12]
        type: uint8_t
      - name: drCTFlSize[4]
        type: uint8_t
      - name: drCTExtRec[12]
        type: uint8_t
      item_type: struct
      name: hfs_mdb
      pos:
        line_end: 392
        line_start: 361
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: flink[4]
        type: uint8_t
      - name: blink[4]
        type: uint8_t
      - name: type
        type: int8_t
      - name: height
        type: uint8_t
      - name: num_rec[2]
        type: uint8_t
      - name: res[2]
        type: uint8_t
      item_type: struct
      name: hfs_btree_node
      pos:
        line_end: 413
        line_start: 406
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: depth[2]
        type: uint8_t
      - name: rootNode[4]
        type: uint8_t
      - name: leafRecords[4]
        type: uint8_t
      - name: firstLeafNode[4]
        type: uint8_t
      - name: lastLeafNode[4]
        type: uint8_t
      - name: nodesize[2]
        type: uint8_t
      - name: maxKeyLen[2]
        type: uint8_t
      - name: totalNodes[4]
        type: uint8_t
      - name: freeNodes[4]
        type: uint8_t
      - name: res[2]
        type: uint8_t
      - name: clumpSize[4]
        type: uint8_t
      - name: type
        type: uint8_t
      - name: compType
        type: uint8_t
      - name: attr[4]
        type: uint8_t
      - name: res2[64]
        type: uint8_t
      item_type: struct
      name: hfs_btree_header_record
      pos:
        line_end: 448
        line_start: 432
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: key_len[2]
        type: uint8_t
      - name: parent_cnid[4]
        type: uint8_t
      - name: name
        type: hfs_uni_str
      item_type: struct
      name: hfs_btree_key_cat
      pos:
        line_end: 455
        line_start: 451
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: key_len[2]
        type: uint8_t
      - name: fork_type
        type: uint8_t
      - name: pad
        type: uint8_t
      - name: file_id[4]
        type: uint8_t
      - name: start_block[4]
        type: uint8_t
      item_type: struct
      name: hfs_btree_key_ext
      pos:
        line_end: 468
        line_start: 462
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: childNode[4]
        type: uint8_t
      item_type: struct
      name: hfs_btree_index_record
      pos:
        line_end: 473
        line_start: 471
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: key_len[2]
        type: uint8_t
      - name: pad[2]
        type: uint8_t
      - name: file_id[4]
        type: uint8_t
      - name: start_block[4]
        type: uint8_t
      - name: attr_name_len[2]
        type: uint8_t
      - name: attr_name[HFS_MAX_ATTR_NAME_LEN_UTF16_B]
        type: uint8_t
      item_type: struct
      name: hfs_btree_key_attr
      pos:
        line_end: 492
        line_start: 485
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: record_type[4]
        type: uint8_t
      - name: reserved[8]
        type: uint8_t
      - name: attr_size[4]
        type: uint8_t
      - name: attr_data[2]
        type: uint8_t
      item_type: struct
      name: hfs_attr_data
      pos:
        line_end: 499
        line_start: 494
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: v[2]
        type: int8_t
      - name: h[2]
        type: int8_t
      item_type: struct
      name: hfs_point
      pos:
        line_end: 516
        line_start: 513
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: file_type[4]
        type: uint8_t
      - name: file_cr[4]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: loc
        type: hfs_point
      - name: res[2]
        type: uint8_t
      item_type: struct
      name: hfs_fileinfo
      pos:
        line_end: 533
        line_start: 527
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: res1[8]
        type: uint8_t
      - name: extflags[2]
        type: uint8_t
      - name: res2[2]
        type: uint8_t
      - name: folderid[4]
        type: uint8_t
      item_type: struct
      name: hfs_extendedfileinfo
      pos:
        line_end: 544
        line_start: 539
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: rec_type[2]
        type: uint8_t
      - name: flags[2]
        type: uint8_t
      - name: valence[4]
        type: uint8_t
      - name: cnid[4]
        type: uint8_t
      - name: crtime[4]
        type: uint8_t
      - name: cmtime[4]
        type: uint8_t
      - name: amtime[4]
        type: uint8_t
      - name: atime[4]
        type: uint8_t
      - name: bkup_date[4]
        type: uint8_t
      - name: perm
        type: hfs_access_perm
      - name: u_info
        type: hfs_fileinfo
      - name: f_info
        type: hfs_extendedfileinfo
      - name: text_enc[4]
        type: uint8_t
      - name: res2[4]
        type: uint8_t
      item_type: struct
      name: hfs_file_fold_std
      pos:
        line_end: 571
        line_start: 556
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: std
        type: hfs_file_fold_std
      item_type: struct
      name: hfs_folder
      pos:
        line_end: 576
        line_start: 574
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: std
        type: hfs_file_fold_std
      - name: data
        type: hfs_fork
      - name: resource
        type: hfs_fork
      item_type: struct
      name: hfs_file
      pos:
        line_end: 591
        line_start: 587
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: rec_type[2]
        type: uint8_t
      - name: res[2]
        type: uint8_t
      - name: parent_cnid[4]
        type: uint8_t
      - name: name
        type: hfs_uni_str
      item_type: struct
      name: hfs_thread
      pos:
        line_end: 599
        line_start: 594
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: '*fs'
        type: hfs_plus_vh
      - name: is_case_sensitive
        type: char
      - name: lock
        type: tsk_lock_t
      - name: '*blockmap_file'
        type: TSK_FS_FILE
      - name: '*blockmap_attr'
        type: TSK_FS_ATTR
      - name: blockmap_cache[4096]
        type: char
      - name: blockmap_cache_start
        type: TSK_OFF_T
      - name: blockmap_cache_len
        type: size_t
      - name: '*catalog_file'
        type: TSK_FS_FILE
      - name: '*catalog_attr'
        type: TSK_FS_ATTR
      - name: catalog_header
        type: hfs_btree_header_record
      - name: '*extents_file'
        type: TSK_FS_FILE
      - name: '*extents_attr'
        type: TSK_FS_ATTR
      - name: extents_header
        type: hfs_btree_header_record
      - name: hfs_wrapper_offset
        type: TSK_OFF_T
      - name: root_crtime
        type: time_t
      - name: meta_crtime
        type: time_t
      - name: metadir_crtime
        type: time_t
      - name: has_root_crtime
        type: unsigned char
      - name: has_meta_crtime
        type: unsigned char
      - name: has_meta_dir_crtime
        type: unsigned char
      - name: meta_inum
        type: TSK_INUM_T
      - name: meta_dir_inum
        type: TSK_INUM_T
      - name: '*meta_dir'
        type: TSK_FS_DIR
      - name: '*dir_meta_dir'
        type: TSK_FS_DIR
      - name: metadata_dir_cache_lock
        type: tsk_lock_t
      - name: has_extents_file
        type: unsigned char
      - name: has_startup_file
        type: unsigned char
      - name: has_attributes_file
        type: unsigned char
      item_type: struct
      name: HFS_INFO
      pos:
        line_end: 658
        line_start: 608
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: cat
        type: hfs_file
      - name: flags
        type: int
      - name: inum
        type: TSK_INUM_T
      - name: thread
        type: hfs_thread
      item_type: struct
      name: HFS_ENTRY
      pos:
        line_end: 665
        line_start: 660
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: dataOffset[4]
        type: uint8_t
      - name: mapOffset[4]
        type: uint8_t
      - name: dataLength[4]
        type: uint8_t
      - name: mapLength[4]
        type: uint8_t
      item_type: struct
      name: hfs_resource_fork_header
      pos:
        line_end: 675
        line_start: 670
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: length[4]
        type: uint8_t
      - name: data[2]
        type: uint8_t
      item_type: struct
      name: hfs_resource
      pos:
        line_end: 680
        line_start: 677
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: reserved1[16]
        type: uint8_t
      - name: reserved2[4]
        type: uint8_t
      - name: reserved3[2]
        type: uint8_t
      - name: fork_attributes[2]
        type: uint8_t
      - name: typeListOffset[2]
        type: uint8_t
      - name: nameListOffset[2]
        type: uint8_t
      item_type: struct
      name: hfs_resource_fork_map_header
      pos:
        line_end: 689
        line_start: 682
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: type[4]
        type: unsigned char
      - name: count[2]
        type: uint8_t
      - name: offset[2]
        type: uint8_t
      item_type: struct
      name: hfs_resource_type_list_item
      pos:
        line_end: 695
        line_start: 691
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: typeCount[2]
        type: uint8_t
      - name: type[]
        type: hfs_resource_type_list_item
      item_type: struct
      name: hfs_resource_type_list
      pos:
        line_end: 700
        line_start: 697
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: resID[2]
        type: uint8_t
      - name: resNameOffset[2]
        type: uint8_t
      - name: resAttributes[1]
        type: uint8_t
      - name: resDataOffset[3]
        type: uint8_t
      - name: reserved[4]
        type: uint8_t
      item_type: struct
      name: hfs_resource_refListItem
      pos:
        line_end: 708
        line_start: 702
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: flags[4]
        type: uint8_t
      - name: dev_sig[32]
        type: uint8_t
      - name: offs[8]
        type: uint8_t
      - name: size[8]
        type: uint8_t
      - name: res[128]
        type: uint8_t
      item_type: struct
      name: hfs_journ_sb
      pos:
        line_end: 719
        line_start: 713
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    - fields:
      - name: offset
        type: TSK_OFF_T
      - name: keylen
        type: uint16_t
      item_type: struct
      name: hfs_cat_rec_off
      pos:
        line_end: 782
        line_start: 779
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
    typedefs:
    - item_type: typedef
      name: "(*TSK_HFS_BTREE_CB) (HFS_INFO *, int8_t level_type,\n    const hfs_btree_key_cat
        * cur_key, int cur_keylen, size_t node_size,\n    TSK_OFF_T key_off, void
        *ptr)"
      pos:
        line_end: 768
        line_start: 766
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
      type: uint8_t
    union:
    - fields:
      - name: folder
        type: hfs_folder
      - name: file
        type: hfs_file
      item_type: union
      name: hfs_file_folder
      pos:
        line_end: 606
        line_start: 603
        source_file: /src/sleuthkit/tsk/fs/tsk_hfs.h
- function_names:
  - WITHNANO
  - nt2unixtime
  - nt2nano
  - ntfs_dinode_lookup
  - is_clustalloc
  - ntfs_make_data_run
  - ntfs_uncompress_reset
  - ntfs_uncompress_setup
  - ntfs_uncompress_done
  - ntfs_uncompress_compunit
  - ntfs_proc_compunit
  - ntfs_attr_walk_special
  - ntfs_file_read_special
  - ntfs_proc_attrseq
  - ntfs_proc_attrlist
  - ntfs_dinode_copy
  - ntfs_load_attrs
  - ntfs_inode_lookup
  - ntfs_load_attrdef
  - ntfs_attrname_lookup
  - ntfs_load_bmap
  - ntfs_load_ver
  - ntfs_sds_to_str
  - ntfs_get_sds
  - ntfs_file_get_sidstr
  - ntfs_proc_sii
  - ntfs_load_secure
  - ntfs_block_getflags
  - ntfs_block_walk
  - ntfs_inode_walk
  - ntfs_fscheck
  - ntfs_fsstat
  - print_addr_act
  - ntfs_istat
  - ntfs_jopen
  - ntfs_jentry_walk
  - ntfs_jblk_walk
  - ntfs_get_default_attr_type
  - ntfs_close
  - process_kape_boot_format
  - ntfs_open
  source_file: /src/sleuthkit/tsk/fs/ntfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSEC_BTWN_1601_1970
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/sleuthkit/tsk/fs/ntfs.c
      type_or_value: (uint64_t)(116444736000000000ULL)
    - item_type: preproc_def
      name: NTFS_PRINT_WIDTH
      pos:
        line_end: 4592
        line_start: 4591
        source_file: /src/sleuthkit/tsk/fs/ntfs.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*uncomp_buf'
        type: char
      - name: '*comp_buf'
        type: char
      - name: comp_len
        type: size_t
      - name: uncomp_idx
        type: size_t
      - name: buf_size_b
        type: size_t
      item_type: struct
      name: NTFS_COMP_INFO
      pos:
        line_end: 848
        line_start: 842
        source_file: /src/sleuthkit/tsk/fs/ntfs.c
    - fields:
      - name: num_used
        type: int
      - name: extMft[256]
        type: TSK_INUM_T
      - name: type[256]
        type: uint32_t
      - name: extId[256]
        type: uint32_t
      - name: name[256][512]
        type: uint8_t
      - name: newId[256]
        type: uint32_t
      item_type: struct
      name: NTFS_ATTRLIST_MAP
      pos:
        line_end: 1826
        line_start: 1819
        source_file: /src/sleuthkit/tsk/fs/ntfs.c
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      item_type: struct
      name: NTFS_PRINT_ADDR
      pos:
        line_end: 4595
        line_start: 4592
        source_file: /src/sleuthkit/tsk/fs/ntfs.c
    typedefs: []
    union: []
- function_names:
  - exfatfs_reset_name_info
  - exfatfs_add_name_to_dir_and_reset_info
  - exfats_parse_file_dentry
  - exfats_parse_file_stream_dentry
  - exfats_parse_file_name_dentry
  - exfats_parse_vol_label_dentry
  - exfats_parse_special_file_dentry
  - exfatfs_dent_parse_buf
  source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fatfs'
        type: FATFS_INFO
      - name: sector_is_allocated
        type: int8_t
      - name: last_dentry_type
        type: EXFATFS_DIR_ENTRY_TYPE
      - name: expected_secondary_entry_count
        type: uint8_t
      - name: actual_secondary_entry_count
        type: uint8_t
      - name: expected_check_sum
        type: uint16_t
      - name: expected_name_length_utf16_chars
        type: uint8_t
      - name: current_file_name_length_utf16_chars
        type: uint8_t
      - name: file_name_utf16[(EXFATFS_MAX_FILE_NAME_LENGTH_UTF16_CHARS + 1) * 2]
        type: uint8_t
      - name: actual_name_length_utf8_bytes
        type: size_t
      - name: '*fs_name'
        type: TSK_FS_NAME
      - name: '*fs_dir'
        type: TSK_FS_DIR
      item_type: struct
      name: EXFATFS_FS_NAME_INFO
      pos:
        line_end: 52
        line_start: 39
        source_file: /src/sleuthkit/tsk/fs/exfatfs_dent.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_file_alloc
  - tsk_fs_file_reset
  - tsk_fs_file_close
  - tsk_fs_file_open_meta
  - tsk_fs_file_open
  - tsk_fs_file_attr_check
  - tsk_fs_file_attr_getsize
  - tsk_fs_file_attr_get_idx
  - tsk_fs_file_attr_get
  - tsk_fs_file_attr_get_type
  - tsk_fs_file_attr_get_id
  - tsk_fs_file_walk_type
  - tsk_fs_file_walk
  - tsk_fs_file_read_type
  - tsk_fs_file_read
  - tsk_fs_file_get_owner_sid
  - tsk_fs_file_hash_calc_callback
  - tsk_fs_file_hash_calc
  source_file: /src/sleuthkit/tsk/fs/fs_file.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flags
        type: TSK_BASE_HASH_ENUM
      - name: md5_context
        type: TSK_MD5_CTX
      - name: sha1_context
        type: TSK_SHA_CTX
      item_type: struct
      name: TSK_FS_HASH_DATA
      pos:
        line_end: 577
        line_start: 573
        source_file: /src/sleuthkit/tsk/fs/fs_file.c
    typedefs: []
    union: []
- function_names:
  - checked_find_paddr
  - APFSJObjTree::APFSJObjTree
  - APFSJObjTree::APFSJObjTree
  - APFSJObjTree::set_snapshot
  - APFSJObjTree::crypto::crypto(const APFSFileSystem::crypto_info_t& crypto)
  - APFSJObject::APFSJObject
  - APFSJObject::APFSJObject
  - APFSJObject::add_entry
  - name_len
  - hash
  - APFSJObjTree::begin
  - APFSJObjTree::end
  - APFSJObjTree::iterator::iterator(const APFSJObjTree* tree, uint64_t oid)
  - APFSJObjTree::iterator::iterator(const APFSJObjTree* tree) noexcept
  - '& APFSJObjTree::iterator::operator++()'
  source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: namelen_and_hash
        type: uint32_t
      - name: name[0]
        type: char
      item_type: struct
      name: dir_record_key
      pos:
        line_end: 151
        line_start: 140
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    - fields:
      - name: offset
        type: uint64_t
      item_type: struct
      name: file_extent_key
      pos:
        line_end: 167
        line_start: 165
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    - fields:
      - name: name_len
        type: uint16_t
      - name: name[0]
        type: char
      item_type: struct
      name: xattr_key
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    - fields:
      - name: data[0]
        type: char
      item_type: struct
      name: ixattr
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    - fields:
      - name: xattr_obj_id
        type: uint64_t
      - name: dstream
        type: apfs_dstream
      item_type: struct
      name: nrattr
      pos:
        line_end: 208
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/apfs_fs.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/encryptionHelper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/fs/lzvn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - icat_action
  - tsk_fs_icat
  source_file: /src/sleuthkit/tsk/fs/icat_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hfs_unicode_compare
  - hfs_unicode_compare_int
  source_file: /src/sleuthkit/tsk/fs/hfs_unicompare.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_list_head
  - print_list
  - print_block
  - slack_file_act
  - slack_inode_act
  - tsk_fs_blkls
  source_file: /src/sleuthkit/tsk/fs/dls_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flen
        type: TSK_OFF_T
      item_type: struct
      name: BLKLS_DATA
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/sleuthkit/tsk/fs/dls_lib.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_attrlist_alloc
  - tsk_fs_attrlist_free
  - tsk_fs_attrlist_add
  - tsk_fs_attrlist_getnew
  - tsk_fs_attrlist_markunused
  - tsk_fs_attrlist_get
  - tsk_fs_attrlist_get_id
  - tsk_fs_attrlist_get_name_type
  - tsk_fs_attrlist_get_idx
  - tsk_fs_attrlist_get_len
  source_file: /src/sleuthkit/tsk/fs/fs_attrlist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isset
  - setbit
  - tsk_fs_guessu16
  - tsk_fs_guessu32
  source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
  types:
    enum:
    - enumerators:
      - name: TSK_FS_USNJLS_NONE
        value: '0x00'
      - name: TSK_FS_USNJLS_LONG
        value: '0x01'
      - name: TSK_FS_USNJLS_MAC
        value: '0x02'
      item_type: enum
      name: TSK_FS_USNJLS_FLAG_ENUM
      pos:
        line_end: 286
        line_start: 282
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    preproc_defs:
    - item_type: preproc_def
      name: TSK_USE_HFS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NBBY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_DIR_SIZE_TO_PROCESS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
      type_or_value: '1000000'
    structs:
    - fields:
      - name: '*base'
        type: char
      - name: '*cur'
        type: char
      - name: total
        type: size_t
      - name: left
        type: size_t
      item_type: struct
      name: TSK_FS_LOAD_FILE
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    - fields:
      - name: length
        type: uint32_t
      - name: major_version
        type: uint16_t
      - name: minor_version
        type: uint16_t
      item_type: struct
      name: TSK_USN_RECORD_HEADER
      pos:
        line_end: 263
        line_start: 258
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
    typedefs:
    - item_type: typedef
      name: "(*TSK_FS_USNJENTRY_WALK_CB) (\n        TSK_USN_RECORD_HEADER *a_header,
        void *a_record, void *a_ptr)"
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
      type: TSK_WALK_RET_ENUM
    - item_type: typedef
      name: TSK_FS_USNJLS_FLAG_ENUM
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/sleuthkit/tsk/fs/tsk_fs_i.h
      type: TSK_FS_USNJLS_FLAG_ENUM
    union: []
- function_names:
  - fatxxfs_fsstat
  - fatxxfs_open
  - fatxxfs_is_cluster_alloc
  source_file: /src/sleuthkit/tsk/fs/fatxxfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fatfs_ptr_arg_is_null
  - fatfs_inum_is_in_range
  - fatfs_inum_arg_is_in_range
  - fatfs_dos_2_unix_time
  - fatfs_dos_2_nanosec
  - fatfs_cleanup_ascii
  - fatfs_utf16_inode_str_2_utf8
  source_file: /src/sleuthkit/tsk/fs/fatfs_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - printit
  - print_dent_act
  - tsk_fs_fls
  source_file: /src/sleuthkit/tsk/fs/fls_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sec_skew
        type: int32_t
      - name: '*macpre'
        type: char
      - name: flags
        type: int
      item_type: struct
      name: FLS_DATA
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/sleuthkit/tsk/fs/fls_lib.c
    typedefs: []
    union: []
- function_names:
  - unix_make_data_run_direct
  - unix_make_data_run_indirect
  - tsk_fs_unix_make_data_run
  - tsk_fs_unix_get_default_attr_type
  - tsk_fs_unix_name_cmp
  source_file: /src/sleuthkit/tsk/fs/unix_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - apfs_open_auto_detect
  - apfs_open
  source_file: /src/sleuthkit/tsk/fs/apfs_open.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yaffscache_obj_id_and_version_to_inode
  - yaffscache_inode_to_obj_id_and_version
  - yaffscache_chunk_compare
  - yaffscache_chunk_find_insertion_point
  - yaffscache_chunk_add
  - yaffscache_object_find
  - yaffscache_object_find_or_add
  - yaffscache_object_add_version
  - yaffscache_versions_insert_chunk
  - yaffscache_versions_compute
  - yaffscache_find_children
  - yaffscache_version_find_by_inode
  - yaffscache_object_dump
  - yaffscache_objects_stats
  - yaffscache_objects_free
  - yaffscache_chunks_free
  - yaffs_load_config_file
  - yaffs_validate_integer_field
  - yaffs_validate_config_file
  - yaffs_initialize_spare_format
  - yaffsfs_read_header
  - yaffsfs_read_spare
  - yaffsfs_is_spare_valid
  - yaffsfs_read_chunk
  - yaffsfs_parse_image_load_cache
  - yaffs_is_version_allocated
  - yaffs_make_directory
  - yaffs_make_regularfile
  - yaffs_make_deleted
  - yaffs_make_unlinked
  - yaffs_make_orphan_dir
  - yaffs_inode_lookup
  - yaffsfs_inode_walk
  - yaffsfs_block_getflags
  - yaffsfs_block_walk
  - yaffsfs_fscheck
  - yaffsfs_fsstat
  - print_addr_act
  - yaffsfs_istat
  - yaffsfs_close
  - yaffs_dir_open_meta_cb
  - yaffsfs_dir_open_meta
  - yaffsfs_get_default_attr_type
  - yaffsfs_load_attrs
  - yaffsfs_jentry_walk
  - yaffsfs_jblk_walk
  - yaffsfs_jopen
  - yaffs2_open
  source_file: /src/sleuthkit/tsk/fs/yaffs.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*hFile'
        type: FILE
      - name: idx
        type: int
      item_type: struct
      name: YAFFSFS_PRINT_ADDR
      pos:
        line_end: 2399
        line_start: 2396
        source_file: /src/sleuthkit/tsk/fs/yaffs.cpp
    - fields:
      - name: '*yfs'
        type: YAFFSFS_INFO
      - name: '*dir'
        type: TSK_FS_DIR
      - name: parent_addr
        type: TSK_INUM_T
      item_type: struct
      name: _dir_open_cb_args
      pos:
        line_end: 2572
        line_start: 2568
        source_file: /src/sleuthkit/tsk/fs/yaffs.cpp
    typedefs:
    - item_type: typedef
      name: yc_find_children_cb(YaffsCacheObject *obj, YaffsCacheVersion *version,
        void *args)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/sleuthkit/tsk/fs/yaffs.cpp
      type: TSK_RETVAL_ENUM
    union: []
- function_names:
  - ext4_getu48
  - ext4_getu64
  - EXT2FS_HAS_COMPAT_FEATURE
  - EXT2FS_HAS_INCOMPAT_FEATURE
  - EXT2FS_HAS_RO_COMPAT_FEATURE
  - EXT4BG_HAS_FLAG
  - ext2_dtog_lcl
  - ext2_cgbase_lcl
  - ext4_cgbase_lcl
  - EXT2FS_DIRSIZ_lcl
  - EXT2_EA_LEN
  source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRI_EXT2GRP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: EXT2FS_FIRSTINO
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1    '
    - item_type: preproc_def
      name: EXT2FS_ROOTINO
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2    '
    - item_type: preproc_def
      name: EXT2FS_NDADDR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EXT2FS_NIADDR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXT2FS_SBOFF
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: EXT2FS_FS_MAGIC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0xef53'
    - item_type: preproc_def
      name: EXT2FS_MAXNAMLEN
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EXT2FS_MAXPATHLEN
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: EXT2FS_MIN_BLOCK_SIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: EXT2FS_MAX_BLOCK_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: EXT2FS_FILE_CONTENT_LEN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: ((EXT2FS_NDADDR + EXT2FS_NIADDR) * sizeof(TSK_DADDR_T))
    - item_type: preproc_def
      name: EXT2FS_STATE_VALID
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: EXT2FS_STATE_ERROR
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: EXT2FS_OS_LINUX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXT2FS_OS_HURD
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXT2FS_OS_MASIX
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXT2FS_OS_FREEBSD
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXT2FS_OS_LITES
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EXT2FS_REV_ORIG
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXT2FS_REV_DYN
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_DIR_PREALLOC
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_IMAGIC_INODES
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_HAS_JOURNAL
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_EXT_ATTR
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_RESIZE_INO
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_COMPAT_DIR_INDEX
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_COMPRESSION
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_FILETYPE
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_RECOVER
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_JOURNAL_DEV
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_META_BG
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_EXTENTS
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_64BIT
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_MMP
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_FLEX_BG
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_EA_INODE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_INCOMPAT_DIRDATA
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: EXT4FS_FEATURE_INCOMPAT_INLINEDATA
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x2000  '
    - item_type: preproc_def
      name: EXT4FS_FEATURE_INCOMPAT_LARGEDIR
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x4000  '
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_LARGE_FILE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_BTREE_DIR
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_HUGE_FILE
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_GDT_CSUM
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_DIR_NLINK
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EXT2FS_FEATURE_RO_COMPAT_EXTRA_ISIZE
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: EXT4FS_FEATURE_RO_COMPAT_QUOTA
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: EXT4FS_FEATURE_RO_COMPAT_BIGALLOC
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: EXT4FS_FEATURE_RO_COMPAT_METADATA_CSUM
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: EXT4_BG_INODE_UNINIT
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: EXT4_BG_BLOCK_UNINIT
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: EXT4_BG_INODE_ZEROED
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: EXT2_MAX_INIT_EXTENT_LENGTH
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x8000  '
    - item_type: preproc_def
      name: EXT2_IN_FMT
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0170000'
    - item_type: preproc_def
      name: EXT2_IN_SOCK
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0140000'
    - item_type: preproc_def
      name: EXT2_IN_LNK
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0120000'
    - item_type: preproc_def
      name: EXT2_IN_REG
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0100000'
    - item_type: preproc_def
      name: EXT2_IN_BLK
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0060000'
    - item_type: preproc_def
      name: EXT2_IN_DIR
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0040000'
    - item_type: preproc_def
      name: EXT2_IN_CHR
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0020000'
    - item_type: preproc_def
      name: EXT2_IN_FIFO
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0010000'
    - item_type: preproc_def
      name: EXT2_IN_ISUID
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0004000'
    - item_type: preproc_def
      name: EXT2_IN_ISGID
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0002000'
    - item_type: preproc_def
      name: EXT2_IN_ISVTX
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0001000'
    - item_type: preproc_def
      name: EXT2_IN_IRUSR
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000400'
    - item_type: preproc_def
      name: EXT2_IN_IWUSR
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000200'
    - item_type: preproc_def
      name: EXT2_IN_IXUSR
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000100'
    - item_type: preproc_def
      name: EXT2_IN_IRGRP
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000040'
    - item_type: preproc_def
      name: EXT2_IN_IWGRP
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000020'
    - item_type: preproc_def
      name: EXT2_IN_IXGRP
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000010'
    - item_type: preproc_def
      name: EXT2_IN_IROTH
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000004'
    - item_type: preproc_def
      name: EXT2_IN_IWOTH
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000002'
    - item_type: preproc_def
      name: EXT2_IN_IXOTH
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0000001'
    - item_type: preproc_def
      name: EXT2_IN_SECDEL
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: EXT2_IN_UNRM
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: EXT2_IN_COMP
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: EXT2_IN_SYNC
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: EXT2_IN_IMM
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: EXT2_IN_APPEND
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: EXT2_IN_NODUMP
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: EXT2_IN_NOA
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: EXT2_IN_DIRTY
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: EXT2_IN_COMPRBLK
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: EXT2_IN_NOCOMPR
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000400      '
    - item_type: preproc_def
      name: EXT2_IN_ECOMPR
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000800      '
    - item_type: preproc_def
      name: EXT2_IN_INDEX
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00001000      '
    - item_type: preproc_def
      name: EXT2_IN_IMAGIC
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00002000      '
    - item_type: preproc_def
      name: EXT2_IN_JOURNAL_DATA
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00004000      '
    - item_type: preproc_def
      name: EXT2_IN_NOTAIL
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00008000      '
    - item_type: preproc_def
      name: EXT2_IN_DIRSYNC
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00010000      '
    - item_type: preproc_def
      name: EXT2_IN_TOPDIR
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00020000      '
    - item_type: preproc_def
      name: EXT2_IN_HUGE_FILE
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00040000      '
    - item_type: preproc_def
      name: EXT2_IN_EXTENTS
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00080000      '
    - item_type: preproc_def
      name: EXT2_IN_EA_INODE
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00200000      '
    - item_type: preproc_def
      name: EXT2_IN_EOFBLOCKS
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00400000      '
    - item_type: preproc_def
      name: EXT2_SNAPFILE
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x01000000      '
    - item_type: preproc_def
      name: EXT2_SNAPFILE_DELETED
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: "0x04000000\t    "
    - item_type: preproc_def
      name: EXT2_SNAPFILE_SHRUNK
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: "0x08000000\t    "
    - item_type: preproc_def
      name: EXT2_INLINE_DATA
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: "0x10000000\t    "
    - item_type: preproc_def
      name: EXT2_PROJINHERIT
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: "0x20000000\t    "
    - item_type: preproc_def
      name: EXT2_IN_RESERVED
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x80000000      '
    - item_type: preproc_def
      name: EXT2_IN_USER_VISIBLE
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x004BDFFF      '
    - item_type: preproc_def
      name: EXT2_IN_USER_MODIFIABLE
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x004B80FF      '
    - item_type: preproc_def
      name: EXT2_INLINE_MAX_DATA_LEN
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '60  '
    - item_type: preproc_def
      name: EXT2_DE_UNKNOWN
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXT2_DE_REG
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXT2_DE_DIR
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXT2_DE_CHR
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXT2_DE_BLK
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EXT2_DE_FIFO
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EXT2_DE_SOCK
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EXT2_DE_LNK
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '7'
    - item_type: preproc_def
      name: EXT2_DE_MAX
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: EXT2_DE_V1
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXT2_DE_V2
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXT2_EA_MAGIC
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0xEA020000'
    - item_type: preproc_def
      name: EXT2_EA_INODE_OFFSET
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '160'
    - item_type: preproc_def
      name: EXT2_EA_IDX_USER
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXT2_EA_IDX_POSIX_ACL_ACCESS
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXT2_EA_IDX_POSIX_ACL_DEFAULT
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXT2_EA_IDX_TRUSTED
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EXT2_EA_IDX_LUSTRE
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EXT2_EA_IDX_SECURITY
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EXT2_EA_IDX_SYSTEM
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: 7 // Possibly only valid for inline data
    - item_type: preproc_def
      name: EXT2_EA_IDX_SYSTEM_RICHACL
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_USERO
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_USER
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_GRPO
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_GRP
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_MASK
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EXT2_PACL_TAG_OTHER
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: EXT2_PACL_PERM_EXEC
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EXT2_PACL_PERM_WRITE
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EXT2_PACL_PERM_READ
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EXT2_JMAGIC
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0xC03b3998'
    - item_type: preproc_def
      name: JBD2_FEATURE_COMPAT_CHECKSUM
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: JBD2_FEATURE_INCOMPAT_REVOKE
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: JBD2_FEATURE_INCOMPAT_64BIT
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: EXT2_J_ETYPE_DESC
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: EXT2_J_ETYPE_COM
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: EXT2_J_ETYPE_SB1
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3       '
    - item_type: preproc_def
      name: EXT2_J_ETYPE_SB2
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4       '
    - item_type: preproc_def
      name: EXT2_J_ETYPE_REV
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '5       '
    - item_type: preproc_def
      name: JBD2_CRC32_CHKSUM
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JBD2_MD5_CHKSUM
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: JBD2_SHA1_CHKSUM
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: JBD2_CRC32_CHKSUM_SIZE
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: JBD2_CHECKSUM_BYTES
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: (32/ sizeof(unsigned int))
    - item_type: preproc_def
      name: NSEC_PER_SEC
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: 1000000000L
    - item_type: preproc_def
      name: EXT2_J_DENTRY_ESC
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: EXT2_J_DENTRY_SAMEID
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: EXT2_J_DENTRY_DEL
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '4       '
    - item_type: preproc_def
      name: EXT2_J_DENTRY_LAST
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type_or_value: '8       '
    structs:
    - fields:
      - name: s_inodes_count[4]
        type: uint8_t
      - name: s_blocks_count[4]
        type: uint8_t
      - name: s_r_blocks_count[4]
        type: uint8_t
      - name: s_free_blocks_count[4]
        type: uint8_t
      - name: s_free_inode_count[4]
        type: uint8_t
      - name: s_first_data_block[4]
        type: uint8_t
      - name: s_log_block_size[4]
        type: uint8_t
      - name: s_log_frag_size[4]
        type: uint8_t
      - name: s_blocks_per_group[4]
        type: uint8_t
      - name: s_frags_per_group[4]
        type: uint8_t
      - name: s_inodes_per_group[4]
        type: uint8_t
      - name: s_mtime[4]
        type: uint8_t
      - name: s_wtime[4]
        type: uint8_t
      - name: s_mnt_count[2]
        type: uint8_t
      - name: s_max_mnt_count[2]
        type: uint8_t
      - name: s_magic[2]
        type: uint8_t
      - name: s_state[2]
        type: uint8_t
      - name: s_errors[2]
        type: uint8_t
      - name: s_minor_rev_level[2]
        type: uint8_t
      - name: s_lastcheck[4]
        type: uint8_t
      - name: s_checkinterval[4]
        type: uint8_t
      - name: s_creator_os[4]
        type: uint8_t
      - name: s_rev_level[4]
        type: uint8_t
      - name: s_def_resuid[2]
        type: uint8_t
      - name: s_def_resgid[2]
        type: uint8_t
      - name: s_first_ino[4]
        type: uint8_t
      - name: s_inode_size[2]
        type: uint8_t
      - name: s_block_group_nr[2]
        type: uint8_t
      - name: s_feature_compat[4]
        type: uint8_t
      - name: s_feature_incompat[4]
        type: uint8_t
      - name: s_feature_ro_compat[4]
        type: uint8_t
      - name: s_uuid[16]
        type: uint8_t
      - name: s_volume_name[16]
        type: char
      - name: s_last_mounted[64]
        type: char
      - name: s_algorithm_usage_bitmap[4]
        type: uint8_t
      - name: s_prealloc_blocks
        type: uint8_t
      - name: s_prealloc_dir_blocks
        type: uint8_t
      - name: pad_or_gdt
        type: "union pad_or_gdt {\n            uint8_t s_padding1[2];      /* u16
          */\n            uint8_t s_reserved_gdt_blocks[2];   /*u16 */\n        }"
      - name: s_journal_uuid[16]
        type: uint8_t
      - name: s_journal_inum[4]
        type: uint8_t
      - name: s_journal_dev[4]
        type: uint8_t
      - name: s_last_orphan[4]
        type: uint8_t
      - name: s_hash_seed[16]
        type: uint8_t
      - name: s_def_hash_version
        type: uint8_t
      - name: s_jnl_backup_type
        type: uint8_t
      - name: s_desc_size[2]
        type: uint8_t
      - name: s_default_mount_opts[4]
        type: uint8_t
      - name: s_first_meta_bg[4]
        type: uint8_t
      - name: s_mkfs_time[4]
        type: uint8_t
      - name: s_jnl_blocks[17 * 4]
        type: uint8_t
      - name: s_blocks_count_hi[4]
        type: uint8_t
      - name: s_r_blocks_count_hi[4]
        type: uint8_t
      - name: s_free_blocks_count_hi[4]
        type: uint8_t
      - name: s_min_extra_isize[2]
        type: uint8_t
      - name: s_want_extra_isize[2]
        type: uint8_t
      - name: s_flags[4]
        type: uint8_t
      - name: s_raid_stride[2]
        type: uint8_t
      - name: s_mmp_interval[2]
        type: uint8_t
      - name: s_mmp_block[8]
        type: uint8_t
      - name: s_raid_stripe_width[4]
        type: uint8_t
      - name: s_log_groups_per_flex
        type: uint8_t
      - name: s_reserved_char_pad
        type: uint8_t
      - name: s_reserved_pad[2]
        type: uint8_t
      - name: s_kbytes_written[8]
        type: uint8_t
      - name: s_snapshot_inum[4]
        type: uint8_t
      - name: s_snapshot_id[4]
        type: uint8_t
      - name: s_snapshot_r_blocks_count[8]
        type: uint8_t
      - name: s_snapshot_list[4]
        type: uint8_t
      - name: s_error_count[4]
        type: uint8_t
      - name: s_first_error_time[4]
        type: uint8_t
      - name: s_first_error_ino[4]
        type: uint8_t
      - name: s_first_error_block[8]
        type: uint8_t
      - name: s_first_error_func[32]
        type: uint8_t
      - name: s_first_error_line[4]
        type: uint8_t
      - name: s_last_error_time[4]
        type: uint8_t
      - name: s_last_error_ino[4]
        type: uint8_t
      - name: s_last_error_line[4]
        type: uint8_t
      - name: s_last_error_block[8]
        type: uint8_t
      - name: s_last_error_func[32]
        type: uint8_t
      - name: s_mount_opts[64]
        type: uint8_t
      - name: s_usr_quota_inum[4]
        type: uint8_t
      - name: s_grp_quota_inum[4]
        type: uint8_t
      - name: s_overhead_clusters[4]
        type: uint8_t
      - name: s_padding[109 * 4]
        type: uint8_t
      item_type: struct
      name: ext2fs_sb
      pos:
        line_end: 191
        line_start: 101
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: bg_block_bitmap[4]
        type: uint8_t
      - name: bg_inode_bitmap[4]
        type: uint8_t
      - name: bg_inode_table[4]
        type: uint8_t
      - name: bg_free_blocks_count[2]
        type: uint8_t
      - name: bg_free_inodes_count[2]
        type: uint8_t
      - name: bg_used_dirs_count[2]
        type: uint8_t
      - name: f1[14]
        type: uint8_t
      item_type: struct
      name: ext2fs_gd
      pos:
        line_end: 262
        line_start: 254
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: bg_block_bitmap_lo[4]
        type: uint8_t
      - name: bg_inode_bitmap_lo[4]
        type: uint8_t
      - name: bg_inode_table_lo[4]
        type: uint8_t
      - name: bg_free_blocks_count_lo[2]
        type: uint8_t
      - name: bg_free_inodes_count_lo[2]
        type: uint8_t
      - name: bg_used_dirs_count_lo[2]
        type: uint8_t
      - name: bg_flags[2]
        type: uint8_t
      - name: bg_reserved[4 * 2]
        type: uint8_t
      - name: bg_itable_unused_lo[2]
        type: uint8_t
      - name: bg_checksum[2]
        type: uint8_t
      - name: bg_block_bitmap_hi[4]
        type: uint8_t
      - name: bg_inode_bitmap_hi[4]
        type: uint8_t
      - name: bg_inode_table_hi[4]
        type: uint8_t
      - name: bg_free_blocks_count_hi[2]
        type: uint8_t
      - name: bg_free_inodes_count_hi[2]
        type: uint8_t
      - name: bg_used_dirs_count_hi[2]
        type: uint8_t
      - name: bg_itable_unused_hi[2]
        type: uint8_t
      - name: bg_reserved2[4 * 3]
        type: uint8_t
      item_type: struct
      name: ext4fs_gd
      pos:
        line_end: 290
        line_start: 271
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: i_mode[2]
        type: uint8_t
      - name: i_uid[2]
        type: uint8_t
      - name: i_size[4]
        type: uint8_t
      - name: i_atime[4]
        type: uint8_t
      - name: i_ctime[4]
        type: uint8_t
      - name: i_mtime[4]
        type: uint8_t
      - name: i_dtime[4]
        type: uint8_t
      - name: i_gid[2]
        type: uint8_t
      - name: i_nlink[2]
        type: uint8_t
      - name: i_nblk[4]
        type: uint8_t
      - name: i_flags[4]
        type: uint8_t
      - name: i_f5[4]
        type: uint8_t
      - name: i_block[15][4]
        type: uint8_t
      - name: i_generation[4]
        type: uint8_t
      - name: i_file_acl[4]
        type: uint8_t
      - name: i_size_high[4]
        type: uint8_t
      - name: i_faddr[4]
        type: uint8_t
      - name: i_frag
        type: uint8_t
      - name: i_fsize
        type: uint8_t
      - name: f1[2]
        type: uint8_t
      - name: i_uid_high[2]
        type: uint8_t
      - name: i_gid_high[2]
        type: uint8_t
      - name: f7[4]
        type: uint8_t
      - name: i_extra_isize[2]
        type: uint8_t
      - name: i_pad1[2]
        type: uint8_t
      - name: i_ctime_extra[4]
        type: uint8_t
      - name: i_mtime_extra[4]
        type: uint8_t
      - name: i_atime_extra[4]
        type: uint8_t
      - name: i_crtime[4]
        type: uint8_t
      - name: i_crtime_extra[4]
        type: uint8_t
      - name: i_version_hi[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_inode
      pos:
        line_end: 343
        line_start: 311
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: ee_block[4]
        type: uint8_t
      - name: ee_len[2]
        type: uint8_t
      - name: ee_start_hi[2]
        type: uint8_t
      - name: ee_start_lo[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_extent
      pos:
        line_end: 350
        line_start: 345
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: ei_block[4]
        type: uint8_t
      - name: ei_leaf_lo[4]
        type: uint8_t
      - name: ei_leaf_hi[2]
        type: uint8_t
      - name: ei_unused[2]
        type: uint8_t
      item_type: struct
      name: ext2fs_extent_idx
      pos:
        line_end: 357
        line_start: 352
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: eh_magic[2]
        type: uint8_t
      - name: eh_entries[2]
        type: uint8_t
      - name: eh_max[2]
        type: uint8_t
      - name: eh_depth[2]
        type: uint8_t
      - name: eh_generation[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_extent_header
      pos:
        line_end: 365
        line_start: 359
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: inode[4]
        type: uint8_t
      - name: rec_len[2]
        type: uint8_t
      - name: name_len[2]
        type: uint8_t
      - name: name[EXT2FS_MAXNAMLEN]
        type: char
      item_type: struct
      name: ext2fs_dentry1
      pos:
        line_end: 434
        line_start: 429
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: inode[4]
        type: uint8_t
      - name: rec_len[2]
        type: uint8_t
      - name: name_len
        type: uint8_t
      - name: type
        type: uint8_t
      - name: name[EXT2FS_MAXNAMLEN]
        type: char
      item_type: struct
      name: ext2fs_dentry2
      pos:
        line_end: 443
        line_start: 437
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: refcount[4]
        type: uint8_t
      - name: blocks[4]
        type: uint8_t
      - name: hash[4]
        type: uint8_t
      - name: f1[16]
        type: uint8_t
      - name: entry
        type: uint8_t
      item_type: struct
      name: ext2fs_ea_header
      pos:
        line_end: 480
        line_start: 473
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: nlen
        type: uint8_t
      - name: nidx
        type: uint8_t
      - name: val_off[2]
        type: uint8_t
      - name: val_blk[4]
        type: uint8_t
      - name: val_size[4]
        type: uint8_t
      - name: hash[4]
        type: uint8_t
      - name: name
        type: uint8_t
      item_type: struct
      name: ext2fs_ea_entry
      pos:
        line_end: 503
        line_start: 495
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: ver[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_pos_acl_head
      pos:
        line_end: 511
        line_start: 509
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: tag[2]
        type: uint8_t
      - name: perm[2]
        type: uint8_t
      item_type: struct
      name: ext2fs_pos_acl_entry_sh
      pos:
        line_end: 530
        line_start: 527
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: tag[2]
        type: uint8_t
      - name: perm[2]
        type: uint8_t
      - name: id[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_pos_acl_entry_lo
      pos:
        line_end: 536
        line_start: 532
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: entrytype[4]
        type: uint8_t
      - name: entryseq[4]
        type: uint8_t
      - name: bsize[4]
        type: uint8_t
      - name: num_blk[4]
        type: uint8_t
      - name: first_blk[4]
        type: uint8_t
      - name: start_seq[4]
        type: uint8_t
      - name: start_blk[4]
        type: uint8_t
      - name: j_errno[4]
        type: uint8_t
      - name: feature_compat[4]
        type: uint8_t
      - name: feature_incompat[4]
        type: uint8_t
      - name: feature_ro_incompat[4]
        type: uint8_t
      - name: uuid[16]
        type: uint8_t
      - name: num_fs[4]
        type: uint8_t
      - name: dynsuper[4]
        type: uint8_t
      - name: max_trans[4]
        type: uint8_t
      - name: max_trans_data[4]
        type: uint8_t
      - name: reserved[176]
        type: uint8_t
      - name: id_fs[16][48]
        type: uint8_t
      item_type: struct
      name: ext2fs_journ_sb
      pos:
        line_end: 578
        line_start: 554
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: magic[4]
        type: uint8_t
      - name: entry_type[4]
        type: uint8_t
      - name: entry_seq[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_journ_head
      pos:
        line_end: 593
        line_start: 589
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: c_header
        type: ext2fs_journ_head
      - name: chksum_type
        type: uint8_t
      - name: chksum_size
        type: uint8_t
      - name: padding[2]
        type: uint8_t
      - name: chksum[4 * JBD2_CHECKSUM_BYTES]
        type: uint8_t
      - name: commit_sec[8]
        type: uint8_t
      - name: commit_nsec[4]
        type: uint8_t
      item_type: struct
      name: ext4fs_journ_commit_head
      pos:
        line_end: 614
        line_start: 606
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: fs_blk[4]
        type: uint8_t
      - name: flag[4]
        type: uint8_t
      item_type: struct
      name: ext2fs_journ_dentry
      pos:
        line_end: 627
        line_start: 624
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: '*fs_file'
        type: TSK_FS_FILE
      - name: j_inum
        type: TSK_INUM_T
      - name: bsize
        type: uint32_t
      - name: first_block
        type: TSK_DADDR_T
      - name: last_block
        type: TSK_DADDR_T
      - name: start_seq
        type: uint32_t
      - name: start_blk
        type: TSK_DADDR_T
      item_type: struct
      name: EXT2FS_JINFO
      pos:
        line_end: 643
        line_start: 631
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    - fields:
      - name: fs_info
        type: TSK_FS_INFO
      - name: '*fs'
        type: ext2fs_sb
      - name: lock
        type: tsk_lock_t
      - name: '*ext4_grp_buf'
        type: ext4fs_gd
      - name: '*grp_buf'
        type: ext2fs_gd
      - name: grp_num
        type: EXT2_GRPNUM_T
      - name: '*bmap_buf'
        type: uint8_t
      - name: bmap_grp_num
        type: EXT2_GRPNUM_T
      - name: '*imap_buf'
        type: uint8_t
      - name: imap_grp_num
        type: EXT2_GRPNUM_T
      - name: groups_offset
        type: TSK_OFF_T
      - name: groups_count
        type: EXT2_GRPNUM_T
      - name: deentry_type
        type: uint8_t
      - name: inode_size
        type: uint16_t
      - name: first_data_block
        type: TSK_DADDR_T
      - name: '*jinfo'
        type: EXT2FS_JINFO
      item_type: struct
      name: EXT2FS_INFO
      pos:
        line_end: 676
        line_start: 650
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
    typedefs:
    - item_type: typedef
      name: EXT2_GRPNUM_T
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
      type: uint64_t
    union:
    - fields:
      - name: s_padding1[2]
        type: uint8_t
      - name: s_reserved_gdt_blocks[2]
        type: uint8_t
      item_type: union
      name: pad_or_gdt
      pos:
        line_end: 142
        line_start: 139
        source_file: /src/sleuthkit/tsk/fs/tsk_ext2fs.h
- function_names:
  - tsk_fs_dir_alloc
  - tsk_fs_dir_realloc
  - tsk_fs_dir_reset
  - tsk_fs_dir_copy
  - tsk_fs_dir_contains
  - tsk_fs_dir_free_name_internal
  - tsk_fs_dir_add
  - tsk_fs_dir_open_meta_internal
  - tsk_fs_dir_open_meta
  - tsk_fs_dir_open
  - tsk_fs_dir_close
  - tsk_fs_dir_getsize
  - tsk_fs_dir_get
  - tsk_fs_dir_get_name
  - save_inum_named
  - prioritizeDirNames
  - tsk_fs_dir_walk_recursive
  - tsk_fs_dir_walk_internal
  - tsk_fs_dir_walk
  - tsk_fs_dir_make_orphan_dir_name
  - tsk_fs_dir_make_orphan_dir_meta
  - tsk_fs_dir_find_inum_named
  - load_named_dir_walk_cb
  - tsk_fs_dir_load_inum_named
  - load_orphan_dir_walk_cb
  - find_orphan_meta_walk_cb
  - tsk_fs_dir_add_orphan_dir_meta
  - tsk_fs_dir_find_orphans
  - tsk_fs_dir_hash
  source_file: /src/sleuthkit/tsk/fs/fs_dir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DEPTH
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/sleuthkit/tsk/fs/fs_dir.c
      type_or_value: '128'
    - item_type: preproc_def
      name: DIR_STRSZ
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/sleuthkit/tsk/fs/fs_dir.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: depth
        type: unsigned int
      - name: '*didx[MAX_DEPTH]'
        type: char
      - name: dirs[DIR_STRSZ]
        type: char
      - name: '*stack_seen'
        type: TSK_STACK
      - name: save_inum_named
        type: uint8_t
      - name: '*list_inum_named'
        type: TSK_LIST
      item_type: struct
      name: DENT_DINFO
      pos:
        line_end: 551
        line_start: 526
        source_file: /src/sleuthkit/tsk/fs/fs_dir.c
    - fields:
      - name: '*fs_name'
        type: TSK_FS_NAME
      - name: '*fs_dir'
        type: TSK_FS_DIR
      - name: '*orphan_subdir_list'
        type: TSK_LIST
      item_type: struct
      name: FIND_ORPHAN_DATA
      pos:
        line_end: 1184
        line_start: 1180
        source_file: /src/sleuthkit/tsk/fs/fs_dir.c
    typedefs: []
    union: []
- function_names:
  - tsk_fs_attr_run_alloc
  - tsk_fs_attr_run_free
  - tsk_fs_attr_alloc
  - tsk_fs_attr_free
  - tsk_fs_attr_clear
  - fs_attr_put_name
  - tsk_fs_attr_set_str
  - tsk_fs_attr_set_run
  - dump_attr
  - tsk_fs_attr_print
  - tsk_fs_attr_add_run
  - tsk_fs_attr_append_run
  - tsk_fs_attr_walk_res
  - tsk_fs_attr_walk_nonres
  - tsk_fs_attr_walk
  - tsk_fs_attr_read
  source_file: /src/sleuthkit/tsk/fs/fs_attr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_83_name
  - IS_OK
  - fatxxfs_is_dentry
  - attr2type
  - attr2mode
  - fatxxfs_dinode_copy
  - fatxxfs_inode_lookup
  - fatxxfs_istat_attr_flags
  - fatxxfs_inode_walk_should_skip_dentry
  source_file: /src/sleuthkit/tsk/fs/fatxxfs_meta.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _openssl_init
  - ~_openssl_init() noexcept
  - aes_xts_decryptor::aes_xts_decryptor
  - aes_xts_decryptor::~aes_xts_decryptor() noexcept
  - aes_xts_decryptor::decrypt_buffer
  - aes_xts_decryptor::decrypt_block
  - pbkdf2_hmac_sha256
  - rfc3394_key_unwrap
  - hash_buffer_md5
  - hash_buffer_sha256
  source_file: /src/sleuthkit/tsk/util/crypto.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: _openssl_init
      pos:
        line_end: 56
        line_start: 29
        source_file: /src/sleuthkit/tsk/util/crypto.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/detect_encryption.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: encryptionType
        type: encryption_detected_type
      - name: desc[TSK_ERROR_STRING_MAX_LENGTH]
        type: char
      item_type: struct
      name: encryption_detected_result
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/sleuthkit/tsk/util/detect_encryption.h
    typedefs: []
    union: []
- function_names:
  - is_windows_device_path
  - get_size_of_file_on_disk
  source_file: /src/sleuthkit/tsk/util/file_system_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/util/file_system_utils.c
      type_or_value: __S_IFMT
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tsk/util/file_system_utils.c
      type_or_value: __S_IFDIR
    structs: []
    typedefs: []
    union: []
- function_names:
  - aes_xts_decryptor::aes_xts_decryptor
  - '&operator=(const aes_xts_decryptor) noexcept'
  source_file: /src/sleuthkit/tsk/util/crypto.hpp
  types:
    enum:
    - enumerators:
      - name: AES_128
      - name: AES_256
      item_type: enum
      name: AES_MODE
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/sleuthkit/tsk/util/crypto.hpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - lw_shared_ptr::lw_shared_ptr
  - "~lw_shared_ptr() noexcept(\n      std::is_nothrow_destructible<T>::value)"
  - '& operator=(const lw_shared_ptr& rhs) noexcept'
  - '& operator=(const lw_shared_ptr<U>& rhs) noexcept'
  - '& operator=(lw_shared_ptr&& rhs) noexcept'
  - '& operator=(lw_shared_ptr<U>&& rhs) noexcept'
  - operator bool() const noexcept
  - operator==(std::nullptr_t) const noexcept
  - operator!=(std::nullptr_t) const noexcept
  - operator==(const lw_shared_ptr<U>& rhs) const noexcept
  - operator!=(const lw_shared_ptr<U>& rhs) const noexcept
  - operator<(const lw_shared_ptr<U>& rhs) const noexcept
  - operator<=(const lw_shared_ptr<U>& rhs) const noexcept
  - operator>(const lw_shared_ptr<U>& rhs) const noexcept
  - operator>=(const lw_shared_ptr<U>& rhs) const noexcept
  - lw_shared_ptr::reset
  - lw_shared_ptr::reset
  - lw_shared_ptr::swap
  - '& operator*() const noexcept'
  - '* operator->() const'
  - lw_shared_ptr::get
  - lw_shared_ptr::use_count
  - swap
  - make_lw_shared
  - lw_static_pointer_cast
  - lw_dynamic_pointer_cast
  - lw_const_pointer_cast
  - lw_reinterpret_pointer_cast
  source_file: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: in_place_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/sleuthkit/tsk/util/lw_shared_ptr.hpp
    typedefs: []
    union: []
- function_names:
  - detectSignature
  - detectLUKS
  - detectBitLocker
  - detectFileVault
  - detectCheckPoint
  - detectMcAfee
  - detectGuardianEdge
  - detectSophos
  - detectWinMagic
  - detectSymantecPGP
  - calculateEntropy
  - detectVolumeEncryption
  - detectDiskEncryption
  source_file: /src/sleuthkit/tsk/util/detect_encryption.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/file_system_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - span::span
  - span::span
  - span::span
  - span::span
  - span::span
  - span::count
  - span::valid
  - span::data
  - as
  source_file: /src/sleuthkit/tsk/util/span.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: memory_view
      pos:
        line_end: 70
        line_start: 57
        source_file: /src/sleuthkit/tsk/util/span.hpp
    typedefs: []
    union: []
- function_names:
  - getMetadataEntryTypeEnum
  - convertMetadataEntryTypeToString
  - getMetadataValueTypeEnum
  - convertMetadataValueTypeToString
  - getKeyProtectionTypeEnum
  - convertKeyProtectionTypeToString
  - getEncryptionTypeEnum
  - convertEncryptionTypeToString
  - isAESCBC
  - isAESXTS
  - usesDiffuser
  source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataEntry::createMetadataEntry
  - MetadataEntry::MetadataEntry
  - MetadataEntry::~MetadataEntry()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueVolumeMasterKey::getProtectionType
  - '& getProperties()'
  - MetadataValueVolumeMasterKey::copyGuid
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueStretchKey::MetadataValueStretchKey
  - MetadataValueStretchKey::parseStretchKeyUsingPassword
  - MetadataValueStretchKey::generateStretchedKey
  - MetadataValueStretchKey::~MetadataValueStretchKey()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: updatedHash[BITLOCKER_STRETCH_KEY_SHA256_LEN]
        type: uint8_t
      - name: passwordHash[BITLOCKER_STRETCH_KEY_SHA256_LEN]
        type: uint8_t
      - name: salt[BITLOCKER_STRETCH_KEY_SALT_LEN]
        type: uint8_t
      - name: hashCount
        type: uint64_t
      item_type: struct
      name: hashStruct
      pos:
        line_end: 86
        line_start: 81
        source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.cpp
    typedefs: []
    union: []
- function_names:
  - readMetadataEntries
  - getMetadataEntries
  - getMetadataValues
  - createMetadataValue
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BitlockerParser::initialize
  - BitlockerParser::initialize
  - BitlockerParser::hasBitlockerSignature
  - BitlockerParser::initializeInternal
  - BitlockerParser::readFveMetadataBlockHeader
  - BitlockerParser::readFveMetadataHeader
  - BitlockerParser::readFveMetadataEntries
  - BitlockerParser::getVolumeMasterKey
  - BitlockerParser::parseVMKEntry
  - BitlockerParser::parsePasswordProtectedVMK
  - BitlockerParser::parseClearKeyProtectedVMK
  - BitlockerParser::getFullVolumeEncryptionKey
  - BitlockerParser::getKeyData
  - BitlockerParser::setKeys
  - BitlockerParser::setKeys
  - BitlockerParser::parseVolumeHeader
  - BitlockerParser::handlePassword
  - BitlockerParser::readAndDecryptSectors
  - BitlockerParser::decryptSector
  - BitlockerParser::decryptSectorAESCBC_noDiffuser
  - BITLOCKER_DIFFUSER_ROTATE_LEFT
  - BitlockerParser::decryptDiffuserA
  - BitlockerParser::decryptDiffuserB
  - BitlockerParser::decryptSectorAESCBC_diffuser
  - BitlockerParser::decryptSectorAESXTS
  - BitlockerParser::convertVolumeOffset
  - BitlockerParser::getDescription
  - BitlockerParser::getUnsupportedProtectionTypes
  - BitlockerParser::getRecoveryKeyIdStr
  source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: bytes[16]
        type: uint8_t
      - name: offset
        type: uint64_t
      item_type: union
      name: iv
      pos:
        line_end: 1310
        line_start: 1307
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    - fields:
      - name: bytes[16]
        type: uint8_t
      - name: offset
        type: uint64_t
      item_type: union
      name: iv
      pos:
        line_end: 1410
        line_start: 1407
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
    - fields:
      - name: bytes[16]
        type: uint8_t
      - name: offset
        type: uint64_t
      item_type: union
      name: iv
      pos:
        line_end: 1470
        line_start: 1467
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.cpp
- function_names:
  - MetadataValueKey::MetadataValueKey
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataUtils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValue::MetadataValue
  - MetadataValue::getValueType
  - MetadataValue::wasLoadedSuccessfully
  - MetadataValue::registerError
  - ~MetadataValue()
  - MetadataValueGeneric::MetadataValueGeneric
  - ~MetadataValueGeneric()
  - MetadataValueUnknown::MetadataValueUnknown
  - ~MetadataValueUnknown()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
  types:
    enum:
    - enumerators:
      - name: PROPERTY
      - name: STARTUP_KEY
      - name: FULL_VOLUME_ENCRYPTION_KEY
      - name: VOLUME_MASTER_KEY
      - name: VALIDATION
      - name: DESCRIPTION
      - name: VOLUME_HEADER_BLOCK
      - name: UNKNOWN
      item_type: enum
      name: BITLOCKER_METADATA_ENTRY_TYPE
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
    - enumerators:
      - name: ERASED
      - name: UNICODE_STRING
      - name: KEY
      - name: USE_KEY
      - name: STRETCH_KEY
      - name: AES_CCM_ENCRYPTED_KEY
      - name: TPM_ENCODED_KEY
      - name: VALIDATION
      - name: VOLUME_MASTER_KEY
      - name: EXTERNAL_KEY
      - name: ERROR_VAL
      - name: OFFSET_AND_SIZE
      - name: UNKNOWN
      - name: UPDATE
      item_type: enum
      name: BITLOCKER_METADATA_VALUE_TYPE
      pos:
        line_end: 49
        line_start: 34
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
    - enumerators:
      - name: CLEAR_KEY
      - name: STARTUP_KEY
      - name: RECOVERY_PASSWORD
      - name: TPM
      - name: TPM_AND_PIN
      - name: PASSWORD
      - name: UNKNOWN
      item_type: enum
      name: BITLOCKER_KEY_PROTECTION_TYPE
      pos:
        line_end: 61
        line_start: 53
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
    - enumerators:
      - name: STRETCH_KEY
      - name: AES_CCM_256
      - name: VMK
      - name: EXTERN_KEY
      - name: HASH_256
      - name: AES_CBC_128_DIFF
      - name: AES_CBC_256_DIFF
      - name: AES_CBC_128
      - name: AES_CBC_256
      - name: AES_XTS_128
      - name: AES_XTS_256
      - name: UNKNOWN
      item_type: enum
      name: BITLOCKER_ENCRYPTION_TYPE
      pos:
        line_end: 78
        line_start: 65
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
    - enumerators:
      - name: SUCCESS
      - name: NEED_PASSWORD
      - name: WRONG_PASSWORD
      - name: UNSUPPORTED_KEY_PROTECTION_TYPE
      - name: NOT_BITLOCKER
      - name: GENERAL_ERROR
      item_type: enum
      name: BITLOCKER_STATUS
      pos:
        line_end: 92
        line_start: 85
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
    preproc_defs:
    - item_type: preproc_def
      name: SHA256_DIGEST_LENGTH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/sleuthkit/tsk/util/Bitlocker/DataTypes.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueOffsetAndSize::getOffset
  - MetadataValueOffsetAndSize::getSize
  - ~MetadataValueOffsetAndSize()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - writeError
  - writeWarning
  - writeDebug
  - convertByteArrayToString
  - convertUint32ToString
  - convertUint64ToString
  - convertGuidToString
  source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: data1
        type: uint32_t
      - name: data2
        type: uint16_t
      - name: data3
        type: uint16_t
      - name: '*  data4'
        type: BYTE
      item_type: struct
      name: BITLOCKER_GUID
      pos:
        line_end: 122
        line_start: 117
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.cpp
    typedefs: []
    union: []
- function_names:
  - BitlockerParser::BitlockerParser
  - BitlockerParser::initializationSuccessful
  - BitlockerParser::getSectorSize
  - ~BitlockerParser()
  - BitlockerParser::clearFveMetadataEntries
  - BitlockerParser::clearIntermediateData
  source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bootEntryPoint[3]
        type: uint8_t
      - name: signature[8]
        type: char
      - name: bytesPerSector[2]
        type: uint8_t
      - name: sectorsPerClusterBlock
        type: uint8_t
      - name: reservedSectors[2]
        type: uint8_t
      - name: nFat
        type: uint8_t
      - name: nDentries[2]
        type: uint8_t
      - name: nSectors1[2]
        type: uint8_t
      - name: mediaDesc
        type: uint8_t
      - name: sectorsPerFAT[2]
        type: uint8_t
      - name: sectorsPerTrack[2]
        type: uint8_t
      - name: nHeads[2]
        type: uint8_t
      - name: nHiddenSectors[4]
        type: uint8_t
      - name: nSectors2[4]
        type: uint8_t
      - name: sectorsPerFat2[4]
        type: uint8_t
      - name: fatFlags[2]
        type: uint8_t
      - name: version[2]
        type: uint8_t
      - name: rootDirCluster[4]
        type: uint8_t
      - name: fsInfoSector[2]
        type: uint8_t
      - name: copySector[2]
        type: uint8_t
      - name: unknown1[12]
        type: uint8_t
      - name: physicalDriveNum
        type: uint8_t
      - name: unknown2
        type: uint8_t
      - name: extBootSig
        type: uint8_t
      - name: serialNum[4]
        type: uint8_t
      - name: volLabel[11]
        type: char
      - name: fileSystemSig[8]
        type: char
      - name: bootcode[70]
        type: uint8_t
      - name: bitlockerId[16]
        type: uint8_t
      - name: fveMetadataOffset1[8]
        type: uint8_t
      - name: fveMetadataOffset2[8]
        type: uint8_t
      - name: fveMetadataOffset3[8]
        type: uint8_t
      - name: unknown3[310]
        type: uint8_t
      - name: sectorSignature[2]
        type: uint8_t
      item_type: struct
      name: bitlocker_volume_header_win7_t
      pos:
        line_end: 70
        line_start: 34
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    - fields:
      - name: signature[8]
        type: char
      - name: unknown1[2]
        type: uint8_t
      - name: version[2]
        type: uint8_t
      - name: unknown2[4]
        type: uint8_t
      - name: encryptedVolSize[8]
        type: uint8_t
      - name: unknown3[4]
        type: uint8_t
      - name: nVolHeaderSectors[4]
        type: uint8_t
      - name: fveMetadataBlockOffset1[8]
        type: uint8_t
      - name: fveMetadataBlockOffset2[8]
        type: uint8_t
      - name: fveMetadataBlockOffset3[8]
        type: uint8_t
      - name: volumeHeaderOffset[8]
        type: uint8_t
      item_type: struct
      name: bitlocker_fve_metadata_block_header_v2_t
      pos:
        line_end: 85
        line_start: 73
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    - fields:
      - name: size[4]
        type: uint8_t
      - name: version[4]
        type: uint8_t
      - name: headerSize[4]
        type: uint8_t
      - name: sizeCopy[4]
        type: uint8_t
      - name: volumeId[16]
        type: uint8_t
      - name: nextNonceCounter[4]
        type: uint8_t
      - name: encryptionMethod[4]
        type: uint8_t
      - name: createTime[8]
        type: uint8_t
      item_type: struct
      name: bitlocker_fve_metadata_header_t
      pos:
        line_end: 96
        line_start: 87
        source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerParser.h
    typedefs: []
    union: []
- function_names:
  - MetadataValueKey::getKeyLen
  - MetadataValueKey::getKeyBytes
  - MetadataValueKey::getEncryptionType
  - ~MetadataValueKey()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueKey.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITLOCKER_KEY_MAC_LEN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BITLOCKER_DECRYPT_KEY_BLOCK_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueVolumeMasterKey::MetadataValueVolumeMasterKey
  - MetadataValueVolumeMasterKey::~MetadataValueVolumeMasterKey()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/Bitlocker/BitlockerUtils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueUnicode::getUnicodeWString
  - ~MetadataValueUnicode()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITLOCKER_STRETCH_KEY_SHA256_LEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BITLOCKER_STRETCH_KEY_SALT_LEN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueStretchKey.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueOffsetAndSize::MetadataValueOffsetAndSize
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueOffsetAndSize.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueUnicode::MetadataValueUnicode
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueUnicode.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataValueAesCcmEncryptedKey::MetadataValueAesCcmEncryptedKey
  - MetadataValueAesCcmEncryptedKey::decrypt
  - MetadataValueAesCcmEncryptedKey::decryptKey
  - MetadataValueAesCcmEncryptedKey::createMessageAuthenticationCode
  - MetadataValueAesCcmEncryptedKey::~MetadataValueAesCcmEncryptedKey()
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataEntry::getSize
  - MetadataEntry::getEntryType
  - MetadataEntry::getValueType
  - MetadataEntry::getValue
  source_file: /src/sleuthkit/tsk/util/Bitlocker/MetadataEntry.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - endsWith
  - getSegmentName
  - tsk_img_findFiles
  source_file: /src/sleuthkit/tsk/img/mult_files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/vmdk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBVMDK_HAVE_WIDE_CHARACTER_TYPE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/sleuthkit/tsk/img/vmdk.h
      type_or_value: '1'
    structs:
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '*handle'
        type: libvmdk_handle_t
      - name: read_lock
        type: tsk_lock_t
      item_type: struct
      name: IMG_VMDK_INFO
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/sleuthkit/tsk/img/vmdk.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/ewf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '*handle'
        type: libewf_handle_t
      - name: md5hash[33]
        type: char
      - name: md5hash_isset
        type: int
      - name: sha1hash[41]
        type: char
      - name: sha1hash_isset
        type: int
      - name: used_ewf_glob
        type: uint8_t
      - name: read_lock
        type: tsk_lock_t
      item_type: struct
      name: IMG_EWF_INFO
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/sleuthkit/tsk/img/ewf.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/logical_img.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOGICAL_IMG_DEBUG_PRINT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOGICAL_IMG_CACHE_AGE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: LOGICAL_FILE_HANDLE_CACHE_LEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '10'
    - item_type: preproc_def
      name: LOGICAL_INUM_CACHE_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '20000'
    - item_type: preproc_def
      name: LOGICAL_INUM_CACHE_MAX_PATH_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '500'
    - item_type: preproc_def
      name: LOGICAL_INVALID_INUM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DIR_FILE_LIST_CACHE_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tsk/img/logical_img.h
      type_or_value: 500  ///< Max number of cached directory file lists
    structs:
    - fields:
      - name: inum
        type: TSK_INUM_T
      - name: seek_pos
        type: TSK_OFF_T
      item_type: struct
      name: LOGICAL_FILE_HANDLE_CACHE
      pos:
        line_end: 37
        line_start: 29
        source_file: /src/sleuthkit/tsk/img/logical_img.h
    - fields:
      - name: inum
        type: TSK_INUM_T
      - name: '*path'
        type: TSK_TCHAR
      - name: path_len
        type: size_t
      - name: last_used
        type: uint64_t
      item_type: struct
      name: LOGICAL_INUM_CACHE
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/sleuthkit/tsk/img/logical_img.h
    - fields:
      - name: dir_inum
        type: TSK_INUM_T
      - name: '** file_names'
        type: TSK_TCHAR
      - name: file_count
        type: size_t
      item_type: struct
      name: DIR_FILE_CACHE_ENTRY
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/sleuthkit/tsk/img/logical_img.h
    - fields:
      - name: entries[DIR_FILE_LIST_CACHE_LEN]
        type: DIR_FILE_CACHE_ENTRY
      - name: next_insert_index
        type: int
      item_type: struct
      name: DIR_FILE_LIST_CACHE
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/sleuthkit/tsk/img/logical_img.h
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '* base_path'
        type: TSK_TCHAR
      - name: is_winobj
        type: uint8_t
      - name: cache_inum[TSK_IMG_INFO_CACHE_NUM]
        type: TSK_INUM_T
      - name: file_handle_cache[LOGICAL_FILE_HANDLE_CACHE_LEN]
        type: LOGICAL_FILE_HANDLE_CACHE
      - name: next_file_handle_cache_slot
        type: int
      - name: inum_cache[LOGICAL_INUM_CACHE_LEN]
        type: LOGICAL_INUM_CACHE
      - name: inum_cache_clock
        type: uint64_t
      - name: dir_file_list_cache
        type: DIR_FILE_LIST_CACHE
      item_type: struct
      name: IMG_LOGICAL_INFO
      pos:
        line_end: 89
        line_start: 57
        source_file: /src/sleuthkit/tsk/img/logical_img.h
    typedefs: []
    union: []
- function_names:
  - getBit
  - setBit
  - seekToOffset
  - seekAhead
  - checkIfBlockIsFinished
  - addToExistingBlock
  - writeFooterAtPosition
  - addNewBlock
  - addBlock
  - addIntToBuffer
  - addStringToBuffer
  - generateChecksum
  - writeFooter
  - writeDynamicDiskHeader
  - tsk_img_writer_add
  - tsk_img_writer_close
  - tsk_img_writer_finish_image
  - tsk_img_writer_create
  - tsk_img_writer_finish
  source_file: /src/sleuthkit/tsk/img/img_writer.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VHD_MAX_IMAGE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sleuthkit/tsk/img/img_writer.cpp
      type_or_value: '2000000000000 '
    - item_type: preproc_def
      name: VHD_DEFAULT_BLOCK_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/sleuthkit/tsk/img/img_writer.cpp
      type_or_value: '0x200000  '
    - item_type: preproc_def
      name: VHD_SECTOR_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sleuthkit/tsk/img/img_writer.cpp
      type_or_value: '0x200'
    - item_type: preproc_def
      name: VHD_FOOTER_LENGTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tsk/img/img_writer.cpp
      type_or_value: '0x200'
    - item_type: preproc_def
      name: VHD_DISK_HEADER_LENGTH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tsk/img/img_writer.cpp
      type_or_value: '0x400'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getError
  - vhdi_image_read
  - vhdi_image_imgstat
  - vhdi_image_close
  source_file: /src/sleuthkit/tsk/img/vhd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_VHDI_ERROR_STRING_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/sleuthkit/tsk/img/vhd.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/unsupported_types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - logical_imgstat
  - clear_inum_cache_entry
  - logical_close
  - logical_read
  - logical_open
  source_file: /src/sleuthkit/tsk/img/logical_img.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOGICAL_LONG_PATH_PREFIX_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tsk/img/logical_img.c
      type_or_value: ((sizeof(LOGICAL_LONG_PATH_PREFIX)     / sizeof(TSK_TCHAR)) -
        1)
    - item_type: preproc_def
      name: LOGICAL_UNC_LONG_PATH_PREFIX_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tsk/img/logical_img.c
      type_or_value: ((sizeof(LOGICAL_UNC_LONG_PATH_PREFIX) / sizeof(TSK_TCHAR)) -
        1)
    - item_type: preproc_def
      name: LOGICAL_LONG_PATH_SOURCE_SKIP
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sleuthkit/tsk/img/logical_img.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LOGICAL_UNC_LONG_PATH_SOURCE_SKIP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sleuthkit/tsk/img/logical_img.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - aff_read
  - aff_imgstat
  - aff_close
  - aff_open
  source_file: /src/sleuthkit/tsk/img/aff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_img_type_toid_utf8
  - tsk_img_type_toid
  - tsk_img_type_print
  - tsk_img_type_toname
  - tsk_img_type_todesc
  - tsk_img_type_supported
  source_file: /src/sleuthkit/tsk/img/img_types.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: code
        type: uint16_t
      - name: '*comment'
        type: char
      item_type: struct
      name: IMG_TYPES
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/sleuthkit/tsk/img/img_types.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/tsk_img_i.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sleuthkit/tsk/img/tsk_img_i.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/pool.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '*pool_info'
        type: TSK_POOL_INFO
      - name: pvol_block
        type: TSK_DADDR_T
      - name: '*impl'
        type: void
      item_type: struct
      name: IMG_POOL_INFO
      pos:
        line_end: 30
        line_start: 22
        source_file: /src/sleuthkit/tsk/img/pool.hpp
    typedefs: []
    union: []
- function_names:
  - raw_read_segment
  - raw_read
  - raw_imgstat
  - raw_close
  - test_sector_read
  - set_device_sector_size
  - raw_open
  - if
  - tsk_img_malloc
  - tsk_img_free
  source_file: /src/sleuthkit/tsk/img/raw.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sleuthkit/tsk/img/raw.c
      type_or_value: __S_IFMT
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/sleuthkit/tsk/img/raw.c
      type_or_value: __S_IFDIR
    structs: []
    typedefs: []
    union: []
- function_names:
  - tsk_img_open_sing
  - tsk_img_open
  - tsk_img_open_utf8_sing
  - tsk_img_open_utf8
  - tsk_img_open_external
  - tsk_img_open_utf16
  - tsk_img_close
  source_file: /src/sleuthkit/tsk/img/img_open.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - detectImageSignatureWithOffset
  - detectImageSignature
  - verifyTarChecksum
  - detectUnsupportedImageType
  source_file: /src/sleuthkit/tsk/img/unsupported_types.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/aff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_CONFIG_H
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/sleuthkit/tsk/img/aff.h
      type_or_value: '1'
    structs:
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '*af_file'
        type: AFFILE
      - name: seek_pos
        type: TSK_OFF_T
      - name: type
        type: uint16_t
      item_type: struct
      name: IMG_AFF_INFO
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/sleuthkit/tsk/img/aff.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/img_writer.h
  types:
    enum:
    - enumerators:
      - name: IMG_WRITER_BLOCK_STATUS_UNALLOC
        value: '0'
      - name: IMG_WRITER_BLOCK_STATUS_ALLOC
        value: '1'
      - name: IMG_WRITER_BLOCK_STATUS_FINISHED
        value: '2'
      item_type: enum
      name: IMG_WRITER_BLOCK_STATUS_ENUM
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/sleuthkit/tsk/img/img_writer.h
    preproc_defs: []
    structs:
    - fields:
      - name: '* img_info'
        type: TSK_IMG_INFO
      - name: is_finished
        type: int
      - name: finishProgress
        type: int
      - name: cancelFinish
        type: int
      - name: inFinalizeImageWriter
        type: int
      - name: hadErrorExtending
        type: int
      - name: '* fileName'
        type: TSK_TCHAR
      - name: '* footer'
        type: unsigned char
      - name: blockSize
        type: uint32_t
      - name: imageSize
        type: TSK_OFF_T
      - name: totalBlocks
        type: uint32_t
      - name: sectorBitmapLength
        type: uint32_t
      - name: sectorBitmapArrayLength
        type: uint32_t
      - name: sectorsPerBlock
        type: uint32_t
      - name: batOffset
        type: TSK_OFF_T
      - name: nextDataOffset
        type: TSK_OFF_T
      - name: '* blockStatus'
        type: IMG_WRITER_BLOCK_STATUS_ENUM
      - name: '* blockToSectorNumber'
        type: uint32_t
      - name: '** blockToSectorBitmap'
        type: unsigned char
      - name: (*add)(TSK_IMG_WRITER* img_writer, TSK_OFF_T addr, char *buffer, size_t
          len)
        type: TSK_RETVAL_ENUM
      - name: (*close)(TSK_IMG_WRITER* img_writer)
        type: TSK_RETVAL_ENUM
      - name: (*finish_image)(TSK_IMG_WRITER* img_writer)
        type: TSK_RETVAL_ENUM
      item_type: struct
      name: TSK_IMG_WRITER
      pos:
        line_end: 65
        line_start: 32
        source_file: /src/sleuthkit/tsk/img/img_writer.h
    typedefs:
    - item_type: typedef
      name: IMG_WRITER_BLOCK_STATUS_ENUM
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/sleuthkit/tsk/img/img_writer.h
      type: IMG_WRITER_BLOCK_STATUS_ENUM
    - item_type: typedef
      name: TSK_IMG_WRITER
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/sleuthkit/tsk/img/img_writer.h
      type: TSK_IMG_WRITER
    union: []
- function_names:
  - TSK_IMG_TYPE_ISRAW
  - TSK_IMG_TYPE_ISAFF
  - TSK_IMG_TYPE_ISEWF
  - TSK_IMG_TYPE_ISDIR
  - TskImgInfo::TskImgInfo
  - ~TskImgInfo()
  - TskImgInfo::TskImgInfo
  - TskImgInfo::open
  - TskImgInfo::open
  - TskImgInfo::open
  - TskImgInfo::open
  - TskImgInfo::read
  - TskImgInfo::getType
  - TskImgInfo::getSize
  - TskImgInfo::getSectorSize
  - TskImgInfo::typeToId
  - TskImgInfo::typeToName
  - TskImgInfo::typeToDesc
  - TskImgInfo::typeSupported
  - TskImgInfo::typePrint
  source_file: /src/sleuthkit/tsk/img/tsk_img.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_IMG_INFO_CACHE_NUM
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
      type_or_value: '32'
    - item_type: preproc_def
      name: TSK_IMG_INFO_CACHE_LEN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: TSK_IMG_INFO_TAG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
      type_or_value: '0x39204231'
    structs:
    - fields:
      - name: tag
        type: uint32_t
      - name: itype
        type: TSK_IMG_TYPE_ENUM
      - name: size
        type: TSK_OFF_T
      - name: num_img
        type: int
      - name: sector_size
        type: unsigned int
      - name: page_size
        type: unsigned int
      - name: spare_size
        type: unsigned int
      - name: '**images'
        type: TSK_TCHAR
      - name: cache_lock
        type: tsk_lock_t
      - name: cache[TSK_IMG_INFO_CACHE_NUM][TSK_IMG_INFO_CACHE_LEN]
        type: char
      - name: cache_off[TSK_IMG_INFO_CACHE_NUM]
        type: TSK_OFF_T
      - name: cache_age[TSK_IMG_INFO_CACHE_NUM]
        type: int
      - name: cache_len[TSK_IMG_INFO_CACHE_NUM]
        type: size_t
      - name: (*read) (TSK_IMG_INFO * img, TSK_OFF_T off, char *buf, size_t len)
        type: ssize_t
      - name: (*close) (TSK_IMG_INFO *)
        type: void
      - name: (*imgstat) (TSK_IMG_INFO *, FILE *)
        type: void
      item_type: struct
      name: TSK_IMG_INFO
      pos:
        line_end: 113
        line_start: 92
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
    typedefs:
    - item_type: typedef
      name: TSK_IMG_INFO
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
      type: TSK_IMG_INFO
    - item_type: typedef
      name: (*TSK_IMG_VERIFY_CB)(int a_percent, const char *a_msg, void *a_context)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/sleuthkit/tsk/img/tsk_img.h
      type: void
    union: []
- function_names:
  - tsk_img_read_no_cache
  - tsk_img_read
  - tsk_img_verify
  source_file: /src/sleuthkit/tsk/img/img_io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_AGE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/sleuthkit/tsk/img/img_io.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/vhd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBVHDI_HAVE_WIDE_CHARACTER_TYPE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/sleuthkit/tsk/img/vhd.h
      type_or_value: '1'
    structs:
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: '*handle'
        type: libvhdi_file_t
      - name: read_lock
        type: tsk_lock_t
      item_type: struct
      name: IMG_VHDI_INFO
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/sleuthkit/tsk/img/vhd.h
    typedefs: []
    union: []
- function_names:
  - getError
  - ewf_image_read
  - ewf_image_imgstat
  - ewf_image_close
  - img_file_header_signature_ncmp
  - ewf_open
  - is_blank
  - read_libewf_header_value
  - libewf_read_description
  - libewf_read_case_number
  - libewf_read_evidence_number
  - libewf_read_examiner_name
  - libewf_read_notes
  - libewf_read_model
  - libewf_read_serial_number
  - libewf_read_device_label
  - libewf_read_version
  - libewf_read_platform
  - libewf_read_acquired_date
  - libewf_read_system_date
  - libewf_read_acquiry_operating_system
  - libewf_read_acquiry_software_version
  - ewf_get_details
  - ewf_image_verify
  source_file: /src/sleuthkit/tsk/img/ewf.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_EWF_ERROR_STRING_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/sleuthkit/tsk/img/ewf.cpp
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getError
  - vmdk_image_read
  - vmdk_image_imgstat
  - vmdk_image_close
  - vmdk_open
  source_file: /src/sleuthkit/tsk/img/vmdk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_VMDK_ERROR_STRING_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/sleuthkit/tsk/img/vmdk.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tsk/img/raw.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLIT_CACHE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tsk/img/raw.h
      type_or_value: '15'
    structs:
    - fields:
      - name: image
        type: int
      - name: seek_pos
        type: TSK_OFF_T
      item_type: struct
      name: IMG_SPLIT_CACHE
      pos:
        line_end: 35
        line_start: 27
        source_file: /src/sleuthkit/tsk/img/raw.h
    - fields:
      - name: img_info
        type: TSK_IMG_INFO
      - name: is_winobj
        type: uint8_t
      - name: '*img_writer'
        type: TSK_IMG_WRITER
      - name: '*max_off'
        type: TSK_OFF_T
      - name: '*cptr'
        type: int
      - name: cache[SPLIT_CACHE]
        type: IMG_SPLIT_CACHE
      - name: next_slot
        type: int
      item_type: struct
      name: IMG_RAW_INFO
      pos:
        line_end: 47
        line_start: 37
        source_file: /src/sleuthkit/tsk/img/raw.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/win32/is_image_supported_lib/framework.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/win32/is_image_supported_lib/pch.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isImageSupported
  - freeString
  source_file: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISIMAGESUPPORTEDLIB_API
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: ISIMAGESUPPORTEDLIB_API
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/sleuthkit/win32/is_image_supported_lib/IsImageSupportedLib.h
      type_or_value: __declspec(dllimport)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/win32/is_image_supported_lib/pch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DllMain
  source_file: /src/sleuthkit/win32/is_image_supported_lib/dllmain.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_get_type
  - test_get_apis
  - test_fat12
  - test_ntfs_fe
  - main
  source_file: /src/sleuthkit/tests/fs_attrlist_apis.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare_names
  - dir_walk_count_cb
  - dir_walk_comp_cb
  - test_walk_apis
  - test_dir_open_apis
  - test_fat12
  - test_ntfs_fe
  - test_ntfs_comp
  - main
  source_file: /src/sleuthkit/tests/fs_fname_apis.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tests/tsk_thread.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proc_dir
  - proc_fs
  - MyThread::MyThread
  - operator()()
  - usage
  - main
  source_file: /src/sleuthkit/tests/fs_thread_test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskThread::~TskThread()
  - x_thread_top
  - TskThread::run
  source_file: /src/sleuthkit/tests/tsk_thread.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fw_action1
  - testfile
  - test_fat12
  - test_fat_slack
  - test_fat_recover
  - test_ntfs_slack_ads
  - test_ntfs_fe
  - test_ntfs_comp
  - main
  source_file: /src/sleuthkit/tests/read_apis.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::LFRecord::LFRecord
  - Rejistry::LFRecord::LFRecord
  source_file: /src/sleuthkit/rejistry++/src/LFRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~ValueListRecord()
  - Rejistry::ValueListRecord::getValuesSize
  - Rejistry::ValueListRecord::ValueListRecord
  - Rejistry::ValueListRecord::ValueListRecord
  - '& operator=(const ValueListRecord &)'
  - ~ValueListRecord()
  - Rejistry::ValueListRecord::getValuesSize
  - Rejistry::ValueListRecord::ValueListRecord
  - Rejistry::ValueListRecord::ValueListRecord
  - '& operator=(const ValueListRecord &)'
  source_file: /src/sleuthkit/rejistry++/src/ValueListRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ValueListRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/ValueListRecord.h
      type: unique_ptr<ValueListRecord>
    - item_type: typedef
      name: ValueListRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/ValueListRecord.h
      type: unique_ptr<ValueListRecord>
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::BinaryBlock::getWord
  - Rejistry::BinaryBlock::getDWord
  - Rejistry::BinaryBlock::getQWord
  - Rejistry::BinaryBlock::getASCIIString
  - Rejistry::BinaryBlock::getUTF16String
  - Rejistry::BinaryBlock::getAbsoluteOffset
  - Rejistry::BinaryBlock::getData
  - Rejistry::BinaryBlock::getWord
  - Rejistry::BinaryBlock::getDWord
  - Rejistry::BinaryBlock::getQWord
  - Rejistry::BinaryBlock::getASCIIString
  - Rejistry::BinaryBlock::getUTF16String
  - Rejistry::BinaryBlock::getAbsoluteOffset
  - Rejistry::BinaryBlock::getData
  source_file: /src/sleuthkit/rejistry++/src/BinaryBlock.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::LIRecord::LIRecord
  - Rejistry::LIRecord::LIRecord
  source_file: /src/sleuthkit/rejistry++/src/LIRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::getBooleanString
  - Rejistry::printDatetimeString
  - Rejistry::dumpHexString
  - Rejistry::print
  - Rejistry::printVKRecord
  - Rejistry::printNKRecord
  - Rejistry::crossCheckValues
  - Rejistry::recurseAll
  - Rejistry::processRegistryHive
  - Rejistry::processRegistryFile
  - Rejistry::getBooleanString
  - Rejistry::printDatetimeString
  - Rejistry::dumpHexString
  - Rejistry::print
  - Rejistry::printVKRecord
  - Rejistry::printNKRecord
  - Rejistry::crossCheckValues
  - Rejistry::recurseAll
  - Rejistry::processRegistryHive
  - Rejistry::processRegistryFile
  - sehCodeToString
  - sehRunProcessRegistryFile
  - wmain
  source_file: /src/sleuthkit/rejistry++/src/Rejistry.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hbinCount
        type: uint32_t
      - name: cellTotal
        type: uint32_t
      - name: cellAllocated
        type: uint32_t
      - name: cellUnallocated
        type: uint32_t
      - name: cellTypeCounts
        type: std::map<std::string, uint32_t>
      - name: keyCount
        type: uint32_t
      - name: subkeyListMagicCounts
        type: std::map<std::string, uint32_t>
      - name: valueTotal
        type: uint32_t
      - name: valueTypeCounts
        type: std::map<std::wstring, uint32_t>
      - name: maxSubkeysForKey
        type: uint32_t
      - name: maxValuesForKey
        type: uint32_t
      - name: deepestLevel
        type: uint32_t
      item_type: struct
      name: HiveStats
      pos:
        line_end: 168
        line_start: 118
        source_file: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    - fields:
      - name: hbinCount
        type: uint32_t
      - name: cellTotal
        type: uint32_t
      - name: cellAllocated
        type: uint32_t
      - name: cellUnallocated
        type: uint32_t
      - name: cellTypeCounts
        type: std::map<std::string, uint32_t>
      - name: keyCount
        type: uint32_t
      - name: subkeyListMagicCounts
        type: std::map<std::string, uint32_t>
      - name: valueTotal
        type: uint32_t
      - name: valueTypeCounts
        type: std::map<std::wstring, uint32_t>
      - name: maxSubkeysForKey
        type: uint32_t
      - name: maxValuesForKey
        type: uint32_t
      - name: deepestLevel
        type: uint32_t
      item_type: struct
      name: HiveStats
      pos:
        line_end: 168
        line_start: 118
        source_file: /src/sleuthkit/rejistry++/src/Rejistry.cpp
    typedefs: []
    union: []
- function_names:
  - Rejistry::Cell::Cell
  - ~Cell()
  - Rejistry::Cell::Cell
  - Rejistry::Cell::Cell
  - ~Cell()
  - Rejistry::Cell::Cell
  source_file: /src/sleuthkit/rejistry++/src/Cell.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: CellUniqPtr
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/sleuthkit/rejistry++/src/Cell.h
      type: unique_ptr <Cell>
    - item_type: typedef
      name: CellUniqPtrList
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/sleuthkit/rejistry++/src/Cell.h
      type: vector<CellUniqPtr>
    - item_type: typedef
      name: CellUniqPtr
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/sleuthkit/rejistry++/src/Cell.h
      type: unique_ptr <Cell>
    - item_type: typedef
      name: CellUniqPtrList
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/sleuthkit/rejistry++/src/Cell.h
      type: vector<CellUniqPtr>
    union: []
- function_names:
  - Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
  - ~DirectSubkeyListRecord()
  - Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
  - Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
  - ~DirectSubkeyListRecord()
  - Rejistry::DirectSubkeyListRecord::DirectSubkeyListRecord
  source_file: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::EmptySubkeyList::EmptySubkeyList
  - ~EmptySubkeyList()
  - Rejistry::EmptySubkeyList::getListLength
  - Rejistry::EmptySubkeyList::getMagic
  - Rejistry::EmptySubkeyList::getSubkeys
  - Rejistry::EmptySubkeyList::EmptySubkeyList
  - Rejistry::EmptySubkeyList::EmptySubkeyList
  - ~EmptySubkeyList()
  - Rejistry::EmptySubkeyList::getListLength
  - Rejistry::EmptySubkeyList::getMagic
  - Rejistry::EmptySubkeyList::getSubkeys
  - Rejistry::EmptySubkeyList::EmptySubkeyList
  source_file: /src/sleuthkit/rejistry++/src/EmptySubkeyList.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~HBIN()
  - Rejistry::HBIN::HBIN
  - ~HBIN()
  - Rejistry::HBIN::HBIN
  source_file: /src/sleuthkit/rejistry++/src/HBIN.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: HBINUniqPtr
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/HBIN.h
      type: unique_ptr<HBIN>
    - item_type: typedef
      name: HBINUniqPtr
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/HBIN.h
      type: unique_ptr<HBIN>
    union: []
- function_names:
  - Rejistry::RegistryValue::RegistryValue
  - Rejistry::RegistryValue::RegistryValue
  source_file: /src/sleuthkit/rejistry++/src/RegistryValue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: RegistryValueUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/RegistryValue.h
      type: unique_ptr<RegistryValue>
    - item_type: typedef
      name: RegistryValuePtrList
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sleuthkit/rejistry++/src/RegistryValue.h
      type: vector<RegistryValueUniqPtr>
    - item_type: typedef
      name: RegistryValueUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/RegistryValue.h
      type: unique_ptr<RegistryValue>
    - item_type: typedef
      name: RegistryValuePtrList
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sleuthkit/rejistry++/src/RegistryValue.h
      type: vector<RegistryValueUniqPtr>
    union: []
- function_names:
  - Rejistry::DBRecord::DBRecord
  - Rejistry::DBRecord::getData
  - Rejistry::DBRecord::DBRecord
  - Rejistry::DBRecord::getData
  source_file: /src/sleuthkit/rejistry++/src/DBRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::Cell::getLength
  - Rejistry::Cell::isActive
  - Rejistry::Cell::getData
  - Rejistry::Cell::getDataSignature
  - Rejistry::Cell::getDataQword
  - Rejistry::Cell::getNKRecord
  - Rejistry::Cell::getVKRecord
  - Rejistry::Cell::getLFRecord
  - Rejistry::Cell::getLHRecord
  - Rejistry::Cell::getRIRecord
  - Rejistry::Cell::getLIRecord
  - Rejistry::Cell::getDBRecord
  - Rejistry::Cell::getDBIndirectRecord
  - Rejistry::Cell::getValueListRecord
  - Rejistry::Cell::getSubkeyList
  - Rejistry::Cell::getLength
  - Rejistry::Cell::isActive
  - Rejistry::Cell::getData
  - Rejistry::Cell::getDataSignature
  - Rejistry::Cell::getDataQword
  - Rejistry::Cell::getNKRecord
  - Rejistry::Cell::getVKRecord
  - Rejistry::Cell::getLFRecord
  - Rejistry::Cell::getLHRecord
  - Rejistry::Cell::getRIRecord
  - Rejistry::Cell::getLIRecord
  - Rejistry::Cell::getDBRecord
  - Rejistry::Cell::getDBIndirectRecord
  - Rejistry::Cell::getValueListRecord
  - Rejistry::Cell::getSubkeyList
  source_file: /src/sleuthkit/rejistry++/src/Cell.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::Record::Record
  - ~Record()
  - Rejistry::Record::Record
  - Rejistry::Record::Record
  - '& operator=(const Record &)'
  - Rejistry::Record::Record
  - ~Record()
  - Rejistry::Record::Record
  - Rejistry::Record::Record
  - '& operator=(const Record &)'
  source_file: /src/sleuthkit/rejistry++/src/Record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::ValueData::getAsString
  - Rejistry::ValueData::getAsStringList
  - Rejistry::ValueData::getAsRawData
  - Rejistry::ValueData::getAsNumber
  - Rejistry::ValueData::getValueType
  - Rejistry::ValueData::getAsString
  - Rejistry::ValueData::getAsStringList
  - Rejistry::ValueData::getAsRawData
  - Rejistry::ValueData::getAsNumber
  - Rejistry::ValueData::getValueType
  source_file: /src/sleuthkit/rejistry++/src/ValueData.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/src/RegistryHiveFile.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~LIRecord()
  - Rejistry::LIRecord::LIRecord
  - ~LIRecord()
  - Rejistry::LIRecord::LIRecord
  source_file: /src/sleuthkit/rejistry++/src/LIRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::VKRecord::VKRecord
  - Rejistry::VKRecord::VKRecord
  - Rejistry::VKRecord::hasName
  - Rejistry::VKRecord::hasAsciiName
  - Rejistry::VKRecord::getName
  - Rejistry::VKRecord::getValueType
  - Rejistry::VKRecord::getDataLength
  - Rejistry::VKRecord::getRawDataLength
  - Rejistry::VKRecord::getDataOffset
  - Rejistry::VKRecord::getValue
  - Rejistry::VKRecord::VKRecord
  - Rejistry::VKRecord::VKRecord
  - Rejistry::VKRecord::hasName
  - Rejistry::VKRecord::hasAsciiName
  - Rejistry::VKRecord::getName
  - Rejistry::VKRecord::getValueType
  - Rejistry::VKRecord::getDataLength
  - Rejistry::VKRecord::getRawDataLength
  - Rejistry::VKRecord::getDataOffset
  - Rejistry::VKRecord::getValue
  source_file: /src/sleuthkit/rejistry++/src/VKRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '&  Buffer::limit(const uint32_t newLimit)'
  - '& Buffer::position(const uint32_t newPosition)'
  - Rejistry::Buffer::Buffer
  - Rejistry::Buffer::Buffer
  - Buffer::~Buffer()
  - '&  Buffer::limit(const uint32_t newLimit)'
  - '& Buffer::position(const uint32_t newPosition)'
  - Rejistry::Buffer::Buffer
  - Rejistry::Buffer::Buffer
  - Buffer::~Buffer()
  source_file: /src/sleuthkit/rejistry++/src/Buffer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::RegistryKey::RegistryKey
  - '& RegistryKey::operator=(const RegistryKey & rk)'
  - RegistryKey::~RegistryKey()
  - Rejistry::RegistryKey::getTimestamp
  - Rejistry::RegistryKey::getName
  - Rejistry::RegistryKey::getParent
  - Rejistry::RegistryKey::getSubkeyList
  - Rejistry::RegistryKey::getSubkeyListSize
  - Rejistry::RegistryKey::getSubkey
  - Rejistry::RegistryKey::getValueList
  - Rejistry::RegistryKey::getValueListSize
  - Rejistry::RegistryKey::getValue
  - Rejistry::RegistryKey::RegistryKey
  - '& RegistryKey::operator=(const RegistryKey & rk)'
  - RegistryKey::~RegistryKey()
  - Rejistry::RegistryKey::getTimestamp
  - Rejistry::RegistryKey::getName
  - Rejistry::RegistryKey::getParent
  - Rejistry::RegistryKey::getSubkeyList
  - Rejistry::RegistryKey::getSubkeyListSize
  - Rejistry::RegistryKey::getSubkey
  - Rejistry::RegistryKey::getValueList
  - Rejistry::RegistryKey::getValueListSize
  - Rejistry::RegistryKey::getValue
  source_file: /src/sleuthkit/rejistry++/src/RegistryKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::SubkeyListRecord::SubkeyListRecord
  - ~SubkeyListRecord()
  - Rejistry::SubkeyListRecord::SubkeyListRecord
  - '& operator=(const SubkeyListRecord &)'
  - Rejistry::SubkeyListRecord::SubkeyListRecord
  - ~SubkeyListRecord()
  - Rejistry::SubkeyListRecord::SubkeyListRecord
  - '& operator=(const SubkeyListRecord &)'
  source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: SubkeyListRecordPtr
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
      type: unique_ptr<SubkeyListRecord>
    - item_type: typedef
      name: SubkeyListRecordPtrList
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
      type: vector<SubkeyListRecordPtr>
    - item_type: typedef
      name: SubkeyListRecordPtr
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
      type: unique_ptr<SubkeyListRecord>
    - item_type: typedef
      name: SubkeyListRecordPtrList
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.h
      type: vector<SubkeyListRecordPtr>
    union: []
- function_names:
  - '& RejistryException::message() const'
  - Rejistry::RejistryException::message
  - Rejistry::RejistryException::code
  - REJISTRY_DECLARE_EXCEPTION
  - REJISTRY_IMPLEMENT_EXCEPTION
  - '& RejistryException::message() const'
  - Rejistry::RejistryException::message
  - Rejistry::RejistryException::code
  - REJISTRY_DECLARE_EXCEPTION
  - REJISTRY_IMPLEMENT_EXCEPTION
  source_file: /src/sleuthkit/rejistry++/src/RejistryException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::RegistryKey::RegistryKey
  - Rejistry::RegistryKey::RegistryKey
  source_file: /src/sleuthkit/rejistry++/src/RegistryKey.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: RegistryKeyUniqPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/RegistryKey.h
      type: unique_ptr<RegistryKey>
    - item_type: typedef
      name: RegistryKeyPtrList
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/RegistryKey.h
      type: vector<RegistryKeyUniqPtr>
    - item_type: typedef
      name: RegistryKeyUniqPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/RegistryKey.h
      type: unique_ptr<RegistryKey>
    - item_type: typedef
      name: RegistryKeyPtrList
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/RegistryKey.h
      type: vector<RegistryKeyUniqPtr>
    union: []
- function_names:
  - ~NKRecord()
  - Rejistry::NKRecord::NKRecord
  - ~NKRecord()
  - Rejistry::NKRecord::NKRecord
  source_file: /src/sleuthkit/rejistry++/src/NKRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: NKRecordUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/NKRecord.h
      type: unique_ptr<NKRecord>
    - item_type: typedef
      name: NKRecordUniqPtrList
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sleuthkit/rejistry++/src/NKRecord.h
      type: vector<NKRecordUniqPtr>
    - item_type: typedef
      name: NKRecordUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/NKRecord.h
      type: unique_ptr<NKRecord>
    - item_type: typedef
      name: NKRecordUniqPtrList
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sleuthkit/rejistry++/src/NKRecord.h
      type: vector<NKRecordUniqPtr>
    union: []
- function_names:
  - Rejistry::RegistryByteBuffer::RegistryByteBuffer
  - RegistryByteBuffer::~RegistryByteBuffer()
  - Rejistry::RegistryByteBuffer::getWord
  - Rejistry::RegistryByteBuffer::getDWord
  - Rejistry::RegistryByteBuffer::getQWord
  - Rejistry::RegistryByteBuffer::getASCIIString
  - Rejistry::RegistryByteBuffer::getASCIIString
  - Rejistry::RegistryByteBuffer::getUTF16String
  - Rejistry::RegistryByteBuffer::getUTF16String
  - Rejistry::RegistryByteBuffer::getData
  - Rejistry::RegistryByteBuffer::getData
  - Rejistry::RegistryByteBuffer::getStringList
  - Rejistry::RegistryByteBuffer::getStringList
  - Rejistry::RegistryByteBuffer::RegistryByteBuffer
  - RegistryByteBuffer::~RegistryByteBuffer()
  - Rejistry::RegistryByteBuffer::getWord
  - Rejistry::RegistryByteBuffer::getDWord
  - Rejistry::RegistryByteBuffer::getQWord
  - Rejistry::RegistryByteBuffer::getASCIIString
  - Rejistry::RegistryByteBuffer::getASCIIString
  - Rejistry::RegistryByteBuffer::getUTF16String
  - Rejistry::RegistryByteBuffer::getUTF16String
  - Rejistry::RegistryByteBuffer::getData
  - Rejistry::RegistryByteBuffer::getData
  - Rejistry::RegistryByteBuffer::getStringList
  - Rejistry::RegistryByteBuffer::getStringList
  source_file: /src/sleuthkit/rejistry++/src/RegistryByteBuffer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::RegistryValue::RegistryValue
  - RegistryValue::~RegistryValue()
  - Rejistry::RegistryValue::getName
  - Rejistry::RegistryValue::getValueType
  - Rejistry::RegistryValue::getValue
  - Rejistry::RegistryValue::getValueLength
  - Rejistry::RegistryValue::RegistryValue
  - RegistryValue::~RegistryValue()
  - Rejistry::RegistryValue::getName
  - Rejistry::RegistryValue::getValueType
  - Rejistry::RegistryValue::getValue
  - Rejistry::RegistryValue::getValueLength
  source_file: /src/sleuthkit/rejistry++/src/RegistryValue.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~VKRecord()
  - ~VKRecord()
  source_file: /src/sleuthkit/rejistry++/src/VKRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: VKRecordUniqPtr
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/VKRecord.h
      type: unique_ptr<VKRecord>
    - item_type: typedef
      name: VKRecordUniqPtrList
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/sleuthkit/rejistry++/src/VKRecord.h
      type: vector< VKRecordUniqPtr >
    - item_type: typedef
      name: VKRecordUniqPtr
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/VKRecord.h
      type: unique_ptr<VKRecord>
    - item_type: typedef
      name: VKRecordUniqPtrList
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/sleuthkit/rejistry++/src/VKRecord.h
      type: vector< VKRecordUniqPtr >
    union: []
- function_names:
  - Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
  - RegistryHiveBuffer::~RegistryHiveBuffer()
  - Rejistry::RegistryHiveBuffer::getRoot
  - Rejistry::RegistryHiveBuffer::getHeader
  - Rejistry::RegistryHiveBuffer::RegistryHiveBuffer
  - RegistryHiveBuffer::~RegistryHiveBuffer()
  - Rejistry::RegistryHiveBuffer::getRoot
  - Rejistry::RegistryHiveBuffer::getHeader
  source_file: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/src/RegistryParseException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::NKRecord::NKRecord
  - Rejistry::NKRecord::NKRecord
  - Rejistry::NKRecord::hasClassname
  - Rejistry::NKRecord::getClassName
  - Rejistry::NKRecord::getTimestamp
  - Rejistry::NKRecord::isRootKey
  - Rejistry::NKRecord::hasAsciiName
  - Rejistry::NKRecord::getName
  - Rejistry::NKRecord::hasParentRecord
  - Rejistry::NKRecord::getParentRecord
  - Rejistry::NKRecord::getNumberOfValues
  - Rejistry::NKRecord::getSubkeyCount
  - Rejistry::NKRecord::getSubkeyList
  - Rejistry::NKRecord::getValueList
  - Rejistry::NKRecord::NKRecord
  - Rejistry::NKRecord::NKRecord
  - Rejistry::NKRecord::hasClassname
  - Rejistry::NKRecord::getClassName
  - Rejistry::NKRecord::getTimestamp
  - Rejistry::NKRecord::isRootKey
  - Rejistry::NKRecord::hasAsciiName
  - Rejistry::NKRecord::getName
  - Rejistry::NKRecord::hasParentRecord
  - Rejistry::NKRecord::getParentRecord
  - Rejistry::NKRecord::getNumberOfValues
  - Rejistry::NKRecord::getSubkeyCount
  - Rejistry::NKRecord::getSubkeyList
  - Rejistry::NKRecord::getValueList
  source_file: /src/sleuthkit/rejistry++/src/NKRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::DBIndirectRecord::DBIndirectRecord
  - ~DBIndirectRecord()
  - Rejistry::DBIndirectRecord::DBIndirectRecord
  - Rejistry::DBIndirectRecord::DBIndirectRecord
  - ~DBIndirectRecord()
  - Rejistry::DBIndirectRecord::DBIndirectRecord
  source_file: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: DBIndirectRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
      type: unique_ptr<DBIndirectRecord>
    - item_type: typedef
      name: DBIndirectRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/DBIndirectRecord.h
      type: unique_ptr<DBIndirectRecord>
    union: []
- function_names:
  - Rejistry::ValueData::ValueData
  - ~ValueData()
  - Rejistry::ValueData::getValueType
  - Rejistry::ValueData::ValueData
  - ~ValueData()
  - Rejistry::ValueData::getValueType
  source_file: /src/sleuthkit/rejistry++/src/ValueData.h
  types:
    enum:
    - enumerators:
      - name: VALTYPE_NONE
        value: '0'
      - name: VALTYPE_DWORD
      - name: VALTYPE_BIN
      - name: VALTYPE_SZ
      - name: VALTYPE_EXPAND_SZ
      - name: VALTYPE_BIG_ENDIAN
      - name: VALTYPE_LINK
      - name: VALTYPE_MULTI_SZ
      - name: VALTYPE_RESOURCE_LIST
      - name: VALTYPE_FULL_RESOURCE_DESCRIPTOR
      - name: VALTYPE_QWORD
      - name: VALTYPE_RESOURCE_REQUIREMENTS_LIST
      - name: VALTYPE_FILETIME
        value: '0x10'
      item_type: enum
      name: VALUE_TYPES
      pos:
        line_end: 62
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/ValueData.h
    - enumerators:
      - name: VALTYPE_NONE
        value: '0'
      - name: VALTYPE_DWORD
      - name: VALTYPE_BIN
      - name: VALTYPE_SZ
      - name: VALTYPE_EXPAND_SZ
      - name: VALTYPE_BIG_ENDIAN
      - name: VALTYPE_LINK
      - name: VALTYPE_MULTI_SZ
      - name: VALTYPE_RESOURCE_LIST
      - name: VALTYPE_FULL_RESOURCE_DESCRIPTOR
      - name: VALTYPE_QWORD
      - name: VALTYPE_RESOURCE_REQUIREMENTS_LIST
      - name: VALTYPE_FILETIME
        value: '0x10'
      item_type: enum
      name: VALUE_TYPES
      pos:
        line_end: 62
        line_start: 47
        source_file: /src/sleuthkit/rejistry++/src/ValueData.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ValueDataUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/ValueData.h
      type: unique_ptr<ValueData>
    - item_type: typedef
      name: ValueDataUniqPtr
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/sleuthkit/rejistry++/src/ValueData.h
      type: unique_ptr<ValueData>
    union: []
- function_names:
  - Rejistry::RegistryHiveFile::RegistryHiveFile
  - RegistryHiveFile::~RegistryHiveFile()
  - Rejistry::RegistryHiveFile::getRoot
  - Rejistry::RegistryHiveFile::getHeader
  - Rejistry::RegistryHiveFile::getErrorMessage
  - Rejistry::RegistryHiveFile::RegistryHiveFile
  - RegistryHiveFile::~RegistryHiveFile()
  - Rejistry::RegistryHiveFile::getRoot
  - Rejistry::RegistryHiveFile::getHeader
  - Rejistry::RegistryHiveFile::getErrorMessage
  source_file: /src/sleuthkit/rejistry++/src/RegistryHiveFile.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::Buffer::capacity
  - Rejistry::Buffer::limit
  - Rejistry::Buffer::position
  - Rejistry::Buffer::Buffer
  - '& operator=(const Buffer& )'
  - Rejistry::Buffer::capacity
  - Rejistry::Buffer::limit
  - Rejistry::Buffer::position
  - Rejistry::Buffer::Buffer
  - '& operator=(const Buffer& )'
  source_file: /src/sleuthkit/rejistry++/src/Buffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::initializeBuffer
  - Rejistry::ByteBuffer::get
  - Rejistry::ByteBuffer::get
  - Rejistry::ByteBuffer::getShort
  - Rejistry::ByteBuffer::getInt
  - Rejistry::ByteBuffer::getLong
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::initializeBuffer
  - Rejistry::ByteBuffer::get
  - Rejistry::ByteBuffer::get
  - Rejistry::ByteBuffer::getShort
  - Rejistry::ByteBuffer::getInt
  - Rejistry::ByteBuffer::getLong
  source_file: /src/sleuthkit/rejistry++/src/ByteBuffer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~ByteBuffer()
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::read
  - ~ByteBuffer()
  - Rejistry::ByteBuffer::ByteBuffer
  - Rejistry::ByteBuffer::read
  source_file: /src/sleuthkit/rejistry++/src/ByteBuffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ByteArray
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/sleuthkit/rejistry++/src/ByteBuffer.h
      type: vector<uint8_t>
    - item_type: typedef
      name: ByteArray
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/sleuthkit/rejistry++/src/ByteBuffer.h
      type: vector<uint8_t>
    union: []
- function_names:
  - ~REGFHeader()
  - Rejistry::REGFHeader::REGFHeader
  - ~REGFHeader()
  - Rejistry::REGFHeader::REGFHeader
  source_file: /src/sleuthkit/rejistry++/src/REGFHeader.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::REGFHeader::REGFHeader
  - Rejistry::REGFHeader::isSynchronized
  - Rejistry::REGFHeader::getMajorVersion
  - Rejistry::REGFHeader::getMinorVersion
  - Rejistry::REGFHeader::getHiveName
  - Rejistry::REGFHeader::getLastHbinOffset
  - Rejistry::REGFHeader::getHBINs
  - Rejistry::REGFHeader::getFirstHBIN
  - Rejistry::REGFHeader::getRootNKRecord
  - Rejistry::REGFHeader::REGFHeader
  - Rejistry::REGFHeader::isSynchronized
  - Rejistry::REGFHeader::getMajorVersion
  - Rejistry::REGFHeader::getMinorVersion
  - Rejistry::REGFHeader::getHiveName
  - Rejistry::REGFHeader::getLastHbinOffset
  - Rejistry::REGFHeader::getHBINs
  - Rejistry::REGFHeader::getFirstHBIN
  - Rejistry::REGFHeader::getRootNKRecord
  source_file: /src/sleuthkit/rejistry++/src/REGFHeader.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/src/Rejistry.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::SubkeyListRecord::getListLength
  - Rejistry::SubkeyListRecord::getSubkey
  - Rejistry::SubkeyListRecord::getListLength
  - Rejistry::SubkeyListRecord::getSubkey
  source_file: /src/sleuthkit/rejistry++/src/SubkeyListRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::RejistryException::RejistryException
  - Rejistry::RejistryException::RejistryException
  - Rejistry::RejistryException::RejistryException
  - RejistryException::~RejistryException() throw()
  - '& RejistryException::operator =(const RejistryException &e)'
  - Rejistry::RejistryException::name
  - Rejistry::RejistryException::className
  - Rejistry::RejistryException::what
  - Rejistry::RejistryException::RejistryException
  - Rejistry::RejistryException::RejistryException
  - Rejistry::RejistryException::RejistryException
  - RejistryException::~RejistryException() throw()
  - '& RejistryException::operator =(const RejistryException &e)'
  - Rejistry::RejistryException::name
  - Rejistry::RejistryException::className
  - Rejistry::RejistryException::what
  source_file: /src/sleuthkit/rejistry++/src/RejistryException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/src/RegistryHiveBuffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~LFRecord()
  - Rejistry::LFRecord::LFRecord
  - ~LFRecord()
  - Rejistry::LFRecord::LFRecord
  source_file: /src/sleuthkit/rejistry++/src/LFRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~DBRecord()
  - Rejistry::DBRecord::DBRecord
  - ~DBRecord()
  - Rejistry::DBRecord::DBRecord
  source_file: /src/sleuthkit/rejistry++/src/DBRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: DBRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/DBRecord.h
      type: unique_ptr<DBRecord>
    - item_type: typedef
      name: DBRecordPtr
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/sleuthkit/rejistry++/src/DBRecord.h
      type: unique_ptr<DBRecord>
    union: []
- function_names:
  - Rejistry::HBIN::HBIN
  - Rejistry::HBIN::getRelativeOffsetNextHBIN
  - Rejistry::HBIN::getRelativeOffsetFirstHBIN
  - Rejistry::HBIN::getCells
  - Rejistry::HBIN::getCellAtOffset
  - Rejistry::HBIN::HBIN
  - Rejistry::HBIN::getRelativeOffsetNextHBIN
  - Rejistry::HBIN::getRelativeOffsetFirstHBIN
  - Rejistry::HBIN::getCells
  - Rejistry::HBIN::getCellAtOffset
  source_file: /src/sleuthkit/rejistry++/src/HBIN.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::DBIndirectRecord::getData
  - Rejistry::DBIndirectRecord::getData
  source_file: /src/sleuthkit/rejistry++/src/DBIndirectRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::LHRecord::LHRecord
  - Rejistry::LHRecord::LHRecord
  source_file: /src/sleuthkit/rejistry++/src/LHRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::DirectSubkeyListRecord::getSubkeys
  - Rejistry::DirectSubkeyListRecord::getSubkeys
  source_file: /src/sleuthkit/rejistry++/src/DirectSubkeyListRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~LHRecord()
  - Rejistry::LHRecord::LHRecord
  - ~LHRecord()
  - Rejistry::LHRecord::LHRecord
  source_file: /src/sleuthkit/rejistry++/src/LHRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::BinaryBlock::BinaryBlock
  - ~BinaryBlock()
  - Rejistry::BinaryBlock::BinaryBlock
  - Rejistry::BinaryBlock::BinaryBlock
  - ~BinaryBlock()
  - Rejistry::BinaryBlock::BinaryBlock
  source_file: /src/sleuthkit/rejistry++/src/BinaryBlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~RegistryHive()
  - ~RegistryHive()
  source_file: /src/sleuthkit/rejistry++/src/RegistryHive.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::ValueListRecord::ValueListRecord
  - Rejistry::ValueListRecord::getValues
  - Rejistry::ValueListRecord::getValue
  - Rejistry::ValueListRecord::ValueListRecord
  - Rejistry::ValueListRecord::getValues
  - Rejistry::ValueListRecord::getValue
  source_file: /src/sleuthkit/rejistry++/src/ValueListRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::RIRecord::RIRecord
  - Rejistry::RIRecord::getSubkeyLists
  - Rejistry::RIRecord::getSubkeys
  - Rejistry::RIRecord::RIRecord
  - Rejistry::RIRecord::getSubkeyLists
  - Rejistry::RIRecord::getSubkeys
  source_file: /src/sleuthkit/rejistry++/src/RIRecord.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~RIRecord()
  - ~RIRecord()
  source_file: /src/sleuthkit/rejistry++/src/RIRecord.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Rejistry::Record::getMagic
  - Rejistry::Record::getMagic
  source_file: /src/sleuthkit/rejistry++/src/Record.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/rejistry++/include/librejistry++.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(char* s1, char* s2) const
  source_file: /src/sleuthkit/tools/autotools/tsk_comparedir.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ltstr
      pos:
        line_end: 12
        line_start: 6
        source_file: /src/sleuthkit/tools/autotools/tsk_comparedir.h
    typedefs: []
    union: []
- function_names:
  - usage
  - TskGetTimes::TskGetTimes
  - TskGetTimes::TskGetTimes
  - TskGetTimes::handleError
  - TskGetTimes::processFile
  - TskGetTimes::filterFs
  - TskGetTimes::filterVol
  - TskGetTimes::filterPool
  - TskGetTimes::filterPoolVol
  - main
  source_file: /src/sleuthkit/tools/autotools/tsk_gettimes.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - TskCompareDir::handleError
  - TskCompareDir::processLclDir
  - TskCompareDir::openFs
  - TskCompareDir::processFile
  - TskCompareDir::filterVol
  - TskCompareDir::compareDirs
  - main
  source_file: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_CD_BUFSIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tools/autotools/tsk_comparedir.cpp
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/autotools/tsk_loaddb.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/autotools/tsk_imageinfo.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - TSK_IS_SPL_FILE_CHAR
  - TSK_IS_SPL_FILE_CHAR
  - TskRecover::TskRecover
  - TskRecover::handleError
  - file_walk_cb
  - TskRecover::writeFile
  - TskRecover::processFile
  - TskRecover::filterVol
  - TskRecover::filterFs
  - TskRecover::openFs
  - TskRecover::findFiles
  - main
  source_file: /src/sleuthkit/tools/autotools/tsk_recover.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/jcat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/blkstat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/ffind.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/fls.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/blkcat.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLKLS_TYPE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tools/fstools/blkcat.cpp
      type_or_value: _TSK_T("blkls")
    - item_type: preproc_def
      name: RAW_STR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tools/fstools/blkcat.cpp
      type_or_value: '"raw"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/ils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/blkcalc.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/jls.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/fsstat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/icat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/istat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/fscheck.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/usnjls.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/ifind.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IFIND_PATH
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/sleuthkit/tools/fstools/ifind.cpp
      type_or_value: '0x01'
    - item_type: preproc_def
      name: IFIND_DATA
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/sleuthkit/tools/fstools/ifind.cpp
      type_or_value: '0x02'
    - item_type: preproc_def
      name: IFIND_PARENT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/sleuthkit/tools/fstools/ifind.cpp
      type_or_value: '0x04'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/blkls.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/fstools/fcat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/imgtools/img_cat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - verify_progress_cb
  - usage
  - main
  source_file: /src/sleuthkit/tools/imgtools/img_stat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - lookup_act
  - print_notfound
  - main
  source_file: /src/sleuthkit/tools/hashtools/hfind.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/hashtools/sha1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA_HASH_LENGTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sleuthkit/tools/hashtools/sha1.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SHA_BUFSIZ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tools/hashtools/sha1.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/hashtools/md5.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD5_HASH_LENGTH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sleuthkit/tools/hashtools/md5.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - part_act
  - print_header
  - main
  source_file: /src/sleuthkit/tools/vstools/mmls.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/vstools/mmcat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - print_stats
  - main
  source_file: /src/sleuthkit/tools/vstools/mmstat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/pooltools/pstat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Assert
  - b64_ntop
  - b64_pton_slg
  source_file: /src/sleuthkit/tools/fiwalk/src/base64.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getline
  - myglob::myglob
  - myglob::match
  - ~myglob()
  - plugins::plugins
  - plugins::plugins
  - ~plugins()
  - all_whitespace
  - plugin_match
  - plugin_process
  - config_read
  source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __DARWIN_64_BIT_INO_T
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
      type_or_value: "1\t\t"
    - item_type: preproc_def
      name: popen
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
      type_or_value: _popen
    - item_type: preproc_def
      name: pclose
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sleuthkit/tools/fiwalk/src/plugin.cpp
      type_or_value: _pclose
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/hexbuf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEXBUF_UPPERCASE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/sleuthkit/tools/fiwalk/src/hexbuf.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HEXBUF_SPACE2
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/sleuthkit/tools/fiwalk/src/hexbuf.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HEXBUF_SPACE4
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/sleuthkit/tools/fiwalk/src/hexbuf.h
      type_or_value: '0x04'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/unicode_escape.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - seg::next_file_offset
  - seg::next_img_offset
  - content::content
  - content::set_invalid
  - content::has_filename
  - content::filename
  - content::add_bytes
  source_file: /src/sleuthkit/tools/fiwalk/src/content.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: seglist
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/sleuthkit/tools/fiwalk/src/content.h
      type: vector<class seg>
    union: []
- function_names:
  - xml::not_impl::what
  - xml::outfilename
  - '&operator=(const xml &x)'
  - xml::make_command_line
  - ~xml()
  - xml::push
  - xml::add_DFXML_creator
  - xml::xmlout
  - xml::xmlout
  - xml::xmloutl
  - xml::xmlout
  - xml::xmlout
  - xml::xmlout
  source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __BEGIN_DECLS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.h
      type_or_value: extern "C" {
    - item_type: preproc_def
      name: __END_DECLS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.h
      type_or_value: '}'
    structs: []
    typedefs: []
    union: []
- function_names:
  - strcasestr
  - content::set_filename
  - content::name_filtered
  - open_filename_with_suffix
  - content::open_tempfile
  - content::open_savefile
  - content::filemagic
  - content::write_record
  - content::need_file_walk
  - content::add_seg
  - content::add_bytes
  - content::~content()
  - content::file_act
  source_file: /src/sleuthkit/tools/fiwalk/src/content.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tools/fiwalk/src/content.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_SPARSE_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tools/fiwalk/src/content.cpp
      type_or_value: 1024*1024*64
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/sleuthkit/tools/fiwalk/src/content.cpp
      type_or_value: _MAX_PATH //found in stdlib.h of VC++
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_act
  - process_tsk_file
  - dir_act
  - proc_fs
  - vs_act
  - proc_vs
  - process_scalpel_audit_file
  - process_image_file
  source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SPARSE_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk_tsk.cpp
      type_or_value: 1024*1024*64
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __BEGIN_DECLS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sleuthkit/tools/fiwalk/src/utils.h
      type_or_value: extern "C" {
    - item_type: preproc_def
      name: __END_DECLS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/sleuthkit/tools/fiwalk/src/utils.h
      type_or_value: '}'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mkstemp
  - gettimeofday
  - xml::xmlescape
  - xml::xmlstrip
  - xml::xml
  - xml::xml
  - xml::set_tempfile_template
  - xml::close
  - xml::write_dtd
  - xml::verify_tag
  - xml::puts
  - xml::spaces
  - xml::tagout
  - __MINGW_ATTRIB_NONNULL
  - vasprintf
  - xml::printf
  - xml::push
  - xml::pop
  - xml::add_DFXML_execution_environment
  - cpuid
  - b
  - xml::add_rusage
  - xml::xmlcomment
  - xml::xmlprintf
  - xml::xmlout
  - xml::add_DFXML_build_environment
  source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _S_IREAD
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '256'
    - item_type: preproc_def
      name: _S_IWRITE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '128'
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: _O_SHORT_LIVED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: _O_SHORT_LIVED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: ms_printf
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: __print
    - item_type: preproc_def
      name: __WORDSIZE
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '32'
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '"%Y-%m-%dT%H:%M:%SZ"'
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/sleuthkit/tools/fiwalk/src/dfxml.cpp
      type_or_value: '"%FT%TZ"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - POINTS_ASCII
  - RANGE
  - RANGE_SND
  - UTF8_BOM
  - sarn_utf8_next
  - BACK
  - sarn_utf8_prev
  - sarn_utf8_realign
  - sarn_utf8_next_func
  - sarn_utf8_len_func
  - sarn_utf8_seek_func
  - sarn_utf8_char_func
  - sarn_utf8_code_func
  - luaopen_libluautf8
  source_file: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_UTF8
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/sleuthkit/tools/fiwalk/src/lua_utf8.c
      type_or_value: '"invalid utf-8 string"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_version
  - usage
  - cstr
  - comment
  - partition_info
  - partition_info
  - partition_info
  - partition_info
  - file_info_xml
  - file_info
  - file_info
  - file_info
  - file_info
  - file_info
  - file_infot
  - file_infot
  - mytime
  - has_unprintable
  - sig_info
  - af_display_as_quad
  - af_display_as_hex
  - convert
  source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
      type_or_value: '"%Y-%m-%dT%H:%M:%SZ"'
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.cpp
      type_or_value: '"%FT%TZ"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - arff::arff
  - arff::set_outfile
  - arff::set_outfile
  source_file: /src/sleuthkit/tools/fiwalk/src/arff.h
  types:
    enum:
    - enumerators:
      - name: NUMERIC
        value: '1'
      - name: DATE
        value: '4'
      - name: NOMINAL
        value: '2'
      - name: STRING
        value: '3'
      item_type: enum
      name: type
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: attributeMapT
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.h
      type: map<string,int>
    - item_type: typedef
      name: valueMapT
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.h
      type: map<int,string>
    union: []
- function_names:
  - err
  - errx
  - warn
  - warnx
  - pread
  - ishexnumber
  source_file: /src/sleuthkit/tools/fiwalk/src/utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/sleuthkit/tools/fiwalk/src/utils.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hexbuf
  source_file: /src/sleuthkit/tools/fiwalk/src/hexbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash__::hexcharval
  - hash__::hash__
  - hash__::hash__
  - hash__::final
  - hash__::hexdigest
  - hash__::hexdigest
  - hash__::hex2bin
  - hash__::new_from_hex
  - operator<(const hash__ &s2) const
  - operator==(const hash__ &s2) const
  - hash_generator__::iszero
  - hash_generator__::hash_generator__
  - ~hash_generator__()
  - hash_generator__::init
  - hash_generator__::update
  - hash_generator__::release
  - hash_generator__::final
  - hash_generator__::hash_buf
  - hash_generator__::hash_file
  source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: md5_t
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash__
    - item_type: typedef
      name: sha1_t
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash__
    - item_type: typedef
      name: sha256_t
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash__
    - item_type: typedef
      name: sha512_t
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash__
    - item_type: typedef
      name: md5_generator
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash_generator__
    - item_type: typedef
      name: sha1_generator
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash_generator__
    - item_type: typedef
      name: sha256_generator
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash_generator__
    - item_type: typedef
      name: sha512_generator
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/sleuthkit/tools/fiwalk/src/hash_t.h
      type: hash_generator__
    union: []
- function_names:
  - IS_IN_RANGE
  - hexesc
  - utf8cont
  - invalid_utf8unichar
  - validateOrEscapeUTF8
  - main
  source_file: /src/sleuthkit/tools/fiwalk/src/unicode_escape.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA224_DIGEST_LENGTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: ( 224 / 8)
    - item_type: preproc_def
      name: SHA256_DIGEST_LENGTH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: ( 256 / 8)
    - item_type: preproc_def
      name: SHA384_DIGEST_LENGTH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: ( 384 / 8)
    - item_type: preproc_def
      name: SHA512_DIGEST_LENGTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: ( 512 / 8)
    - item_type: preproc_def
      name: SHA256_BLOCK_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: ( 512 / 8)
    - item_type: preproc_def
      name: SHA512_BLOCK_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: (1024 / 8)
    - item_type: preproc_def
      name: SHA384_BLOCK_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: SHA512_BLOCK_SIZE
    - item_type: preproc_def
      name: SHA224_BLOCK_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type_or_value: SHA256_BLOCK_SIZE
    structs:
    - fields:
      - name: tot_len
        type: unsigned int
      - name: len
        type: unsigned int
      - name: block[2 * SHA256_BLOCK_SIZE]
        type: unsigned char
      - name: h[8]
        type: uint32
      item_type: struct
      name: SHA256_CTX
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
    - fields:
      - name: tot_len
        type: unsigned int
      - name: len
        type: unsigned int
      - name: block[2 * SHA512_BLOCK_SIZE]
        type: unsigned char
      - name: h[8]
        type: uint64
      item_type: struct
      name: SHA512_CTX
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
    typedefs:
    - item_type: typedef
      name: uint8
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type: unsigned char
    - item_type: typedef
      name: uint32
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type: unsigned int
    - item_type: typedef
      name: uint64
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type: unsigned long long
    - item_type: typedef
      name: SHA384_CTX
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type: SHA512_CTX
    - item_type: typedef
      name: SHA224_CTX
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/sleuthkit/tools/fiwalk/src/sha2.h
      type: SHA256_CTX
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/base64.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHFR
  - ROTR
  - ROTL
  - CH
  - MAJ
  - SHA256_F1
  - SHA256_F2
  - SHA256_F3
  - SHA256_F4
  - SHA512_F1
  - SHA512_F2
  - SHA512_F3
  - SHA512_F4
  - UNPACK32
  - PACK32
  - UNPACK64
  - PACK64
  - SHA256_SCR
  - SHA512_SCR
  - SHA256_EXP
  - SHA512_EXP
  - sha256_transf
  - SHA256
  - SHA256_Init
  - SHA256_Update
  - SHA256_Final
  - sha512_transf
  - SHA512
  - SHA512_Init
  - SHA512_Update
  - SHA512_Final
  - SHA384
  - SHA384_Init
  - SHA384_Update
  - SHA384_Final
  - SHA224
  - SHA224_Init
  - SHA224_Update
  - SHA224_Final
  - test
  - main
  source_file: /src/sleuthkit/tools/fiwalk/src/sha2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_OK
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.h
      type_or_value: '00'
    - item_type: preproc_def
      name: W_OK
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.h
      type_or_value: '02'
    - item_type: preproc_def
      name: R_OK
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.h
      type_or_value: '04'
    structs: []
    typedefs:
    - item_type: typedef
      name: namelist_t
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/sleuthkit/tools/fiwalk/src/fiwalk.h
      type: vector
    union: []
- function_names:
  - has_non_numeric
  - arff::is_weka_date
  - arff::is_msword_date
  - arff::is_exif_date
  - arff::is_recognized_date_format
  - arff::make_weka_date
  - arff::add_comment
  - arff::has_attribute
  - arff::add_attribute
  - arff::new_row
  - arff::add_value
  - arff::add_valuet
  - arff::add_value
  - arff::attributeCol
  - arff::attributeAlwaysNumeric
  - arff::attributeAlwaysDate
  - arff::needs_quoting
  - arff::write_row
  - arff::write
  source_file: /src/sleuthkit/tools/fiwalk/src/arff.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REGEX_MATCH
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.cpp
      type_or_value: '0'
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.cpp
      type_or_value: '"%Y-%m-%d %H:%M:%S"'
    - item_type: preproc_def
      name: TM_FORMAT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/sleuthkit/tools/fiwalk/src/arff.cpp
      type_or_value: '"%F %T"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sleuthkit/tools/fiwalk/plugins/jpeg_extract.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegFileInfo::getName
  - RegFileInfo::getPath
  - RegFileInfo::getOffset
  - RegFileInfo::getMetaAddr
  - RegFileInfo::getHiveType
  - RegFileInfo::getPathName
  - RegFileInfo::getUserName
  - RegFileInfo::setUserAccountName
  - RegFileInfo::setUserSID
  - '&getRegParser() const'
  - operator()(RegFileInfo *lhs, RegFileInfo *rhs)
  source_file: /src/sleuthkit/tools/logicalimager/RegFileInfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/ReportUtil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegParser::RegParser
  - RegParser::RegParser
  - '& operator=(const RegParser&)'
  source_file: /src/sleuthkit/tools/logicalimager/RegParser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/TskFindFiles.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegistryAnalyzer::RegistryAnalyzer
  - RegistryAnalyzer::~RegistryAnalyzer()
  - getTimeStr
  - filetimeToTimet
  - FiletimeToStr
  - samUserTypeToAccountType
  - samUserTypeToAdminPriv
  - RegistryAnalyzer::analyzeSAMUsers
  - makeDWORD
  - makeWORD
  - utf16LEToWString
  - RegistryAnalyzer::parseSAMVRecord
  - RegistryAnalyzer::parseSAMFRecord
  source_file: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Path2InumCacheData::Path2InumCacheData
  - TskHelper::TskHelper
  - TskHelper::~TskHelper()
  - TskHelper::reset
  - TskHelper::toUpper
  - TskHelper::toNarrow
  - TskHelper::toWide
  - TskHelper::toLower
  - TskHelper::intToStr
  - TskHelper::intToStr
  - TskHelper::stripExt
  - TskHelper::compareNames
  - TskHelper::startsWith
  - TskHelper::endsWith
  - TskHelper::path2Inum
  - TskHelper::lookupPathToInumCache
  - TskHelper::addPathToInumCache
  - TskHelper::releasePath2InumCache
  - TskHelper::addFSInfo
  - TskHelper::getFSInfo
  - TskHelper::getFSInfoList
  - TskHelper::replaceAll
  - TskHelper::replaceAll
  - TskHelper::replaceAll
  - TskHelper::openFs
  - TskHelper::enumerateFileAndVolumeSystems
  - TskHelper::addFSFromImage
  source_file: /src/sleuthkit/tools/logicalimager/TskHelper.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator size_t() const
  - operator size_t() const
  - operator size_t() const
  - operator size_t() const
  - nlohmann::detail::exception::what
  - nlohmann::detail::exception::exception
  - nlohmann::detail::exception::name
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::parse_error
  - nlohmann::detail::parse_error::position_string
  - nlohmann::detail::invalid_iterator::create
  - nlohmann::detail::invalid_iterator::invalid_iterator
  - nlohmann::detail::type_error::create
  - nlohmann::detail::type_error::type_error
  - nlohmann::detail::out_of_range::create
  - nlohmann::detail::out_of_range::out_of_range
  - nlohmann::detail::other_error::create
  - nlohmann::detail::other_error::other_error
  - nlohmann::detail::exception::what
  - nlohmann::detail::exception::exception
  - nlohmann::detail::exception::name
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::parse_error
  - nlohmann::detail::parse_error::position_string
  - nlohmann::detail::invalid_iterator::create
  - nlohmann::detail::invalid_iterator::invalid_iterator
  - nlohmann::detail::type_error::create
  - nlohmann::detail::type_error::type_error
  - nlohmann::detail::out_of_range::create
  - nlohmann::detail::out_of_range::out_of_range
  - nlohmann::detail::other_error::create
  - nlohmann::detail::other_error::other_error
  - nlohmann::detail::exception::what
  - nlohmann::detail::exception::exception
  - nlohmann::detail::exception::name
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::parse_error
  - nlohmann::detail::parse_error::position_string
  - nlohmann::detail::invalid_iterator::create
  - nlohmann::detail::invalid_iterator::invalid_iterator
  - nlohmann::detail::type_error::create
  - nlohmann::detail::type_error::type_error
  - nlohmann::detail::out_of_range::create
  - nlohmann::detail::out_of_range::out_of_range
  - nlohmann::detail::other_error::create
  - nlohmann::detail::other_error::other_error
  - nlohmann::detail::exception::what
  - nlohmann::detail::exception::exception
  - nlohmann::detail::exception::name
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::create
  - nlohmann::detail::parse_error::parse_error
  - nlohmann::detail::parse_error::position_string
  - nlohmann::detail::invalid_iterator::create
  - nlohmann::detail::invalid_iterator::invalid_iterator
  - nlohmann::detail::type_error::create
  - nlohmann::detail::type_error::type_error
  - nlohmann::detail::out_of_range::create
  - nlohmann::detail::out_of_range::out_of_range
  - nlohmann::detail::other_error::create
  - nlohmann::detail::other_error::other_error
  - JSON_THROW
  - JSON_CATCH
  - JSON_INTERNAL_CATCH
  - JSON_THROW
  - JSON_CATCH
  - JSON_INTERNAL_CATCH
  - JSON_LIKELY
  - JSON_UNLIKELY
  - JSON_LIKELY
  - JSON_UNLIKELY
  - NLOHMANN_JSON_SERIALIZE_ENUM
  - nlohmann::detail::size
  - nlohmann::detail::size
  - nlohmann::detail::size
  - nlohmann::detail::size
  - nlohmann::detail::nonesuch
  - ~nonesuch()
  - nlohmann::detail::nonesuch
  - nlohmann::detail::nonesuch
  - operator=(nonesuch const&)
  - operator=(nonesuch&&)
  - nlohmann::detail::nonesuch
  - ~nonesuch()
  - nlohmann::detail::nonesuch
  - nlohmann::detail::nonesuch
  - operator=(nonesuch const&)
  - operator=(nonesuch&&)
  - nlohmann::detail::nonesuch
  - ~nonesuch()
  - nlohmann::detail::nonesuch
  - nlohmann::detail::nonesuch
  - operator=(nonesuch const&)
  - operator=(nonesuch&&)
  - nlohmann::detail::nonesuch
  - ~nonesuch()
  - nlohmann::detail::nonesuch
  - nlohmann::detail::nonesuch
  - operator=(nonesuch const&)
  - operator=(nonesuch&&)
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - nlohmann::detail::from_json
  - nlohmann::detail::get_arithmetic_value
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_tuple_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
    val)))\n    -> decltype(from_json(j, val), void())"
  - nlohmann::detail::from_json
  - nlohmann::detail::get_arithmetic_value
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_tuple_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
    val)))\n    -> decltype(from_json(j, val), void())"
  - nlohmann::detail::from_json
  - nlohmann::detail::get_arithmetic_value
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_tuple_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
    val)))\n    -> decltype(from_json(j, val), void())"
  - nlohmann::detail::from_json
  - nlohmann::detail::get_arithmetic_value
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json_array_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json_tuple_impl
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - nlohmann::detail::from_json
  - "operator()(const BasicJsonType& j, T& val) const\n    noexcept(noexcept(from_json(j,
    val)))\n    -> decltype(from_json(j, val), void())"
  - nlohmann::detail::iteration_proxy_value::iteration_proxy_value
  - '& operator*()'
  - '& operator++()'
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - nlohmann::detail::iteration_proxy_value::value
  - nlohmann::detail::iteration_proxy::iteration_proxy
  - nlohmann::detail::iteration_proxy::begin
  - nlohmann::detail::iteration_proxy::end
  - nlohmann::detail::get
  - nlohmann::detail::get
  - nlohmann::detail::iteration_proxy_value::iteration_proxy_value
  - '& operator*()'
  - '& operator++()'
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - nlohmann::detail::iteration_proxy_value::value
  - nlohmann::detail::iteration_proxy::iteration_proxy
  - nlohmann::detail::iteration_proxy::begin
  - nlohmann::detail::iteration_proxy::end
  - nlohmann::detail::get
  - nlohmann::detail::get
  - nlohmann::detail::iteration_proxy_value::iteration_proxy_value
  - '& operator*()'
  - '& operator++()'
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - nlohmann::detail::iteration_proxy_value::value
  - nlohmann::detail::iteration_proxy::iteration_proxy
  - nlohmann::detail::iteration_proxy::begin
  - nlohmann::detail::iteration_proxy::end
  - nlohmann::detail::get
  - nlohmann::detail::get
  - nlohmann::detail::iteration_proxy_value::iteration_proxy_value
  - '& operator*()'
  - '& operator++()'
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - nlohmann::detail::iteration_proxy_value::value
  - nlohmann::detail::iteration_proxy::iteration_proxy
  - nlohmann::detail::iteration_proxy::begin
  - nlohmann::detail::iteration_proxy::end
  - nlohmann::detail::get
  - nlohmann::detail::get
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json_tuple_impl
  - nlohmann::detail::to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json_tuple_impl
  - nlohmann::detail::to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json_tuple_impl
  - nlohmann::detail::to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::construct
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json
  - nlohmann::detail::to_json_tuple_impl
  - nlohmann::detail::to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - nlohmann::from_json
  - nlohmann::to_json
  - nlohmann::from_json
  - nlohmann::to_json
  - ~input_adapter_protocol()
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - '& operator=(const file_input_adapter&)'
  - '& operator=(file_input_adapter&&)'
  - ~file_input_adapter() override
  - nlohmann::detail::file_input_adapter::get_character
  - ~input_stream_adapter() override
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&&)'
  - nlohmann::detail::input_stream_adapter::get_character
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&)'
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&&)'
  - ~input_buffer_adapter() override
  - nlohmann::detail::input_buffer_adapter::get_character
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
  - nlohmann::detail::wide_string_input_adapter::get_character
  - nlohmann::detail::wide_string_input_adapter::fill_buffer
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - operator input_adapter_t()
  - ~input_adapter_protocol()
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - '& operator=(const file_input_adapter&)'
  - '& operator=(file_input_adapter&&)'
  - ~file_input_adapter() override
  - nlohmann::detail::file_input_adapter::get_character
  - ~input_stream_adapter() override
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&&)'
  - nlohmann::detail::input_stream_adapter::get_character
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&)'
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&&)'
  - ~input_buffer_adapter() override
  - nlohmann::detail::input_buffer_adapter::get_character
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
  - nlohmann::detail::wide_string_input_adapter::get_character
  - nlohmann::detail::wide_string_input_adapter::fill_buffer
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - operator input_adapter_t()
  - ~input_adapter_protocol()
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - '& operator=(const file_input_adapter&)'
  - '& operator=(file_input_adapter&&)'
  - ~file_input_adapter() override
  - nlohmann::detail::file_input_adapter::get_character
  - ~input_stream_adapter() override
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&&)'
  - nlohmann::detail::input_stream_adapter::get_character
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&)'
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&&)'
  - ~input_buffer_adapter() override
  - nlohmann::detail::input_buffer_adapter::get_character
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
  - nlohmann::detail::wide_string_input_adapter::get_character
  - nlohmann::detail::wide_string_input_adapter::fill_buffer
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - operator input_adapter_t()
  - ~input_adapter_protocol()
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - nlohmann::detail::file_input_adapter::file_input_adapter
  - '& operator=(const file_input_adapter&)'
  - '& operator=(file_input_adapter&&)'
  - ~file_input_adapter() override
  - nlohmann::detail::file_input_adapter::get_character
  - ~input_stream_adapter() override
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - nlohmann::detail::input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&&)'
  - nlohmann::detail::input_stream_adapter::get_character
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&)'
  - nlohmann::detail::input_buffer_adapter::input_buffer_adapter
  - '& operator=(input_buffer_adapter&&)'
  - ~input_buffer_adapter() override
  - nlohmann::detail::input_buffer_adapter::get_character
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::fill_buffer
  - nlohmann::detail::wide_string_input_adapter::wide_string_input_adapter
  - nlohmann::detail::wide_string_input_adapter::get_character
  - nlohmann::detail::wide_string_input_adapter::fill_buffer
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - nlohmann::detail::input_adapter::input_adapter
  - operator input_adapter_t()
  - ~json_sax()
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - '& operator=(const json_sax_dom_parser&)'
  - '& operator=(json_sax_dom_parser&&)'
  - ~json_sax_dom_parser()
  - nlohmann::detail::json_sax_dom_parser::null
  - nlohmann::detail::json_sax_dom_parser::boolean
  - nlohmann::detail::json_sax_dom_parser::number_integer
  - nlohmann::detail::json_sax_dom_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_parser::number_float
  - nlohmann::detail::json_sax_dom_parser::string
  - nlohmann::detail::json_sax_dom_parser::start_object
  - nlohmann::detail::json_sax_dom_parser::key
  - nlohmann::detail::json_sax_dom_parser::end_object
  - nlohmann::detail::json_sax_dom_parser::start_array
  - nlohmann::detail::json_sax_dom_parser::end_array
  - nlohmann::detail::json_sax_dom_parser::parse_error
  - nlohmann::detail::json_sax_dom_parser::is_errored
  - nlohmann::detail::json_sax_dom_parser::handle_value
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - '& operator=(const json_sax_dom_callback_parser&)'
  - '& operator=(json_sax_dom_callback_parser&&)'
  - ~json_sax_dom_callback_parser()
  - nlohmann::detail::json_sax_dom_callback_parser::null
  - nlohmann::detail::json_sax_dom_callback_parser::boolean
  - nlohmann::detail::json_sax_dom_callback_parser::number_integer
  - nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_callback_parser::number_float
  - nlohmann::detail::json_sax_dom_callback_parser::string
  - nlohmann::detail::json_sax_dom_callback_parser::start_object
  - nlohmann::detail::json_sax_dom_callback_parser::key
  - nlohmann::detail::json_sax_dom_callback_parser::end_object
  - nlohmann::detail::json_sax_dom_callback_parser::start_array
  - nlohmann::detail::json_sax_dom_callback_parser::end_array
  - nlohmann::detail::json_sax_dom_callback_parser::parse_error
  - nlohmann::detail::json_sax_dom_callback_parser::is_errored
  - nlohmann::detail::json_sax_dom_callback_parser::handle_value
  - nlohmann::detail::json_sax_acceptor::null
  - nlohmann::detail::json_sax_acceptor::boolean
  - nlohmann::detail::json_sax_acceptor::number_integer
  - nlohmann::detail::json_sax_acceptor::number_unsigned
  - nlohmann::detail::json_sax_acceptor::number_float
  - nlohmann::detail::json_sax_acceptor::string
  - nlohmann::detail::json_sax_acceptor::start_object
  - nlohmann::detail::json_sax_acceptor::key
  - nlohmann::detail::json_sax_acceptor::end_object
  - nlohmann::detail::json_sax_acceptor::start_array
  - nlohmann::detail::json_sax_acceptor::end_array
  - nlohmann::detail::json_sax_acceptor::parse_error
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - '& operator=(const json_sax_dom_parser&)'
  - '& operator=(json_sax_dom_parser&&)'
  - ~json_sax_dom_parser()
  - nlohmann::detail::json_sax_dom_parser::null
  - nlohmann::detail::json_sax_dom_parser::boolean
  - nlohmann::detail::json_sax_dom_parser::number_integer
  - nlohmann::detail::json_sax_dom_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_parser::number_float
  - nlohmann::detail::json_sax_dom_parser::string
  - nlohmann::detail::json_sax_dom_parser::start_object
  - nlohmann::detail::json_sax_dom_parser::key
  - nlohmann::detail::json_sax_dom_parser::end_object
  - nlohmann::detail::json_sax_dom_parser::start_array
  - nlohmann::detail::json_sax_dom_parser::end_array
  - nlohmann::detail::json_sax_dom_parser::parse_error
  - nlohmann::detail::json_sax_dom_parser::is_errored
  - nlohmann::detail::json_sax_dom_parser::handle_value
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - '& operator=(const json_sax_dom_callback_parser&)'
  - '& operator=(json_sax_dom_callback_parser&&)'
  - ~json_sax_dom_callback_parser()
  - nlohmann::detail::json_sax_dom_callback_parser::null
  - nlohmann::detail::json_sax_dom_callback_parser::boolean
  - nlohmann::detail::json_sax_dom_callback_parser::number_integer
  - nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_callback_parser::number_float
  - nlohmann::detail::json_sax_dom_callback_parser::string
  - nlohmann::detail::json_sax_dom_callback_parser::start_object
  - nlohmann::detail::json_sax_dom_callback_parser::key
  - nlohmann::detail::json_sax_dom_callback_parser::end_object
  - nlohmann::detail::json_sax_dom_callback_parser::start_array
  - nlohmann::detail::json_sax_dom_callback_parser::end_array
  - nlohmann::detail::json_sax_dom_callback_parser::parse_error
  - nlohmann::detail::json_sax_dom_callback_parser::is_errored
  - nlohmann::detail::json_sax_dom_callback_parser::handle_value
  - nlohmann::detail::json_sax_acceptor::null
  - nlohmann::detail::json_sax_acceptor::boolean
  - nlohmann::detail::json_sax_acceptor::number_integer
  - nlohmann::detail::json_sax_acceptor::number_unsigned
  - nlohmann::detail::json_sax_acceptor::number_float
  - nlohmann::detail::json_sax_acceptor::string
  - nlohmann::detail::json_sax_acceptor::start_object
  - nlohmann::detail::json_sax_acceptor::key
  - nlohmann::detail::json_sax_acceptor::end_object
  - nlohmann::detail::json_sax_acceptor::start_array
  - nlohmann::detail::json_sax_acceptor::end_array
  - nlohmann::detail::json_sax_acceptor::parse_error
  - ~json_sax()
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - '& operator=(const json_sax_dom_parser&)'
  - '& operator=(json_sax_dom_parser&&)'
  - ~json_sax_dom_parser()
  - nlohmann::detail::json_sax_dom_parser::null
  - nlohmann::detail::json_sax_dom_parser::boolean
  - nlohmann::detail::json_sax_dom_parser::number_integer
  - nlohmann::detail::json_sax_dom_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_parser::number_float
  - nlohmann::detail::json_sax_dom_parser::string
  - nlohmann::detail::json_sax_dom_parser::start_object
  - nlohmann::detail::json_sax_dom_parser::key
  - nlohmann::detail::json_sax_dom_parser::end_object
  - nlohmann::detail::json_sax_dom_parser::start_array
  - nlohmann::detail::json_sax_dom_parser::end_array
  - nlohmann::detail::json_sax_dom_parser::parse_error
  - nlohmann::detail::json_sax_dom_parser::is_errored
  - nlohmann::detail::json_sax_dom_parser::handle_value
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - '& operator=(const json_sax_dom_callback_parser&)'
  - '& operator=(json_sax_dom_callback_parser&&)'
  - ~json_sax_dom_callback_parser()
  - nlohmann::detail::json_sax_dom_callback_parser::null
  - nlohmann::detail::json_sax_dom_callback_parser::boolean
  - nlohmann::detail::json_sax_dom_callback_parser::number_integer
  - nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_callback_parser::number_float
  - nlohmann::detail::json_sax_dom_callback_parser::string
  - nlohmann::detail::json_sax_dom_callback_parser::start_object
  - nlohmann::detail::json_sax_dom_callback_parser::key
  - nlohmann::detail::json_sax_dom_callback_parser::end_object
  - nlohmann::detail::json_sax_dom_callback_parser::start_array
  - nlohmann::detail::json_sax_dom_callback_parser::end_array
  - nlohmann::detail::json_sax_dom_callback_parser::parse_error
  - nlohmann::detail::json_sax_dom_callback_parser::is_errored
  - nlohmann::detail::json_sax_dom_callback_parser::handle_value
  - nlohmann::detail::json_sax_acceptor::null
  - nlohmann::detail::json_sax_acceptor::boolean
  - nlohmann::detail::json_sax_acceptor::number_integer
  - nlohmann::detail::json_sax_acceptor::number_unsigned
  - nlohmann::detail::json_sax_acceptor::number_float
  - nlohmann::detail::json_sax_acceptor::string
  - nlohmann::detail::json_sax_acceptor::start_object
  - nlohmann::detail::json_sax_acceptor::key
  - nlohmann::detail::json_sax_acceptor::end_object
  - nlohmann::detail::json_sax_acceptor::start_array
  - nlohmann::detail::json_sax_acceptor::end_array
  - nlohmann::detail::json_sax_acceptor::parse_error
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - nlohmann::detail::json_sax_dom_parser::json_sax_dom_parser
  - '& operator=(const json_sax_dom_parser&)'
  - '& operator=(json_sax_dom_parser&&)'
  - ~json_sax_dom_parser()
  - nlohmann::detail::json_sax_dom_parser::null
  - nlohmann::detail::json_sax_dom_parser::boolean
  - nlohmann::detail::json_sax_dom_parser::number_integer
  - nlohmann::detail::json_sax_dom_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_parser::number_float
  - nlohmann::detail::json_sax_dom_parser::string
  - nlohmann::detail::json_sax_dom_parser::start_object
  - nlohmann::detail::json_sax_dom_parser::key
  - nlohmann::detail::json_sax_dom_parser::end_object
  - nlohmann::detail::json_sax_dom_parser::start_array
  - nlohmann::detail::json_sax_dom_parser::end_array
  - nlohmann::detail::json_sax_dom_parser::parse_error
  - nlohmann::detail::json_sax_dom_parser::is_errored
  - nlohmann::detail::json_sax_dom_parser::handle_value
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - nlohmann::detail::json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - '& operator=(const json_sax_dom_callback_parser&)'
  - '& operator=(json_sax_dom_callback_parser&&)'
  - ~json_sax_dom_callback_parser()
  - nlohmann::detail::json_sax_dom_callback_parser::null
  - nlohmann::detail::json_sax_dom_callback_parser::boolean
  - nlohmann::detail::json_sax_dom_callback_parser::number_integer
  - nlohmann::detail::json_sax_dom_callback_parser::number_unsigned
  - nlohmann::detail::json_sax_dom_callback_parser::number_float
  - nlohmann::detail::json_sax_dom_callback_parser::string
  - nlohmann::detail::json_sax_dom_callback_parser::start_object
  - nlohmann::detail::json_sax_dom_callback_parser::key
  - nlohmann::detail::json_sax_dom_callback_parser::end_object
  - nlohmann::detail::json_sax_dom_callback_parser::start_array
  - nlohmann::detail::json_sax_dom_callback_parser::end_array
  - nlohmann::detail::json_sax_dom_callback_parser::parse_error
  - nlohmann::detail::json_sax_dom_callback_parser::is_errored
  - nlohmann::detail::json_sax_dom_callback_parser::handle_value
  - nlohmann::detail::json_sax_acceptor::null
  - nlohmann::detail::json_sax_acceptor::boolean
  - nlohmann::detail::json_sax_acceptor::number_integer
  - nlohmann::detail::json_sax_acceptor::number_unsigned
  - nlohmann::detail::json_sax_acceptor::number_float
  - nlohmann::detail::json_sax_acceptor::string
  - nlohmann::detail::json_sax_acceptor::start_object
  - nlohmann::detail::json_sax_acceptor::key
  - nlohmann::detail::json_sax_acceptor::end_object
  - nlohmann::detail::json_sax_acceptor::start_array
  - nlohmann::detail::json_sax_acceptor::end_array
  - nlohmann::detail::json_sax_acceptor::parse_error
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - '& operator=(const binary_reader&)'
  - '& operator=(binary_reader&&)'
  - ~binary_reader()
  - nlohmann::detail::binary_reader::sax_parse
  - nlohmann::detail::binary_reader::little_endianess
  - nlohmann::detail::binary_reader::parse_bson_internal
  - nlohmann::detail::binary_reader::get_bson_cstr
  - nlohmann::detail::binary_reader::get_bson_string
  - nlohmann::detail::binary_reader::parse_bson_element_internal
  - nlohmann::detail::binary_reader::parse_bson_element_list
  - nlohmann::detail::binary_reader::parse_bson_array
  - nlohmann::detail::binary_reader::parse_cbor_internal
  - nlohmann::detail::binary_reader::get_cbor_string
  - nlohmann::detail::binary_reader::get_cbor_array
  - nlohmann::detail::binary_reader::get_cbor_object
  - nlohmann::detail::binary_reader::parse_msgpack_internal
  - nlohmann::detail::binary_reader::get_msgpack_string
  - nlohmann::detail::binary_reader::get_msgpack_array
  - nlohmann::detail::binary_reader::get_msgpack_object
  - nlohmann::detail::binary_reader::parse_ubjson_internal
  - nlohmann::detail::binary_reader::get_ubjson_string
  - nlohmann::detail::binary_reader::get_ubjson_size_value
  - nlohmann::detail::binary_reader::get_ubjson_size_type
  - nlohmann::detail::binary_reader::get_ubjson_value
  - nlohmann::detail::binary_reader::get_ubjson_array
  - nlohmann::detail::binary_reader::get_ubjson_object
  - nlohmann::detail::binary_reader::get
  - nlohmann::detail::binary_reader::get_ignore_noop
  - nlohmann::detail::binary_reader::get_number
  - nlohmann::detail::binary_reader::get_string
  - nlohmann::detail::binary_reader::unexpect_eof
  - nlohmann::detail::binary_reader::get_token_string
  - nlohmann::detail::binary_reader::exception_message
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - '& operator=(const binary_reader&)'
  - '& operator=(binary_reader&&)'
  - ~binary_reader()
  - nlohmann::detail::binary_reader::sax_parse
  - nlohmann::detail::binary_reader::little_endianess
  - nlohmann::detail::binary_reader::parse_bson_internal
  - nlohmann::detail::binary_reader::get_bson_cstr
  - nlohmann::detail::binary_reader::get_bson_string
  - nlohmann::detail::binary_reader::parse_bson_element_internal
  - nlohmann::detail::binary_reader::parse_bson_element_list
  - nlohmann::detail::binary_reader::parse_bson_array
  - nlohmann::detail::binary_reader::parse_cbor_internal
  - nlohmann::detail::binary_reader::get_cbor_string
  - nlohmann::detail::binary_reader::get_cbor_array
  - nlohmann::detail::binary_reader::get_cbor_object
  - nlohmann::detail::binary_reader::parse_msgpack_internal
  - nlohmann::detail::binary_reader::get_msgpack_string
  - nlohmann::detail::binary_reader::get_msgpack_array
  - nlohmann::detail::binary_reader::get_msgpack_object
  - nlohmann::detail::binary_reader::parse_ubjson_internal
  - nlohmann::detail::binary_reader::get_ubjson_string
  - nlohmann::detail::binary_reader::get_ubjson_size_value
  - nlohmann::detail::binary_reader::get_ubjson_size_type
  - nlohmann::detail::binary_reader::get_ubjson_value
  - nlohmann::detail::binary_reader::get_ubjson_array
  - nlohmann::detail::binary_reader::get_ubjson_object
  - nlohmann::detail::binary_reader::get
  - nlohmann::detail::binary_reader::get_ignore_noop
  - nlohmann::detail::binary_reader::get_number
  - nlohmann::detail::binary_reader::get_string
  - nlohmann::detail::binary_reader::unexpect_eof
  - nlohmann::detail::binary_reader::get_token_string
  - nlohmann::detail::binary_reader::exception_message
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - '& operator=(const binary_reader&)'
  - '& operator=(binary_reader&&)'
  - ~binary_reader()
  - nlohmann::detail::binary_reader::sax_parse
  - nlohmann::detail::binary_reader::little_endianess
  - nlohmann::detail::binary_reader::parse_bson_internal
  - nlohmann::detail::binary_reader::get_bson_cstr
  - nlohmann::detail::binary_reader::get_bson_string
  - nlohmann::detail::binary_reader::parse_bson_element_internal
  - nlohmann::detail::binary_reader::parse_bson_element_list
  - nlohmann::detail::binary_reader::parse_bson_array
  - nlohmann::detail::binary_reader::parse_cbor_internal
  - nlohmann::detail::binary_reader::get_cbor_string
  - nlohmann::detail::binary_reader::get_cbor_array
  - nlohmann::detail::binary_reader::get_cbor_object
  - nlohmann::detail::binary_reader::parse_msgpack_internal
  - nlohmann::detail::binary_reader::get_msgpack_string
  - nlohmann::detail::binary_reader::get_msgpack_array
  - nlohmann::detail::binary_reader::get_msgpack_object
  - nlohmann::detail::binary_reader::parse_ubjson_internal
  - nlohmann::detail::binary_reader::get_ubjson_string
  - nlohmann::detail::binary_reader::get_ubjson_size_value
  - nlohmann::detail::binary_reader::get_ubjson_size_type
  - nlohmann::detail::binary_reader::get_ubjson_value
  - nlohmann::detail::binary_reader::get_ubjson_array
  - nlohmann::detail::binary_reader::get_ubjson_object
  - nlohmann::detail::binary_reader::get
  - nlohmann::detail::binary_reader::get_ignore_noop
  - nlohmann::detail::binary_reader::get_number
  - nlohmann::detail::binary_reader::get_string
  - nlohmann::detail::binary_reader::unexpect_eof
  - nlohmann::detail::binary_reader::get_token_string
  - nlohmann::detail::binary_reader::exception_message
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - nlohmann::detail::binary_reader::binary_reader
  - '& operator=(const binary_reader&)'
  - '& operator=(binary_reader&&)'
  - ~binary_reader()
  - nlohmann::detail::binary_reader::sax_parse
  - nlohmann::detail::binary_reader::little_endianess
  - nlohmann::detail::binary_reader::parse_bson_internal
  - nlohmann::detail::binary_reader::get_bson_cstr
  - nlohmann::detail::binary_reader::get_bson_string
  - nlohmann::detail::binary_reader::parse_bson_element_internal
  - nlohmann::detail::binary_reader::parse_bson_element_list
  - nlohmann::detail::binary_reader::parse_bson_array
  - nlohmann::detail::binary_reader::parse_cbor_internal
  - nlohmann::detail::binary_reader::get_cbor_string
  - nlohmann::detail::binary_reader::get_cbor_array
  - nlohmann::detail::binary_reader::get_cbor_object
  - nlohmann::detail::binary_reader::parse_msgpack_internal
  - nlohmann::detail::binary_reader::get_msgpack_string
  - nlohmann::detail::binary_reader::get_msgpack_array
  - nlohmann::detail::binary_reader::get_msgpack_object
  - nlohmann::detail::binary_reader::parse_ubjson_internal
  - nlohmann::detail::binary_reader::get_ubjson_string
  - nlohmann::detail::binary_reader::get_ubjson_size_value
  - nlohmann::detail::binary_reader::get_ubjson_size_type
  - nlohmann::detail::binary_reader::get_ubjson_value
  - nlohmann::detail::binary_reader::get_ubjson_array
  - nlohmann::detail::binary_reader::get_ubjson_object
  - nlohmann::detail::binary_reader::get
  - nlohmann::detail::binary_reader::get_ignore_noop
  - nlohmann::detail::binary_reader::get_number
  - nlohmann::detail::binary_reader::get_string
  - nlohmann::detail::binary_reader::unexpect_eof
  - nlohmann::detail::binary_reader::get_token_string
  - nlohmann::detail::binary_reader::exception_message
  - nlohmann::detail::lexer::token_type_name
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - '& operator=(lexer&)'
  - '& operator=(lexer&&)'
  - ~lexer()
  - nlohmann::detail::lexer::get_decimal_point
  - nlohmann::detail::lexer::get_codepoint
  - nlohmann::detail::lexer::next_byte_in_range
  - nlohmann::detail::lexer::scan_string
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::scan_number
  - nlohmann::detail::lexer::scan_literal
  - nlohmann::detail::lexer::reset
  - nlohmann::detail::lexer::get
  - nlohmann::detail::lexer::unget
  - nlohmann::detail::lexer::add
  - nlohmann::detail::lexer::get_number_integer
  - nlohmann::detail::lexer::get_number_unsigned
  - nlohmann::detail::lexer::get_number_float
  - '& get_string()'
  - nlohmann::detail::lexer::get_position
  - nlohmann::detail::lexer::get_token_string
  - nlohmann::detail::lexer::get_error_message
  - nlohmann::detail::lexer::skip_bom
  - nlohmann::detail::lexer::scan
  - nlohmann::detail::lexer::token_type_name
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - '& operator=(lexer&)'
  - '& operator=(lexer&&)'
  - ~lexer()
  - nlohmann::detail::lexer::get_decimal_point
  - nlohmann::detail::lexer::get_codepoint
  - nlohmann::detail::lexer::next_byte_in_range
  - nlohmann::detail::lexer::scan_string
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::scan_number
  - nlohmann::detail::lexer::scan_literal
  - nlohmann::detail::lexer::reset
  - nlohmann::detail::lexer::get
  - nlohmann::detail::lexer::unget
  - nlohmann::detail::lexer::add
  - nlohmann::detail::lexer::get_number_integer
  - nlohmann::detail::lexer::get_number_unsigned
  - nlohmann::detail::lexer::get_number_float
  - '& get_string()'
  - nlohmann::detail::lexer::get_position
  - nlohmann::detail::lexer::get_token_string
  - nlohmann::detail::lexer::get_error_message
  - nlohmann::detail::lexer::skip_bom
  - nlohmann::detail::lexer::scan
  - nlohmann::detail::lexer::token_type_name
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - '& operator=(lexer&)'
  - '& operator=(lexer&&)'
  - ~lexer()
  - nlohmann::detail::lexer::get_decimal_point
  - nlohmann::detail::lexer::get_codepoint
  - nlohmann::detail::lexer::next_byte_in_range
  - nlohmann::detail::lexer::scan_string
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::scan_number
  - nlohmann::detail::lexer::scan_literal
  - nlohmann::detail::lexer::reset
  - nlohmann::detail::lexer::get
  - nlohmann::detail::lexer::unget
  - nlohmann::detail::lexer::add
  - nlohmann::detail::lexer::get_number_integer
  - nlohmann::detail::lexer::get_number_unsigned
  - nlohmann::detail::lexer::get_number_float
  - '& get_string()'
  - nlohmann::detail::lexer::get_position
  - nlohmann::detail::lexer::get_token_string
  - nlohmann::detail::lexer::get_error_message
  - nlohmann::detail::lexer::skip_bom
  - nlohmann::detail::lexer::scan
  - nlohmann::detail::lexer::token_type_name
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - nlohmann::detail::lexer::lexer
  - '& operator=(lexer&)'
  - '& operator=(lexer&&)'
  - ~lexer()
  - nlohmann::detail::lexer::get_decimal_point
  - nlohmann::detail::lexer::get_codepoint
  - nlohmann::detail::lexer::next_byte_in_range
  - nlohmann::detail::lexer::scan_string
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::strtof
  - nlohmann::detail::lexer::scan_number
  - nlohmann::detail::lexer::scan_literal
  - nlohmann::detail::lexer::reset
  - nlohmann::detail::lexer::get
  - nlohmann::detail::lexer::unget
  - nlohmann::detail::lexer::add
  - nlohmann::detail::lexer::get_number_integer
  - nlohmann::detail::lexer::get_number_unsigned
  - nlohmann::detail::lexer::get_number_float
  - '& get_string()'
  - nlohmann::detail::lexer::get_position
  - nlohmann::detail::lexer::get_token_string
  - nlohmann::detail::lexer::get_error_message
  - nlohmann::detail::lexer::skip_bom
  - nlohmann::detail::lexer::scan
  - nlohmann::detail::parser::parser
  - nlohmann::detail::parser::parse
  - nlohmann::detail::parser::accept
  - nlohmann::detail::parser::sax_parse
  - nlohmann::detail::parser::sax_parse_internal
  - nlohmann::detail::parser::get_token
  - nlohmann::detail::parser::exception_message
  - nlohmann::detail::parser::parser
  - nlohmann::detail::parser::parse
  - nlohmann::detail::parser::accept
  - nlohmann::detail::parser::sax_parse
  - nlohmann::detail::parser::sax_parse_internal
  - nlohmann::detail::parser::get_token
  - nlohmann::detail::parser::exception_message
  - nlohmann::detail::parser::parser
  - nlohmann::detail::parser::parse
  - nlohmann::detail::parser::accept
  - nlohmann::detail::parser::sax_parse
  - nlohmann::detail::parser::sax_parse_internal
  - nlohmann::detail::parser::get_token
  - nlohmann::detail::parser::exception_message
  - nlohmann::detail::parser::parser
  - nlohmann::detail::parser::parse
  - nlohmann::detail::parser::accept
  - nlohmann::detail::parser::sax_parse
  - nlohmann::detail::parser::sax_parse_internal
  - nlohmann::detail::parser::get_token
  - nlohmann::detail::parser::exception_message
  - nlohmann::detail::primitive_iterator_t::get_value
  - nlohmann::detail::primitive_iterator_t::set_begin
  - nlohmann::detail::primitive_iterator_t::set_end
  - nlohmann::detail::primitive_iterator_t::is_begin
  - nlohmann::detail::primitive_iterator_t::is_end
  - operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator+(difference_type n) noexcept
  - operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - '& operator++() noexcept'
  - operator++(int) noexcept
  - '& operator--() noexcept'
  - operator--(int) noexcept
  - '& operator+=(difference_type n) noexcept'
  - '& operator-=(difference_type n) noexcept'
  - nlohmann::detail::primitive_iterator_t::get_value
  - nlohmann::detail::primitive_iterator_t::set_begin
  - nlohmann::detail::primitive_iterator_t::set_end
  - nlohmann::detail::primitive_iterator_t::is_begin
  - nlohmann::detail::primitive_iterator_t::is_end
  - operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator+(difference_type n) noexcept
  - operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - '& operator++() noexcept'
  - operator++(int) noexcept
  - '& operator--() noexcept'
  - operator--(int) noexcept
  - '& operator+=(difference_type n) noexcept'
  - '& operator-=(difference_type n) noexcept'
  - nlohmann::detail::primitive_iterator_t::get_value
  - nlohmann::detail::primitive_iterator_t::set_begin
  - nlohmann::detail::primitive_iterator_t::set_end
  - nlohmann::detail::primitive_iterator_t::is_begin
  - nlohmann::detail::primitive_iterator_t::is_end
  - operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator+(difference_type n) noexcept
  - operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - '& operator++() noexcept'
  - operator++(int) noexcept
  - '& operator--() noexcept'
  - operator--(int) noexcept
  - '& operator+=(difference_type n) noexcept'
  - '& operator-=(difference_type n) noexcept'
  - nlohmann::detail::primitive_iterator_t::get_value
  - nlohmann::detail::primitive_iterator_t::set_begin
  - nlohmann::detail::primitive_iterator_t::set_end
  - nlohmann::detail::primitive_iterator_t::is_begin
  - nlohmann::detail::primitive_iterator_t::is_end
  - operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator+(difference_type n) noexcept
  - operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - '& operator++() noexcept'
  - operator++(int) noexcept
  - '& operator--() noexcept'
  - operator--(int) noexcept
  - '& operator+=(difference_type n) noexcept'
  - '& operator-=(difference_type n) noexcept'
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
    other) noexcept'
  - nlohmann::detail::iter_impl::set_begin
  - nlohmann::detail::iter_impl::set_end
  - operator*() const
  - operator->() const
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - operator==(const iter_impl& other) const
  - operator!=(const iter_impl& other) const
  - operator<(const iter_impl& other) const
  - operator<=(const iter_impl& other) const
  - operator>(const iter_impl& other) const
  - operator>=(const iter_impl& other) const
  - '& operator+=(difference_type i)'
  - '& operator-=(difference_type i)'
  - operator+(difference_type i) const
  - operator+(difference_type i, const iter_impl& it)
  - operator-(difference_type i) const
  - operator-(const iter_impl& other) const
  - operator[](difference_type n) const
  - '& key() const'
  - nlohmann::detail::iter_impl::value
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
    other) noexcept'
  - nlohmann::detail::iter_impl::set_begin
  - nlohmann::detail::iter_impl::set_end
  - operator*() const
  - operator->() const
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - operator==(const iter_impl& other) const
  - operator!=(const iter_impl& other) const
  - operator<(const iter_impl& other) const
  - operator<=(const iter_impl& other) const
  - operator>(const iter_impl& other) const
  - operator>=(const iter_impl& other) const
  - '& operator+=(difference_type i)'
  - '& operator-=(difference_type i)'
  - operator+(difference_type i) const
  - operator+(difference_type i, const iter_impl& it)
  - operator-(difference_type i) const
  - operator-(const iter_impl& other) const
  - operator[](difference_type n) const
  - '& key() const'
  - nlohmann::detail::iter_impl::value
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
    other) noexcept'
  - nlohmann::detail::iter_impl::set_begin
  - nlohmann::detail::iter_impl::set_end
  - operator*() const
  - operator->() const
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - operator==(const iter_impl& other) const
  - operator!=(const iter_impl& other) const
  - operator<(const iter_impl& other) const
  - operator<=(const iter_impl& other) const
  - operator>(const iter_impl& other) const
  - operator>=(const iter_impl& other) const
  - '& operator+=(difference_type i)'
  - '& operator-=(difference_type i)'
  - operator+(difference_type i) const
  - operator+(difference_type i, const iter_impl& it)
  - operator-(difference_type i) const
  - operator-(const iter_impl& other) const
  - operator[](difference_type n) const
  - '& key() const'
  - nlohmann::detail::iter_impl::value
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - nlohmann::detail::iter_impl::iter_impl
  - '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
    other) noexcept'
  - nlohmann::detail::iter_impl::set_begin
  - nlohmann::detail::iter_impl::set_end
  - operator*() const
  - operator->() const
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - operator==(const iter_impl& other) const
  - operator!=(const iter_impl& other) const
  - operator<(const iter_impl& other) const
  - operator<=(const iter_impl& other) const
  - operator>(const iter_impl& other) const
  - operator>=(const iter_impl& other) const
  - '& operator+=(difference_type i)'
  - '& operator-=(difference_type i)'
  - operator+(difference_type i) const
  - operator+(difference_type i, const iter_impl& it)
  - operator-(difference_type i) const
  - operator-(const iter_impl& other) const
  - operator[](difference_type n) const
  - '& key() const'
  - nlohmann::detail::iter_impl::value
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - '& operator+=(difference_type i)'
  - operator+(difference_type i) const
  - operator-(difference_type i) const
  - operator-(const json_reverse_iterator& other) const
  - operator[](difference_type n) const
  - nlohmann::detail::json_reverse_iterator::key
  - nlohmann::detail::json_reverse_iterator::value
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - '& operator+=(difference_type i)'
  - operator+(difference_type i) const
  - operator-(difference_type i) const
  - operator-(const json_reverse_iterator& other) const
  - operator[](difference_type n) const
  - nlohmann::detail::json_reverse_iterator::key
  - nlohmann::detail::json_reverse_iterator::value
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - '& operator+=(difference_type i)'
  - operator+(difference_type i) const
  - operator-(difference_type i) const
  - operator-(const json_reverse_iterator& other) const
  - operator[](difference_type n) const
  - nlohmann::detail::json_reverse_iterator::key
  - nlohmann::detail::json_reverse_iterator::value
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - nlohmann::detail::json_reverse_iterator::json_reverse_iterator
  - operator++(int)
  - '& operator++()'
  - operator--(int)
  - '& operator--()'
  - '& operator+=(difference_type i)'
  - operator+(difference_type i) const
  - operator-(difference_type i) const
  - operator-(const json_reverse_iterator& other) const
  - operator[](difference_type n) const
  - nlohmann::detail::json_reverse_iterator::key
  - nlohmann::detail::json_reverse_iterator::value
  - nlohmann::json_pointer::json_pointer
  - nlohmann::json_pointer::to_string
  - operator std::string() const
  - '& operator/=(const json_pointer& ptr)'
  - '& operator/=(std::string token)'
  - '& operator/=(std::size_t array_index)'
  - "operator/(const json_pointer& lhs,\n                                  const json_pointer&
    rhs)"
  - operator/(const json_pointer& ptr, std::string token)
  - operator/(const json_pointer& ptr, std::size_t array_index)
  - nlohmann::json_pointer::parent_pointer
  - nlohmann::json_pointer::pop_back
  - '& back()'
  - nlohmann::json_pointer::push_back
  - nlohmann::json_pointer::push_back
  - nlohmann::json_pointer::empty
  - nlohmann::json_pointer::array_index
  - nlohmann::json_pointer::top
  - '& get_and_create(BasicJsonType& j) const'
  - nlohmann::json_pointer::json_pointer
  - nlohmann::json_pointer::to_string
  - operator std::string() const
  - '& operator/=(const json_pointer& ptr)'
  - '& operator/=(std::string token)'
  - '& operator/=(std::size_t array_index)'
  - "operator/(const json_pointer& lhs,\n                                  const json_pointer&
    rhs)"
  - operator/(const json_pointer& ptr, std::string token)
  - operator/(const json_pointer& ptr, std::size_t array_index)
  - nlohmann::json_pointer::parent_pointer
  - nlohmann::json_pointer::pop_back
  - '& back()'
  - nlohmann::json_pointer::push_back
  - nlohmann::json_pointer::push_back
  - nlohmann::json_pointer::empty
  - nlohmann::json_pointer::array_index
  - nlohmann::json_pointer::top
  - '& get_and_create(BasicJsonType& j) const'
  - get_unchecked
  - JSON_CATCH
  - get_checked
  - get_unchecked
  - get_checked
  - split
  - replace_substring
  - escape
  - unescape
  - flatten
  - unflatten
  - "operator==(json_pointer const& lhs,\n                           json_pointer
    const& rhs) noexcept"
  - "operator!=(json_pointer const& lhs,\n                           json_pointer
    const& rhs) noexcept"
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - '& operator=(const json_ref&)'
  - '& operator=(json_ref&&)'
  - ~json_ref()
  - nlohmann::detail::json_ref::moved_or_copied
  - '& operator*() const'
  - '* operator->() const'
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - '& operator=(const json_ref&)'
  - '& operator=(json_ref&&)'
  - ~json_ref()
  - nlohmann::detail::json_ref::moved_or_copied
  - '& operator*() const'
  - '* operator->() const'
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - '& operator=(const json_ref&)'
  - '& operator=(json_ref&&)'
  - ~json_ref()
  - nlohmann::detail::json_ref::moved_or_copied
  - '& operator*() const'
  - '* operator->() const'
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - nlohmann::detail::json_ref::json_ref
  - '& operator=(const json_ref&)'
  - '& operator=(json_ref&&)'
  - ~json_ref()
  - nlohmann::detail::json_ref::moved_or_copied
  - '& operator*() const'
  - '* operator->() const'
  - ~output_adapter_protocol()
  - nlohmann::detail::output_vector_adapter::output_vector_adapter
  - nlohmann::detail::output_vector_adapter::write_character
  - nlohmann::detail::output_vector_adapter::write_characters
  - nlohmann::detail::output_stream_adapter::output_stream_adapter
  - nlohmann::detail::output_stream_adapter::write_character
  - nlohmann::detail::output_stream_adapter::write_characters
  - nlohmann::detail::output_string_adapter::output_string_adapter
  - nlohmann::detail::output_string_adapter::write_character
  - nlohmann::detail::output_string_adapter::write_characters
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - operator output_adapter_t<CharType>()
  - ~output_adapter_protocol()
  - nlohmann::detail::output_vector_adapter::output_vector_adapter
  - nlohmann::detail::output_vector_adapter::write_character
  - nlohmann::detail::output_vector_adapter::write_characters
  - nlohmann::detail::output_stream_adapter::output_stream_adapter
  - nlohmann::detail::output_stream_adapter::write_character
  - nlohmann::detail::output_stream_adapter::write_characters
  - nlohmann::detail::output_string_adapter::output_string_adapter
  - nlohmann::detail::output_string_adapter::write_character
  - nlohmann::detail::output_string_adapter::write_characters
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - operator output_adapter_t<CharType>()
  - ~output_adapter_protocol()
  - nlohmann::detail::output_vector_adapter::output_vector_adapter
  - nlohmann::detail::output_vector_adapter::write_character
  - nlohmann::detail::output_vector_adapter::write_characters
  - nlohmann::detail::output_stream_adapter::output_stream_adapter
  - nlohmann::detail::output_stream_adapter::write_character
  - nlohmann::detail::output_stream_adapter::write_characters
  - nlohmann::detail::output_string_adapter::output_string_adapter
  - nlohmann::detail::output_string_adapter::write_character
  - nlohmann::detail::output_string_adapter::write_characters
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - operator output_adapter_t<CharType>()
  - ~output_adapter_protocol()
  - nlohmann::detail::output_vector_adapter::output_vector_adapter
  - nlohmann::detail::output_vector_adapter::write_character
  - nlohmann::detail::output_vector_adapter::write_characters
  - nlohmann::detail::output_stream_adapter::output_stream_adapter
  - nlohmann::detail::output_stream_adapter::write_character
  - nlohmann::detail::output_stream_adapter::write_characters
  - nlohmann::detail::output_string_adapter::output_string_adapter
  - nlohmann::detail::output_string_adapter::write_character
  - nlohmann::detail::output_string_adapter::write_characters
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - nlohmann::detail::output_adapter::output_adapter
  - operator output_adapter_t<CharType>()
  - nlohmann::detail::binary_writer::binary_writer
  - nlohmann::detail::binary_writer::write_bson
  - nlohmann::detail::binary_writer::write_cbor
  - nlohmann::detail::binary_writer::write_msgpack
  - nlohmann::detail::binary_writer::write_ubjson
  - nlohmann::detail::binary_writer::calc_bson_entry_header_size
  - nlohmann::detail::binary_writer::write_bson_entry_header
  - nlohmann::detail::binary_writer::write_bson_boolean
  - nlohmann::detail::binary_writer::write_bson_double
  - nlohmann::detail::binary_writer::calc_bson_string_size
  - nlohmann::detail::binary_writer::write_bson_string
  - nlohmann::detail::binary_writer::write_bson_null
  - nlohmann::detail::binary_writer::calc_bson_integer_size
  - nlohmann::detail::binary_writer::write_bson_integer
  - nlohmann::detail::binary_writer::calc_bson_unsigned_size
  - nlohmann::detail::binary_writer::write_bson_unsigned
  - nlohmann::detail::binary_writer::write_bson_object_entry
  - nlohmann::detail::binary_writer::calc_bson_array_size
  - nlohmann::detail::binary_writer::write_bson_array
  - nlohmann::detail::binary_writer::calc_bson_element_size
  - nlohmann::detail::binary_writer::write_bson_element
  - nlohmann::detail::binary_writer::calc_bson_object_size
  - nlohmann::detail::binary_writer::write_bson_object
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::ubjson_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::write_number
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::binary_writer
  - nlohmann::detail::binary_writer::write_bson
  - nlohmann::detail::binary_writer::write_cbor
  - nlohmann::detail::binary_writer::write_msgpack
  - nlohmann::detail::binary_writer::write_ubjson
  - nlohmann::detail::binary_writer::calc_bson_entry_header_size
  - nlohmann::detail::binary_writer::write_bson_entry_header
  - nlohmann::detail::binary_writer::write_bson_boolean
  - nlohmann::detail::binary_writer::write_bson_double
  - nlohmann::detail::binary_writer::calc_bson_string_size
  - nlohmann::detail::binary_writer::write_bson_string
  - nlohmann::detail::binary_writer::write_bson_null
  - nlohmann::detail::binary_writer::calc_bson_integer_size
  - nlohmann::detail::binary_writer::write_bson_integer
  - nlohmann::detail::binary_writer::calc_bson_unsigned_size
  - nlohmann::detail::binary_writer::write_bson_unsigned
  - nlohmann::detail::binary_writer::write_bson_object_entry
  - nlohmann::detail::binary_writer::calc_bson_array_size
  - nlohmann::detail::binary_writer::write_bson_array
  - nlohmann::detail::binary_writer::calc_bson_element_size
  - nlohmann::detail::binary_writer::write_bson_element
  - nlohmann::detail::binary_writer::calc_bson_object_size
  - nlohmann::detail::binary_writer::write_bson_object
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::ubjson_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::write_number
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::binary_writer
  - nlohmann::detail::binary_writer::write_bson
  - nlohmann::detail::binary_writer::write_cbor
  - nlohmann::detail::binary_writer::write_msgpack
  - nlohmann::detail::binary_writer::write_ubjson
  - nlohmann::detail::binary_writer::calc_bson_entry_header_size
  - nlohmann::detail::binary_writer::write_bson_entry_header
  - nlohmann::detail::binary_writer::write_bson_boolean
  - nlohmann::detail::binary_writer::write_bson_double
  - nlohmann::detail::binary_writer::calc_bson_string_size
  - nlohmann::detail::binary_writer::write_bson_string
  - nlohmann::detail::binary_writer::write_bson_null
  - nlohmann::detail::binary_writer::calc_bson_integer_size
  - nlohmann::detail::binary_writer::write_bson_integer
  - nlohmann::detail::binary_writer::calc_bson_unsigned_size
  - nlohmann::detail::binary_writer::write_bson_unsigned
  - nlohmann::detail::binary_writer::write_bson_object_entry
  - nlohmann::detail::binary_writer::calc_bson_array_size
  - nlohmann::detail::binary_writer::write_bson_array
  - nlohmann::detail::binary_writer::calc_bson_element_size
  - nlohmann::detail::binary_writer::write_bson_element
  - nlohmann::detail::binary_writer::calc_bson_object_size
  - nlohmann::detail::binary_writer::write_bson_object
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::ubjson_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::write_number
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::binary_writer
  - nlohmann::detail::binary_writer::write_bson
  - nlohmann::detail::binary_writer::write_cbor
  - nlohmann::detail::binary_writer::write_msgpack
  - nlohmann::detail::binary_writer::write_ubjson
  - nlohmann::detail::binary_writer::calc_bson_entry_header_size
  - nlohmann::detail::binary_writer::write_bson_entry_header
  - nlohmann::detail::binary_writer::write_bson_boolean
  - nlohmann::detail::binary_writer::write_bson_double
  - nlohmann::detail::binary_writer::calc_bson_string_size
  - nlohmann::detail::binary_writer::write_bson_string
  - nlohmann::detail::binary_writer::write_bson_null
  - nlohmann::detail::binary_writer::calc_bson_integer_size
  - nlohmann::detail::binary_writer::write_bson_integer
  - nlohmann::detail::binary_writer::calc_bson_unsigned_size
  - nlohmann::detail::binary_writer::write_bson_unsigned
  - nlohmann::detail::binary_writer::write_bson_object_entry
  - nlohmann::detail::binary_writer::calc_bson_array_size
  - nlohmann::detail::binary_writer::write_bson_array
  - nlohmann::detail::binary_writer::calc_bson_element_size
  - nlohmann::detail::binary_writer::write_bson_element
  - nlohmann::detail::binary_writer::calc_bson_object_size
  - nlohmann::detail::binary_writer::write_bson_object
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_cbor_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::get_msgpack_float_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::write_number_with_ubjson_prefix
  - nlohmann::detail::binary_writer::ubjson_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::get_ubjson_float_prefix
  - nlohmann::detail::binary_writer::write_number
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::binary_writer::to_char_type
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::to_chars
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::to_chars
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::to_chars
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::dtoa_impl::reinterpret_bits
  - nlohmann::detail::dtoa_impl::diyfp
  - nlohmann::detail::dtoa_impl::sub
  - nlohmann::detail::dtoa_impl::mul
  - nlohmann::detail::dtoa_impl::normalize
  - nlohmann::detail::dtoa_impl::normalize_to
  - nlohmann::detail::dtoa_impl::compute_boundaries
  - nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent
  - nlohmann::detail::dtoa_impl::find_largest_pow10
  - nlohmann::detail::dtoa_impl::grisu2_round
  - nlohmann::detail::dtoa_impl::grisu2_digit_gen
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::grisu2
  - nlohmann::detail::dtoa_impl::append_exponent
  - nlohmann::detail::dtoa_impl::format_buffer
  - nlohmann::detail::to_chars
  - nlohmann::detail::serializer::serializer
  - nlohmann::detail::serializer::serializer
  - '& operator=(const serializer&)'
  - nlohmann::detail::serializer::serializer
  - '& operator=(serializer&&)'
  - ~serializer()
  - nlohmann::detail::serializer::dump
  - nlohmann::detail::serializer::dump_escaped
  - nlohmann::detail::serializer::count_digits
  - nlohmann::detail::serializer::dump_integer
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::decode
  - nlohmann::detail::serializer::serializer
  - nlohmann::detail::serializer::serializer
  - '& operator=(const serializer&)'
  - nlohmann::detail::serializer::serializer
  - '& operator=(serializer&&)'
  - ~serializer()
  - nlohmann::detail::serializer::dump
  - nlohmann::detail::serializer::dump_escaped
  - nlohmann::detail::serializer::count_digits
  - nlohmann::detail::serializer::dump_integer
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::decode
  - nlohmann::detail::serializer::serializer
  - nlohmann::detail::serializer::serializer
  - '& operator=(const serializer&)'
  - nlohmann::detail::serializer::serializer
  - '& operator=(serializer&&)'
  - ~serializer()
  - nlohmann::detail::serializer::dump
  - nlohmann::detail::serializer::dump_escaped
  - nlohmann::detail::serializer::count_digits
  - nlohmann::detail::serializer::dump_integer
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::decode
  - nlohmann::detail::serializer::serializer
  - nlohmann::detail::serializer::serializer
  - '& operator=(const serializer&)'
  - nlohmann::detail::serializer::serializer
  - '& operator=(serializer&&)'
  - ~serializer()
  - nlohmann::detail::serializer::dump
  - nlohmann::detail::serializer::dump_escaped
  - nlohmann::detail::serializer::count_digits
  - nlohmann::detail::serializer::dump_integer
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::dump_float
  - nlohmann::detail::serializer::decode
  - nlohmann::basic_json
  - nlohmann::get_allocator
  - nlohmann::meta
  - nlohmann::create
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::destroy
  - nlohmann::assert_invariant
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::array
  - nlohmann::object
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
    and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
    and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
  - ~basic_json() noexcept
  - nlohmann::type
  - nlohmann::is_primitive
  - nlohmann::is_structured
  - nlohmann::is_null
  - nlohmann::is_boolean
  - nlohmann::is_number
  - nlohmann::is_number_integer
  - nlohmann::is_number_unsigned
  - nlohmann::is_number_float
  - nlohmann::is_object
  - nlohmann::is_array
  - nlohmann::is_string
  - nlohmann::is_discarded
  - operator value_t() const noexcept
  - nlohmann::basic_json
  - nlohmann::get_allocator
  - nlohmann::meta
  - nlohmann::create
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::json_value
  - nlohmann::destroy
  - nlohmann::assert_invariant
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::array
  - nlohmann::object
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - nlohmann::basic_json
  - "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value
    and\n        std::is_nothrow_move_assignable<value_t>::value and\n        std::is_nothrow_move_constructible<json_value>::value
    and\n        std::is_nothrow_move_assignable<json_value>::value\n    )"
  - ~basic_json() noexcept
  - nlohmann::type
  - nlohmann::is_primitive
  - nlohmann::is_structured
  - nlohmann::is_null
  - nlohmann::is_boolean
  - nlohmann::is_number
  - nlohmann::is_number_integer
  - nlohmann::is_number_unsigned
  - nlohmann::is_number_float
  - nlohmann::is_object
  - nlohmann::is_array
  - nlohmann::is_string
  - nlohmann::is_discarded
  - operator value_t() const noexcept
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_ref_impl
  - get
  - get
  - get
  - get_to
  - get_to
  - get_ptr
  - get_ptr
  - get
  - get
  - get_ref
  - get_ref
  - operator ValueType() const
  - at
  - JSON_CATCH
  - at
  - JSON_CATCH
  - at
  - JSON_CATCH
  - at
  - JSON_CATCH
  - operator[](size_type idx)
  - operator[](size_type idx) const
  - operator[](const typename object_t::key_type& key)
  - operator[](const typename object_t::key_type& key) const
  - operator[](T* key)
  - operator[](T* key) const
  - value
  - value
  - value
  - JSON_INTERNAL_CATCH
  - value
  - front
  - front
  - back
  - back
  - erase
  - erase
  - erase
  - erase
  - find
  - find
  - count
  - contains
  - begin
  - begin
  - cbegin
  - end
  - end
  - cend
  - rbegin
  - rbegin
  - rend
  - rend
  - crbegin
  - crend
  - iteration_proxy<const_iterator>::iterator_wrapper
  - items
  - items
  - empty
  - size
  - max_size
  - clear
  - push_back
  - operator+=(basic_json&& val)
  - push_back
  - operator+=(const basic_json& val)
  - push_back
  - operator+=(const typename object_t::value_type& val)
  - push_back
  - operator+=(initializer_list_t init)
  - emplace_back
  - emplace
  - insert_iterator
  - insert
  - insert
  - insert
  - insert
  - insert
  - insert
  - update
  - update
  - swap
  - swap
  - swap
  - swap
  - operator==(const_reference lhs, const ScalarType rhs) noexcept
  - operator==(const ScalarType lhs, const_reference rhs) noexcept
  - operator!=(const_reference lhs, const_reference rhs) noexcept
  - operator!=(const_reference lhs, const ScalarType rhs) noexcept
  - operator!=(const ScalarType lhs, const_reference rhs) noexcept
  - operator<(const_reference lhs, const_reference rhs) noexcept
  - operator<(const_reference lhs, const ScalarType rhs) noexcept
  - operator<(const ScalarType lhs, const_reference rhs) noexcept
  - operator<=(const_reference lhs, const_reference rhs) noexcept
  - operator<=(const_reference lhs, const ScalarType rhs) noexcept
  - operator<=(const ScalarType lhs, const_reference rhs) noexcept
  - operator>(const_reference lhs, const_reference rhs) noexcept
  - operator>(const_reference lhs, const ScalarType rhs) noexcept
  - operator>(const ScalarType lhs, const_reference rhs) noexcept
  - operator>=(const_reference lhs, const_reference rhs) noexcept
  - operator>=(const_reference lhs, const ScalarType rhs) noexcept
  - operator>=(const ScalarType lhs, const_reference rhs) noexcept
  - '& operator<<(std::ostream& o, const basic_json& j)'
  - '& operator>>(const basic_json& j, std::ostream& o)'
  - parse
  - accept
  - sax_parse
  - parse
  - accept
  - sax_parse
  - '& operator<<(basic_json& j, std::istream& i)'
  - '& operator>>(std::istream& i, basic_json& j)'
  - type_name
  - to_cbor
  - to_cbor
  - to_msgpack
  - to_msgpack
  - to_msgpack
  - to_ubjson
  - to_ubjson
  - to_ubjson
  - to_bson
  - to_bson
  - to_bson
  - from_cbor
  - from_cbor
  - from_msgpack
  - from_msgpack
  - from_ubjson
  - from_ubjson
  - from_bson
  - from_bson
  - operator[](const json_pointer& ptr)
  - operator[](const json_pointer& ptr) const
  - at
  - at
  - flatten
  - unflatten
  - patch
  - diff
  - merge_patch
  - operator()(const nlohmann::json& j) const
  - "operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
    rhs) const noexcept"
  - std::swap
  - operator()(const nlohmann::json& j) const
  - "operator()(nlohmann::detail::value_t lhs,\n                    nlohmann::detail::value_t
    rhs) const noexcept"
  - std::swap
  - operator "" _json(const char* s, std::size_t n)
  - operator "" _json_pointer(const char* s, std::size_t n)
  source_file: /src/sleuthkit/tools/logicalimager/json.h
  types:
    enum:
    - enumerators:
      - name: 'null'
      - name: object
      - name: array
      - name: boolean
      - name: string
      - name: number_integer
      - name: number_unsigned
      - name: number_float
      - name: discarded
      item_type: enum
      name: value_t
      pos:
        line_end: 1281
        line_start: 1270
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: 'null'
      - name: object
      - name: array
      - name: boolean
      - name: string
      - name: number_integer
      - name: number_unsigned
      - name: number_float
      - name: discarded
      item_type: enum
      name: value_t
      pos:
        line_end: 1281
        line_start: 1270
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: 'null'
      - name: object
      - name: array
      - name: boolean
      - name: string
      - name: number_integer
      - name: number_unsigned
      - name: number_float
      - name: discarded
      item_type: enum
      name: value_t
      pos:
        line_end: 1281
        line_start: 1270
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: 'null'
      - name: object
      - name: array
      - name: boolean
      - name: string
      - name: number_integer
      - name: number_unsigned
      - name: number_float
      - name: discarded
      item_type: enum
      name: value_t
      pos:
        line_end: 1281
        line_start: 1270
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: json
      - name: ubjson
      - name: msgpack
      - name: cbor
      - name: bson
      item_type: enum
      name: input_format_t
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: json
      - name: ubjson
      - name: msgpack
      - name: cbor
      - name: bson
      item_type: enum
      name: input_format_t
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: json
      - name: ubjson
      - name: msgpack
      - name: cbor
      - name: bson
      item_type: enum
      name: input_format_t
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: json
      - name: ubjson
      - name: msgpack
      - name: cbor
      - name: bson
      item_type: enum
      name: input_format_t
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: uninitialized
      - name: literal_true
      - name: literal_false
      - name: value_string
      - name: literal_null
      - name: value_unsigned
      - name: value_integer
      - name: value_float
      - name: begin_array
      - name: begin_object
      - name: end_array
      - name: end_of_input
      - name: parse_error
      - name: value_separator
      - name: literal_or_value
      - name: end_object
      - name: name_separator
      item_type: enum
      name: token_type
      pos:
        line_end: 5595
        line_start: 5576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: uninitialized
      - name: literal_true
      - name: literal_false
      - name: value_string
      - name: literal_null
      - name: value_unsigned
      - name: value_integer
      - name: value_float
      - name: begin_array
      - name: begin_object
      - name: end_array
      - name: end_of_input
      - name: parse_error
      - name: value_separator
      - name: literal_or_value
      - name: end_object
      - name: name_separator
      item_type: enum
      name: token_type
      pos:
        line_end: 5595
        line_start: 5576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: uninitialized
      - name: literal_true
      - name: literal_false
      - name: value_string
      - name: literal_null
      - name: value_unsigned
      - name: value_integer
      - name: value_float
      - name: begin_array
      - name: begin_object
      - name: end_array
      - name: end_of_input
      - name: parse_error
      - name: value_separator
      - name: literal_or_value
      - name: end_object
      - name: name_separator
      item_type: enum
      name: token_type
      pos:
        line_end: 5595
        line_start: 5576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: uninitialized
      - name: literal_true
      - name: literal_false
      - name: value_string
      - name: literal_null
      - name: value_unsigned
      - name: value_integer
      - name: value_float
      - name: begin_array
      - name: begin_object
      - name: end_array
      - name: end_of_input
      - name: parse_error
      - name: value_separator
      - name: literal_or_value
      - name: end_object
      - name: name_separator
      item_type: enum
      name: token_type
      pos:
        line_end: 5595
        line_start: 5576
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: object_start
      - name: array_end
      - name: key
      - name: array_start
      - name: object_end
      - name: value
      item_type: enum
      name: parse_event_t
      pos:
        line_end: 7106
        line_start: 7092
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: object_start
      - name: array_end
      - name: key
      - name: array_start
      - name: object_end
      - name: value
      item_type: enum
      name: parse_event_t
      pos:
        line_end: 7106
        line_start: 7092
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: object_start
      - name: array_end
      - name: key
      - name: array_start
      - name: object_end
      - name: value
      item_type: enum
      name: parse_event_t
      pos:
        line_end: 7106
        line_start: 7092
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: object_start
      - name: array_end
      - name: key
      - name: array_start
      - name: object_end
      - name: value
      item_type: enum
      name: parse_event_t
      pos:
        line_end: 7106
        line_start: 7092
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: strict
      - name: replace
      - name: ignore
      item_type: enum
      name: error_handler_t
      pos:
        line_end: 12067
        line_start: 12062
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: strict
      - name: replace
      - name: ignore
      item_type: enum
      name: error_handler_t
      pos:
        line_end: 12067
        line_start: 12062
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: strict
      - name: replace
      - name: ignore
      item_type: enum
      name: error_handler_t
      pos:
        line_end: 12067
        line_start: 12062
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: strict
      - name: replace
      - name: ignore
      item_type: enum
      name: error_handler_t
      pos:
        line_end: 12067
        line_start: 12062
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - enumerators:
      - name: add
      - name: copy
      - name: move
      - name: replace
      - name: remove
      - name: test
      - name: invalid
      item_type: enum
      name: patch_operations
      pos:
        line_end: 20275
        line_start: 20275
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    preproc_defs:
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MAJOR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MINOR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_PATCH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_DEPRECATED
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: __attribute__((deprecated))
    - item_type: preproc_def
      name: JSON_DEPRECATED
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: __declspec(deprecated)
    - item_type: preproc_def
      name: JSON_NODISCARD
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: '[[nodiscard]]'
    - item_type: preproc_def
      name: JSON_NODISCARD
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: '[[gnu::warn_unused_result]]'
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: try
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: if(true)
    - item_type: preproc_def
      name: JSON_THROW
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: JSON_THROW_USER
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: JSON_TRY_USER
    - item_type: preproc_def
      name: JSON_CATCH
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: JSON_CATCH_USER
    - item_type: preproc_def
      name: JSON_INTERNAL_CATCH
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: JSON_CATCH_USER
    - item_type: preproc_def
      name: JSON_INTERNAL_CATCH
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: JSON_INTERNAL_CATCH_USER
    - item_type: preproc_def
      name: NLOHMANN_BASIC_JSON_TPL_DECLARATION
      pos:
        line_end: 601
        line_start: 594
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: "template<template<typename, typename, typename...> class ObjectType,
        \  \\\n             template<typename, typename...> class ArrayType,              \\\n
        \            class StringType, class BooleanType, class NumberIntegerType,
        \\\n             class NumberUnsignedType, class NumberFloatType,              \\\n
        \            template<typename> class AllocatorType,                       \\\n
        \            template<typename, typename = void> class JSONSerializer>"
    - item_type: preproc_def
      name: NLOHMANN_BASIC_JSON_TPL
      pos:
        line_end: 606
        line_start: 602
        source_file: /src/sleuthkit/tools/logicalimager/json.h
      type_or_value: "basic_json<ObjectType, ArrayType, StringType, BooleanType,             \\\n
        \   NumberIntegerType, NumberUnsignedType, NumberFloatType,                \\\n
        \   AllocatorType, JSONSerializer>"
    structs:
    - fields:
      - name: chars_read_total
        type: std::size_t
      - name: chars_read_current_line
        type: std::size_t
      - name: lines_read
        type: std::size_t
      item_type: struct
      name: position_t
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: chars_read_total
        type: std::size_t
      - name: chars_read_current_line
        type: std::size_t
      - name: lines_read
        type: std::size_t
      item_type: struct
      name: position_t
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: chars_read_total
        type: std::size_t
      - name: chars_read_current_line
        type: std::size_t
      - name: lines_read
        type: std::size_t
      item_type: struct
      name: position_t
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: chars_read_total
        type: std::size_t
      - name: chars_read_current_line
        type: std::size_t
      - name: lines_read
        type: std::size_t
      item_type: struct
      name: position_t
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: index_sequence
      pos:
        line_end: 636
        line_start: 628
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>>
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence
      pos:
        line_end: 648
        line_start: 646
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<0>
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<1>
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag<0>
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: static_const
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: index_sequence
      pos:
        line_end: 636
        line_start: 628
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>>
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence
      pos:
        line_end: 648
        line_start: 646
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<0>
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<1>
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag<0>
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: static_const
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: index_sequence
      pos:
        line_end: 636
        line_start: 628
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>>
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence
      pos:
        line_end: 648
        line_start: 646
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<0>
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<1>
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag<0>
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: static_const
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: index_sequence
      pos:
        line_end: 636
        line_start: 628
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>>
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence
      pos:
        line_end: 648
        line_start: 646
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<0>
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_index_sequence<1>
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: priority_tag<0>
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: T
      item_type: struct
      name: static_const
      pos:
        line_end: 665
        line_start: 662
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_void
      pos:
        line_end: 695
        line_start: 692
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_void
      pos:
        line_end: 695
        line_start: 692
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_void
      pos:
        line_end: 695
        line_start: 692
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: make_void
      pos:
        line_end: 695
        line_start: 692
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_types
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "iterator_types <\n    It,\n    void_t<typename It::difference_type, typename
        It::value_type, typename It::pointer,\n    typename It::reference, typename
        It::iterator_category >>"
      pos:
        line_end: 721
        line_start: 711
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits
      pos:
        line_end: 728
        line_start: 726
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
      pos:
        line_end: 734
        line_start: 731
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
      pos:
        line_end: 744
        line_start: 737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_types
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "iterator_types <\n    It,\n    void_t<typename It::difference_type, typename
        It::value_type, typename It::pointer,\n    typename It::reference, typename
        It::iterator_category >>"
      pos:
        line_end: 721
        line_start: 711
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits
      pos:
        line_end: 728
        line_start: 726
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
      pos:
        line_end: 734
        line_start: 731
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
      pos:
        line_end: 744
        line_start: 737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_types
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "iterator_types <\n    It,\n    void_t<typename It::difference_type, typename
        It::value_type, typename It::pointer,\n    typename It::reference, typename
        It::iterator_category >>"
      pos:
        line_end: 721
        line_start: 711
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits
      pos:
        line_end: 728
        line_start: 726
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
      pos:
        line_end: 734
        line_start: 731
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
      pos:
        line_end: 744
        line_start: 737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_types
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "iterator_types <\n    It,\n    void_t<typename It::difference_type, typename
        It::value_type, typename It::pointer,\n    typename It::reference, typename
        It::iterator_category >>"
      pos:
        line_end: 721
        line_start: 711
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits
      pos:
        line_end: 728
        line_start: 726
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
      pos:
        line_end: 734
        line_start: 731
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
      pos:
        line_end: 744
        line_start: 737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: nonesuch
      pos:
        line_end: 773
        line_start: 765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector
      pos:
        line_end: 783
        line_start: 779
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector<Default, void_t<Op<Args...>>, Op, Args...>
      pos:
        line_end: 790
        line_start: 786
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: nonesuch
      pos:
        line_end: 773
        line_start: 765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector
      pos:
        line_end: 783
        line_start: 779
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector<Default, void_t<Op<Args...>>, Op, Args...>
      pos:
        line_end: 790
        line_start: 786
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: nonesuch
      pos:
        line_end: 773
        line_start: 765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector
      pos:
        line_end: 783
        line_start: 779
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector<Default, void_t<Op<Args...>>, Op, Args...>
      pos:
        line_end: 790
        line_start: 786
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: nonesuch
      pos:
        line_end: 773
        line_start: 765
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector
      pos:
        line_end: 783
        line_start: 779
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: detector<Default, void_t<Op<Args...>>, Op, Args...>
      pos:
        line_end: 790
        line_start: 786
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_basic_json
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_from_json
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "has_from_json<BasicJsonType, T,\n           enable_if_t<not is_basic_json<T>::value>>"
      pos:
        line_end: 960
        line_start: 952
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_non_default_from_json
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_non_default_from_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 975
        line_start: 968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_to_json
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_to_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 990
        line_start: 983
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_iterator_traits
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_iterator_traits<iterator_traits<T>>
      pos:
        line_end: 1013
        line_start: 1001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type<T, decltype(void(sizeof(T)))>
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type_impl
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, CompatibleObjectType>::value and\n
        \   is_detected<key_type_t, CompatibleObjectType>::value >>"
      pos:
        line_end: 1042
        line_start: 1028
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type_impl
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, ConstructibleObjectType>::value
        and\n    is_detected<key_type_t, ConstructibleObjectType>::value >>"
      pos:
        line_end: 1074
        line_start: 1053
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type
      pos:
        line_end: 1079
        line_start: 1077
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type_impl
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_string_type_impl <\n    BasicJsonType, CompatibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, CompatibleStringType>::value >>"
      pos:
        line_end: 1093
        line_start: 1086
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type_impl
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_constructible_string_type_impl <\n    BasicJsonType, ConstructibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, ConstructibleStringType>::value >>"
      pos:
        line_end: 1112
        line_start: 1104
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type_impl
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n
        \   enable_if_t<is_detected<value_type_t, CompatibleArrayType>::value and\n
        \   is_detected<iterator_t, CompatibleArrayType>::value and\n// This is needed
        because json_reverse_iterator has a ::iterator type...\n// Therefore it is
        detected as a CompatibleArrayType.\n// The real fix would be to have an Iterable
        concept.\n    not is_iterator_traits<\n    iterator_traits<CompatibleArrayType>>::value
        >>"
      pos:
        line_end: 1135
        line_start: 1122
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type_impl
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        >>"
      pos:
        line_end: 1149
        line_start: 1145
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<not std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        and\n    std::is_default_constructible<ConstructibleArrayType>::value and\n(std::is_move_assignable<ConstructibleArrayType>::value
        or\n std::is_copy_assignable<ConstructibleArrayType>::value) and\nis_detected<value_type_t,
        ConstructibleArrayType>::value and\nis_detected<iterator_t, ConstructibleArrayType>::value
        and\nis_complete_type<\ndetected_t<value_type_t, ConstructibleArrayType>>::value
        >>"
      pos:
        line_end: 1178
        line_start: 1152
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type_impl
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n
        \   enable_if_t<std::is_integral<RealIntegerType>::value and\n    std::is_integral<CompatibleNumberIntegerType>::value
        and\n    not std::is_same<bool, CompatibleNumberIntegerType>::value >>"
      pos:
        line_end: 1204
        line_start: 1189
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type
      pos:
        line_end: 1209
        line_start: 1207
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type_impl
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value
        >>"
      pos:
        line_end: 1221
        line_start: 1215
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_basic_json
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_from_json
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "has_from_json<BasicJsonType, T,\n           enable_if_t<not is_basic_json<T>::value>>"
      pos:
        line_end: 960
        line_start: 952
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_non_default_from_json
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_non_default_from_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 975
        line_start: 968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_to_json
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_to_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 990
        line_start: 983
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_iterator_traits
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_iterator_traits<iterator_traits<T>>
      pos:
        line_end: 1013
        line_start: 1001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type<T, decltype(void(sizeof(T)))>
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type_impl
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, CompatibleObjectType>::value and\n
        \   is_detected<key_type_t, CompatibleObjectType>::value >>"
      pos:
        line_end: 1042
        line_start: 1028
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type_impl
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, ConstructibleObjectType>::value
        and\n    is_detected<key_type_t, ConstructibleObjectType>::value >>"
      pos:
        line_end: 1074
        line_start: 1053
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type
      pos:
        line_end: 1079
        line_start: 1077
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type_impl
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_string_type_impl <\n    BasicJsonType, CompatibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, CompatibleStringType>::value >>"
      pos:
        line_end: 1093
        line_start: 1086
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type_impl
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_constructible_string_type_impl <\n    BasicJsonType, ConstructibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, ConstructibleStringType>::value >>"
      pos:
        line_end: 1112
        line_start: 1104
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type_impl
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n
        \   enable_if_t<is_detected<value_type_t, CompatibleArrayType>::value and\n
        \   is_detected<iterator_t, CompatibleArrayType>::value and\n// This is needed
        because json_reverse_iterator has a ::iterator type...\n// Therefore it is
        detected as a CompatibleArrayType.\n// The real fix would be to have an Iterable
        concept.\n    not is_iterator_traits<\n    iterator_traits<CompatibleArrayType>>::value
        >>"
      pos:
        line_end: 1135
        line_start: 1122
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type_impl
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        >>"
      pos:
        line_end: 1149
        line_start: 1145
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<not std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        and\n    std::is_default_constructible<ConstructibleArrayType>::value and\n(std::is_move_assignable<ConstructibleArrayType>::value
        or\n std::is_copy_assignable<ConstructibleArrayType>::value) and\nis_detected<value_type_t,
        ConstructibleArrayType>::value and\nis_detected<iterator_t, ConstructibleArrayType>::value
        and\nis_complete_type<\ndetected_t<value_type_t, ConstructibleArrayType>>::value
        >>"
      pos:
        line_end: 1178
        line_start: 1152
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type_impl
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n
        \   enable_if_t<std::is_integral<RealIntegerType>::value and\n    std::is_integral<CompatibleNumberIntegerType>::value
        and\n    not std::is_same<bool, CompatibleNumberIntegerType>::value >>"
      pos:
        line_end: 1204
        line_start: 1189
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type
      pos:
        line_end: 1209
        line_start: 1207
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type_impl
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value
        >>"
      pos:
        line_end: 1221
        line_start: 1215
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_basic_json
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_from_json
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "has_from_json<BasicJsonType, T,\n           enable_if_t<not is_basic_json<T>::value>>"
      pos:
        line_end: 960
        line_start: 952
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_non_default_from_json
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_non_default_from_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 975
        line_start: 968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_to_json
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_to_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 990
        line_start: 983
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_iterator_traits
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_iterator_traits<iterator_traits<T>>
      pos:
        line_end: 1013
        line_start: 1001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type<T, decltype(void(sizeof(T)))>
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type_impl
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, CompatibleObjectType>::value and\n
        \   is_detected<key_type_t, CompatibleObjectType>::value >>"
      pos:
        line_end: 1042
        line_start: 1028
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type_impl
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, ConstructibleObjectType>::value
        and\n    is_detected<key_type_t, ConstructibleObjectType>::value >>"
      pos:
        line_end: 1074
        line_start: 1053
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type
      pos:
        line_end: 1079
        line_start: 1077
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type_impl
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_string_type_impl <\n    BasicJsonType, CompatibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, CompatibleStringType>::value >>"
      pos:
        line_end: 1093
        line_start: 1086
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type_impl
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_constructible_string_type_impl <\n    BasicJsonType, ConstructibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, ConstructibleStringType>::value >>"
      pos:
        line_end: 1112
        line_start: 1104
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type_impl
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n
        \   enable_if_t<is_detected<value_type_t, CompatibleArrayType>::value and\n
        \   is_detected<iterator_t, CompatibleArrayType>::value and\n// This is needed
        because json_reverse_iterator has a ::iterator type...\n// Therefore it is
        detected as a CompatibleArrayType.\n// The real fix would be to have an Iterable
        concept.\n    not is_iterator_traits<\n    iterator_traits<CompatibleArrayType>>::value
        >>"
      pos:
        line_end: 1135
        line_start: 1122
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type_impl
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        >>"
      pos:
        line_end: 1149
        line_start: 1145
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<not std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        and\n    std::is_default_constructible<ConstructibleArrayType>::value and\n(std::is_move_assignable<ConstructibleArrayType>::value
        or\n std::is_copy_assignable<ConstructibleArrayType>::value) and\nis_detected<value_type_t,
        ConstructibleArrayType>::value and\nis_detected<iterator_t, ConstructibleArrayType>::value
        and\nis_complete_type<\ndetected_t<value_type_t, ConstructibleArrayType>>::value
        >>"
      pos:
        line_end: 1178
        line_start: 1152
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type_impl
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n
        \   enable_if_t<std::is_integral<RealIntegerType>::value and\n    std::is_integral<CompatibleNumberIntegerType>::value
        and\n    not std::is_same<bool, CompatibleNumberIntegerType>::value >>"
      pos:
        line_end: 1204
        line_start: 1189
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type
      pos:
        line_end: 1209
        line_start: 1207
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type_impl
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value
        >>"
      pos:
        line_end: 1221
        line_start: 1215
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_basic_json
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_from_json
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "has_from_json<BasicJsonType, T,\n           enable_if_t<not is_basic_json<T>::value>>"
      pos:
        line_end: 960
        line_start: 952
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_non_default_from_json
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_non_default_from_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 975
        line_start: 968
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: has_to_json
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_to_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>>
      pos:
        line_end: 990
        line_start: 983
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_iterator_traits
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_iterator_traits<iterator_traits<T>>
      pos:
        line_end: 1013
        line_start: 1001
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_complete_type<T, decltype(void(sizeof(T)))>
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type_impl
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, CompatibleObjectType>::value and\n
        \   is_detected<key_type_t, CompatibleObjectType>::value >>"
      pos:
        line_end: 1042
        line_start: 1028
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_object_type
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type_impl
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n
        \   enable_if_t<is_detected<mapped_type_t, ConstructibleObjectType>::value
        and\n    is_detected<key_type_t, ConstructibleObjectType>::value >>"
      pos:
        line_end: 1074
        line_start: 1053
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_object_type
      pos:
        line_end: 1079
        line_start: 1077
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type_impl
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_string_type_impl <\n    BasicJsonType, CompatibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, CompatibleStringType>::value >>"
      pos:
        line_end: 1093
        line_start: 1086
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_string_type
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type_impl
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_constructible_string_type_impl <\n    BasicJsonType, ConstructibleStringType,\n
        \   enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,\n
        \   value_type_t, ConstructibleStringType>::value >>"
      pos:
        line_end: 1112
        line_start: 1104
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_string_type
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type_impl
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n
        \   enable_if_t<is_detected<value_type_t, CompatibleArrayType>::value and\n
        \   is_detected<iterator_t, CompatibleArrayType>::value and\n// This is needed
        because json_reverse_iterator has a ::iterator type...\n// Therefore it is
        detected as a CompatibleArrayType.\n// The real fix would be to have an Iterable
        concept.\n    not is_iterator_traits<\n    iterator_traits<CompatibleArrayType>>::value
        >>"
      pos:
        line_end: 1135
        line_start: 1122
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_array_type
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type_impl
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        >>"
      pos:
        line_end: 1149
        line_start: 1145
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<not std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        and\n    std::is_default_constructible<ConstructibleArrayType>::value and\n(std::is_move_assignable<ConstructibleArrayType>::value
        or\n std::is_copy_assignable<ConstructibleArrayType>::value) and\nis_detected<value_type_t,
        ConstructibleArrayType>::value and\nis_detected<iterator_t, ConstructibleArrayType>::value
        and\nis_complete_type<\ndetected_t<value_type_t, ConstructibleArrayType>>::value
        >>"
      pos:
        line_end: 1178
        line_start: 1152
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_constructible_array_type
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type_impl
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n
        \   enable_if_t<std::is_integral<RealIntegerType>::value and\n    std::is_integral<CompatibleNumberIntegerType>::value
        and\n    not std::is_same<bool, CompatibleNumberIntegerType>::value >>"
      pos:
        line_end: 1204
        line_start: 1189
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_integer_type
      pos:
        line_end: 1209
        line_start: 1207
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type_impl
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value
        >>"
      pos:
        line_end: 1221
        line_start: 1215
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_compatible_type
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: from_json_fn
      pos:
        line_end: 1666
        line_start: 1657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: from_json_fn
      pos:
        line_end: 1666
        line_start: 1657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: from_json_fn
      pos:
        line_end: 1666
        line_start: 1657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: from_json_fn
      pos:
        line_end: 1666
        line_start: 1657
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 1892
        line_start: 1883
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 1922
        line_start: 1895
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 1934
        line_start: 1925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 1946
        line_start: 1937
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 1958
        line_start: 1949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 2014
        line_start: 1961
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 2046
        line_start: 2017
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 2190
        line_start: 2182
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 1892
        line_start: 1883
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 1922
        line_start: 1895
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 1934
        line_start: 1925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 1946
        line_start: 1937
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 1958
        line_start: 1949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 2014
        line_start: 1961
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 2046
        line_start: 2017
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 2190
        line_start: 2182
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 1892
        line_start: 1883
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 1922
        line_start: 1895
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 1934
        line_start: 1925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 1946
        line_start: 1937
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 1958
        line_start: 1949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 2014
        line_start: 1961
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 2046
        line_start: 2017
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 2190
        line_start: 2182
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 1892
        line_start: 1883
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 1922
        line_start: 1895
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 1934
        line_start: 1925
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 1946
        line_start: 1937
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 1958
        line_start: 1949
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 2014
        line_start: 1961
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 2046
        line_start: 2017
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 2190
        line_start: 2182
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 2240
        line_start: 2205
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 2240
        line_start: 2205
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: get_character()
        type: std::char_traits<char>::int_type
      item_type: struct
      name: input_adapter_protocol
      pos:
        line_end: 2316
        line_start: 2311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper
      pos:
        line_end: 2488
        line_start: 2432
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper<WideStringType, 2>
      pos:
        line_end: 2553
        line_start: 2491
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: get_character()
        type: std::char_traits<char>::int_type
      item_type: struct
      name: input_adapter_protocol
      pos:
        line_end: 2316
        line_start: 2311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper
      pos:
        line_end: 2488
        line_start: 2432
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper<WideStringType, 2>
      pos:
        line_end: 2553
        line_start: 2491
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: get_character()
        type: std::char_traits<char>::int_type
      item_type: struct
      name: input_adapter_protocol
      pos:
        line_end: 2316
        line_start: 2311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper
      pos:
        line_end: 2488
        line_start: 2432
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper<WideStringType, 2>
      pos:
        line_end: 2553
        line_start: 2491
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: get_character()
        type: std::char_traits<char>::int_type
      item_type: struct
      name: input_adapter_protocol
      pos:
        line_end: 2316
        line_start: 2311
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper
      pos:
        line_end: 2488
        line_start: 2432
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: wide_string_input_helper<WideStringType, 2>
      pos:
        line_end: 2553
        line_start: 2491
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: null()
        type: bool
      - name: boolean(bool val)
        type: bool
      - name: number_integer(number_integer_t val)
        type: bool
      - name: number_unsigned(number_unsigned_t val)
        type: bool
      - name: number_float(number_float_t val, const string_t& s)
        type: bool
      - name: string(string_t& val)
        type: bool
      - name: start_object(std::size_t elements)
        type: bool
      - name: key(string_t& val)
        type: bool
      - name: end_object()
        type: bool
      - name: start_array(std::size_t elements)
        type: bool
      - name: end_array()
        type: bool
      - name: "parse_error(std::size_t position,\n                             const
          std::string& last_token,\n                             const detail::exception&
          ex)"
        type: bool
      item_type: struct
      name: json_sax
      pos:
        line_end: 2839
        line_start: 2737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: null()
        type: bool
      - name: boolean(bool val)
        type: bool
      - name: number_integer(number_integer_t val)
        type: bool
      - name: number_unsigned(number_unsigned_t val)
        type: bool
      - name: number_float(number_float_t val, const string_t& s)
        type: bool
      - name: string(string_t& val)
        type: bool
      - name: start_object(std::size_t elements)
        type: bool
      - name: key(string_t& val)
        type: bool
      - name: end_object()
        type: bool
      - name: start_array(std::size_t elements)
        type: bool
      - name: end_array()
        type: bool
      - name: "parse_error(std::size_t position,\n                             const
          std::string& last_token,\n                             const detail::exception&
          ex)"
        type: bool
      item_type: struct
      name: json_sax
      pos:
        line_end: 2839
        line_start: 2737
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_sax
      pos:
        line_end: 3509
        line_start: 3480
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_sax_static_asserts
      pos:
        line_end: 3559
        line_start: 3512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_sax
      pos:
        line_end: 3509
        line_start: 3480
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_sax_static_asserts
      pos:
        line_end: 3559
        line_start: 3512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_sax
      pos:
        line_end: 3509
        line_start: 3480
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_sax_static_asserts
      pos:
        line_end: 3559
        line_start: 3512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_sax
      pos:
        line_end: 3509
        line_start: 3480
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: is_sax_static_asserts
      pos:
        line_end: 3559
        line_start: 3512
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: object_iterator
        type: typename BasicJsonType::object_t::iterator
      - name: array_iterator
        type: typename BasicJsonType::array_t::iterator
      - name: primitive_iterator
        type: primitive_iterator_t
      item_type: struct
      name: internal_iterator
      pos:
        line_end: 7691
        line_start: 7683
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: object_iterator
        type: typename BasicJsonType::object_t::iterator
      - name: array_iterator
        type: typename BasicJsonType::array_t::iterator
      - name: primitive_iterator
        type: primitive_iterator_t
      item_type: struct
      name: internal_iterator
      pos:
        line_end: 7691
        line_start: 7683
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: object_iterator
        type: typename BasicJsonType::object_t::iterator
      - name: array_iterator
        type: typename BasicJsonType::array_t::iterator
      - name: primitive_iterator
        type: primitive_iterator_t
      item_type: struct
      name: internal_iterator
      pos:
        line_end: 7691
        line_start: 7683
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: object_iterator
        type: typename BasicJsonType::object_t::iterator
      - name: array_iterator
        type: typename BasicJsonType::array_t::iterator
      - name: primitive_iterator
        type: primitive_iterator_t
      item_type: struct
      name: internal_iterator
      pos:
        line_end: 7691
        line_start: 7683
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: write_character(CharType c)
        type: void
      - name: write_characters(const CharType* s, std::size_t length)
        type: void
      item_type: struct
      name: output_adapter_protocol
      pos:
        line_end: 9498
        line_start: 9493
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: write_character(CharType c)
        type: void
      - name: write_characters(const CharType* s, std::size_t length)
        type: void
      item_type: struct
      name: output_adapter_protocol
      pos:
        line_end: 9498
        line_start: 9493
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: write_character(CharType c)
        type: void
      - name: write_characters(const CharType* s, std::size_t length)
        type: void
      item_type: struct
      name: output_adapter_protocol
      pos:
        line_end: 9498
        line_start: 9493
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: write_character(CharType c)
        type: void
      - name: write_characters(const CharType* s, std::size_t length)
        type: void
      item_type: struct
      name: output_adapter_protocol
      pos:
        line_end: 9498
        line_start: 9493
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 11106
        line_start: 10990
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 11113
        line_start: 11108
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 11252
        line_start: 11247
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: hash<nlohmann::json>
      pos:
        line_end: 20793
        line_start: 20780
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: less< ::nlohmann::detail::value_t>
      pos:
        line_end: 20810
        line_start: 20799
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: hash<nlohmann::json>
      pos:
        line_end: 20793
        line_start: 20780
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields: []
      item_type: struct
      name: less< ::nlohmann::detail::value_t>
      pos:
        line_end: 20810
        line_start: 20799
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    typedefs: []
    union:
    - fields:
      - name: '* object'
        type: object_t
      - name: '* array'
        type: array_t
      - name: '* string'
        type: string_t
      - name: boolean
        type: boolean_t
      - name: number_integer
        type: number_integer_t
      - name: number_unsigned
        type: number_unsigned_t
      - name: number_float
        type: number_float_t
      item_type: union
      name: json_value
      pos:
        line_end: 13832
        line_start: 13670
        source_file: /src/sleuthkit/tools/logicalimager/json.h
    - fields:
      - name: '* object'
        type: object_t
      - name: '* array'
        type: array_t
      - name: '* string'
        type: string_t
      - name: boolean
        type: boolean_t
      - name: number_integer
        type: number_integer_t
      - name: number_unsigned
        type: number_unsigned_t
      - name: number_float
        type: number_float_t
      item_type: union
      name: json_value
      pos:
        line_end: 13832
        line_start: 13670
        source_file: /src/sleuthkit/tools/logicalimager/json.h
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerSizeRule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UserAccount::getItemJSONName
  - UserAccount::setAccountType
  - UserAccount::setAdminPriv
  - UserAccount::setUserDomain
  - UserAccount::setSID
  - UserAccount::setHomeDir
  - UserAccount::setDateCreated
  - UserAccount::setLastLoginDate
  - UserAccount::setLoginCount
  - UserAccount::setAccountLocation
  - UserAccount::setDisabled
  - UserAccount::getUserName
  - UserAccount::getUserDomain
  - UserAccount::getSID
  - UserAccount::getHomeDir
  - UserAccount::getAccountType
  - UserAccount::getAdminPriv
  - UserAccount::getDateCreated
  - UserAccount::getLastLoginDate
  - UserAccount::getLoginCount
  - UserAccount::getAccountLocation
  - UserAccount::getAccountLocationStr
  - UserAccount::isDisabled
  source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
  types:
    enum:
    - enumerators:
      - name: ET_CRITICAL
      - name: ET_MAJOR
      - name: ET_MINOR
      - name: ET_WARNING
      - name: ET_UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: ET_CRITICAL
      - name: ET_MAJOR
      - name: ET_MINOR
      - name: ET_WARNING
      - name: ET_UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: LOCAL_ACCOUNT
      - name: UNKNOWN
      - name: DOMAIN_ACCOUNT
      item_type: enum
      name: Enum
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: LOCAL_ACCOUNT
      - name: UNKNOWN
      - name: DOMAIN_ACCOUNT
      item_type: enum
      name: Enum
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: REGULAR
      - name: SERVICE
      - name: LIMITED
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: REGULAR
      - name: SERVICE
      - name: LIMITED
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: 'YES'
      - name: 'NO'
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    - enumerators:
      - name: 'YES'
      - name: 'NO'
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/sleuthkit/tools/logicalimager/UserAccount.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegFileInfo::RegFileInfo
  - RegFileInfo::~RegFileInfo()
  - RegFileInfo::hiveNameToType
  source_file: /src/sleuthkit/tools/logicalimager/RegFileInfo.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerConfiguration::~LogicalImagerConfiguration()
  - LogicalImagerConfiguration::LogicalImagerConfiguration
  - LogicalImagerConfiguration::matches
  - LogicalImagerConfiguration::getFullFilePaths
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/DriveUtil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerDateRule::LogicalImagerDateRule
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerDateRule::LogicalImagerDateRule
  - LogicalImagerDateRule::~LogicalImagerDateRule()
  - LogicalImagerDateRule::getLatestTime
  - LogicalImagerDateRule::matches
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerDateRule.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UserAccount::UserAccount
  - 'UserAccount:: ~UserAccount(void)'
  - UserAccount::getAccountStatus
  source_file: /src/sleuthkit/tools/logicalimager/UserAccount.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerFilenameRule::LogicalImagerFilenameRule
  - LogicalImagerFilenameRule::~LogicalImagerFilenameRule()
  - LogicalImagerFilenameRule::matches
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerRuleSet::getRules
  - LogicalImagerRuleSet::LogicalImagerRuleSet
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*matchCallback)(const MatchedRuleInfo *, TSK_FS_FILE *, const char *)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.h
      type: TSK_RETVAL_ENUM
    union: []
- function_names:
  - MatchedRuleInfo::MatchedRuleInfo
  source_file: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '&getInstance()'
  source_file: /src/sleuthkit/tools/logicalimager/RegistryLoader.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileExtractor::FileExtractor
  - FileExtractor::initializePerImage
  - FileExtractor::extractFile
  - FileExtractor::getRootImageDirPrefix
  - FileExtractor::generateDirForFiles
  - FileExtractor::dirExists
  - FileExtractor::createDirectoryRecursively
  source_file: /src/sleuthkit/tools/logicalimager/FileExtractor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegistryLoader::RegistryLoader
  - RegistryLoader::~RegistryLoader()
  - RegistryLoader::freeHives
  - getFQDN
  - toNormalizedOutputPathName
  - RegistryLoader::getSAMHive
  - RegistryLoader::getSystemHive
  - RegistryLoader::getSoftwareHive
  - RegistryLoader::getSecurityHive
  - RegistryLoader::getUsrClassHives
  - RegistryLoader::getNtUserHives
  - RegistryLoader::loadSystemHives
  - RegistryLoader::loadUserHives
  - RegistryLoader::findSystemRegFiles
  - RegistryLoader::findUserRegFiles
  - RegistryLoader::findUserRegFiles
  - RegistryLoader::findNTUserRegFilesInDir
  - RegistryLoader::findUsrClassRegFile
  source_file: /src/sleuthkit/tools/logicalimager/RegistryLoader.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegKey::RegKey
  - RegKey::RegKey
  - RegKey::~RegKey()
  - RegKey::initialize
  - RegKey::print
  source_file: /src/sleuthkit/tools/logicalimager/RegKey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerConfiguration::getCreateVHD
  - LogicalImagerConfiguration::getFinalizeImagerWriter
  - LogicalImagerConfiguration::getPromptBeforeExit
  - LogicalImagerConfiguration::getVersion
  - LogicalImagerConfiguration::LogicalImagerConfiguration
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerConfiguration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReportUtil::initialize
  - ReportUtil::copyConfigFile
  - ReportUtil::openReport
  - ReportUtil::openConsoleOutput
  - ReportUtil::logOutputToFile
  - ReportUtil::consoleOutput
  - ReportUtil::printDebug
  - ReportUtil::printDebug
  - ReportUtil::reportResult
  - ReportUtil::closeReport
  - ReportUtil::handleExit
  - ReportUtil::GetErrorStdStr
  - ReportUtil::GetLastErrorStdStrW
  - ReportUtil::GetErrorStdStrW
  - ReportUtil::SetPromptBeforeExit
  source_file: /src/sleuthkit/tools/logicalimager/ReportUtil.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegVal::setValName
  - RegVal::setValType
  - RegVal::setValLen
  - RegVal::setDWORD
  - RegVal::setQWORD
  - RegVal::setString
  - RegVal::getValName
  - RegVal::getValType
  - RegVal::getValLen
  - RegVal::getDWORD
  - RegVal::getDWORD64
  - RegVal::getString
  - RegVal::getBinary
  - RegVal::getMultiString
  - RegVal::isString
  - RegVal::isDWORD
  - RegVal::isQWORD
  - RegVal::isBinary
  - RegVal::isMultiString
  source_file: /src/sleuthkit/tools/logicalimager/RegVal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DriveUtil::cwdIsFAT
  - DriveUtil::driveIsFAT
  - DriveUtil::checkDriveForBitlocker
  - DriveUtil::isDriveLocked
  - DriveUtil::wmi_init
  - DriveUtil::wmi_close
  - DriveUtil::checkDriveForLDM
  - DriveUtil::hasBitLockerOrLDM
  - DriveUtil::getPhysicalDrives
  source_file: /src/sleuthkit/tools/logicalimager/DriveUtil.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegistryAnalyzer::RegistryAnalyzer
  source_file: /src/sleuthkit/tools/logicalimager/RegistryAnalyzer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Version::Version
  - operator < (const Version& rhs) const
  - operator == (const Version& other) const
  - '& operator << (std::ostream& stream, const Version& ver)'
  source_file: /src/sleuthkit/tools/logicalimager/Version.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~FileExtractor()
  - FileExtractor::FileExtractor
  source_file: /src/sleuthkit/tools/logicalimager/FileExtractor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stringToTimet
  - getPositiveInt64
  - getPositiveInt
  - LogicalImagerRuleSet::constructRule
  - LogicalImagerRuleSet::constructRuleSet
  - LogicalImagerRuleSet::LogicalImagerRuleSet
  - LogicalImagerRuleSet::~LogicalImagerRuleSet()
  - LogicalImagerRuleSet::matches
  - LogicalImagerRuleSet::getFullFilePaths
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleSet.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegKey::getKeyName
  - RegKey::getNumSubkeys
  - RegKey::getNumValues
  - RegKey::getModifyTime
  - RegKey::getRegistryKey
  - RegKey::setModifyTime
  - RegKey::setNumSubkeys
  - RegKey::setNumValues
  source_file: /src/sleuthkit/tools/logicalimager/RegKey.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/RegHiveType.h
  types:
    enum:
    - enumerators:
      - name: SYSTEM
      - name: SOFTWARE
      - name: SECURITY
      - name: NTUSER
      - name: SAM
      - name: USRCLASS
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/sleuthkit/tools/logicalimager/RegHiveType.h
    - enumerators:
      - name: SYSTEM
      - name: SOFTWARE
      - name: SECURITY
      - name: NTUSER
      - name: SAM
      - name: USRCLASS
      - name: UNKNOWN
      item_type: enum
      name: Enum
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/sleuthkit/tools/logicalimager/RegHiveType.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerFilenameRule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TskFindFiles::TskFindFiles
  - TskFindFiles::~TskFindFiles()
  - TskFindFiles::handleError
  - TskFindFiles::filterFs
  - TskFindFiles::processFile
  source_file: /src/sleuthkit/tools/logicalimager/TskFindFiles.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isWinXPOrOlder
  - isProcessElevated
  - getLocalHost
  - createSessionDirectory
  - getDrivesToProcess
  - hasTskLogicalImager
  - matchCallback
  - getFilename
  - getPathName
  - searchFilesByFullPath
  - searchFilesByAttribute
  - reportUsers
  - usage
  - main
  source_file: /src/sleuthkit/tools/logicalimager/tsk_logical_imager.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegParser::RegParser
  - RegParser::RegParser
  - RegParser::~RegParser()
  - RegParser::loadHive
  - RegParser::getRootKey
  - RegParser::getKey
  - RegParser::getSubKeys
  - RegParser::getSubKeys
  - RegParser::getValue
  - RegParser::getValue
  - RegParser::getValues
  - RegParser::getValues
  - RegParser::findKey
  - RegParser::splitKeyName
  source_file: /src/sleuthkit/tools/logicalimager/RegParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerSizeRule::LogicalImagerSizeRule
  - LogicalImagerSizeRule::~LogicalImagerSizeRule()
  - LogicalImagerSizeRule::matches
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerSizeRule.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerPathRule::getUserFolder
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerRuleBase::LogicalImagerRuleBase
  - LogicalImagerRuleBase::~LogicalImagerRuleBase()
  - LogicalImagerRuleBase::validatePath
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerRuleBase.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerExtensionRule::LogicalImagerExtensionRule
  - LogicalImagerExtensionRule::~LogicalImagerExtensionRule()
  - LogicalImagerExtensionRule::matches
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerExtensionRule.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~MatchedRuleInfo()
  - MatchedRuleInfo::getRuleSetName
  - MatchedRuleInfo::getName
  - MatchedRuleInfo::getDescription
  - MatchedRuleInfo::isShouldSave
  - MatchedRuleInfo::isShouldAlert
  source_file: /src/sleuthkit/tools/logicalimager/MatchedRuleInfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Path2InumCacheData::setFSNameFlag
  - Path2InumCacheData::getInum
  - Path2InumCacheData::getFSDir
  - Path2InumCacheData::getFSNameFlag
  - TSKFileNameInfo::TSKFileNameInfo
  - TSKFileNameInfo::setINUM
  - TSKFileNameInfo::setFSNameFlags
  - TSKFileNameInfo::getINUM
  - TSKFileNameInfo::getFSNameFlags
  - '& getInstance()'
  - TskHelper::setImgInfo
  source_file: /src/sleuthkit/tools/logicalimager/TskHelper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Path2InumCacheKey
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/sleuthkit/tools/logicalimager/TskHelper.h
      type: pair<TSK_OFF_T, std::string>
    - item_type: typedef
      name: Path2InumCache
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/sleuthkit/tools/logicalimager/TskHelper.h
      type: map<Path2InumCacheKey, const Path2InumCacheData *>
    union: []
- function_names:
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::RegVal
  - RegVal::~RegVal()
  - RegVal::initialize
  - RegVal::setBinaryData
  - RegVal::addMultiStringData
  - RegVal::valTypeStr
  - RegVal::print
  - hexprintBuf
  - RegVal::dataToStr
  source_file: /src/sleuthkit/tools/logicalimager/RegVal.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LogicalImagerPathRule::LogicalImagerPathRule
  - LogicalImagerPathRule::~LogicalImagerPathRule()
  - LogicalImagerPathRule::matchUserFolder
  - LogicalImagerPathRule::matches
  source_file: /src/sleuthkit/tools/logicalimager/LogicalImagerPathRule.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SET_BINARY
  - _sch_test
  - ISPRINT
  - STRING_ISGRAPHIC
  - file_open
  - file_open
  - main
  - get_file_size
  - strings_file
  - get_char
  - print_strings
  - integer_arg
  - usage
  source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _O_BINARY
    - item_type: preproc_def
      name: setmode
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _setmode
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PRIx64
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '"llx"'
    - item_type: preproc_def
      name: PRId64
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PRIo64
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '"llo"'
    - item_type: preproc_def
      name: bl
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isblank
    - item_type: preproc_def
      name: cn
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_iscntrl
    - item_type: preproc_def
      name: di
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isdigit
    - item_type: preproc_def
      name: is
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isidst
    - item_type: preproc_def
      name: lo
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_islower
    - item_type: preproc_def
      name: nv
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isnvsp
    - item_type: preproc_def
      name: pn
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_ispunct
    - item_type: preproc_def
      name: pr
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isprint
    - item_type: preproc_def
      name: sp
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isspace
    - item_type: preproc_def
      name: up
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isupper
    - item_type: preproc_def
      name: vs
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isvsp
    - item_type: preproc_def
      name: xd
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: _sch_isxdigit
    - item_type: preproc_def
      name: L
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (lo|is   |pr) '
    - item_type: preproc_def
      name: XL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (lo|is|xd|pr) '
    - item_type: preproc_def
      name: U
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (up|is   |pr) '
    - item_type: preproc_def
      name: XU
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (up|is|xd|pr) '
    - item_type: preproc_def
      name: D
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (di   |xd|pr) '
    - item_type: preproc_def
      name: P
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (pn      |pr) '
    - item_type: preproc_def
      name: _
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (pn|is   |pr) '
    - item_type: preproc_def
      name: C
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (         cn) '
    - item_type: preproc_def
      name: Z
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (nv      |cn) '
    - item_type: preproc_def
      name: M
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (nv|sp   |cn) '
    - item_type: preproc_def
      name: V
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (vs|sp   |cn) '
    - item_type: preproc_def
      name: T
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (nv|sp|bl|cn) '
    - item_type: preproc_def
      name: S
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '(const unsigned short) (nv|sp|bl|pr) '
    - item_type: preproc_def
      name: bfd_boolean
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: unsigned char
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/sleuthkit/tools/srchtools/srch_strings.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/sleuthkit/tools/srchtools/sigfind.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/unit_tests/base/errors_test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sleuthkit/unit_tests/base/test_base.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ErrorsTest::setUp
  - ErrorsTest::tearDown
  - ErrorsTest::testInitialState
  - ErrorsTest::testLengthChecks
  - xErrorsTestShared
  - thread_1
  - ErrorsTest::testMultithreaded
  source_file: /src/sleuthkit/unit_tests/base/errors_test.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEM_TYPE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/sleuthkit/unit_tests/base/errors_test.cpp
      type_or_value: semaphore_t
    - item_type: preproc_def
      name: SEM_TYPE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/sleuthkit/unit_tests/base/errors_test.cpp
      type_or_value: sem_t
    structs:
    - fields:
      - name: sync_barrier
        type: SEM_TYPE
      - name: errno_check_failed
        type: bool
      - name: errstr_check_failed
        type: bool
      - name: errstr2_check_failed
        type: bool
      - name: failure
        type: bool
      item_type: struct
      name: xErrorsTestShared
      pos:
        line_end: 69
        line_start: 56
        source_file: /src/sleuthkit/unit_tests/base/errors_test.cpp
    typedefs: []
    union: []
- function_names:
  - setThrowTskCoreError
  - setThrowTskCoreError
  - setThrowTskDataError
  - setThrowTskDataError
  - castImgInfo
  - castVsInfo
  - castVsPartInfo
  - castPoolInfo
  - castFsInfo
  - castFsFile
  - castJniFileHandle
  - toTCHAR
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbOpenNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbNewNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbBeginTransactionNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCommitTransactionNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbRollbackTransactionNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbAddEntryNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsUpdateableNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsReindexableNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbPathNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexPathNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIsIdxOnlyNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbGetDisplayName
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCloseAll
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbClose
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookup
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbLookupVerbose
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNatPassword
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_initAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_initializeAddImgPasswordNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_runOpenAndAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_runAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_stopAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_finishAddImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getPathsForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getSizeForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getTypeForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getSectorSizeForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getMD5HashForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getSha1HashForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getCollectionDetailsForImageNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openVsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openVolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openPoolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getImgInfoForPoolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openFsDecryptNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_openFileNat
  - copyBufToByteArray
  - copyBufToByteArray
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readPoolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readVsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readVolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readFsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_readFileNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_saveFileMetaDataTextNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_closeImgNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_closeVsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_closePoolNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_closeFileNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getVersionNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getCurDirNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_startVerboseLoggingNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbCreateIndexNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_hashDbIndexExistsNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_findDeviceSizeNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupportedStringNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getSleuthkitVersionNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_getFinishImageProgressNat
  - Java_org_sleuthkit_datamodel_SleuthkitJNI_cancelFinishImageNat
  source_file: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSK_JNI_FILEHANDLE_TAG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
      type_or_value: '0x10101214'
    - item_type: preproc_def
      name: FIXED_BUF_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
      type_or_value: (16 * 1024)
    structs:
    - fields:
      - name: tag
        type: uint32_t
      - name: '*fs_file'
        type: TSK_FS_FILE
      - name: '*fs_attr'
        type: TSK_FS_ATTR
      item_type: struct
      name: TSK_JNI_FILEHANDLE
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.cpp
    typedefs: []
    union: []
- function_names:
  - TskAutoDbJava::_UNALLOC_BLOCK_WLK_TRACK
  source_file: /src/sleuthkit/bindings/java/jni/auto_db_java.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& tskAutoDbJava'
        type: TskAutoDbJava
      - name: '& fsInfo'
        type: TSK_FS_INFO
      - name: fsObjId
        type: int64_t
      - name: ranges
        type: vector<TSK_DB_FILE_LAYOUT_RANGE>
      - name: curRangeStart
        type: TSK_DADDR_T
      - name: size
        type: int64_t
      - name: minChunkSize
        type: int64_t
      - name: maxChunkSize
        type: int64_t
      - name: prevBlock
        type: TSK_DADDR_T
      - name: isStart
        type: bool
      - name: nextSequenceNo
        type: uint32_t
      item_type: struct
      name: _UNALLOC_BLOCK_WLK_TRACK
      pos:
        line_end: 192
        line_start: 178
        source_file: /src/sleuthkit/bindings/java/jni/auto_db_java.h
    typedefs: []
    union: []
- function_names:
  - TskAutoDbJava::TskAutoDbJava
  - TskAutoDbJava::~TskAutoDbJava()
  - TskAutoDbJava::initializeJni
  - TskAutoDbJava::saveObjectInfo
  - TskAutoDbJava::getObjectInfo
  - TskAutoDbJava::addImageInfo
  - TskAutoDbJava::addAcquisitionDetails
  - TskAutoDbJava::addVsInfo
  - TskAutoDbJava::addPoolInfoAndVS
  - TskAutoDbJava::addPoolVolumeInfo
  - TskAutoDbJava::addVolumeInfo
  - TskAutoDbJava::addFsInfo
  - TskAutoDbJava::addFsFile
  - extractExtension
  - TskAutoDbJava::createJString
  - TskAutoDbJava::addFile
  - _checkFileLayoutRangeOverlap
  - getHasOverlap
  - operator() (const TSK_DB_FILE_LAYOUT_RANGE & range)
  - TskAutoDbJava::addFileWithLayoutRange
  - TskAutoDbJava::addUnallocBlockFile
  - TskAutoDbJava::addUnusedBlockFile
  - TskAutoDbJava::addUnallocFsBlockFilesParent
  - TskAutoDbJava::addUnallocatedPoolVolume
  - TskAutoDbJava::close
  - TskAutoDbJava::getImageID
  - TskAutoDbJava::closeImage
  - TskAutoDbJava::setAddFileSystems
  - TskAutoDbJava::setNoFatFsOrphans
  - TskAutoDbJava::setAddUnallocSpace
  - TskAutoDbJava::setAddUnallocSpace
  - TskAutoDbJava::setAddUnallocSpace
  - TskAutoDbJava::openImageUtf8
  - TskAutoDbJava::openImage
  - TskAutoDbJava::openImage
  - TskAutoDbJava::addImageDetails
  - TskAutoDbJava::filterVs
  - TskAutoDbJava::filterPool
  - TskAutoDbJava::addUnallocatedPoolBlocksToDb
  - TskAutoDbJava::filterPoolVol
  - TskAutoDbJava::filterVol
  - TskAutoDbJava::filterFs
  - TskAutoDbJava::insertFileData
  - TskAutoDbJava::addFilesInImgToDb
  - TskAutoDbJava::startAddImage
  - TskAutoDbJava::startAddImage
  - TskAutoDbJava::startAddImage
  - TskAutoDbJava::stopAddImage
  - TskAutoDbJava::setTz
  - TskAutoDbJava::setDatasourceObjId
  - TskAutoDbJava::processFile
  - TskAutoDbJava::processAttribute
  - TskAutoDbJava::fsWalkUnallocBlocksCb
  - TskAutoDbJava::addFsInfoUnalloc
  - TskAutoDbJava::addUnallocSpaceToDb
  - TskAutoDbJava::addUnallocFsSpaceToDb
  - TskAutoDbJava::addUnallocVsSpaceToDb
  - TskAutoDbJava::addUnallocImageSpaceToDb
  - TskAutoDbJava::addUnallocBlockFileInChunks
  - TskAutoDbJava::getCurDir
  source_file: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& ranges'
        type: vector<TSK_DB_FILE_LAYOUT_RANGE>
      - name: hasOverlap
        type: bool
      item_type: struct
      name: _checkFileLayoutRangeOverlap
      pos:
        line_end: 753
        line_start: 724
        source_file: /src/sleuthkit/bindings/java/jni/auto_db_java.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sleuthkit/bindings/java/jni/dataModel_SleuthkitJNI.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - procDir
  - procFs
  - procVs
  - main
  source_file: /src/sleuthkit/samples/posix-cpp-style.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fileAct
  - procFile
  - dirAct
  - procFs
  - vsAct
  - procVs
  - main
  source_file: /src/sleuthkit/samples/callback-cpp-style.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DO_HASHING
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/samples/callback-cpp-style.cpp
      type_or_value: '1'
    - item_type: preproc_def
      name: DO_HASHLOOKUP
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/samples/callback-cpp-style.cpp
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_act
  - proc_file
  - dir_act
  - proc_fs
  - vs_act
  - proc_vs
  - main
  source_file: /src/sleuthkit/samples/callback-style.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DO_HASHING
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sleuthkit/samples/callback-style.cpp
      type_or_value: '1'
    - item_type: preproc_def
      name: DO_HASHLOOKUP
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/sleuthkit/samples/callback-style.cpp
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - proc_dir
  - proc_fs
  - proc_vs
  - main
  source_file: /src/sleuthkit/samples/posix-style.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
